- Bump contexture/contexture-client
- eslint: Support package.json exports field
- Add exports field to package.json
- Fix default exports when library is being consumed from CommonJS. More info at https://esbuild.github.io/content-types/#default-interop
- Fix query builder imports
- Fix grey-vest publishing v2
- Fix grey-vest publishing
- Revert package.json exports field
- Add exports field to package.json
- Bump contexture-client
- Use yarn
- Use eslint to build source
- Convert package to ESM
- FilterList - Add
resultsPath
similar to how it is used in TagsQuerySearchBar to indicate if we need to trigger tree update
- Fix MemoryTable rendering
- Fix contexture imports
- NestedPicker: change
getItemLabel
to not auto-format non-field options in the picker if their name contains a space
- ResultTable: when
fieldGroups
are available as part of the field definition they contain already formatted group field names so there is no need to try and auto format since that leads to undesired field labels in some cases
- ResultTable and MemoryTable: improved rendering performance
- Fix useLocal{Store,Observable} import
- Make library compatible with any version of mobx from 4 to 6
- ResultTable: ability to specify default cell display
- ResultTable: adding HeaderGroup support for buttons in headers
- Bump contexture-client
- NestedPicker: add support for showing option description section/panel if at least one option has field
description
set - ModalPicker: add
modalClassName
prop to allow targeting for styling - FilterAdder: pass
modalClassName
prop asfilter-adder
by default to allow targeting for styling the modal within the FilterAdder
- NestedPicker: add support for creating a Commonly Used Fields section if one or more field options have flag
isCommonlyUsed
set
- FilterList: using node.markedForUpdate and deprecating flat tree
- ResultTable: column groups in table header via
fieldGroup
prop
- Fixes greyvest bug related to nested picker on a field with a key
value
.
- Adds data-path to the main search bar, facet, date, number, and results.
- Switch from
recompose
toreact-recompose
- Update pull-request workflow to better catch test failures
- NestedPicker and FilterAdder fixes. FilterAdded no longer shows when the filter list is empty.
- Fixed bug in command updating package.json for grey-vest
- Updated github action to publish grey-vest
- Fix showing
undefined
in NestedPicker
- Stop onChange in Cancel function from throwing if
addedFields
is undefined.
- Toggling layout modes is disabled if search layout mode setter is empty.
- Fix wrapping node in AND/OR in advanced search
- ModalPicker: handling multi-select data when adding filters
- OperatorMenu: showing the right join for the wrap button
- Search tree indent: preserving the path while indenting the group node
- ExpandableTagsQuery: not loosing focus by contexturifyWithoutLoader avoiding component re-rendering
- ExpandableTagsInput: handling autoFocus with react ref api
- TagsQuery: removed outside click handler
- PeerDependency support react-17
- Storybook: Bumped storybook to version 6
- TagsQuery: Remove 'autoFocus' to resolve unexpected focusing behavior
- ExpandableTagsQuery: added mobx observer for the underlying TagsWrapper
- NestedPicker: Support for bulk add
- CheckableResultTable: use contexturifyWithoutLoader to fix double loading animation
- TagsQuery: Making TagsQuery based on ExpandableTagsQuery
- Facet: Add warning when more than 250 values are selected
- Facet: fix for scroll jump when checking items in a long list
- Updated CI to use node16 and npm7
- Updated package-lock.json to version 2
- FilterButtonList: adopt FilterList functionality
- TagsInput & ExpandableTagsInput: Changes to the sanitize tags regex to allow '-'
- ExpandableTagsInput: Default
wordsMatchPattern
to alphanumeric characters
- TagsInput: Default
wordsMatchPattern
to alphanumeric characters
- TagsQuery: Fix the
maxTags
handling of extra tags
- Add last 1 Day and last 1 hour to rolling date options
- TagsInput: Introduce maxTags & onTagsDropped to limit the number of tags allowed
- TagsQuery: Pipe the maxTags & onTagsDropped
- TagsText:
addTags
function fix introduced in 2.44.5
- TagsInput/ExpandableTagsInput: Add default for
addTags
function param
- TagsQuery: Refactoring to use
addTags
- TagsInput: Use
addTags
so we mutate the tree only at the point where all tags have been objectified
- TagsInput: Allow for new parameters to govern the words match pattern and if we want to sanitize the tags
- TagsQuery: Pass the new parameters to TagsInput
- TagsInput: Limit the number of words per tag and the number of characters per word
- ResultTable: fixing top level observer, header filter default state
- Moved the CI from CircleCI to Github Actions
- ResultTable: loading indicator, rendering performance
- ResultTable: header filters + search button for disableAutoUpdate
- ResultCount: loading indicator
- Theme: removed nesting support
- MemoryTable: default criteria nodes to an empty array so casting works as expected
- useMemoryTree: pageSize 50 by default
- MemoryTable: useMemoryTree hook for updating data in memory
- ResultTable: hiding footer with
hideFooter
prop
- ResultCount: Support more node result exampleTypes
- TagsQuery: Format the tags number
- Date: Fix date filter UI to better react to clear/reset
- TagsQuery: Support tag labels with values of corresponding props on context.results (typical use: tag counts)
- TagsQuerySearchBar: Add the ability to specify specific tag query join options
- Geo: Use latest HERE API
- Geo: Hardcoded autocomplete results in the storybook as there is no more free lunch with HERE Maps
- Icon: Use
withTheme
so that Icon can be replaced at the consumer level
- ResultTable: fixing transparency for blank results with nested components
- ResultTable: extending theme to utilize base table components such as Tr, Th, Td
- ResultTable: stickyColumn property to keep a column on the screen while scrolling
- SearchFilters: adding disableAdvancedMode property basic mode only
- ResultTable, TermsStatsTable: exposing limitedResults property to control blank rows insertion
- ResultTable, TermsStatsTable: blank rows for limited results
- TagsQuerySearchBar: fix event handling where the child popup events still fire even when the search bar is expanded
- Grey Vest Table: Fix an issue where passing in a className overwrites the gv-table class
- use GreyVest Table in GreyVest ExpandableTable
- add next18Months rolling date type option
- FilterList: condition for showing the
Search
button
- Date type: fixing the null value of endOfDay Error
- Popover: updating
reactjs-popup
dependency to v2.0.4
- FilterList: common animated
Search
button instead of an individual for each filter, full-widthAdd Filter
button - ResultTable, TermsStatsTable, Table: headers and footer shadow styling, sticky headers, sticky columns, popup placement
- ExpandableTagsQuery: custom Popup placement
- Remove css rule when nested table is expanded
- Fix Popover width and placement for TagsJoinPicker
- Add Story for TagsText
- Allow passing a custom function to ResultsTable to generating unique row component key from record
- Fix ResultsCount when used against memory provider context results
- Fix Phrase options min width size
- Fix TagsQuery: closing Popover using ActionsMenu buttons
- Fix GeoComponent: Rendering Autocomplete options in a Portal
- Fix Modal inside of Popover by rolling back to
[email protected]
- Fix Modal inside of Popover in ResultTable Header
- Add default styles to Popover component
- Fix stories for Popover
- Using
reactjs-popup
as the basis for Popover component
- Add animated Expandable Component to GreyVest
- Make FilterList to use Expandable for its sections
- Expandable using
gv-expandable
className for theming
- Add min-width:0 to grid children
- Fix stories
- Geo: support passing country as second argument to
loadHereOptions
- GreyVest: add className
gv-table-parent
to table parentdiv
- move the ref of CheckBox from Input to Label.
- Do not show Add Custom Filter if there are no filters to pick from
- Do not throw an error if fields is empty but infer is true
- add ShowFiltersButton
- Throw error when no fields are passed to ResultTable
- Adds TableFooter and PageSize to the GreyVest exports
- support ForwardRef for CheckBox
- support ForwardRef for TagsInput
- Export contexturify/contexturifyWithLoader to aid the creation of new node types
- Do not show pager in table if the node's pageSize is 0
- Wrap FacetCheckboxList with contexturifyWithoutLoader
- Facet, DateRangeFacet css change
- Facet filter hide options. Allow hiding of the radio list & Select All.
- Add DateRangeFacet component
- NestedPicker css changes to allow each section to "overflow: auto"
- Add new mapping for the dateRangeFacet
- Format facet values
- Format table footer
- CSS changes
- Result Count number formatting
- Changes to filter icons
- Advanced Search Builder is now in a popup menu
- Expand / Collapse all filters is now in a popup menu
- Toggle Filters Panel is now in a popup menu
- TreePauseButton changes to support Component and be text based vs Icon
- Use https for HereMaps API calls
- Change "Select All" to "Select All Visible" on all facets
- Added more rolling date types.
- Changed DateRangePicker to use ranges instead of datemath expressions.
- Move datemath logic to the server for
date
type.
- Set end date for exact date to the end of the day.
- Factors out and exports
getLocationInfo
inutil/geo
to support fetching full HereMaps location data by id
- Allow bool & exists types to have customizable options via display prop
- Add stories for bool & exits customizations
hideMenu
header column config now works as expected and does not show the menu on header clickhideRemoveColumn
option added- customizations story updated to demo also these customizations
- Add Next 60 Days, Next 90 Days, Next 6 Months options to date facet
- Add capability to add columns to the right side of the clicked column header instead of always adding to the end of the header row
- Fix for the PagedResultTable and support for IntroComponent
- Make "NoResults" PagedResultTable aware of markedForUpdate
- Enable default outline for greyVest buttons
- Fix PagedResultTable "NoResultsComponent"
- Added support for a "No Results" component being passed via props on the PagedResultTable
- Implement support for passing the labelData prop on facet values to the display function for a facet instance
- Fix a bug in Facet where it would throw an error if
node.context
was undefined (now safely checks via_.get
)
- Add MemoryTable component
- ExampleTypes: Add emoji-dataset story to Facet
- Date Filter - Css changed to fix the date input size
- Add "Load More" functionality to ResultTableFooter for results nodes with a
skipCount
flag
- Date Filter - Change added Last 15 months and Last 18 months to the dropdown
- Date Filter - Change
now
tonow+1M/M-1d
to cover the entire current month
- SearchFilters: Add ability to override
uniqueFields
withallowDuplicateFields
passed throughSearchFilters
- Add new pagination components to PagedResultTable (ResultPageSize, ResultTableCount)
- Add stories for PagedResultTable
- Split off pagination functionality from ResultPager into a separate Pager component for GreyVest (API:
value
,onChange
,pageCount
) - Reorganize ResultTable components into separate files
- FilterList: styling tweaks
- Update storybook to 5.2 (now with storybook docs!) 🎉
- Improve changelog markdown (make header size depend on version magnitude)
- TagsQuery: fix bug where tag popover wasn't closing
- TagsQuery: fix a bug where the actions popover closed itself when clicked on
- Add support for the "searchButtonProps" prop to the SearchBar
- Update
contexture-client
dev dependency and stories to use newly observabledisableAutoUpdate
- Add a GreyVest Modal story to demonstrate opening a modal from inside a popover
- Add FacetSelect component (a dropdown interface for the
facet
type) to ExampleTypes
- Fix bug in
selectedBinding
- Add stories for CheckableResultTable to illustrate lens (
selected
) and non-lens (selectedValues
/onChange
) APIs
- ActionMenu/TagsQuerySearchBar: Adds actionWrapper for handling action menu button feedback etc
- ExampleTypes: Update
CheckableResultTable
api to also acceptselectedValues
andonChange
as alternatives toselected
- Default to
_.noop
forTagsQuery
'saddTag
prop
- Use
futil
package instead offutil-js
- Deprecate
useLens
in favor of the new futil arrayLens API
- TagsQuerySearchBar: Hide search button when the tree is not in disableAutoUpdate mode
- TagsQuery: add
onAddTag
callback prop (takes the addedtag
as its argument) - ExpandableTagsQuery & TagsQuerySearchBar: improve collapse behavior
- GreyVest: debounce Popover's
onClose
handler (fixes a bug where toggling a popover's open state just kept the popver open)
- FilterList: remove refresh icon & replace it with an "apply filter" button
- TagsQuery: slightly reduce the inner height
- ExampleTypes: Remove loader from Date
- FilterList: hide overflow menu & update button on paused filters
- GreyVest: reduce margins/padding on FilterList, Table & SearchLayout
- Remove loader from FilterAdder
- TagsQuery: add a constant for "tags"/"keywords" terminology
- FilterList/SearchFilters: update pause icon styling
- ExampleTypes: Remove loader from TagsQuery
- Add
contexturifyWithoutLoader
HOC
- ExampleTypes: Add an expanding/collapsing TagsQuerySearchBar component
- Adds the latest version of Moment to the dependencies
- GreyVest: Add GridItem component
- GreyVest: Add
rows
,areas
,placeContent
andplaceItems
props to Grid - GreyVest: Drop IE support for Grid component
- GreyVest: Add
inline
flag prop to Grid and Flex
- GreyVest: Change the TreePause and TreeUnpause icons to use material's
unfold_less
andunfold_more
(formerly the circled plus/minus icons) - SearchFilters: Swap the order of TreePauseButton and ToggleFiltersButton in the BasicFilters header
- Add theme support to contexturify's
withLoader
: it now usestheme.Loader
for the Loader component if it exists, and if a Loader component hasn't been passed as a prop
- Fixes facets search box by making it more intuitive to the user when filtering the facet checkboxes
- Fixes the tags with no space breaking the UI
- Fixes the tag popover where the refresh facet icon was showing over it
- Fixes the tag popover keyword breaking the UI
- Add 'counts' to the facet hide config in order to hide the facet counts
- Add
search-layout
andsearch-layout-{mode}
classNames to SearchLayout
- Add
BasicFilters
andBuilderFilters
props to SearchFilters for overriding/customizing filter components in the layout
- camelCase
defaultNodeProps
schema util - Be explicit about utility function exports in
src/index.js
- Ensure components using
openBinding
observe the correct things
- Fix nested groups not updating in QueryBuilder
- Fix "within"/"not within" dropdown in Geo component
- Fix order of Text HOCs
- Don't export the material theme
- New theme API! No more prop drilling! Nested theme support! 🎉
- Rework higher-order components
- Refactor
injectTreeNode
intowithNode
,withLoader
, andcontexturify
HOCs - Remove usages of mobx-react Provider
- Refactor
- Add
utils/react
, with newuseLens
anduseLensObject
functions - API changes
- Remove
types
andtypeComponents
props from QueryBuilder and FilterList - Add support for a conventional value/setter prop API to the GreyVest Modal and Popover components (as
isOpen
/onClose
) in addition to the existing futil lens API- Rename the lens prop from
isOpen
, now used for the boolean value, toopen
- Rename the lens prop from
- Remove
Input
prop from TermsStatsTable (now consumesTextInput
from theme) - Remove
HeaderCell
prop from ResultTable (still accessible through theHeaderCell
property on the field schema)
- Remove
- Restructure the component library for a cleaner distinction between search components, themes, and GreyVest
- Publish the GreyVest component library on npm as the
grey-vest
package! - Export exampleTypes components individually from contexture-react, rather than in an
ExampleTypes
object - Consolidate the following layout components into the GreyVest component library: Awaiter, BarChart, Dynamic, ExpandableTable, Flex, Grid, NestedPicker, Popover, Portal, SpacedList, TagsInput, Tag, DateInput, StripedLoader
- Move or remove several GreyVest component exports:
- Removed: Adder (use FilterAdder), Pager (use ResultPager)
- Moved to ExampleTypes: PagedResultTable
- Moved to top-level exports: FilterButtonList, FilterList, QueryBuilder, QueryWizard, SearchTree, ToggleFiltersHeader, SearchLayout, SearchFilters
- Moved to GreyVest theme: MissingTypeComponent (also renamed to UnmappedNodeComponent)
- Moved to purgatory: CheckButton, ToggleFiltersButton, TreePauseButton
- Moved to SearchFilters: AddableFilterList, FiltersBox
- Rename some GreyVest component exports:
- ListItem/ListGroupItem -> DropdownItem
- GVStyle -> Style
- Highlight -> TextHighlight
- Input -> TextInput
- IconButton -> TextButton
- Publish the GreyVest component library on npm as the
- Add new docs and stories
- Use port 3001 for the storybook server instead of 3000 (to avoid conflicts with other servers that might be running on 3000)
- Bump mobx-react to latest version
- Kill unused things
- Remove QuickStart story
- Remove
utils/mobx-react-utils
,utils/dsl
, andutils/tree
Contexture-react is themed at the component level -- that is, our search interfaces accept props for components like Button and Modal, and render whatever is given. The benefit of this approach is that it supports any degree of customization, from a small style adjustment to a major functionality overhaul, through the same relatively simple API.
Version 1.0 laid the groundwork for the theme API, but it was unpolished and had several disadvantages. Without external state, prop drilling was a major issue: theme props often had to be passed uselessly through multiple levels of hierarchy before arriving at whichever deeply-nested component needed them. And, because applying a theme to a search interface required explicitly passing in each theme component, actually using themes was tedious, inflexible, and heavy with boilerplate.
For version 2.0, we added a brand-new theme API that leverages React context to manage state, with several options for consuming theme props from it on a per-component basis -- no more need for prop drilling or re-exporting search components with defaultProps
.
In 1.0, many contexture-react search components relied on byzantine wrappers like injectTreeNode
and Component
, which were difficult to reason about for new contributors. They also often depended on deprecated APIs like mobx-react's Provider, which is obsolete in the age of React hooks.
All of our HOCs have been removed or rewritten in version 2.0, and our search components have been modernized to take advantage of React hooks for state management where it makes sense to do so (while keeping the good parts of mobx, of course).
We broke down injectTreeNode
into two small, composable HOCs: withNode
, which fetches a contexture node from tree
and path
props, and withLoader
, which wraps the component in a loader element that activates based on the node's status. Since they are often (but not always!) used together, we also added the contexturify
HOC, which composes those two together with the theme-consuming HOC withTheme
.
We also vastly improved our displayName handling throughout, which should lead to a much better debugging experience. 😊
-
Stop using any utils that aren't explicitly exposed.
We removed a number of internal utils which weren't technically publicly exposed, but we've seen usage where devs reach deep into the package for things like
injectTreeNode
-
Explicitly pass
tree
to everything that was previous wrapped in aProvider
withtree
on it.Passing
tree
via context withProvider
frommobx-react
is no longer supported. We might add similar functionality with native react context in a future release but do not have specific plans to do so yet. Usage by end users was dropping off and it adds a non-obvious level of indirection for only a few characters of savings. -
Replace all usage of
types
andtypeComponents
withmapNodeToProps
leveragingcomponentForType
.QueryBuilder
andFilterList
dropped support fortypes
andtypeComponents
to simplify the API surface and reduce the number of things needed to understand the library.mapNodeToProps
lets you completely replace the react component for a given node, so supporting both that and a type->component object map was just another thing to know about the API.The
mapNodeToProps
prop accepts a function of the form(node, fields) -> props
. ThecomponentForType
utility function accepts a TypeMap and returns a function of this form. Together, these two functions can work as a drop-in replacement for the oldtypeComponents
API, eg:<FilterList typeComponents={TypeMap} {...props} />
becomes:
<FilterList mapNodeToProps={componentForType(TypeMap)} />
If you were already using both
mapNodeToProps
andtypeComponents
(ortypes
), theF.mergeOverAll
futil function might prove useful, eg:<FilterList typeComponents={TypeMap} mapNodeToProps={myMappingFunction} />
becomes:
<FilterList mapNodeToProps={F.mergeOverAll([ componentForType(TypeMap), myMappingFunction, ])} />
-
Create nodes explicitly on every contexture-client tree instance that was relying on the QuickStart functionality.
Example types can no longer automatically add contexture nodes to the tree. This was found in the QuickStart story and was designed to reduce barriers to entry, but the abstraction was leaky and radically increased complexity of our implementation despite no known usages in the wild. More often than not, it was just a potential source of bugs for end users. We might add support for something similar in a future release.
-
Rename the
isOpen
prop toopen
in all GreyVest Modal and Popover components.In 2.0, the lens prop on the GreyVest Modal and Popover components has been changed from
isOpen
toopen
. The new API accepts theisOpen
andonClose
props for a boolean value and setter function, respectively, in addition to theopen
prop for a lens. This is a serious breaking change, but we feel that adding support for a more conventional value/setter API to our component library will be worth it in the long run.
- DateInput: new component
- WrappedDateInput: Forward props
- Cleanup dist directory before starting babel
- Removed 'Please Select...' from TagsJoinPicker
- Modal: apply style on correct tag
- ResultsTable: Ability to sort column by subfield
- Sort selected facet options on top
- TermsStatsTable: Fix AddAsFilter include/exclude
- Fix inputs issue with FireFox
- TermStatsTable: Add as filter would now add filter if the existing one is not in mode 'include'
- Number: Better handling zero edge case when significantDigits is true
- Facet: Better handling of the labels when there is no white space
- TagsInput: Better validation and input logic for new tags
- TermsStatsTable: sort descending by default
- Tweaks and fixes to QueryWizard & StepsAccordion
- Add support for type labels to type selection options in FilterList/QueryBuilder
- ResultTable: Pass additional props to Row
- New helper function
newNodeFromField
- Allow to pass-through props from TagsQuery to the actual input in TagsInput
- GreyVest: Standardize FieldPicker modal across FilterList & QueryBuilder
- Update max-height / max-width for modal component
- Add one line support for the TagsInput component
- Add QueryWizard
- Add FilterButtonList
- Add CheckButton component
- Add field options to title popover in FilterList
- Add type options to title popover in FilterList
- Remove accidentally added line :(
- QueryBuilder: Fix Indentable AddPreview preview showing wrong join type
- QueryBuilder: Remove ContextureClientBridge
- Rename all instances of
tree
tonode
in QueryBuilder props
- Fix Select placeholder rendering
- Simplify QueryBuilder and contexture-mobx with the latest contexture-client
- Add minWidth to TagsInput
- Fix error when adding a new field in QueryBuilder
- Shrink font sizes to match design
- TagsInput: Remove 100% height
- StripedLoader: Remove 100% height
- Storybook: Center TagsInput in the search bar in GreyVest
- New grey vest component: ErrorBlock
- Removed Jest Snapshot tests.
- Flex: Add extra props for easier styling
- Facet: apply options filter change on submit button click
- TagsInput: Accept style prop
- New grey vest search component: ToggleFiltersHeader
- TermsStatsTable: Add margin to size dropdown to align with table
- TagsInput: Better validation on the input
- StripedLoader: Fix regression in 1.48.6
- StripedLoader: Fix loading styles
- Modal: Export themed from greyVest
- TagsInput > Tag: Render remove icon conditionally
- Handle null better in the DateInput component
- Handle null children in SearchFilters and TreePauseButton
- Fix ResultsTable inline filtering without Provider
- Expose missing
schemaFieldProps
andcomponentForType
,fieldsFromSchema
utils
- TagsQuery: Add stories
- TagsInput: Center tags
- TagsInput: Simplify greyvest styling
- TagsInput: Adjust margins to look nice when tags wrap around
- StripedLoader: Style with "display: contents" so it doesn't mess up grid/flex layouts
Requires React 16.8
- GreyVest: Add SearchFilters
- GreyVest: Add AddableFilterList
- GreyVest: Add FiltersBox
- GreyVest: Add ToggleFiltersButton
- GreyVest: Add TreePauseButton
- GreyVest: Add SearchLayout
- GreyVest: Add Tabs (complete replacement of existing control)
- GreyVest: Renamed Tabs to TabList
- GreyVest -> TabList: Pass
from
as second param to onChange - FilterList: Fix bug with node actions not working without Provider
- GreyVest: Storybook refactoring (add decorator)
- Storybook: General Cleanup (no more headers on dev, etc)
- Added some basic prop-types support (will improve over time)
- GreyVest -> Button: Remove css outline
- Storybook: Organize categories
- Fix Checkbox dependency in CheckboxList
- DateInput: Always convert input to Date
- GreyVest: Add Box
- GreyVest: Add LinkButton
- GreyVest: Added PagedResultTable
- ResultTable: Make typeComponents optional
- FilterList: Make typeComponents optional
- FilterList: Fix bug with usage without Provider
- QueryBuilder: Add support for mapNodeToProps and MissingTypeComponent
- QueryBuilder: Allow typeComponents as an alias for types to match the FilterList API
- ResultCount: Remove Paging Info
- GreyVest: Styling improvements - center tabs, improve query builder styling to set things to a min height of 40px
- QueryBuilder -> FilterContents: Handle Nodes with types missing from typeOptions (by adding the current type to the drop down)
- QueryBuilder -> FilterContents: Show field if there is not label instead of a blank button
- GreyVest: Improve radio list styling (for advanced search)
- Update dependencies: babel 7, storybook 5, other dev dependencies
- Clean up storybook in general, streamlining storybook creation
- Add Story source addon
- Split grey vest into separate files
- Export styled TagsInput from greyVest theme
- Minor styling changes to search toolbar and search toolbar icons
- Round findBestRange result if significantDigits is set in Number component
- Number component supports setting significantDigits: 0
- Preserve geo filter dropdown state across renders.
- Do not return
location
fromutils/geo.js:loadHereOptions
- Number component allows rounding decimal expansions to n digits with
signficantDigits
prop
- Ability to override the Loading component in injectTreeNode
- Fix loading styles for all components
- TagsInput: edit tag when backspace is pressed and no input is present.
- Set overflow: auto on table's horizontal axis
- Fix Date example type component's select
- Geo filter address formatting house # fix.
- Geo filter address formatting adjustments.
- Implemented support for setting bucket size on term stats via term stats table component.
- Add "Applies to all keywords" text
- Hide scrollbars when the content fits
- Date example type: correctly initialize select component.
- FilterList: Ability to delete a filter
- Downgrade danger peer dependency
- FilterList: Ability to clear a filter
- Add danger as a peer dependency
- Text example type: set display name
- StripedLoader: do not forward loading prop to child component
- CSS changes in regards to the tags remove size "button".
- ResultTable needs to prevent the popover from closing if a modal is open.
- Hotfix: do not trigger a tag popover when removing a tag in a search input
- Fix an issue sorting nested FieldPicker contents
- GreyVest: shorten animation duration for the refresh icon
- implement otherMatches bool on results node, default to false
- Popovers now close when users click outside of them.
- New style "gv-link-button", to use a button in place of an
<a>
tag with no href
- FieldPicker options sortable, default alpha by label
- TagsInput: Preserve state between renders
- even horizontal padding on .gv-button
- New example type: mongoId; equivalent to a "text" example type
- GreyVest: Fix Refresh icon button pulse speed
- Pass along NumberInput to
Geo
example type
- Fix unique key React warning in ResultTable's HighlightedColumn tr
- Update default modal styling
- Fix
a
tag on Other Matches column to have a blank href
- Short other matches text and make it a proper link
- Change Other Matches column not to list every matching field to save space
- Fix Other Matches column rendering when there are no other matches
- Rename "Filter Options" in
ResultTable
to "Filter"
- Fix Date Picker styling in grey vest to match grey vest theme
- Add support for fields with dots in schema utils for defaultNodeProps lookup
- Add Layout -> Portal
- Layout -> Modal: Wrap in Portal
- FilterAdder: Add defaultNodeProps support
- GreyVest: Add defaultNodeProps example for
year
(setsmin
to 2005 when type isnumber
)
- ExampleTypes/Date: use
react-date-picker
with HTML5 opt-out
- GreyVest: remove
position: sticky
from search bar
- FilterList: Add refresh icon to filter label when there is a pending update in the associated tree. Add css class to customize filter label display when the filter has value(s).
- TermsStatsTable: Make the criteria column have a blank header caption by default
- TagsQuery: check existence of
node
before looking fornode.join
- NestedPicker: Whitelist props for a React DOM element when a custom Item is not being passed
- QueryBuilder: Fix weird spacing caused by flex instead of grid
- GreyVest: Fix input indentation
- ResultTable: Fix "double click" issue when inline filtering on a node that needs to be added
- ResultTable: Implemented a more robust algorithm to move columns.
- GreyVest: Included a hidden field 'imdbId' to test the new move columns algorithm.
- ResultTable: Lookup field labels in ResultTable other matches
- ResultTable: Dont highlight field names
- ResultTable: Fix other matches cursor
- GreyVest: Add inline title highlighting and additional writers highlighting
- Fixed inconsistent column header for the highlighted records on the ResultTable.
- Add Bool and Exists example types with GreyVest example
- ResultsTable: Inline filtering on paused nodes will now be un-paused instead of silently failing.
- GreyVest: Added a paused node example.
- Export RadioList from greyvest theme
- Add sorting capability to TermsStatsTable. Allow passing theme Button component to TermsStatsTable. Allow overriding the filter field and a value transformer for the filter field for TermsStatsTable.
- Fixes second occurence of baseline aligned checkbox labels
- ResultTable now exposes a Row property.
- improves checkbox and label styling in Facet example type
- TagsQuery: Add tag popover with support for changing join, per tag distance (0 vs 3 distance as "fuzzy" v "exact"), exact toggle, per tag disabling, and an apply distance to all tags link
- TagsText: Add Support
- TagsInput: Add tag popover support
- TagsInput: Add splitCommas prop to automatically split tags on comma (on paste and as you type)
- Number: More classNames added for styling hooks
- Layout: Added RadioList base component
- GreyVest: Added Custom RadioList (and used in Facet)
- GreyVest: Better styling on Number
- FilterList: Better error handling for missing types and labels
- Use
_.toArray
instead of.slice()
to protect against undefined values.
- Fix the DateRangePicker OnChange issue
- Allow passing ref to Input, Textarea, Select in greyVest
- ResultTable: Fix an issue with default node to props map
- TermsStatsTable: Fixed potential crash if any of the children were null (such as if a children was either a component or null, which is valid React and JSX).
- GreyVest: Fix TagsInput tag spacing
- FilterList: Add support for groups, allowing it to render anything QueryBuilder can!
- QueryBuilder: Fix support for TagsQuery (was checking for join instead of children)
- QueryBuilder: Make Rule hover same as background
- QueryBuilder: Change default background
- QueryBuilder: Pass along button component prop
- GreyVest: Theme FilterList groups properly
- GreyVest: Prefill QueryBuilder with gv button
- GreyVest: Remove extra default margins on inputs
- IMDB GreyVest Story: Add a toggle to switch between FilterList and QueryBuilder in real time
- Add z-index to
sticky
search-bar
- Factor out Select layout compnent
- GreyVest: Add danger and success button colors
- GreyVest: Add error text and error list
- GreyVest: Textarea and Selects
- GreyVest: CheckboxList and RadioList
- GreyVest: Add missing display names
- TermsStatsTable now accepts a custom Filter property, to optionally replace its entire filter.
- GeoFilter util now accepts parameter for its hereMaps configuration
- Added nested support to the field picker. To nest options, add a
path
prop on fields before passing along to an Adder (which is also used by ResultsTable) - Fixed Modal max-width to be fit-content instead of arbitrarily 500px
- Allow overriding the Picker in ModalFilterAdder
- Small performance improvement on CheckableResultsTable.
- Replaced all uses of
partial
withdefaultProps
from recompose.
- TagsQuery: Add custom placeholder support
- TagsInput: Add custom placeholder support
- Facet: Add formatCount support
- Facet: Make the select all label clickable
- ExpandableTable: Add expanded class to rows that are expanded
- ResultPager: Add a clamped +/-5 page button
- ResultPager: Add support for paging Icon overrides
- ResultPager: hide pager if only 1 page and support className override
- GreyVest: Increase spacing between facet options and left alight include toggle
- GreyVest: Give nested tables a grey background
- GreyVest ResultPager: hide disabled items, add margin between left/right page and +/-5 page, use chevron icons
- GreyVest: Update tab padding
- GreyVest: Facet spacing tweaks
- Made the checkable tables capable of selecting all the visible results.
- Remove the three dots from the results table.
- Added CheckableTermsStatsTable
- Added optional formatter to number type
- Improved the Table Layout for terms_stats to allow users to search the terms_stats results, use the results as filters to their searches and anything else through the use of custom parameters.
- GreyVest: Complete design overhaul, now looks a bit more "material" like
- GreyVest: Add IconButton
- GreyVest: Add Tabs
- GreyVest: Add SearchBar
- GreyVest: Add gv-grid
- ResultsTable: Make Icons Customizable
- FilterList: Make Icons Customizable
- FilterList: Add mapNodeToLabel
- Popover: Fewer default styles (allows it to look better in GreyVest)
- Add Blueberry theme (snapshot of < 1.21 Grey Vest)
- IE11 fixes. Our last build was using map wrong in one of the
occurrences (I messed up the parenthesis). Besides that, I found that
the compiled code out of
[...child.path]
(where child.path is an array) would break on IE11. This is due tochild.path
being an observable array.
- IE11 fixes. On IE11, React's children object doesn't have a
map
method.
- Moved showBestRange from tree to prop on Number component.
- Add table layout support for terms stats type.
- Support best range for Number component
- Added support for mapNodeToProps on ResultTable.
- Added a column that shows the additional matching fields on ResultsTable.
- GreyVest: Tag design styline
- GreyVest: Add Fonts to greyVest (including font awesome)
- TagsQuery: Add tag onBlur
- TagsQuery: Prevent creating empty tags
- TagsQuery: Call triggerUpdate on submit
- TagsInput: Introduce "submit" concept (pressing enter with no contents in tags input)
- TagsInput: Add a class to the tags input remove button
- ResultsTable: Remove default table row height of 100
- Popover: Tweak default styling
- Update futil and remove actout in favor of domLens
- Add the geo coding for the geo filter.
- On ResultTable, fixed the HeaderCellDefault to receive only activeFilter, style, and children.
- Add geo filter.
- Only use needed provider in FilterList component.
- Updated duti to it's latest version.
- Allow excluding results fields from visible ResultsTable columns using the fields property.
- Don't show sort options for column in
ResultTable
ifdisableSort
is set to true. - Hide column menu after clicking sort option.
- Fixed tests
- Set
displayName
for components so they're visible in React dev tools. - Don't show
+ Filter
for column iftypeDefault
is not set ordisableFilter
is set to true.
- Added the availability to access the record's _id as part of the results obtained from the getRecord function of ResultTable.
- Add support for collapsing and pausing facet components in FilterList.
- Add support to ResultTable for displaying cell values from nested objects when the cell value is not a simple object such a string/number.
- Made the Popover component work properly when the parent component can be horizontally scrolled and it's width exceeds the width of the page.
- Make grey vest checkbox use a real checkbox so the event api of onChange has parity with native
- Make facet options clickable anywhere on the row, instead of just on the label/checkbox
- Make ResultTable respect HeaderCell from field schema
- Internal refactoring of futil candidates / actout util
- Removed min-width from gv-table thead tr
- The Modal should have zIndex:1
- Add CheckableResultsTable
- Add support for
mapNodeToProps
onFilterList
- Add support for
displayBlank
onFacet
, which defaults to Not Specified - Make the main npm script be
dist
to support importing direct from contexture-react - Make inject tree node generate deterministic nodeKey if not provided
- Make ResultCount be inline-block and add inject tree node style support
- Made Grey Vest able to compose styles.
- Republish with build (CI published failed due to revoked token)
- Add support for column filtering and reordering to
ResultTable
- Add support for
loadingAware
flag on injectTreeNode - Make
ResultTable
loading indicator only apply to the body and not the headers - Make
ResultTable
HeaderCell configurable (includesactiveFilter
prop)
- Add support for adding columns to
ResultTable
(note that it doesn't work withinfer
ed fields) - Improve ResultTable field drop down styling
- Add Text example type
- Add LensInput to layout
- Export FilterAdder, ModalFilterAdder, FilterList components, and Layout components at the root for easier importing
- Support disabling pager items in grey vest
- Don't rerender from StripedLoader when changing styles
- Add basic IE11 grid support
- Add
display
support toFacet
example type to format options
- Fix import paths
- Downgrade mobx to 4 and move mobx deps to peer dependencies
- Add TagsQuery example component
- Add DateRangePicker
- Add Grey Vest theme
- Add Select All and Include/Exclude to Facet
- Add basic TagsInput and Grid to layout
- Add ModalFilterAdder
- Improve styling all around
- Support dots in field names in FilterList
- Add basic search example for schema explorer, with loadable schema overrides
- Small styling improvements on charts and facet and refactoring
- Fix result table schema auto detect bug when fields are arrays
- Improved storybook styling
- Added new storybook demo theme (on search button)
- Add StripedLoader
- Add
loading
to injectTreeNode to abstract updating vs markedForUpdate - Use StripedLoader in injectTreeNode automatically
- Add SearchButton Story (uses disableAutoUpdate from contexture-client)
- Fix TermsStats export
- Bump client dependency
- Add TermsStats example type and BarChart in Layout
- Fix includes bug in results table
- Add cardinality and show more to Facet
- Add basic Save/Load in new debug panel to explorer story
- Improved ES schema utils to account for mode map
- Add display names to example type components
- Add injectDefaults
- Fixed an immutable issue. See: #31
- Rearranged exports
example-types
are now exposed asexampleTypes/
and are broken into separate files instead ofcomponents.js
Popover
,Flex
, andSpacedList
moved fromexample-types
tolayout/
- utils like injectTreeNode, mobx-react-utils, etc are available under
utils
instead of root SearchRoot
is nowQueryBuilder
- Popover show lens prop renamed to isOpen
- Added
layout/Modal
- Rearranged storybook set up to split things into separate files with a folder hierarchy
- Added IMDB storybook section
- Added
layout/Awaiter
- Added
exampleTypes/ResultTable
- Added
FilterList
- Added
layout/TextHighlight
- Added
FilteredPicker
andModalPicker
to layout - Added
partial
to mobx-react-utils - Added schema util and
FilterAdder
InjectTreeNode
now supports dynamically adding node via group + key? + field + white listed props as a second param- Renamed
Range
example type toNumber
- Added contexture-mobx
- Added
ContextureProvider
- Added
ResultPager
to example types - Updated Mobx to v4 (along with related mobx-react)
- Added
exampleTypes/Date
- Better InjectTreeNode
- Fix facet bug
- Add real exapmle type components
- Fix snapshots
- Support contexture-client 2.0
- Add source maps
- Fixes after 0.1.6
- Made the facet component actually work.
- Made the query component actually work.
- Allowing specific paths to be used instead of the search root.
- Making the field picker work.
- Moved mobx and mobx-react to peer dependencies.
npm run build
onprepublish
.
- Making the src folder available to NPM.
- Fixed the remove function on the SearchRoot component
- Add
SearchRoot
multifield stories
- Initial commit of actual search GUI components
- Add README and CHANGELOG to Storybook
- Add storybook deploying to github pages
- Add CI configuration to project
- Initial commit