4.3.1 (2020-03-06)
This versions fixes a Cross-Site Scripting (XSS) vulnerability (#4344) when using the refinementList
widget when relying on its default item
template and routing. We recommend all users to upgrade to this version. We now escape the refinementList
item
template by default, which avoids HTML to be injected. If ever you were relying on this behavior, which we do not recommend, you can copy the previous item
template into your widget.
You were not vulnerable to this XSS if:
- You didn't use routing
- You didn't use use the
refinementList
widget (connectRefinementList
is not subject to this issue) - You used a custom
item
template for yourrefinementList
widget that does not rely on the triple-brace Hogan.js syntax (e.g.,{{{highlighted}}}
)
4.3.0 (2020-02-25)
- deps: update dependency algoliasearch-helper to v3.1.1 that fixes a case where refinements for a facet with a name that matches a substring of another facet could be cleared by mistake (algolia/algoliasearch-helper-js/pull/760) (#4335) (9bc66cf)
4.2.0 (2020-01-23)
- algoliasearch: add support for algoliasearch v4 (#4294) (73f1584)
- insights: add getInsightsAnonymousUserToken helper (#4279) (4653f95)
4.1.1 (2019-12-20)
- configureRelatedItems: use
facetFilters
to exclude `obje… (#4264) (9bc66cf) - index: fix warning for widgets sharing connectors (#4260) (ec97b4a)
- insights: export Insights helper in the ESM build (#4261) (20649af)
- insights: move 'insightsClient not provided error' to wrapper level (#4254) (15d38dd)
4.1.0 (2019-12-10)
The 4.0.1 release contained experimental TypeScript definitions in the ESM build by accident. We rolled this back in 4.1.0 because types will first be released on an experimental tag: experimental-typescript
.
- core: display correct object types in messages (#4249) (fb2c3c9)
- insights: detect clicks on children of
[data-insights]
HTML elements (#4197) (9cac5a3) - insights: display docs URL when missing (#4231) (9df1e7f)
- widgets: override connectors'
$$type
(#4227) (50f4af3)
- middleware: introduce
EXPERIMENTAL_use
to plug middleware into InstantSearch (#4224) (9d1f7be) - router: plug router as a middleware (#4224) (9d1f7be)
- insights: detect window.aa when available on global scope and a function (#4191) (d6df5af)
- typescript: add declaration files (experimental) (#4220) (ebacfe5)
- widgets: introduce Related Items widgets as experimental (
EXPERIMENTAL_configureRelatedItems
andEXPERIMENTAL_connectConfigureRelatedItems
) (#4233) (f811f4e)
4.0.1 (2019-11-28)
- widget name in documentation link for index (#4172) (fe7e588)
- helper: rely on stable version of algoliasearch-helper (#4200) (ff11731)
- infiniteHits: correct widget options types (#4222) (bb1b327)
- queryHook: restore behaviour of queryHook (#4202) (7bf96cb), closes /github.com/algolia/instantsearch.js/commit/c073a9acb51fff3c15278fcd563e47fec55c8365#diff-530222e0c4597f2110dc6ba173a306b0L98
4.0.0 (2019-10-23)
This release is focused on two main features: Federated search, and bundle size reduction.
Federated search, is the feature where you search through multiple types of content with the same experience, but with separate result lists. In the past we have also called this feature "multi-index search". This feature helps you make more efficient UIs with multiple result lists, autocomplete, nested interfaces and query suggestions. You can read more about the new index widget in the documentation.
The second main feature is bundle size reduction. This is a bottom-up process where we started by removing Lodash from our bundle. While the library has many useful features, it was a major part of our compiled code. We have also updated to Preact X, the latest version of Preact internally. This allows us to use more modern (p)react features in the future, which have a more efficient bundling pattern.
You can read more details on our choices by following the original posts about the beta releases.
Even though all this internally were major refactors, this should not have a big impact on how you are using InstantSearch. For the few things which did change, a migration guide can be found in the documentation. Don't hesitate to reach out if anything is unclear from that guide, so we can fix it for everyone.
Note, if you are using the places.js InstantSearch widget, it is not compatible with InstantSearch v4. However, we took this opportunity to make it a real part of InstantSearch.js, and is now accessible as a widget of InstantSearch. You can use it with a placesReference
.
- configure: merge with the previous parameters (#4085) (a215d0c)
- configure: update lifecycle state (#3994) (3d8d967)
- connectInfiniteHits: fix page state when adding or removing widgets (#4104) (1077340)
- connectInfiniteHits: fix state when navigating or adding/removing widgets (#4123) (9cbd24a)
- createURL: support multi-index (#4082) (179a6e5)
- defer: recover from error (#3933) (f22b9e2)
- helper: expose .lastResults to .helper (#4170) (236eb7b)
- history: avoid empty query string (#4130) (18fee7c)
- hits: update lifecycle state (#3977) (6e55ba6)
- hitsPerPage: avoid sync default value (#4086) (3f8b958)
- hitsPerPage: update lifecycle state (#3978) (d21d620)
- index: ensure that we always use the index set by widgets (#4125) (952dc70), closes /github.com/algolia/algoliasearch-helper-js/blob/5a0352aa233c5ea932df6b054a16989c8d302404/src/algoliasearch.helper.js#L124
- index: prevent render without results (#3932) (1b9b5f4)
- index: subscribe to state change only after init for uiState (#4003) (9490ca9)
- index: support custom UI params in UI state warning (#4165) (80d32fc)
- index: warn for inconsistent UI state in development mode (#4140) (7e277dc)
- infiniteHits: update lifecycle state (#3983) (4b8bee5)
- instantsearch: return instance in widgets methods (#4143) (77ffb93)
- InstantSearch: cancel scheduled operations (#3930) (3aafbad)
- InstantSearch: fix initialUIState when refinements are already present in the route (#4103) (079db57)
- InstantSearch: remove useless walk/duplicate request (#4127) (70163a8)
- menu: apply & remove refinement (#4027) (85de2cf)
- menu: prevent error on stale search (#3934) (5f9e138)
- numericMenu: take array into account for empty state (#4084) (2c05a01)
- pagination: update lifecycle state (#3979) (2b08344)
- pagination: update no refinement behavior (#4124) (8d222ad)
- range: clear widget state on empty refinements (#4157) (23cd112)
- ratingMenu: update lifecycle state (#3987) (ffadf64)
- RefinementList: remove root css class on sublists (#4117) (ceddd42), closes /github.com/algolia/instantsearch.js/blob/v2/src/decorators/headerFooter.js#L22
- searchBox: update lifecycle state (#3981) (0ea4950)
- sortBy: ensure a return value for getWidgetSearchParameters (#4126) (569d573)
- sortBy: read initial index name from parent index (#4079) (fe23c55)
- display warnings only in development (#4150) (44f69a0)
- remove useless types (#3958) (ddebf53)
- stories: hide Places (#4152) (7ff843f)
- toggleRefinement: update lifecycle state (#3993) (f1beff6)
- voiceSearch: update lifecycle state (#3982) (798e3c1)
- warnings: remove v3 warnings (#4134) (7eb6810)
- autocomplete: leverage scoped results (#3975) (8f05968)
- autocomplete: participate in routing (#4029) (a9ca0c5)
- autocomplete: provide indexId (#4142) (b641e23)
- clearRefinements: support multiple indices (#4036) (3611b11)
- connectAutocomplete: add default value on getConfiguration (#3836) (724b83f)
- connectAutocomplete: clear the state on dispose (#3815) (8ae87d8)
- connectHierarchicalMenu: update getWidgetSearchParameters (#4053) (c99f822)
- connectHits: clear the state on dispose (#3816) (c4de730)
- connectHits: implement getWidgetSearchParameters (#4001) (c77cf66)
- connectHitsPerPage: clear the state on dispose (#3818) (d7a5c89)
- connectInfiniteHits: add default value on getConfiguration (#3837) (8c65249)
- connectInfiniteHits: clear the state on dispose (#3819) (60ce151)
- connectMenu: update getWidgetSearchParameters (#4054) (7d001e7)
- connectNumericMenu: update state lifecycle (#4013) (2620c90)
- connectPagination: add default value on getConfiguration (#3838) (aa4602c)
- connectPagination: clear the state on dispose (#3821) (5b8ef49)
- connectPagination: update getWidgetSearchParameters (#4004) (eed7e77)
- connectRange: default
precision
to 0 (#3953) (632e06b) - connectRatingMenu: update getWidgetSearchParameters (#4008) (d3c96bf)
- connectRefinementList: update getWidgetSearchParameters (#4010) (ddc8fc4)
- connectSearchBox: clear the state on dispose (#3822) (940522c)
- connectSearchBox: mount with a default query (#3840) (c3a7d69)
- connectSearchBox: update getWidgetSearchParameters (#4002) (5c6fcd8)
- connectVoiceSearch: add default value on getConfiguration (#3841) (fb70363)
- connectVoiceSearch: clear the state on dispose (#3823) (705b3e6)
- connectVoiceSearch: update getWidgetSearchParameters (#4055) (b8c669f)
- core: deprecate addWidget & removeWidget (#4131) (e5dafef)
- currentRefinements: support multiple indices (#4012) (e997728)
- defer: implement cancellable callback (#3916) (43a0bf8)
- federated: keep a consistent state in the RefinementList life cycle (#3976) (31d0fd6)
- hitsPerPage: support new routing system (#4038) (02502cb), closes #4069
- index: accept indexId (#4070) (b74f8e3)
- index: add mergeSearchParameters function (#3917) (c0fe7bb)
- index: add widget (dbbda0f), closes #3892 #3893 #3914
- index: compute local uiState (#3997) (997c0f4)
- index: merge
ruleContexts
search parameter (#3944) (e94752d) - index: provide scoped results to render hook (#3964) (37c6aad)
- index: replicate searchFunction hack (#4078) (1d2a816), closes /github.com/algolia/instantsearch.js/blob/509513c0feafaad522f6f18d87a441559f4aa050/src/lib/RoutingManager.ts#L113-L130
- index: reset page of child indexes (#3962) (131b1ce)
- index: resolve parent SearchParameters (#3937) (2611da5)
- index: use uiState driven SearchParameters (#4059) (b12bb9f)
- infiniteHits: support new routing system (#4040) (49315cf)
- instantsearch: add onStateChange method (#4080) (9f68da5)
- InstantSearch: switch to DerivedHelper only (#3885) (d6fc317)
- places: add Places widget (#4167) (1d754d1)
- drop support of searchParameters for initialUiState (#4081) (571efeb)
- range: support new routing system (#4039) (8cba05a)
- routing: add a "single index" compatibility mode (#4087) (842eb0f)
- RoutingManager: update state on route update (#4100) (88f2615)
- toggleRefinement: support new routing system (#4037) (6a9d99f)
- types: DerivedHelper (#3887) (0f38b4a)
- types: rename RenderOptions -> RendererOptions (#3867) (05c6f72)
- utils: implement defer (#3882) (8af470e)
- voice: add additional query parameters (#3738) (c555255)
- drop suppot for onHistoryChange (#3941) (697f609)
- introduce initialUiState option (#4074) (de00707)
- update UiState definition (#4075) (9e7d3d8)
- widgets: add
$$type
to widgets definition (#3960) (344d1b7)
3.7.0 (2019-10-08)
- clearRefinements: reset page to 0 (#3936) (7378a0a)
- connectSortBy: never update the initial index (#4015) (bc0f9e2)
- deps: update dependency instantsearch.js to v3.5.4 (#3929) (eff84c5)
- deps: update dependency instantsearch.js to v3.6.0 (#4021) (7719bba)
- enhanceConfiguration: deduplicate the hierarchicalFacets (#3966) (baf8a35)
- examples: fix IE11 compatibility for e-commerce demo (#4049) (dc6f350)
- examples: fix missing polyfill in e-commerce demo (#4076) (4bf3ab3)
- hierarchicalFacets: prevent different rootPath on same attribute (#3965) (5ee79fa)
- instantsearch: warn deprecated usage of
searchParameters
(#4151) (18e1c36) - menuSelect: unmount component (#3911) (f6debce)
- rangeInput: unmount component (#3910) (f6c29e8)
- refinementList: fix showMore button to work after search (#3082) (23e46b6)
- pass noop as default value to unmountFn at connectors (#3955) (7c38744)
3.6.0 (2019-07-30)
- clearRefinements: reset page to 0 (#3936) (7378a0a)
- pass noop as default value to unmountFn at connectors (#3955) (7c38744)
- enhanceConfiguration: deduplicate the hierarchicalFacets (#3966) (baf8a35)
- hierarchicalFacets: prevent different rootPath on same attribute (#3965) (5ee79fa)
- menuSelect: unmount component (#3911) (f6debce)
- rangeInput: unmount component (#3910) (f6c29e8)
- refinementList: fix showMore button to work after search (#3082) (23e46b6)
3.5.4 (2019-07-01)
- connectSortBy: do not throw with wrong indexes (#3824) (2a84ee2)
- deps: update dependency instantsearch.js to v3.5.3 (#3877) (463f3bb)
- escape: make sure that __escaped does not get removed (#3830) (fbafd22)
- getRefinements: check for facet before accessing its data (#3842) (aadc769)
- panel: return value from dispose (#3895) (bceb78f)
- voiceSearch: remove event listeners on stop (#3845) (688e36a)
3.5.3 (2019-05-28)
- voiceSearch: let the connector handle the default value of searchAsYouSpeak when it's not given (#3817) (9d3e91b)
- getTag: use object version of toString (#3820) (a7348ea)
- types: fix cssClasses of voiceSearch (#3783) (f016326)
3.5.1 (2019-05-20)
- types: improve types for voiceSearch (#3778) (ed2d61a)
- types: update UiState type (#3777) (36e3a3d)
- voiceSearch: remove event listeners on dispose (#3779) (0e988cc)
- hitsPerPage: improve warning for missing state value (#3707) (93d8432)
- numericMenu: prevent refinement reset on checked radio click (#3749) (e4a6e75)
- rangeSlider: round the slider pit value (#3758) (6edee3e), closes #2904
- types: improve UiState types (#3763) (e8ea57b)
- voice: import correct noop (#3766) (6a80422)
3.4.0 (2019-04-17)
- storybook: fix Hierarchical menu separator in Breadcrumb story (#3695) (b3bf8ac)
- tools: use commonjs in bump-package-version.js (#3699) (6a6dbe1)
- types: fix wrong typing in getWidgetState (#3693) (b3c2154)
- types: remove unused Without type (#3694) (656d000)
- infiniteHits: add previous button (#3675) (2e6137b)
- Insights: Insights inside Instantsearch (#3598) (387f41f)
3.3.0 (2019-04-11)
- connectQueryRules: improve tracked refinement type (#3648) (e16ad57)
- currentRefinements: don't rely on
_objectSpread
(#3672) (cd64bcf) - queryRuleCustomData: add default template (#3650) (83e9eaa)
- QueryRuleCustomData: pass data as object to templates (#3647) (b8f8b4e)
- queryRules: fix types and stories (#3670) (ba6e2e6)
- routing: apply windowTitle on first load (#3669) (d553502), closes #3667
- routing: support parsing URLs with up to 100 refinements (#3671) (6ddcfb6)
- RoutingManager: avoid stale uiState (#3630) (e1588aa)
- types: improve InstantSearch types (#3651) (db9b91e)
- ua: Update the User-Agent to use the new format (#3616) (ab84c57)
- infiniteHits: add previous button (#3645) (2c9e38d)
- queryRules: add connectQueryRules connector (#3597) (924cd99), closes #3599 #3600
- queryRules: add context features to Query Rules (#3617) (922879e), closes #3602
- feat(infiniteHits): add previous button (214c0fc)
3.2.1 (2019-03-18)
- connectToggleRefinement: keep user provided, but falsy values (#3526) (958a151)
- instantsearch: update usage errors (#3543) (a2a800b)
- panel: append panel body as a child element (#3561) (3de59a3)
- poweredBy: remove TypeScript extension in import (#3530) (99ecc0b), closes #3528
- release: update doctoc script (e07c654)
- searchbox: unmount component on dispose (#3563) (c3f0435)
- searchBox: add reusable SearchBox component (#3489) (c073a9a)
3.2.0 (2019-03-14)
- instantsearch: update usage errors (#3543) (a2a800b)
- searchBox: add reusable SearchBox component (#3489) (c073a9a)
3.1.1 (2019-02-14)
- connectToggleRefinement: keep user provided, but falsy values (#3526) (958a151)
- poweredBy: remove TypeScript extension in import (#3530) (99ecc0b), closes #3528
- release: update doctoc script (e07c654)
3.1.0 (2019-02-13)
- connectCurrentRefinements: add a root label (#3515) (b8f774f)
- Update error messages (#3516)
- InstantSearch: remove event listeners on dispose (#3420)
- InstantSearch: set helper to
null
on dispose (#3415) - utils: warn only in development (#3367)
3.0.0 (2018-12-20)
Check the migration guide.
2.10.4 (2018-10-30)
2.10.3 (2018-10-29)
- deps: unpin production dependencies (257ecb7)
- InstantSearch: avoid useless search on addWidgets (#3178) (961626d)
- numericselector: default value can be undefined (#3139) (39d22f5)
2.10.2 (2018-09-10)
- searchbox: Add missing color to searchbox input field (#3086) (62b852a), closes #3075
- Stats: let the widget render on all values (#3070) (cd8f17e), closes #3056
2.10.1 (2018-08-17)
2.10.0 (2018-08-08)
2.9.0 (2018-07-18)
2.8.1 (2018-07-03)
- connectHitsPerPage: default value should not break the API (#3006) (6635304), closes #2732
- connectRefinementList: throw error with usage (#2962) (f60222d)
- sourcemap: provide good url (#3011) (9632ade)
- warning: make sure suggested import is possible (#3014) (eb27152)
2.8.0 (2018-05-30)
- connectors: add connectAutocomplete (#2841) (4bec81e), closes /github.com/algolia/instantsearch.js/pull/2841#discussion_r188383882 #2313
- search-client: Add support for Universal Search Clients (#2894) (5df3c74), closes #2905
2.7.6 (2018-05-29)
- connectConfigure: ensure we do not extend
SearchParameters
(#2945) (fdb4a7a) - infinite-hits: fix #2543 (#2948) (bbf9f8f)
2.7.5 (2018-05-28)
- clear-all: apply excludeAttribute correctly with clearsQuery (#2935) (e782ab8)
- connectInfiniteHits: fix #2928 (#2939) (0293a31)
2.7.4 (2018-05-03)
2.7.3 (2018-04-26)
2.7.2 (2018-04-18)
- routing: should apply stateMapping when doing initial write (#2892) (7f62e6dc)
- ie: do not rely on Object.assign (#2885) (88497e56)
2.7.1 (2018-04-11)
2.7.0 (2018-04-09)
- pagination padding (#2866) (e8c58cc)
- geosearch: avoid reset map when it already moved (#2870) (f171b8a)
- removeWidget: check for widgets.length on next tick (#2831) (7e639d6)
- connetConfigure: add a connector to create a connector widget (8fdf752)
- routing: provide a mechanism to synchronize the search (#2829) (75b2ca3), closes #2849 #2849
- size: add sideEffects false to package.json (#2861) (f5d1ab1), closes #2859
2.6.3 (2018-03-30)
2.6.2 (2018-03-29)
- connectGeoSearch: correctly dispose the connector (#2845) (a4eafd2)
- GeoSearch: correctly unmount the widget (#2846) (f31ef3c)
2.6.1 (2018-03-28)
- connectBreadcrumb: allow unmounting (#2815) (c6c353a)
- connectBreadcrumb: update typo in property type items (#2782) (79ebd66)
- docgen: pass the relatedTypes to the struct mixin in connectors layout (#2780) (f7f8b05)
- GeoSearch: update typo in property type cssClasses (#2781) (419c2ab)
- main: correctly import EventEmitter (#2814) (8fa3649), closes #2730
2.6.0 (2018-03-06)
- GeoSearch: add apiKey for Google Maps (#2773) (6c1846f)
- GeoSearch: override button style (#2772) (4d69b50)
- configure: add the Configure widget (#2698) (94daabc)
- add GeoSearch widget & connector (#2743) (7fa17ff)
2.5.2 (2018-02-26)
- Template: harden Symbol checks (#2749) (fab66bc)
- yarnrc: use empty string for save-prefix (#2739) (979e0cd)
2.5.1 (2018-02-13)
2.5.0 (2018-02-06)
2.4.1 (2018-01-04)
2.4.0 (2018-01-02)
- pagination: disable buttons if not results (#2643) (9017b72), closes #2014
- theme: fix height of pagination (#2641) (b3185e5)
- core: add a reload method on the InstantSearch component (#2637) (e73ff13)
- core: add an error event to monitor error from Algolia (#2642) (71c2d68), closes #1585
- core: rename
reload
torefresh
(#2645) (9b8ac65) - wrapWithHits: enable async init (#2635) (08a8747)
2.3.3 (2017-12-11)
2.3.2 (2017-12-06)
2.3.1 (2017-12-04)
- connectors: check facet is refined before removing it. hierarchicalMenu / menu (67ae035)
- poweredBy: minify slightly and make into correct URL (#2615) (2b7d747), closes #2613
2.3.0 (2017-11-30)
- InstantSearch.dispose: dont call
getConfiguration
of URLSync widget (#2604) (3234b12) - connectors: prefer wrappers over bind (#2575) (f8e0e00)
- connectHierarchicalMenu: do not return if facet not set (#2521) (26e99fb)
- core: provide information about stalled search to widgets (#2569) (d104be1)
- core: InstantSearch hot remove/add widgets (#2384) (cfc1710)
- refinementList: add escapeFacetHits parameter (#2507) (9b1b7ee)
- breadcrumb: Add the breadcrumb widget (#2451) (11d78f0), closes #2299
- connectRange: round the range based on precision (#2498) (d4df45d)
- rangeInput: add rangeInput widget (#2440) (7916d16)
2.2.5 (2017-11-20)
2.2.4 (2017-11-13)
2.2.3 (2017-11-07)
- connectRefinementList: add label to searched items (#2553) (ec810fa)
- refinementList: fix facet exhaustivity check (#2554) (0f1bf08), closes #2552
- theme: searchbar should have normal size input (#2545) (50d99f0)
2.2.2 (2017-10-30)
- connectRefinementList: set default value for limit (#2517) (32918c9)
- MenuSelect: switch from react to preact-compat (#2513) (06aa626)
- range-slider: add option
collapsible
(#2502) (e78399d), closes #2501 - url-sync: make URLSync consistent even if search is tampered (392927e), closes #2523
2.2.1 (2017-10-16)
- connectRangeSlider: only clear the refinement on the current attribute (#2459) (7cebf58)
- menuSelect: select in userCssClasses (#2455) (0eb3dc8)
- menuSelect: use preact instead of React (#2460) (35ccae8)
- test: correctly reset the wired dependency (#2461) (1f7f4ed)
2.2.0 (2017-10-03)
- build: minify css with
csso
instead of unminify css (#2419) (12f96b8), closes #2375 - clear-all: display the query when clearsQuery is true (#2414) (6921895)
- range-slider: Fix slider boundaries (#2408) (bea43db), closes #2386
- selector: root classname is applied twice (#2423) (44dca11), closes #2396 #2397
- webpack.dev: sourcemaps in dev (#2422) (ba6ca0a)
2.2.0-beta.1 (2017-09-18)
- analytics: Push pagination (#2337) (94ce086)
- hitsPerPageSelector: default hits per page setting (4efd43e)
- hitsPerPageSelector: default hits per page setting (355f080)
2.1.6 (2017-09-26)
- deps: update dependency documentation to v^5.0.0 (#2355) (489647a)
- searchbox: use initial input value if provided in the dom (#2342) (180902a), closes #2289
2.1.5 (2017-09-25)
- deps: update dependency algolia-frontend-components to v^0.0.33 (#2341) (16994d8)
- price-ranges: update call to refine (#2377) (34915d7)
- slider: Fix range slider pips and value 0 (#2350) (fa0dc09), closes #2343
2.1.4 (2017-09-14)
- release-script: Add the generation of changelog for the release (#2333) (9a2f70b)
- slider: edge case when min > max (#2336) (8830ab0)
- slider: Fix range slider dev env (#2320) (e78de70)
- slider: use algolia fork of rheostat (#2335) (9eae009)
2.1.3 (2017-09-05)
- Pagination: add
autohideContainerHOC
to (#2296) (545f076) - sffv: no error when not providing noResults and no results (#2310) (cc02b71), closes #2087
2.1.2 (2017-08-24)
2.1.1 (2017-08-23)
2.1.0 (2017-08-21)
2.0.2 (2017-07-24)
- doc: Cosmetic change (48bb128)
- search-box: fix magnifier and reset customization (4adfade)
- theme: enforce box-sizing: border-box (e26e50d)
- url-sync: remove is_v from url (f19a1d5), closes #2233
2.0.1 (2017-07-12)
2.0.0 (2017-07-01)
- argos-ci: blur the active element (66d0551)
- connectNumericRefinementList: reset page on refine (22ec08d)
- doc.build: watch & rebuild
.pug
(16d8542) - doc.build/autoprefixer: update mtime for onlyChanged plugin (3b83e58)
- escapeHits: dont apply configuration if not requested (c89f99d)
- searchFunction: make search function provide a better API (8fc0831)
2.0.0-beta.5 (2017-06-01)
- Slider: dont call
refine()
when it's disabled (f1eabc9)
2.0.0-beta.4 (2017-05-24)
- misc: IE 11 support (072edfe)
- misc: IE11 support without using transpiler (324f062)
- show-more: should hide button when show more is not available (#2161) (fbca3e6), closes #2160
- Slider: handle edge case where
min === max
(22a5614) - Slider: restore
slider--handle-lower
&&slider--handle-upper
(64d7ad2)
2.0.0-beta.2 (2017-05-17)
- autoHideContainer: dont prevent render with
shouldComponentUpdate
(8c4b13f) - clearsQuery: not applied when only the query was not empty (e7976ad)
- connectors: ensure
widgetParams
is at least an{}
(0c0e98f) - connectRefinementList: currentRefinements: return an array instead of first item (a53223a), closes #2102
- dev:docs: dont watch
/docgen/rootFiles
(ab1a7f5) - doc: add doc for isFirstRendering (cea6739)
- docs: dont filter out
p.type.type
(881659a) - documentation.js: Support for record types (219ecd9)
- documentationjs: add support litteral string types in type format (2a08e7d)
- documentationjs: deeper related types (6e3121e)
- documentationjs: find related type in TypeApplication (e0487ee)
- documentationjs: fix 2+ depth structs (4c8b7ec)
- documentationjs: fixed default value parameter (b62cbc7)
- documentationjs: records display with , (8a968f2)
- documentationjs: Updgrade to RC + fixes (e9f0361)
- infinite-hits: Remove hitsPerPage option (#2128) (c13e377)
- live-example: adapt regex for matching connectors (774254c)
- pagination: fix zealous find/replace (e269d87)
- price-ranges: fix test (fd65cb3)
- price-ranges: New API uses ranges (a5a6916)
- refinementList: reimplement show more on refinement list (72655ab)
- refinementList: sffv fix thanks @julienpa (30e0e9a)
- sffv: Fix exhaustive facets (0cadcc3)
- sortby: Consistent across widget / connectors + migration (8e366cc)
- widgets/price-ranges: wrong compute of
templateProps
(be5e063)
- connectHierarchicalMenu: remove
currentRefinement
(3912aaf) - connectHits: typo
widgetOptions
->widgetParams
(4420231) - connector: Add hierarchical menu connector (f727949)
- connector: add infinite hits connector (cdf8675)
- connector: add instantsearchInstance to pagination render (4fa96dc)
- connector: add missing jsDoc descriptions (e26e8e2)
- connector: add range-slider (1a02798)
- connector: add tests for connectClearAll and connectHierarchicalMenu (0eb29ec)
- connector: Adds hits and menu connectors (77083b7)
- connector: Clear and CurrentRefinedValues (02f7d3e)
- connector: clearAll connector (iteration 2) (90aa02e)
- connector: clearAll jsDoc + eslint fixes (430a420)
- connector: complete jsdoc + pass instantsearch to view (e125931)
- connector: connectClearAll documentation (9b153aa)
- connector: connectClearAll iteration 2 (fix) (03653f1)
- connector: connectClearAll test (5409157)
- connector: connectCurrentRefinedValues (iteration 2) (68408de)
- connector: connectHierarchicalMenu (iteration 2) (589454c)
- connector: connectHierarchicalMenu jsDoc (e166090)
- connector: connectHits (iteration 2) (bca09af)
- connector: connectHitsPerPageSelector (iteration 2) (26bb273)
- connector: connectInfiniteHits (iteration 2) (410459c)
- connector: connectNumericRefinementList (iteration 2) (bfcf860)
- connector: connectNumericSelector (iteration 2) (1eda8a2)
- connector: connectNumericSelector jsDoc (760fcea)
- connector: connectRefinementList jsdoc + start document bool isFirstRendering (52d13de)
- connector: connectStats second iteration (82b1cb3)
- connector: connectToggle second iteration (73b0878)
- connector: fix createURL usage to generate correct urls (fdf59d7)
- connector: fix no param usage on custom infiniteHits (961348a)
- connector: fix parameter consistency in connectClearAll (9ddffd8)
- connector: Fix parameters for toggle connector (f96671c)
- connector: hits-per-page-selector connector refactoring (dd794e0)
- connector: jsDoc + check rendering function (86f9739)
- connector: jsDoc connectPagination (3b284de)
- connector: jsDoc for connectMenu (626d5f1)
- connector: jsDoc updates (c924043)
- connector: move clearAll as a rendering option (ce41cde)
- connector: Numeric selector (0dc42d2)
- connector: numericRefinementList connector (918d971)
- connector: pagination connector (7a876f3)
- connector: price ranges connector (d8bed96)
- connector: provide consistent interface for searchbox renderer (17d8301)
- connector: provide instantsearch instance at render (12a7935)
- connector: refactor search function (618dca2)
- connector: refinement list connector (c8fcf4e)
- connector: remove legacy implementation of toggle (04437b0)
- connector: remove non relevant instantsearch API from test (c5dce5c)
- connector: remove unused parameter to searchbox connector (e639f65)
- connector: searchbox connector (70f8e1f)
- connector: small internal refactoring for SFFV (cb5c1fa)
- connector: sort by selector connector (b9847cf)
- connector: star rating connector (9996b4d)
- connector: stats connector (680743b)
- connector: test connectHits (89c86a5)
- connector: test connectHitsPerPageSelector (9caab02)
- connector: test connectInfiniteHits (e67e75e)
- connector: test connectMenu (03c6f11)
- connector: test connectNumericRefinementList (2f26251)
- connector: test connectNumericSelector (182779b)
- connector: test connectPagination (6f125b7)
- connector: test connectPriceRanges (f5dfba7)
- connector: test connectRangeSlider (4f6c180)
- connector: test connectSearchBox (b4d7e1b)
- connector: test connectSortBySelector (e8825df)
- connector: test connectStarRating (0c16f15), closes #2002
- connector: test connectStats (c992288)
- connector: test connectToggle (441293d)
- connector: toggle connector (bf9a9c0)
- connector: update doc, move setValue to refine in SortBySelector (2486f36)
- connector: update jsDoc descriptions (f83022a)
- connectors:
refinement-list
widget (iteration2) (1c6c3a5) - connectors:
setValue()
->refine()
/currentValue
->currentRefinement
(ec7806c) - connectors:
sortBy
to['isRefined', 'count:desc']
(01219f1) - connectors: add
currentRefinement
onhierarchical-menu
(154cdb5) - connectors: connectPagination (iteration2) (8a615f6)
- connectors: connectPriceRanges (iteration2) (e34968e)
- connectors: connectRangeSlider (iteration2) (6073d94)
- connectors: connectSearchBox (iteration2) (3161c9b)
- connectors: connectSortBySelector (iteration 2) (dec2d31)
- connectors: connectStarRating (iteration2) (7ef7b6b)
- connectors: connectToggle, forward initial options to render (704a455)
- connectors: dissociate logic & view for
menu
widget (5a02c88) - connectors: expose connectors on
instantsearch
instance (ff799d0) - connectors: forward
widgetParams
torenderFn
(54222a3) - connectors: jsDoc connectHitsPerPageSelector (75243b0)
- connectors: provide
currentRefinement
on menu (fb7bc5e) - connectors: provide
currentRefinement
on numeric refinement list (91f7928) - connectors.numeric-selector:
currentValue
->currentRefinement
/setValue()
->refine()
(998faf1) - connectors.price-ranges: provides
currentRefiment
value (39af437) - connectors.refinement-list: provide
currentRefinement
torenderFn
(7e86be3) - connectors.star-rating: provide
currentRefinement
value (c08b3e4) - connectRefinementList: first good iteration (88fd6d5)
- doc: re-bootstrap doc based on instantsearch-android (e4e816e)
- docs: bootstrap v2 docs (0db6caf)
- docs: pages structure (fe89dcf)
- getting-started: add
.zip
boilerplate (7d3769c) - getting-started: add result example of guide (78d9017)
- live-example: add support of connectors (e4f3158)
- live-example: include jquery on connectors example pages (f32936f)
- main: export all the widgets at once (4bc2d21)
- numeric-refinement-list:
facetValues
->items
/toggleRefinement
->refine
(eb2c993) - pagination:
setPage()
->refine()
/currentPage
->currentRefinement
(f783fea) - range-slider: use
rheostat
as slider component (#2142) (910a0a0) - searchFunction: Update API, fix #1924 (c7beb1d), closes #1924
- sort-by-selector:
currentValue
->currentRefinement
(e94c8c7) - Template: remove support for react element (ca2ab44)
1.11.15 (2017-06-20)
- numeric-refinement-list: reset page on refine (ee55ccb)
1.11.14 (2017-06-19)
1.11.13 (2017-06-07)
1.11.12 (2017-05-30)
1.11.10 (2017-05-17)
1.11.9 (2017-05-17)
1.11.8 (2017-05-16)
- url-sync: set firstRender to be class attribute (22dbaeb)
1.11.7 (2017-04-24)
- sffv: add class for disabled state at the form level (#2122) (029fa5f)
- sffv: fixes typo (: was left) (26d2845)
1.11.6 (2017-04-20)
- CONTRIBUTING: remove section about beta releases (#2109) (5640131)
- sffv: disable sffv input when few facet values FIX #2111 (1e33c10), closes #2111
1.11.5 (2017-04-12)
- url-sync: sync url on search (#2108) (7f33ffb)
1.11.4 (2017-03-29)
- autoHideContainer: dont prevent render with
shouldComponentUpdate
(#2076) (b520400) - star-rating: make max value inclusive (f5fc41c), closes #2002
1.11.3 (2017-03-22)
1.11.2 (2017-02-28)
1.11.1 (2017-02-14)
1.11.0 (2017-02-12)
- analytics-widget: add a new parameter pushInitialSearch (#1963) (d777997)
- custom client: allows to provide a custom JS client instance (#1948) (cce4f2e)
- InfiniteHits: add new widget (2d77e4b)
1.10.5 (2017-02-06)
1.10.4 (2017-01-25)
1.10.3 (2016-12-26)
- sffv-searchbox: update classnames to avoid conflicts (#1781) (f53e8fd)
1.10.2 (2016-12-23)
- url: clear timeout on pop (41ad9af)
1.10.1 (2016-12-23)
- url: default param (7a18e1c)
- url: add a beta updateOnEveryKeystroke option (#1779) (63f73fe)
1.10.0 (2016-12-22)
- widget: Search for facet values - refinement list (#1753) (b9e20f3)
1.9.0 (2016-12-14)
- currentRefinedValues: unescape disjunctive facet refinement names (#1574) (9ab65c4), closes #1569
- transformData: default data is an object when not provided (#1570) (8eeeeba), closes #1538
- analytics: new analytics widget to easily plug search to any analytics service (09d8fda)
- retry strategy: new retry strategy (afdcc3c)
1.8.16 (2016-11-16)
1.8.15 (2016-11-16)
- priceRanges: avoid displaying solo ranges (#1544) (ff396f0), closes #1536
- priceRanges: use formatNumber in defaultTemplate (#1559) (557a501), closes #1230
- toggle: support negative numeric values for on/off (#1551) (e4d88e0), closes #1537
- transformData: always call transformData (#1555) (49bfeca), closes #1538
1.8.14 (2016-11-03)
1.8.13 (2016-10-21)
- searchbox: poweredBy Algolia logo weren't visible in firefox (39701f8)
1.8.12 (2016-10-19)
- numericRefinementList: classes on radio buttons (#1358) (#1432) (fec6495)
1.8.11 (2016-10-07)
- merge: merge only plain object from searchParameters (aab1c87)
1.8.10 (2016-10-07)
- lodash: set lodash back to 4.15.0, fixes build, unknown issue for now (ba4247e)
1.8.9 (2016-10-07)
1.8.8 (2016-09-14)
- numericSelector: do not change state on init (#1280) (cf27db3), closes #1253
- Slider: default precision to 2 (#1279) (552b9ea)
1.8.6 (2016-09-12)
1.8.5 (2016-09-06)
- deps: upgrade all deps 2016-09-05 (#1261) (408d597)
- rangeSlider: round pips numbers when step is integer (#1255) (b993033), closes #1254
1.8.4 (2016-08-29)
- bundle: switch back to React by default, create a preact build (#1228) (4845868)
1.8.3 (2016-08-29)
- numericSelector: if no currentValue found, use the first option (ef56dfa)
- poweredBy: fixed Algolia logo version (#1223) (aab3fc3), closes #1223 #1222
- Selector: render a controlled component (e9f6ff7)
1.8.2 (2016-08-25)
- lodash: use lodash v4, reduce build size (216d1e0)
1.8.1 (2016-08-24)
- searchBox: handle BFCache browsers (#1212) (7deb9c3)
- toggle: make autoHide check facetValue.count (#1213) (86872eb)
1.8.0 (2016-08-18)
- documentation: Change instantsearch.widgets.stats typo data.processingTimMS to data.processingTimeMS (034703e)
- documentation: Change responsiveNavigation.js & header.html to fix #1090 (bf3a808), closes #1090
- nouislider: fix the slider for nouislider 8.5.1 (af8f56b)
- clearAll: Add optional excludeAttributes to list protected filters (fe6d19c)
1.7.1 (2016-07-28)
- toggle: add backward compatibility for previous toggle implem (#1154) (a1973a0)
1.7.0 (2016-07-26)
1.6.4 (2016-07-12)
1.6.3 (2016-07-11)
1.6.2 (2016-07-11)
- paginationLink: it's aria-label not ariaLabel (#1125) (70a190c)
- pricesRange: fill the form according to the current refinement (#1126) (12ebde7), closes #1009
- rangeSlider: handles now support stacking (#1129) (ad394d3)
- rangeSlider: use stats min/max when only user min or max is provided (#1124) (4348463), closes #1004
- searchBox: force cursor position to be at the end of the query (#1123) (8a27769), closes #946
- searchBox: IE8, IE9 needs to listen for setQuery (97c166a)
- searchBox: update helper query on every keystroke (#1127) (997c0c2), closes #1015
- urlSync: urls should be safe by default (#1104) (db833c6), closes #982
1.6.1 (2016-06-20)
- meteorjs: lite build must point to the browser lite (#1097) (265ace3)
- toggle: read numerical facet results stats for toggle count (#1098) (1feb539), closes #1096
- website: footer wording (8355460)
1.6.0 (2016-06-13)
- hits: rename __position to hitIndex (d051a54)
- refinementList/header: rename count to refinedFacetCount (89ad602)
- header: Pass count of current refined filters in header (d9e8582), closes #1013 #1041
- hits: Add a
__position
attribute to data passed to items (43ce1c7), closes #903
1.5.2 (2016-06-10)
- lite: use lite algoliasearch build (js client) (219fa9f), closes #1024
- poweredBy: Let users define their own poweredBy template (f1a96d8)
1.5.1 (2016-05-17)
1.5.0 (2016-04-29)
- base href: always create absolute URLS in widgets (ae6dbf6), closes #970
- IE11: classList do not supports .add(class, class) (ab10347), closes #989
- lifecycle: save configuration done in widget.init (07d1fea)
- RefinementList: use attributeNameKey when calling createURL (253ec28)
- rootpath: remember rootpath option on 'back' button (01ecdaa)
- searchBox: do not trigger a search when input value is the same (81c2e80)
- urlSync: only start watching for changes at first render (4a672ae)
- urlSync: allow overriding replaceState(state)/pushState(state) (989856c)
1.4.5 (2016-04-18)
- showMore: hide "show less" when nothing to hide (5ac2bb6)
1.4.4 (2016-04-15)
- pagination: Disabled pagination link can no longer be clicked (88b567f), closes #974
- showMore: hide showMore when no more facet values to show (cc31b1a)
1.4.3 (2016-04-01)
- rangeSlider: step accepts a float value (6ecc925)
1.4.2 (2016-03-24)
- refinementList: Stop creating URL for hidden refinements. (2cdd17d)
1.4.1 (2016-03-22)
1.4.0 (2016-03-16)
- url: allow hierarchical facets in trackedParameters (36b4011)
1.3.3 (2016-03-07)
- headerFooter: make collapsible click handler work (add0d50)
- linters: Greatly improve the
npm run lint
task speed (1ba53b0)
1.3.2 (2016-03-07)
- Template: stop leaking
data="[object Object]"
attributes in production builds (7ec0431), closes #899
- validate-pr: Allow
docs()
commits to be merged in master (0abc689)
1.3.1 (2016-03-07)
- collapsible: stop duplicating collapsible styling (7362901)
- lodash: stop leaking lodash in the global scope (91f71dc), closes #900
1.3.0 (2016-03-04)
- browser support: make IE lte 10 work by fixing Object.getPrototypeOf (bbb264b)
- menu,refinementList: sort by count AND name to avoid reorders on refine (02fe7bf), closes #65
- priceRanges: pass the bound refine to the form (ce2b956)
- searchBox: handle external updates of the query (6a0af14), closes #803
- searchBox: stop setting the query twice (91270b2)
- searchBox: stop updating query at eachkeystroke with searchOnEnterKeyPressOnly (28dc4d2), closes #875
- Slider: do not render Slider when range.min === range.max (f20274e)
- Template: now render() when templateKey changes (8906224)
- toggle: pass isRefined to toggleRefinement (8ac494e)
- url-sync: always decode incoming query string (bea38e3), closes #848
- url-sync: handle href pages (e58aadc), closes #790
- collapsable widgets: add collapsable and collapsed option (c4df7c5)
- instantsearch: allow overriding the helper.search function (9a930e7)
- rangeSlider: allow passing min and max values (409295c), closes #858
- searchBox: allow to pass a queryHook (5786a64)
- Template: allow template functions to return a React element (748077d)
- Template: allow template functions to return a React element (0f9296d)
- autoHideContainer: stop re-creating React components (8c89862)
- formatting numbers: stop using a default locale, use the system one (b056554)
- nouislider: upgrade nouislider, shaves some more ms (fefbe65)
- React: use babel
optimisation
option for React (95f940c) - React, widgets: implement shouldComponentUpdate, reduce bind (5efaac1)
1.2.5 (2016-03-02)
1.2.4 (2016-02-29)
Upgraded the helper to 2.9.0 to support undocumented parameters from the API.
1.2.3 (2016-02-18)
1.2.2 (2016-02-03)
1.2.1 (2016-02-02)
- showmore: now showMore in doc and also show-more BEM (a020439)
1.2.0 (2016-02-02)
- all: typos (fa8ba09)
- currentRefinedValues: allow array of strings for cssClasses.* (55b3a3f)
- docs: fixed bad link to scss in custom themes section (823a859)
- getRefinements: a name should be a string (7efd1fd)
- getRefinements: hierarchical facets (fe0fc5d)
- index: Use module.exports instead of export on index (81e7eee)
- pagination: remove default value of maxPages. Fixes #761 (607fe9a), closes #761
- prepareTemplates: uses templates with keys that are not in defaults (c4bf8ec)
- rangeSlider: prevent slider from extending farther than the last pip (6e534f5)
- search-box: update value when state changes from the outside (4550f99)
- url-sync: adds indexName in the helper configuration (e50bafd)
- url-sync: Makes url sync more reliable (3157abc), closes #730 #729
- currentRefinedValues: new widget (6c926d0), closes #404
- hits: adds allItems template as an alternative to item (1f3f889)
- poweredBy: automatically add utm link to poweredBy (05d1425), closes #711
- priceRanges: add currency option (f41484a)
- refinementlist: lets configure showmore feature (3b8688a)
- Template: accepts any parameters and forwards them (5170f53)
1.1.3 (2016-01-12)
1.1.2 (2016-01-08)
1.1.1 (2016-01-07)
- clearRefinements: Added two utils methods (49564e1)
1.1.0 (2015-11-26)
- pagination: fix #668 edge case (d8f1196), closes #668
- priceRanges: Remove round from first range (bf82395)
- slider: hide the slider when stats.min=stats.max (42e4b64)
- starRating: Retrieve the correct count and use numericRefinement (f00ce38), closes #615
- hierarchical: expose rootPath and showParentLevel (6e9bb7c)
1.0.0 (2015-11-18)
0.14.9 (2015-11-18)
0.14.8 (2015-11-18)
0.14.7 (2015-11-18)
0.14.6 (2015-11-17)
0.14.5 (2015-11-17)
0.14.4 (2015-11-17)
- doc: Expand input on documentation page (6814a14)
0.14.3 (2015-11-17)
0.14.2 (2015-11-17)
- numericSelector: pass currentValue as the refined value, not the full obj (9286b4b)
- website: search icon (623f071)
0.14.1 (2015-11-16)
0.14.0 (2015-11-13)
- hierarchicalMenu: handle limit option (968cf58), closes #585 #235
- numeric-selector: makes init comply with the new API (068e8d3)
- core: sends a custom User Agent (2561154)
- lifecycle: makes init API consistent with the rest (e7ed81f)
- all widgets using "facetName" are now using "attributeName"
0.13.0 (2015-11-12)
- clearAll: New widget (9e61a14)
0.12.3 (2015-11-12)
0.12.2 (2015-11-12)
- layout: missing div (did we lost that fix?) (9a515e4)
0.12.1 (2015-11-12)
- counts: missing formatNumber calls (65e5ba0), closes #560
- doc: ensure selector is not conflicting (6528f2c), closes #505
- docs: improved label/input hover debug (58573db), closes #503
- examples/airbnb: Use default theme from CDN (f379c0a), closes #522
- examples/youtube: use the default theme (cf9a4b6)
- rangeSlider: fixed tooltip CSS & outdated default theme. (c4be2ef)
0.12.0 (2015-11-10)
- pagination: Fix double BEM classes on elements (2ede317), closes #500
- price-ranges: fix usage + add test (89601d7)
- range-slider: check usage + display (fixes #395) (301643a), closes #395
- rangeSlider: error when no result (70e8554)
- theme: Revert default spacing into pagination (d755fd5)
- pagination: Removes all
__disabled
,__first
,__last
,__next
,__previous
,__active
and__page
classes added on the links in the pagination. It only ads them to the parentli
. Links instead now have a.ais-pagination--link
class
Previously, the same CSS classes where added to both the item
(li
) and the
link inside it. I've split them in --item
and --link
.
I've also made the various active/first/disabled/etc modifiers as
actual __modifier
classes.
I've updated the tests, the CSS skeleton, the examples and the docs accordingly.
0.11.1 (2015-11-10)
0.11.0 (2015-11-06)
- bem: Make scss mixins actually follow BEM (fcfb408)
- doc: bolder font for the navigation (64f6d56)
- InstantSearch: throw error when init and render are not defined. Fixes #499 (2830cd3), closes #499
- live-doc: adds a start at a responsive display (c83967e)
- live-doc: adds navigation menu for smaller screens (a6bb71e)
- live-doc: fixes flow for texts (3855071)
- live-doc: Momentum scroll for iPhone (60a36ff)
- live-doc: uses only h4 and fixes style of h4 (mobile) (0fdd2d0)
- middle-click: Allow middle click on links (a7601c0)
- range-slider: Use lodash find instead of Array.prototype.find (056153c)
- searchBox: handling pasting event with contextual menu. (a172458), closes #467
- website: defered doc scripts (0c1324f)
- website: doc layout responsive (a4dc894)
- website: fixed space overlay color animation (200b8a7)
- website: Fixes & responsive stuff for doc (7a8f920)
- website: footer markup (95364a1)
- website: home.js lint (b70e06e)
- website: icon-theme didn't like svgo (to fix) (38d84af)
- website: image alt (30cca29)
- website: jsdelivr for every scripts (06591d4)
- website: Nav Icon + logo (c1f419c)
- website: only load what's needed in bootstrap (4843474)
- website: removed animation debug (01ac079)
- website: space bg fadeIn (5e09844)
- website: unclosed content block (d42dc3e)
- hierarchicalMenu: Adding indentation with default theme (34885d2)
- hierarchicalMenu: Hierarchical menu levels 1 and 2 now have a margin-left added in the default theme.
0.10.0 (2015-11-06)
- api: rename hideContainerWhenNoResults to autoHideContainer (3f64bef), closes #407
- doc: ensure the documentation content doesn't overflow (1e28a4e), closes #444
- hitsPerPageSelector: Be more tolerant in options (e14a344)
- numeric widgets: synchronizes rounded value between widgets (b314160)
- numeric-refinement: Replace Array.find with lodash find/includes (b3e815c)
- price-ranges: makes it uses same operator as the slider (ad6f5c2)
- range-slider: fixes bound definition (e15c9b7)
- selector: makes component as uncontrolled component (1dda12a)
- slider: fixed
pip
propTypes constraint (c77b7f4) - website: fix images path (a3f62eb)
- searchBox: ability to be non-instant (b3ef871), closes #458
- toggle: Allow custom on/off values (9b6c2bf), closes #409
- hitsPerPageSelector: Use the correct lodash function (be9aea7)
- api: use autoHideContainer instead of hideContainerWhenNoResults
0.9.0 (2015-11-04)
- numericRefinementList: create numericRefinementList widget using refinementList component (a29e9c7)
0.8.2 (2015-11-04)
- doc: All wigdets in docs are not anymore linked together #fix #446 (4361320), closes #446
- hitsPerPageSelector: Issue when state did not have a
hitsPerPage
(dc9371c)
0.8.1 (2015-11-04)
0.8.0 (2015-11-03)
- cssClasses: Fixed duplication of classNames (e193f45), closes #388
- doc: add doctype were missing (86a18aa)
- doc: new color scheme (deccc17)
- doc: only show a scrollbar when needed (f2d955b)
- hierarchical: setPage 0 when toggling (a976539), closes #371
- jsdoc: use babel-node (453dc21)
- live-doc: generates missing ul (b43e6e2)
- live-doc: move scrollbars, removes useless ones (548ae5f)
- live-doc: moves octocat link to top. Removes stackOverflow (8ff6a79)
- live-doc: Moves version in the main content (27731c3)
- live-reload: integrates the links into the menu flow (c118051)
- numerical widgets: s/facetName/attributeName (f209f5d), closes #431
- refinementList: ensure the key reflects the underlying state (b048f0b), closes #398
- examples: try examples instead of themes (bedffce)
- headerFooter: Only add markup if a template is defined (7a2d22d), closes #370
- priceRanges: Add BEM classes and tests (ad58d7a), closes #387
- numerical widgets: the priceRanges and rangeSlider widgets are now using
attributeName
instead offacetName
. - priceRanges:
ais-price-ranges--range
are now namedais-price-ranges--item
and are wrapped in aais-price-ranges--list
.
I've moved the bottom form into it's own PriceRangesForm component, along with its own tests. I've fixed a minor typo where the component was internally named PriceRange (without the final s).
I factorize some logic form the render in individual methods and
manage to individually test them. This was not an easy task. I had to
mock the default render
(so it does nothing) before instantiating
the component. Then, I was able to call each inner method
individually. This requires to stub prototype methods in beforeEach,
then restore them in afterEach. I've added a few helper methods, this
can surely be simplified again but this gives nice granularity in
testing.
I've renamed the range
items to item
and wrapped them in a list
.
I've also added classes to all elements we add (label
, separator
,
etc). I've removed the empty span
s.
- headerFooter: The
<div class="ais-header">
and<div class="ais-footer">
markup is only added when atemplates.{header,footer}
is passed.
0.7.0 (2015-10-28)
- searchBox: Add
wrapInput
option (b327dbc) - urls: ability to create an URL from a set of params (9ca8369), closes #372
- urls: the instantsearch.createURL method is now taking a simple JS object and not a SearchParameter instance anymore.
- searchBox: The
input
used by the search-box widget is now wrapped in a<div class="ais-search-box">
by default. This can be turned off withwrapInput: false
.
This PR is a bit long, I had to do some minor refactoring to keep the
new code understandable. I simply split the large init
method into
calls to smaller methods.
There is some vanilla JS DOM manipulation involved to handle all the
possible cases: targeting an input
or a div
, adding or not the
poweredBy
, adding or not the wrapping div.
Note that there is no targetNode.insertAfter(newNode)
method, so
I had to resort to the old trick of parentNode.insertBefore(newNode, targetNode.nextSibling)
.
0.6.5 (2015-10-27)
0.6.4 (2015-10-27)
0.6.3 (2015-10-27)
0.6.2 (2015-10-27)
0.6.1 (2015-10-27)
0.6.0 (2015-10-27)
- generateRanges: avoid any infinite loop. Fix #351 (4965222), closes #351
- index-selector: Fix tests passing with incorrect parameters (8fc31b9)
- index-selector: Update usage and error (a7e4c10)
- priceRanges: fixed 'active' CSS class not using BEM (ec0d1b1)
- priceRanges: plug the URL computation. Fix #354 (fbf4022), closes #354
- template: transformData checks too strict (609f123), closes #347
- priceRanges: the
input-group
modifier has been renamed toform
0.5.1 (2015-10-22)
- autohide: Widget attribute is now named
hideContainerWhenNoResults
instead ofhideWhenNoResults
to be more explicit on what it is really doing.
Also internally renamed the autoHide
decorator to
autoHideContainer
0.5.0 (2015-10-22)
- example: Example searchbox (cdad6c7), closes #157
- hierarchicalFacets: use a real attribute name for the hierarchicalFacet name (0d2a455)
- hits: Fix warning about unique key in iterator (0c9468c)
- onClick: do not replace the browser's behavior on special clicks (8562d49), closes #278
- package.json: typo in repository (33cf196)
- pagination: do not generate the URL for disabled pages. (e5d78ab), closes #282
- poweredBy: Extract its hiding capabilities (f5fa9ee), closes #189
- rangeSlider: refinements cleanuo (16c132c), closes #147
- rangeSlider: restore wrongly removed state nesting (3ed3d39)
- React: require React in order for JSX to work in widgets (64d6011)
- react-nouislider: upgrade react-nouislider to avoid mutating props (1b7cd1d)
- refinementList: Remove
singleRefine
attribute (db73e38), closes #220 - refinementList: singleRefine is not dependant from operator (d29dff6)
- RefinementList: click on child should not click on parent (d476da2), closes #191
- Slider: cssClasses.body handled by headerFooter HOC (d8d20b2)
- stats: Move CSS classes definition to widget from component (99073cd)
- transformData: add an explicit error message (94c53d3), closes #212
- transformData: this test is not needed, already covered by Template (36e5b9c)
- validate-commit: Update the regexp (96b93ba)
- bem: Add BEM to the index-selector widget (564da51)
- bem: Add BEM-styling to the Stats widget (92cebeb)
- build: Add minified CSS theme version to build (77f0640)
- core/lifecycle-event: emits
render
when render (7f03ae9) - es7: Enable
es7.objectRestSpread
(fc2fbc4) - headerFooter: Add BEM classes to header and footer (9e9d438), closes #259
- hierarchical-menu: Add BEM classes (58ec191)
- hierarchical-menu: Add CSS classes dependent on the depth (1256ea8)
- hits: Add BEM styling to the
hits
widget (6681960) - menu: Add BEM classes (467f49e)
- pagination: add
scrollTo
option (e6cd621), closes #73 - priceRanges: new Amazon-style price ranges widget (e5fe344)
- priceRanges: polish priceRanges widget (0994e6f)
- refinement-list: Add BEM naming (b09b830)
- refinementlist: Move default templates to its own file (cb6fa16)
- refinementList: Limits improvement (ebcc8a9)
- searchbox: Make the searchBox BEMish (db8bd60)
- theme: Add
searchBox
widget to default theme (def831f) - theme: Add debug.css file (ff8f2dc), closes #249
- theme: Move
indexSelector
styling to default.css (1841ef1) - theme: Move all default css rules to
default.css
(57c8c65) - toggle: Adding BEM class naming (8730c97)
- urlSync: url generation for widget links. Fix #29 (23dd505), closes #29
- build: You should now include the
default.css
file in your page to get the default styling.
- Added
clean-css
as minifier - Updated build script
- Updated documentation about loading it from jsdeliver
npm shrinkwrap
madness
- hits: The hit template and transform data key is renamed
from
hit
toitem
to stay consistent with the other widgets - menu: The default template now has the count element inside the link, not outside.
- stats:
cssClasses.root
now applies to the main root element (above header and footer) and no longer to the template wrapper. To style the template wrapper, usecssClasses.body
- theme: Classes are now named
ais-index-selector
andais-index-selector--item
to stay consistent with other widgets.
Updated tests as well. Widget is responsible for adding default classes + user-defined ones. Then component simply add them to the markup.
- theme: "Powered by" styles are now
ais-search-box--powered-by
andais-search-box--powered-by-link
. - urlSync: urlSync is not a widget anymore. It's now an option of instantsearch(appID, apiKey, opts);. See the README.md for more info.
- searchbox: The
searchBox
widget now expect acssClasses.{input, poweredBy}
- bem: We now use a
span.ais-stats--time
instead of asmall
tag in the stats widget. - bem: We now use
cssClasses.select
andcssClasses.option
instead ofcssClass
for the index-selector widget.
0.4.1 (2015-10-05)
- allow passing only one key of transformData as an object (e0ce89f)
- search-box: Fix #137 autofocus must be configurable (51f01be), closes #137
- searchBox: do not update input's value if focused (0e85f0d), closes #163
- templatesConfig: helpers are now following Mustache spec (8f3502f)
- url-sync: handle both hash and query parameter fix #165 (8d84de6), closes #165
0.4.0 (2015-09-30)
- pagination: handle cases where maxPages is low (d3c9959), closes #100
- searchBox: allow searchBox to reuse an
<input>
(e820cc3) - searchBox: Use
hasAttribute
instead ofgetAttribute
(a122af9) - slider: allow handles to reach the real start and end of the slider (03ed3f5)
- slider: fix tap event throwing (d906d3e), closes #120
- Template: add default value for template (4291014)
- url-sync: make input not to lose focus (63488d3)
- rangeSlider: add headerFooter decorator (19090c3)
- searchBox: add headerFooter decorator to the Component (5974a88)
- templatesConfig: helpers and options transferred to Template (456d781), closes #99
- toggle: add headerFooter decorator (8a70c7d)
- url-sync: Add
is_v
version to url (9f597a0), closes #70 - hierarchicalWidget (1facd9d)
- S:
- toggle: removed template
-
- removed: inputClass
0.3.0 (2015-09-24)
- Allow not specifying
cssClass
on index selector (4e9324f) - More explicit error message when DOM selector is invalid (d36a2ad), closes #105
- Pass nbHits, hitsPerPage, nbPages and page to Stats widget (deefd23), closes #106
- hideIfEmpty: should be hideWhenNoResults (21877a0)
- Hits: handle the display when there is no result (544ff5c)
- menu: send an empty array values when no values (12cd7dc), closes #107
- pagination: missing showFirstLast attribute when instantiating (28fa0ae)
- SearchBox: Missing poweredBy in the not focused SearchBox (ef695ff)
- slider: hide slider if when no hits/matches (31e4a80), closes #107
- menu,refinementList: add header/item/footer templating solution (58275dc), closes #101
- searchBox: add poweredBy option, disabled by default (c9da165)
- stats: add query variable to the template (75f457d)
- transformData: add to every widget using the Template component (d080a03), closes #116
- transformData: refinementList + menu implementation (0a0e36e)
- urlSync: add urlSync widget (50fc4ce)
- widgets: auto hide some widgets (187b4bd)
- Removed from menu and refinementList:
- rootClass => cssClasses.root
- itemCLass => cssClasses.item
- template => templates.item
Added to menu and refinementList:
- cssClasses{root,list,item}
- templates{header,item,footer}
- widget (container) is automatically hidden by default
- hideWhenNoResults=true
This was done to allow more templating solutions like discussed in #101.
0.2.2 (2015-09-17)
0.2.1 (2015-09-17)
First release
0.0.0 (2015-09-17)
First commit