- fix pagination regression due to lodash change of api
SearchkitManageris more intelligent with reregistering url listenersRefinementListFilter,MenuFilter,NumericRefinementListFilterandRangeFilternow supportsfieldOptionsfornested/childfieldsRefinementListFilter,MenuFilterinject missing selected filtersRefinementListFilter,MenuFilterhave newbucketsTransformprop function to manipulate the elastic search buckets returned.- Bug fix to itemComponent, listComponent, *Component which allows context in stateless components
- MenuFilter fix to support booleans
- HierarchicalRefinementFilter disabled state fix
- update history dependency to
2.1.1which should be compatible with react-router 2.x - fix
DynamicRangeFilterrounding issues - Added
countFormattercount formatting support toRefinementListFilter,MenuFilter,NumericRefinementListFilter,HierarchicalMenuFilter,HierarchicalRefinementFilter,HitsStats - Added
rangeFormatterrange display support toRangeFilter,DynamicRangeFilter - Fix corner cases to BoolMustNot queries
SearchkitManagersearchOnLoadnow works without historySearchkitManager.addResultsListenerto register a callback when ever new results are recieved- Fix input filter styling
- Fix FacetFilter 'View All' link edge case
- fix
NoHitsstyling so it uses scss vars - fix
CheckboxFilterdisabled state - fix
SearchBox,InputFilterwhen searchOnChange=false disabled state - introduce
blurActiontoSearchBox,InputFilterblurAction="search" will search on blurblurAction="restore" will restore text to previous state on blur
- fix scss dep management, so vars.scss can be overriden
- add a dark theme example app in our test folder
- layout classnames
sk-action-bar__info+sk-action-bar__filterrenamed tosk-action-bar-row.- We strongly advise to use the new layout components.
- New
Layoutcomponents to be used instead of specific div + classname markupLayout,TopBar,LayoutBody,SideBar,LayoutResults,ActionBar,ActionBarRow- precursor to responsive layout where we make these layout components more intelligent.
- New
CheckboxFiltercomponent which does a on/off checkbox based on arbitrary query - New
InputFiltercomponent which is a free text filter, great if you need to filter on specific fields. - New
DynamicRangeFiltercomponent which will dynamically calculates the possible min/max based on your search results. - note this filter only supports range slider UI.
- New
TagFiltercomponents, Used to have clickable tags within your search results. SearchBoxenhancementsprefixQueryOptionsprop if you want to customize the elastic options for this queryqueryBuilderprop if you want to customize how the query is built, defaults toSimpleQueryStringSortSelectornow supports multiple sort fields (e.g. secondary sort), be sure to provide the mandatory keySearchkitManagerhas newreloadSearchmethod, used if you want to just reload the search even with the same query.
- SortingSelector handles for app reload.
- PageSizeSelector synchronises state correctly with url
- support Classic components using react.createClass properly in our prop overrides such as listComponent, itemComponent etc.
- Classname changes,in
RefinementListFilter,MenuFilter,NumericRefinementListFilter,Pagination,ViewSwitcherToggle,SortingSelector. We have updated the theme to be backwards compatible, but if you have custom css for those components, you may need to update them.
-
New UI Components
-
List components (
Toggle,Select,ItemList,CheckboxItemList,ItemHistogramList,Tabs,TagCloud)- supported by
RefinementListFilter,MenuFilter,Pagination,ViewSwitcherToggle,SortingSelector,NumericRefinementListFilter
- supported by
-
Panel, all left hand filter components use Panel which can be collapsable now.
-
RefinementListFilter, MenuFilter itemComponent changes
- If you have implemented a custom itemComponent, the toggleFilter action function has been renamed to onClick, be sure to rename so that clicking facets works as expected.
-
Added range input capability to
RangeFilter -
Added
PageSizeSelectorfor selecting how many results per page -
Hits+ViewSwitcherHitsnow supports listComponent to fully handled the list container. -
Paginationnow supports showText property,PaginationSelectis a select based implementation of Pagination -
SearchkitManagernow supportssearchOnLoadproperty which controls whether the initial search runs. -
SearchkitManagerhas asearchUrlPathproperty which controls the endpoint name (defaults to _search) -
exclude/include properties added to
RefinementListFilter,MenuFilter. These are just a pass through property to ElasticSearch's Terms Aggregation
Theming, 0.7 has major changes to component classnames and overall theming approach. Searchkit classes are now prefixed withsk-in order to avoid collisions, we also provide a set of variables which control various aspects of the theme. See theming section in docs.Hitscomponent requiresmod="sk-hits-grid"to retain grid styling- If you are using the cdn, we only ship
themes.cssand no longerstyles.css
<link href="//cdn.jsdelivr.net/searchkit/0.7.0/theme.css" rel="stylesheet"/>setQueryProcessoradded toSearchkitManagerwhich allows post processing of query before it is sent to elasticsearch. #131SortingSelectornow allows empty field, sort properties, useful if you need to add a None option or you want to rely on elasticsearch defaults for sort direction. #116ViewSwitcherHitsandViewSwitcherToggletoggle components which allows view switch functionality, e.g. grid or list view. Our theming updates also provide good defaults for grid + list views. #30ResetFilternow accepts reset options. This allows the which features(filter, query, pagination) influence the resetting disabled state, and what gets reset once the component has been clicked. #107
- Fix regression in RefinementListFilter not showing view more options
- Fix pagination bug where last page was not clickable.
- Fix documentation references for sourceFilter which lead to incomplete demo
Hitsnow supports thesourceFilterprop, we strongly advise you to use this as it will speed up your search and reduce a lot of wasted bandwidth #20
<Hits hitsPerPage={50} sourceFilter={["title", "poster", "imdbId"]} itemComponent={HitItem}/>SortingSelectorComponent now supportsdefaultOptionprop, and we have fixed issues in selection. #89RefinementListFilter,MenuFilter,HierarchicalMenuFilterall support sorting on intrinsic order fields via the theorderKeyandorderDirectionprops. #46NoHits,ResetFiltersnow support customization via high order react componentsHitStatsnow supports customization via higher order react component, note if you previously extended HitStats, you will need to change your code to use thecomponentprop- ScrollToTop improvements, now configurable on
Hitscomponent and will scroll to top on any result changes, this is via thescrollToprop. #48 - ErrorHandling, we now display a more meaningful message when an error in elastic or the http call occurs. The
NoHitscomponent displays this, and is also configurable via theerrorComponenthigher order component prop.#18 ResetFiltersnow ignores defaultQueries.#44
- missing theme css
- remove lib from git. If you install package not via npm, you need to
npm run-script buildin root of project. #37
- InitialView component #34
-
Avoid duplicate redundant searches #71
-
Discourage extending searchkit components, use
itemComponentandcomponentto override display with your own React components. The following components support this feature. See component docs for more information. #17- Hits
- InitialLoader
- Menu
- Refinement List
- Reset
- Selected Filters
-
Pagination supports showing links #40
-
Range Filter no filter applied if range min max equals component min and max #16
-
Configurable search throttle time via prop on searchbox component #55
- No throttling of search query #35
- componentWillUnmount not removing accessor #25
- NumericRefinementListFilter does not add
.is-disabledclass when has no options #50
- update to lodash 4.0 with individual function imports (smaller footprint)
- Breaking api change to internal query builder RangeQuery
- Increased unit test coverage to 99%
- Increase e2e test coverage
- New RangeFilter slider component
- More QueryDSL builds
- Improved tsting
- Correct Searchkit.version
- Better Documentation
- Complete rewrite of query builder
- More test coverage ( 92% coverage )
- More comprehensive support for translations
- Better Documentation
- New
NoHitsComponent
- No results blank state now handled by
NoHitscomponent, removed responsibility fromHitscomponent. Please useNoHitscomponent instead for this state.
Searchbox:prefixQueryFieldsusesqueryFieldsif not specified andsearchOnChangeprop is enabled
- Changed licence to Apache 2.0
- Better Documentation
- Searchbox uses replacestate as you type, pushstate on no change after 400ms
- Better Documentation
- Searchbox uses replacestate as you type, pushstate on no change after 400ms
- Initial public release