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 instanciating
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 instanciating (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