getConfigurationof URLSync widget (#2604) (3234b12)
cssoinstead of unminify css (#2419) (12f96b8), closes #2375
min === max(22a5614)
widgetParamsis at least an
refinement-listwidget (iteration2) (1c6c3a5)
currentRefinementon menu (fb7bc5e)
currentRefinementon numeric refinement list (91f7928)
rheostatas slider component (#2142) (910a0a0)
optimisationoption for React (95f940c)
__pageclasses added on the links in the pagination. It only ads them to the parent
li. Links instead now have a
Previously, the same CSS classes where added to both the
li) and the
link inside it. I've split them in
I've also made the various active/first/disabled/etc modifiers as
I've updated the tests, the CSS skeleton, the examples and the docs accordingly.
pippropTypes constraint (c77b7f4)
ais-price-ranges--rangeare now named
ais-price-ranges--itemand are wrapped in a
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
I've renamed the
range items to
item and wrapped them in a
I've also added classes to all elements we add (
etc). I've removed the empty
<div class="ais-footer">markup is only added when a
inputused by the search-box widget is now wrapped in a
<div class="ais-search-box">by default. This can be turned off with
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
input-groupmodifier has been renamed to
hideWhenNoResultsto be more explicit on what it is really doing.
Also internally renamed the
autoHide decorator to
singleRefineattribute (db73e38), closes #220
renderwhen render (7f03ae9)
scrollTooption (e6cd621), closes #73
searchBoxwidget to default theme (def831f)
indexSelectorstyling to default.css (1841ef1)
build: You should now include the
default.css file in your
page to get the default styling.
clean-css as minifier
itemto stay consistent with the other widgets
cssClasses.rootnow applies to the main root element (above header and footer) and no longer to the template wrapper. To style the template wrapper, use
ais-index-selector--itemto 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.
searchBoxwidget now expect a
span.ais-stats--timeinstead of a
smalltag in the stats widget.
cssClassfor the index-selector widget.
is_vversion to url (9f597a0), closes #70
cssClasson index selector (4e9324f)
Added to menu and refinementList:
This was done to allow more templating solutions like discussed in #101.