diff --git a/CHANGELOG.md b/CHANGELOG.md index f740ddfd5f..e63a6ecfa3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,40 @@ + +# [1.3.0](https://github.com/algolia/instantsearch.js/compare/v1.2.5...v1.3.0) (2016-03-04) + + +### Bug Fixes + +* **browser support:** make IE lte 10 work by fixing Object.getPrototypeOf ([bbb264b](https://github.com/algolia/instantsearch.js/commit/bbb264b)) +* **menu,refinementList:** sort by count AND name to avoid reorders on refine ([02fe7bf](https://github.com/algolia/instantsearch.js/commit/02fe7bf)), closes [#65](https://github.com/algolia/instantsearch.js/issues/65) +* **priceRanges:** pass the bound refine to the form ([ce2b956](https://github.com/algolia/instantsearch.js/commit/ce2b956)) +* **searchBox:** handle external updates of the query ([6a0af14](https://github.com/algolia/instantsearch.js/commit/6a0af14)), closes [#803](https://github.com/algolia/instantsearch.js/issues/803) +* **searchBox:** stop setting the query twice ([91270b2](https://github.com/algolia/instantsearch.js/commit/91270b2)) +* **searchBox:** stop updating query at eachkeystroke with searchOnEnterKeyPressOnly ([28dc4d2](https://github.com/algolia/instantsearch.js/commit/28dc4d2)), closes [#875](https://github.com/algolia/instantsearch.js/issues/875) +* **Slider:** do not render Slider when range.min === range.max ([f20274e](https://github.com/algolia/instantsearch.js/commit/f20274e)) +* **Template:** now render() when templateKey changes ([8906224](https://github.com/algolia/instantsearch.js/commit/8906224)) +* **toggle:** pass isRefined to toggleRefinement ([8ac494e](https://github.com/algolia/instantsearch.js/commit/8ac494e)) +* **url-sync:** always decode incoming query string ([bea38e3](https://github.com/algolia/instantsearch.js/commit/bea38e3)), closes [#848](https://github.com/algolia/instantsearch.js/issues/848) +* **url-sync:** handle href pages ([e58aadc](https://github.com/algolia/instantsearch.js/commit/e58aadc)), closes [#790](https://github.com/algolia/instantsearch.js/issues/790) + +### Features + +* **collapsable widgets:** add collapsable and collapsed option ([c4df7c5](https://github.com/algolia/instantsearch.js/commit/c4df7c5)) +* **instantsearch:** allow overriding the helper.search function ([9a930e7](https://github.com/algolia/instantsearch.js/commit/9a930e7)) +* **rangeSlider:** allow passing min and max values ([409295c](https://github.com/algolia/instantsearch.js/commit/409295c)), closes [#858](https://github.com/algolia/instantsearch.js/issues/858) +* **searchBox:** allow to pass a queryHook ([5786a64](https://github.com/algolia/instantsearch.js/commit/5786a64)) +* **Template:** allow template functions to return a React element ([748077d](https://github.com/algolia/instantsearch.js/commit/748077d)) +* **Template:** allow template functions to return a React element ([0f9296d](https://github.com/algolia/instantsearch.js/commit/0f9296d)) + +### Performance Improvements + +* **autoHideContainer:** stop re-creating React components ([8c89862](https://github.com/algolia/instantsearch.js/commit/8c89862)) +* **formatting numbers:** stop using a default locale, use the system one ([b056554](https://github.com/algolia/instantsearch.js/commit/b056554)) +* **nouislider:** upgrade nouislider, shaves some more ms ([fefbe65](https://github.com/algolia/instantsearch.js/commit/fefbe65)) +* **React:** use babel `optimisation` option for React ([95f940c](https://github.com/algolia/instantsearch.js/commit/95f940c)) +* **React, widgets:** implement shouldComponentUpdate, reduce bind ([5efaac1](https://github.com/algolia/instantsearch.js/commit/5efaac1)) + + + ## [1.2.5](https://github.com/algolia/instantsearch.js/compare/v1.2.4...v1.2.5) (2016-03-02) diff --git a/docs/_includes/widget-jsdoc/clearAll.md b/docs/_includes/widget-jsdoc/clearAll.md index bf687bdffa..4da79fdce3 100644 --- a/docs/_includes/widget-jsdoc/clearAll.md +++ b/docs/_includes/widget-jsdoc/clearAll.md @@ -12,5 +12,7 @@ | `options.cssClasses.body`Type: string | Array.<string> | CSS class to add to the body element | | `options.cssClasses.footer`Type: string | Array.<string> | CSS class to add to the footer element | | `options.cssClasses.link`Type: string | Array.<string> | CSS class to add to the link element | +| `options.collapsible`Default:false
Type: object | boolean
| Hide the widget body and footer when clicking on header | +| `options.collapsible.collapsed`Type: boolean | Initial collapsed state of a collapsible widget |

* Required

diff --git a/docs/_includes/widget-jsdoc/currentRefinedValues.md b/docs/_includes/widget-jsdoc/currentRefinedValues.md index 32a20f4c32..82f36d1272 100644 --- a/docs/_includes/widget-jsdoc/currentRefinedValues.md +++ b/docs/_includes/widget-jsdoc/currentRefinedValues.md @@ -25,5 +25,7 @@ | `options.cssClasses.link`Type: string | CSS classes added to the link element | | `options.cssClasses.count`Type: string | CSS classes added to the count element | | `options.cssClasses.footer`Type: string | CSS classes added to the footer element | +| `options.collapsible`Default:false
Type: object | boolean
| Hide the widget body and footer when clicking on header | +| `options.collapsible.collapsed`Type: boolean | Initial collapsed state of a collapsible widget |

* Required

diff --git a/docs/_includes/widget-jsdoc/hierarchicalMenu.md b/docs/_includes/widget-jsdoc/hierarchicalMenu.md index 6a55d17195..5195459fda 100644 --- a/docs/_includes/widget-jsdoc/hierarchicalMenu.md +++ b/docs/_includes/widget-jsdoc/hierarchicalMenu.md @@ -24,5 +24,7 @@ | `options.cssClasses.active`Type: string | Array.<string> | CSS class to add to each active element | | `options.cssClasses.link`Type: string | Array.<string> | CSS class to add to each link (when using the default template) | | `options.cssClasses.count`Type: string | Array.<string> | CSS class to add to each count element (when using the default template) | +| `options.collapsible`Default:false
Type: object | boolean
| Hide the widget body and footer when clicking on header | +| `options.collapsible.collapsed`Type: boolean | Initial collapsed state of a collapsible widget |

* Required

diff --git a/docs/_includes/widget-jsdoc/hits.md b/docs/_includes/widget-jsdoc/hits.md index ba31ef8c25..75c6825d6e 100644 --- a/docs/_includes/widget-jsdoc/hits.md +++ b/docs/_includes/widget-jsdoc/hits.md @@ -4,11 +4,11 @@ | `options.templates`Type: Object | Templates to use for the widget | | `options.templates.empty`Default:''
Type: string | function
| Template to use when there are no results. | | `options.templates.item`Default:''
Type: string | function
| Template to use for each result. This template will receive an object containing a single record. | -| `options.templates.allItems`Default:''
Type: string | function
| Template to use for each result. (can't be used with item template). This template will receive a complete SearchResults result object, this object contains the key hits that contains all the records retrieved. | +| `options.templates.allItems`Default:''
Type: string | function
| Template to use for the list of all results. (Can't be used with `item` template). This template will receive a complete SearchResults result object, this object contains the key hits that contains all the records retrieved. | | `options.transformData`Type: Object | Method to change the object passed to the templates | -| `options.transformData.empty`Default:identity
Type: function
| Method used to change the object passed to the empty template | -| `options.transformData.item`Default:identity
Type: function
| Method used to change the object passed to the item template | -| `options.transformData.allItems`Default:identity
Type: function
| Method used to change the object passed to the item template | +| `options.transformData.empty`Default:identity
Type: function
| Method used to change the object passed to the `empty` template | +| `options.transformData.item`Default:identity
Type: function
| Method used to change the object passed to the `item` template | +| `options.transformData.allItems`Default:identity
Type: function
| Method used to change the object passed to the `allItems` template | | `hitsPerPage`Default:20
Type: number
| The number of hits to display per page | | `options.cssClasses`Type: Object | CSS classes to add | | `options.cssClasses.root`Type: string | Array.<string> | CSS class to add to the wrapping element | diff --git a/docs/_includes/widget-jsdoc/instantsearch.md b/docs/_includes/widget-jsdoc/instantsearch.md index 20d55c1314..92aa58c5b4 100644 --- a/docs/_includes/widget-jsdoc/instantsearch.md +++ b/docs/_includes/widget-jsdoc/instantsearch.md @@ -9,5 +9,6 @@ | `options.urlSync.trackedParameters`Type: Array.<string> | Parameters that will be synchronized in the URL. By default, it will track the query, all the refinable attribute (facets and numeric filters), the index and the page. [Full documentation](https://community.algolia.com/algoliasearch-helper-js/docs/SearchParameters.html) | | `options.urlSync.useHash`Type: boolean | If set to true, the url will be hash based. Otherwise, it'll use the query parameters using the modern history API. | | `options.urlSync.threshold`Type: number | Time in ms after which a new state is created in the browser history. The default value is 700. | +| `options.searchFunction`Type: function | A hook that will be called each time a search needs to be done, with the helper as a parameter. It's your responsibility to call helper.search(). This option allows you to avoid doing searches at page load for example. |

* Required

diff --git a/docs/_includes/widget-jsdoc/menu.md b/docs/_includes/widget-jsdoc/menu.md index d9589b70f7..05febbf67a 100644 --- a/docs/_includes/widget-jsdoc/menu.md +++ b/docs/_includes/widget-jsdoc/menu.md @@ -2,7 +2,7 @@ | --- | --- | | `options.container`Type: string | DOMElement | CSS Selector or DOMElement to insert the widget | | `options.attributeName`Type: string | Name of the attribute for faceting | -| `options.sortBy`Default:['count:desc']
Type: Array.<string> | function
| How to sort refinements. Possible values: `count|isRefined|name:asc|desc` | +| `options.sortBy`Default:['count:desc', 'name:asc']
Type: Array.<string> | function
| How to sort refinements. Possible values: `count|isRefined|name:asc|desc` | | `options.limit`Default:10
Type: string
| How many facets values to retrieve | | `options.showMore`Default:false
Type: object | boolean
| Limit the number of results and display a showMore button | | `options.showMore.templates`Type: object | Templates to use for showMore | @@ -25,5 +25,7 @@ | `options.cssClasses.active`Type: string | Array.<string> | CSS class to add to each active element | | `options.cssClasses.link`Type: string | Array.<string> | CSS class to add to each link (when using the default template) | | `options.cssClasses.count`Type: string | Array.<string> | CSS class to add to each count element (when using the default template) | +| `options.collapsible`Default:false
Type: object | boolean
| Hide the widget body and footer when clicking on header | +| `options.collapsible.collapsed`Type: boolean | Initial collapsed state of a collapsible widget |

* Required

diff --git a/docs/_includes/widget-jsdoc/numericRefinementList.md b/docs/_includes/widget-jsdoc/numericRefinementList.md index 8a32ae8e1c..cd8b46aeac 100644 --- a/docs/_includes/widget-jsdoc/numericRefinementList.md +++ b/docs/_includes/widget-jsdoc/numericRefinementList.md @@ -19,5 +19,7 @@ | `options.cssClasses.item`Type: string | Array.<string> | CSS class to add to each item element | | `options.cssClasses.radio`Type: string | Array.<string> | CSS class to add to each radio element (when using the default template) | | `options.cssClasses.active`Type: string | Array.<string> | CSS class to add to each active element | +| `options.collapsible`Default:false
Type: object | boolean
| Hide the widget body and footer when clicking on header | +| `options.collapsible.collapsed`Type: boolean | Initial collapsed state of a collapsible widget |

* Required

diff --git a/docs/_includes/widget-jsdoc/priceRanges.md b/docs/_includes/widget-jsdoc/priceRanges.md index 5b3ba14cce..ba0e814859 100644 --- a/docs/_includes/widget-jsdoc/priceRanges.md +++ b/docs/_includes/widget-jsdoc/priceRanges.md @@ -24,5 +24,7 @@ | `options.cssClasses.separator`Type: string | Array.<string> | CSS class to add to the separator of the form | | `options.cssClasses.button`Type: string | Array.<string> | CSS class to add to the submit button of the form | | `options.cssClasses.footer`Type: string | Array.<string> | CSS class to add to the footer element | +| `options.collapsible`Default:false
Type: object | boolean
| Hide the widget body and footer when clicking on header | +| `options.collapsible.collapsed`Type: boolean | Initial collapsed state of a collapsible widget |

* Required

diff --git a/docs/_includes/widget-jsdoc/rangeSlider.md b/docs/_includes/widget-jsdoc/rangeSlider.md index cbb13cf049..da669c0f75 100644 --- a/docs/_includes/widget-jsdoc/rangeSlider.md +++ b/docs/_includes/widget-jsdoc/rangeSlider.md @@ -12,5 +12,9 @@ | `options.cssClasses.header`Type: string | Array.<string> | CSS class to add to the header element | | `options.cssClasses.body`Type: string | Array.<string> | CSS class to add to the body element | | `options.cssClasses.footer`Type: string | Array.<string> | CSS class to add to the footer element | +| `options.collapsible`Default:false
Type: object | boolean
| Hide the widget body and footer when clicking on header | +| `options.collapsible.collapsed`Type: boolean | Initial collapsed state of a collapsible widget | +| `options.min`Type: number | Minimal slider value, default to automatically computed from the result set | +| `options.max`Type: number | Maximal slider value, defaults to automatically computed from the result set |

* Required

diff --git a/docs/_includes/widget-jsdoc/refinementList.md b/docs/_includes/widget-jsdoc/refinementList.md index 2c1b22c37a..ab6e4860d9 100644 --- a/docs/_includes/widget-jsdoc/refinementList.md +++ b/docs/_includes/widget-jsdoc/refinementList.md @@ -3,7 +3,7 @@ | `options.container`Type: string | DOMElement | CSS Selector or DOMElement to insert the widget | | `options.attributeName`Type: string | Name of the attribute for faceting | | `options.operator`Default:'or'
Type: string
| How to apply refinements. Possible values: `or`, `and` | -| `options.sortBy`Default:['count:desc']
Type: Array.<string> | function
| How to sort refinements. Possible values: `count|isRefined|name:asc|desc` | +| `options.sortBy`Default:['count:desc', 'name:asc']
Type: Array.<string> | function
| How to sort refinements. Possible values: `count|isRefined|name:asc|desc` | | `options.limit`Default:10
Type: string
| How much facet values to get. When the show more feature is activated this is the minimun number of facets requested (the show more button is not in active state). | | `options.showMore`Default:false
Type: object | boolean
| Limit the number of results and display a showMore button | | `options.showMore.templates`Type: object | Templates to use for showMore | @@ -27,5 +27,7 @@ | `options.cssClasses.label`Type: string | Array.<string> | CSS class to add to each label element (when using the default template) | | `options.cssClasses.checkbox`Type: string | Array.<string> | CSS class to add to each checkbox element (when using the default template) | | `options.cssClasses.count`Type: string | Array.<string> | CSS class to add to each count element (when using the default template) | +| `options.collapsible`Default:false
Type: object | boolean
| Hide the widget body and footer when clicking on header | +| `options.collapsible.collapsed`Type: boolean | Initial collapsed state of a collapsible widget |

* Required

diff --git a/docs/_includes/widget-jsdoc/searchBox.md b/docs/_includes/widget-jsdoc/searchBox.md index 2946fa27f1..be2c5cf9fd 100644 --- a/docs/_includes/widget-jsdoc/searchBox.md +++ b/docs/_includes/widget-jsdoc/searchBox.md @@ -10,5 +10,6 @@ | `options.cssClasses.root`Type: string | Array.<string> | CSS class to add to the wrapping div (if `wrapInput` set to `true`) | | `options.cssClasses.input`Type: string | Array.<string> | CSS class to add to the input | | `options.cssClasses.poweredBy`Type: string | Array.<string> | CSS class to add to the poweredBy element | +| `queryHook`Type: function | A function that will be called everytime a new search would be done. You will get the query as first parameter and a search(query) function to call as the second parameter. This queryHook can be used to debounce the number of searches done from the searchBox. |

* Required

diff --git a/docs/_includes/widget-jsdoc/starRating.md b/docs/_includes/widget-jsdoc/starRating.md index a7dd4dd0c2..4334db856d 100644 --- a/docs/_includes/widget-jsdoc/starRating.md +++ b/docs/_includes/widget-jsdoc/starRating.md @@ -23,5 +23,7 @@ | `options.cssClasses.star`Type: string | Array.<string> | CSS class to add to each star element (when using the default template) | | `options.cssClasses.emptyStar`Type: string | Array.<string> | CSS class to add to each empty star element (when using the default template) | | `options.cssClasses.active`Type: string | Array.<string> | CSS class to add to each active element | +| `options.collapsible`Default:false
Type: object | boolean
| Hide the widget body and footer when clicking on header | +| `options.collapsible.collapsed`Type: boolean | Initial collapsed state of a collapsible widget |

* Required

diff --git a/docs/_includes/widget-jsdoc/toggle.md b/docs/_includes/widget-jsdoc/toggle.md index 9dc7f2a6aa..f23348f61d 100644 --- a/docs/_includes/widget-jsdoc/toggle.md +++ b/docs/_includes/widget-jsdoc/toggle.md @@ -23,5 +23,7 @@ | `options.cssClasses.label`Type: string | Array.<string> | CSS class to add to each label element (when using the default template) | | `options.cssClasses.checkbox`Type: string | Array.<string> | CSS class to add to each checkbox element (when using the default template) | | `options.cssClasses.count`Type: string | Array.<string> | CSS class to add to each count | +| `options.collapsible`Default:false
Type: object | boolean
| Hide the widget body and footer when clicking on header | +| `options.collapsible.collapsed`Type: boolean | Initial collapsed state of a collapsible widget |

* Required

diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index f6d410c56a..fefa0f892b 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "instantsearch.js", - "version": "1.2.5", + "version": "1.3.0", "npm-shrinkwrap-version": "200.4.0", "node-version": "v5.5.0", "dependencies": { diff --git a/package.json b/package.json index 67a663c20e..8f55f4c3ea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "instantsearch.js", - "version": "1.2.5", + "version": "1.3.0", "description": "instantsearch.js is a library of widgets to build high performance instant search experiences using Algolia", "main": "dist-es5-module/index.js", "author": "Algolia ", diff --git a/src/lib/version.js b/src/lib/version.js index 011377c263..eba598002d 100644 --- a/src/lib/version.js +++ b/src/lib/version.js @@ -1 +1 @@ -export default '1.2.5'; +export default '1.3.0';