instantsearch.js 4.37.1 → 4.37.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,13 +15,5 @@ export declare type HitsProps = {
15
15
  cssClasses: HitsComponentCSSClasses;
16
16
  templateProps: PreparedTemplateProps<HitsComponentTemplates>;
17
17
  };
18
- declare const Hits: {
19
- ({ results, hits, bindEvent, cssClasses, templateProps, }: HitsProps): h.JSX.Element;
20
- defaultProps: {
21
- results: {
22
- hits: never[];
23
- };
24
- hits: never[];
25
- };
26
- };
18
+ declare const Hits: ({ results, hits, bindEvent, cssClasses, templateProps, }: HitsProps) => h.JSX.Element;
27
19
  export default Hits;
@@ -48,10 +48,4 @@ var Hits = function Hits(_ref) {
48
48
  })));
49
49
  };
50
50
 
51
- Hits.defaultProps = {
52
- results: {
53
- hits: []
54
- },
55
- hits: []
56
- };
57
51
  export default Hits;
@@ -7,10 +7,10 @@ export declare type PaginationComponentTemplates = Required<PaginationTemplates>
7
7
  export declare type PaginationProps = {
8
8
  createURL(value: number): string;
9
9
  cssClasses: PaginationComponentCSSClasses;
10
- currentPage: number;
11
10
  templates: PaginationComponentTemplates;
12
- nbPages?: number;
13
- pages?: number[];
11
+ currentPage: number;
12
+ nbPages: number;
13
+ pages: number[];
14
14
  isFirstPage: boolean;
15
15
  isLastPage: boolean;
16
16
  setCurrentPage(value: number): void;
@@ -20,11 +20,4 @@ export declare type PaginationProps = {
20
20
  showNext?: boolean;
21
21
  };
22
22
  declare function Pagination(props: PaginationProps): h.JSX.Element;
23
- declare namespace Pagination {
24
- var defaultProps: {
25
- currentPage: number;
26
- nbPages: number;
27
- pages: never[];
28
- };
29
- }
30
23
  export default Pagination;
@@ -3,84 +3,105 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
3
3
  /** @jsx h */
4
4
  import { h } from 'preact';
5
5
  import cx from 'classnames';
6
- import PaginationLink from "./PaginationLink.js";
7
6
  import { isSpecialClick } from "../../lib/utils/index.js";
8
- var defaultProps = {
9
- currentPage: 0,
10
- nbPages: 0,
11
- pages: []
12
- };
13
7
 
14
8
  function Pagination(props) {
15
- var handleClick = function handleClick(pageNumber, event) {
16
- if (isSpecialClick(event)) {
17
- // do not alter the default browser behavior
18
- // if one special key is down
19
- return;
20
- }
9
+ function createClickHandler(pageNumber) {
10
+ return function (event) {
11
+ if (isSpecialClick(event)) {
12
+ // do not alter the default browser behavior
13
+ // if one special key is down
14
+ return;
15
+ }
21
16
 
22
- event.preventDefault();
23
- props.setCurrentPage(pageNumber);
24
- };
17
+ event.preventDefault();
18
+ props.setCurrentPage(pageNumber);
19
+ };
20
+ }
25
21
 
26
22
  return h("div", {
27
23
  className: cx(props.cssClasses.root, _defineProperty({}, props.cssClasses.noRefinementRoot, props.nbPages <= 1))
28
24
  }, h("ul", {
29
25
  className: props.cssClasses.list
30
26
  }, props.showFirst && h(PaginationLink, {
31
- key: "first",
32
- ariaLabel: 'First',
33
- additionalClassName: props.cssClasses.firstPageItem,
27
+ ariaLabel: "First",
28
+ className: props.cssClasses.firstPageItem,
34
29
  isDisabled: props.isFirstPage,
35
30
  label: props.templates.first,
36
31
  pageNumber: 0,
37
32
  createURL: props.createURL,
38
33
  cssClasses: props.cssClasses,
39
- handleClick: handleClick
34
+ createClickHandler: createClickHandler
40
35
  }), props.showPrevious && h(PaginationLink, {
41
- key: "previous",
42
- ariaLabel: 'Previous',
43
- additionalClassName: props.cssClasses.previousPageItem,
36
+ ariaLabel: "Previous",
37
+ className: props.cssClasses.previousPageItem,
44
38
  isDisabled: props.isFirstPage,
45
39
  label: props.templates.previous,
46
40
  pageNumber: props.currentPage - 1,
47
41
  createURL: props.createURL,
48
42
  cssClasses: props.cssClasses,
49
- handleClick: handleClick
43
+ createClickHandler: createClickHandler
50
44
  }), props.pages.map(function (pageNumber) {
51
45
  return h(PaginationLink, {
52
46
  key: pageNumber,
53
47
  ariaLabel: "".concat(pageNumber + 1),
54
- additionalClassName: props.cssClasses.pageItem,
48
+ className: props.cssClasses.pageItem,
55
49
  isSelected: pageNumber === props.currentPage,
56
50
  label: "".concat(pageNumber + 1),
57
51
  pageNumber: pageNumber,
58
52
  createURL: props.createURL,
59
53
  cssClasses: props.cssClasses,
60
- handleClick: handleClick
54
+ createClickHandler: createClickHandler
61
55
  });
62
56
  }), props.showNext && h(PaginationLink, {
63
- key: "next",
64
- ariaLabel: 'Next',
65
- additionalClassName: props.cssClasses.nextPageItem,
57
+ ariaLabel: "Next",
58
+ className: props.cssClasses.nextPageItem,
66
59
  isDisabled: props.isLastPage,
67
60
  label: props.templates.next,
68
61
  pageNumber: props.currentPage + 1,
69
62
  createURL: props.createURL,
70
63
  cssClasses: props.cssClasses,
71
- handleClick: handleClick
64
+ createClickHandler: createClickHandler
72
65
  }), props.showLast && h(PaginationLink, {
73
- key: "last",
74
- ariaLabel: 'Last',
75
- additionalClassName: props.cssClasses.lastPageItem,
66
+ ariaLabel: "Last",
67
+ className: props.cssClasses.lastPageItem,
76
68
  isDisabled: props.isLastPage,
77
69
  label: props.templates.last,
78
70
  pageNumber: props.nbPages - 1,
79
71
  createURL: props.createURL,
80
72
  cssClasses: props.cssClasses,
81
- handleClick: handleClick
73
+ createClickHandler: createClickHandler
82
74
  })));
83
75
  }
84
76
 
85
- Pagination.defaultProps = defaultProps;
77
+ function PaginationLink(_ref) {
78
+ var label = _ref.label,
79
+ ariaLabel = _ref.ariaLabel,
80
+ pageNumber = _ref.pageNumber,
81
+ className = _ref.className,
82
+ _ref$isDisabled = _ref.isDisabled,
83
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
84
+ _ref$isSelected = _ref.isSelected,
85
+ isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
86
+ cssClasses = _ref.cssClasses,
87
+ createURL = _ref.createURL,
88
+ createClickHandler = _ref.createClickHandler;
89
+ return h("li", {
90
+ className: cx(cssClasses.item, className, isDisabled && cssClasses.disabledItem, isSelected && cssClasses.selectedItem)
91
+ }, isDisabled ? h("span", {
92
+ className: cssClasses.link,
93
+ dangerouslySetInnerHTML: {
94
+ __html: label
95
+ }
96
+ }) : h("a", {
97
+ className: cssClasses.link,
98
+ "aria-label": ariaLabel,
99
+ href: createURL(pageNumber),
100
+ onClick: createClickHandler(pageNumber),
101
+ dangerouslySetInnerHTML: {
102
+ __html: label
103
+ }
104
+ }));
105
+ }
106
+
86
107
  export default Pagination;
@@ -10,32 +10,28 @@ var withUsage = createDocumentationMessageGenerator({
10
10
  connector: true
11
11
  });
12
12
 
13
+ var defaultQueryHook = function defaultQueryHook(query, hook) {
14
+ return hook(query);
15
+ };
13
16
  /**
14
17
  * **SearchBox** connector provides the logic to build a widget that will let the user search for a query.
15
18
  *
16
19
  * The connector provides to the rendering: `refine()` to set the query. The behaviour of this function
17
20
  * may be impacted by the `queryHook` widget parameter.
18
21
  */
22
+
23
+
19
24
  var connectSearchBox = function connectSearchBox(renderFn) {
20
25
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
21
26
  checkRendering(renderFn, withUsage());
22
27
  return function (widgetParams) {
23
28
  var _ref = widgetParams || {},
24
- queryHook = _ref.queryHook;
25
-
26
- function clear(helper) {
27
- return function () {
28
- helper.setQuery('').search();
29
- };
30
- }
29
+ _ref$queryHook = _ref.queryHook,
30
+ queryHook = _ref$queryHook === void 0 ? defaultQueryHook : _ref$queryHook;
31
31
 
32
32
  var _refine;
33
33
 
34
- var _clear = function _clear() {};
35
-
36
- function _cachedClear() {
37
- _clear();
38
- }
34
+ var _clear;
39
35
 
40
36
  return {
41
37
  $$type: 'ais.searchBox',
@@ -67,27 +63,21 @@ var connectSearchBox = function connectSearchBox(renderFn) {
67
63
  state = _ref3.state;
68
64
 
69
65
  if (!_refine) {
70
- var setQueryAndSearch = function setQueryAndSearch(query) {
71
- if (query !== state.query) {
72
- helper.setQuery(query).search();
73
- }
74
- };
75
-
76
66
  _refine = function _refine(query) {
77
- if (queryHook) {
78
- queryHook(query, setQueryAndSearch);
79
- return;
80
- }
67
+ queryHook(query, function (q) {
68
+ return helper.setQuery(q).search();
69
+ });
70
+ };
81
71
 
82
- setQueryAndSearch(query);
72
+ _clear = function _clear() {
73
+ helper.setQuery('').search();
83
74
  };
84
75
  }
85
76
 
86
- _clear = clear(helper);
87
77
  return {
88
78
  query: state.query || '',
89
79
  refine: _refine,
90
- clear: _cachedClear,
80
+ clear: _clear,
91
81
  widgetParams: widgetParams,
92
82
  isSearchStalled: searchMetadata.isSearchStalled
93
83
  };
@@ -3,13 +3,19 @@ declare type BuiltInSendEventForToggle = (eventType: string, isRefined: boolean,
3
3
  declare type CustomSendEventForToggle = (customPayload: any) => void;
4
4
  export declare type SendEventForToggle = BuiltInSendEventForToggle & CustomSendEventForToggle;
5
5
  export declare type ToggleRefinementValue = {
6
- /** whether this option is enabled */
6
+ /**
7
+ * Whether this option is enabled.
8
+ */
7
9
  isRefined: boolean;
8
- /** number of result if this option is enabled */
10
+ /**
11
+ * Number of result if this option is toggled.
12
+ */
9
13
  count: number | null;
10
14
  };
11
15
  export declare type ToggleRefinementConnectorParams = {
12
- /** Name of the attribute for faceting (eg. "free_shipping"). */
16
+ /**
17
+ * Name of the attribute for faceting (e.g., "free_shipping").
18
+ */
13
19
  attribute: string;
14
20
  /**
15
21
  * Value to filter on when toggled.
@@ -24,19 +30,42 @@ export declare type ToggleRefinementConnectorParams = {
24
30
  export declare type ToggleRefinementRenderState = {
25
31
  /** The current toggle value */
26
32
  value: {
33
+ /**
34
+ * The attribute name of this toggle.
35
+ */
27
36
  name: string;
37
+ /**
38
+ * Whether the current option is "on" (true) or "off" (false)
39
+ */
28
40
  isRefined: boolean;
41
+ /**
42
+ * Number of results if this option is toggled.
43
+ */
29
44
  count: number | null;
45
+ /**
46
+ * Information about the "on" toggle.
47
+ */
30
48
  onFacetValue: ToggleRefinementValue;
49
+ /**
50
+ * Information about the "off" toggle.
51
+ */
31
52
  offFacetValue: ToggleRefinementValue;
32
53
  };
33
- /** Creates an URL for the next state. */
54
+ /**
55
+ * Creates an URL for the next state.
56
+ */
34
57
  createURL: CreateURL<string>;
35
- /** send a "facet clicked" insights event */
58
+ /**
59
+ * Send a "Facet Clicked" Insights event.
60
+ */
36
61
  sendEvent: SendEventForToggle;
37
- /** Indicates if search state can be refined. */
62
+ /**
63
+ * Indicates if search state can be refined.
64
+ */
38
65
  canRefine: boolean;
39
- /** Updates to the next state by applying the toggle refinement. */
66
+ /**
67
+ * Updates to the next state by applying the toggle refinement.
68
+ */
40
69
  refine: (value?: {
41
70
  isRefined: boolean;
42
71
  }) => void;
@@ -1,2 +1,2 @@
1
- declare const _default: "4.37.1";
1
+ declare const _default: "4.37.2";
2
2
  export default _default;
package/es/lib/version.js CHANGED
@@ -1 +1 @@
1
- export default '4.37.1';
1
+ export default '4.37.2';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instantsearch.js",
3
- "version": "4.37.1",
3
+ "version": "4.37.2",
4
4
  "description": "InstantSearch.js is a JavaScript library for building performant and instant search experiences with Algolia.",
5
5
  "homepage": "https://www.algolia.com/doc/guides/building-search-ui/what-is-instantsearch/js/",
6
6
  "types": "es/index.d.ts",
@@ -140,7 +140,7 @@
140
140
  "rollup-plugin-uglify": "6.0.4",
141
141
  "scriptjs": "2.5.9",
142
142
  "semver": "6.3.0",
143
- "shelljs": "0.8.3",
143
+ "shelljs": "0.8.4",
144
144
  "shipjs": "0.21.0",
145
145
  "typescript": "4.3.5",
146
146
  "webpack": "4.41.5"
@@ -1,60 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _preact = require("preact");
9
-
10
- var _classnames = _interopRequireDefault(require("classnames"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- /** @jsx h */
15
- function PaginationLink(_ref) {
16
- var label = _ref.label,
17
- ariaLabel = _ref.ariaLabel,
18
- pageNumber = _ref.pageNumber,
19
- _ref$additionalClassN = _ref.additionalClassName,
20
- additionalClassName = _ref$additionalClassN === void 0 ? null : _ref$additionalClassN,
21
- _ref$isDisabled = _ref.isDisabled,
22
- isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
23
- _ref$isSelected = _ref.isSelected,
24
- isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
25
- cssClasses = _ref.cssClasses,
26
- createURL = _ref.createURL,
27
- handleClick = _ref.handleClick;
28
- var classes = {
29
- item: (0, _classnames.default)(cssClasses.item, additionalClassName, isDisabled && cssClasses.disabledItem, isSelected && cssClasses.selectedItem),
30
- link: cssClasses.link
31
- };
32
-
33
- if (isDisabled) {
34
- return (0, _preact.h)("li", {
35
- className: classes.item
36
- }, (0, _preact.h)("span", {
37
- className: classes.link,
38
- dangerouslySetInnerHTML: {
39
- __html: label
40
- }
41
- }));
42
- }
43
-
44
- return (0, _preact.h)("li", {
45
- className: classes.item
46
- }, (0, _preact.h)("a", {
47
- className: classes.link,
48
- "aria-label": ariaLabel,
49
- href: createURL(pageNumber),
50
- onClick: function onClick(event) {
51
- return handleClick(pageNumber, event);
52
- },
53
- dangerouslySetInnerHTML: {
54
- __html: label
55
- }
56
- }));
57
- }
58
-
59
- var _default = PaginationLink;
60
- exports.default = _default;
@@ -1,16 +0,0 @@
1
- /** @jsx h */
2
- import { h } from 'preact';
3
- import type { PaginationComponentCSSClasses } from './Pagination';
4
- declare type PageLinkProps = {
5
- label: string;
6
- ariaLabel: string;
7
- pageNumber: number;
8
- additionalClassName: string | null;
9
- isDisabled?: boolean;
10
- isSelected?: boolean;
11
- cssClasses: PaginationComponentCSSClasses;
12
- createURL(value: number): string;
13
- handleClick(pageNumber: number, event: MouseEvent): void;
14
- };
15
- declare function PaginationLink({ label, ariaLabel, pageNumber, additionalClassName, isDisabled, isSelected, cssClasses, createURL, handleClick, }: PageLinkProps): h.JSX.Element;
16
- export default PaginationLink;
@@ -1,49 +0,0 @@
1
- /** @jsx h */
2
- import { h } from 'preact';
3
- import cx from 'classnames';
4
-
5
- function PaginationLink(_ref) {
6
- var label = _ref.label,
7
- ariaLabel = _ref.ariaLabel,
8
- pageNumber = _ref.pageNumber,
9
- _ref$additionalClassN = _ref.additionalClassName,
10
- additionalClassName = _ref$additionalClassN === void 0 ? null : _ref$additionalClassN,
11
- _ref$isDisabled = _ref.isDisabled,
12
- isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
13
- _ref$isSelected = _ref.isSelected,
14
- isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
15
- cssClasses = _ref.cssClasses,
16
- createURL = _ref.createURL,
17
- handleClick = _ref.handleClick;
18
- var classes = {
19
- item: cx(cssClasses.item, additionalClassName, isDisabled && cssClasses.disabledItem, isSelected && cssClasses.selectedItem),
20
- link: cssClasses.link
21
- };
22
-
23
- if (isDisabled) {
24
- return h("li", {
25
- className: classes.item
26
- }, h("span", {
27
- className: classes.link,
28
- dangerouslySetInnerHTML: {
29
- __html: label
30
- }
31
- }));
32
- }
33
-
34
- return h("li", {
35
- className: classes.item
36
- }, h("a", {
37
- className: classes.link,
38
- "aria-label": ariaLabel,
39
- href: createURL(pageNumber),
40
- onClick: function onClick(event) {
41
- return handleClick(pageNumber, event);
42
- },
43
- dangerouslySetInnerHTML: {
44
- __html: label
45
- }
46
- }));
47
- }
48
-
49
- export default PaginationLink;