vue-instantsearch 4.4.2 → 4.5.0
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.
- package/CHANGELOG.md +14 -0
- package/package.json +4 -4
- package/src/components/Breadcrumb.vue +1 -3
- package/src/components/ClearRefinements.vue +1 -3
- package/src/components/CurrentRefinements.vue +1 -4
- package/src/components/HierarchicalMenu.vue +3 -11
- package/src/components/HitsPerPage.vue +2 -3
- package/src/components/Menu.vue +1 -3
- package/src/components/MenuSelect.vue +1 -3
- package/src/components/NumericMenu.vue +3 -8
- package/src/components/Pagination.vue +1 -3
- package/src/components/RangeInput.vue +3 -11
- package/src/components/RatingMenu.vue +2 -3
- package/src/components/RefinementList.vue +1 -3
- package/src/components/SortBy.vue +2 -3
- package/src/components/ToggleRefinement.vue +3 -10
- package/src/components/__tests__/Breadcrumb.js +0 -25
- package/src/components/__tests__/ClearRefinements.js +0 -23
- package/src/components/__tests__/CurrentRefinements.js +0 -17
- package/src/components/__tests__/HierarchicalMenu.js +3 -19
- package/src/components/__tests__/HitsPerPage.js +0 -26
- package/src/components/__tests__/Menu.js +0 -22
- package/src/components/__tests__/MenuSelect.js +0 -23
- package/src/components/__tests__/NumericMenu.js +3 -25
- package/src/components/__tests__/Pagination.js +0 -21
- package/src/components/__tests__/RangeInput.js +1 -34
- package/src/components/__tests__/RatingMenu.js +0 -23
- package/src/components/__tests__/RefinementList.js +0 -23
- package/src/components/__tests__/SortBy.js +1 -23
- package/src/components/__tests__/ToggleRefinement.js +4 -33
- package/src/mixins/__mocks__/panel.js +1 -5
- package/src/mixins/__tests__/panel.test.js +18 -40
- package/src/mixins/panel.js +3 -1
- package/src/util/createServerRootMixin.js +10 -1
- package/vue2/cjs/index.js +1 -1
- package/vue2/cjs/index.js.map +1 -1
- package/vue2/es/package.json.js +1 -1
- package/vue2/es/src/components/Breadcrumb.vue.js +1 -1
- package/vue2/es/src/components/Breadcrumb.vue.js.map +1 -1
- package/vue2/es/src/components/ClearRefinements.vue.js +1 -1
- package/vue2/es/src/components/ClearRefinements.vue.js.map +1 -1
- package/vue2/es/src/components/CurrentRefinements.vue.js +1 -1
- package/vue2/es/src/components/CurrentRefinements.vue.js.map +1 -1
- package/vue2/es/src/components/HierarchicalMenu.vue.js +1 -1
- package/vue2/es/src/components/HierarchicalMenu.vue.js.map +1 -1
- package/vue2/es/src/components/HitsPerPage.vue.js +1 -1
- package/vue2/es/src/components/HitsPerPage.vue.js.map +1 -1
- package/vue2/es/src/components/Menu.vue.js +1 -1
- package/vue2/es/src/components/Menu.vue.js.map +1 -1
- package/vue2/es/src/components/MenuSelect.vue.js +1 -1
- package/vue2/es/src/components/MenuSelect.vue.js.map +1 -1
- package/vue2/es/src/components/NumericMenu.vue.js +1 -1
- package/vue2/es/src/components/NumericMenu.vue.js.map +1 -1
- package/vue2/es/src/components/Pagination.vue.js +1 -1
- package/vue2/es/src/components/Pagination.vue.js.map +1 -1
- package/vue2/es/src/components/RangeInput.vue.js +1 -1
- package/vue2/es/src/components/RangeInput.vue.js.map +1 -1
- package/vue2/es/src/components/RatingMenu.vue.js +1 -1
- package/vue2/es/src/components/RatingMenu.vue.js.map +1 -1
- package/vue2/es/src/components/RefinementList.vue.js +1 -1
- package/vue2/es/src/components/RefinementList.vue.js.map +1 -1
- package/vue2/es/src/components/SortBy.vue.js +1 -1
- package/vue2/es/src/components/SortBy.vue.js.map +1 -1
- package/vue2/es/src/components/ToggleRefinement.vue.js +1 -1
- package/vue2/es/src/components/ToggleRefinement.vue.js.map +1 -1
- package/vue2/es/src/mixins/panel.js +1 -1
- package/vue2/es/src/mixins/panel.js.map +1 -1
- package/vue2/es/src/util/createServerRootMixin.js +1 -1
- package/vue2/es/src/util/createServerRootMixin.js.map +1 -1
- package/vue2/umd/index.js +1 -1
- package/vue2/umd/index.js.map +1 -1
- package/vue3/cjs/index.js +1 -1
- package/vue3/cjs/index.js.map +1 -1
- package/vue3/es/package.json.js +1 -1
- package/vue3/es/src/components/Breadcrumb.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/Breadcrumb.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/Breadcrumb.vue_vue&type=template&id=6f46de9a&lang.js.map +1 -1
- package/vue3/es/src/components/ClearRefinements.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/ClearRefinements.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/ClearRefinements.vue_vue&type=template&id=410a3aaa&lang.js.map +1 -1
- package/vue3/es/src/components/CurrentRefinements.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/CurrentRefinements.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/CurrentRefinements.vue_vue&type=template&id=4f1917ff&lang.js.map +1 -1
- package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=template&id=4361a0b8&lang.js +1 -1
- package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=template&id=4361a0b8&lang.js.map +1 -1
- package/vue3/es/src/components/HitsPerPage.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/HitsPerPage.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/HitsPerPage.vue_vue&type=template&id=74f3ac28&lang.js +1 -1
- package/vue3/es/src/components/HitsPerPage.vue_vue&type=template&id=74f3ac28&lang.js.map +1 -1
- package/vue3/es/src/components/Menu.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/Menu.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/Menu.vue_vue&type=template&id=9bcc0be2&lang.js.map +1 -1
- package/vue3/es/src/components/MenuSelect.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/MenuSelect.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/MenuSelect.vue_vue&type=template&id=694477eb&lang.js.map +1 -1
- package/vue3/es/src/components/NumericMenu.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/NumericMenu.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/NumericMenu.vue_vue&type=template&id=160fae0c&lang.js +1 -1
- package/vue3/es/src/components/NumericMenu.vue_vue&type=template&id=160fae0c&lang.js.map +1 -1
- package/vue3/es/src/components/Pagination.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/Pagination.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/Pagination.vue_vue&type=template&id=849a166c&lang.js.map +1 -1
- package/vue3/es/src/components/RangeInput.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/RangeInput.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/RangeInput.vue_vue&type=template&id=1e17783d&lang.js +1 -1
- package/vue3/es/src/components/RangeInput.vue_vue&type=template&id=1e17783d&lang.js.map +1 -1
- package/vue3/es/src/components/RatingMenu.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/RatingMenu.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/RatingMenu.vue_vue&type=template&id=9254de68&lang.js +1 -1
- package/vue3/es/src/components/RatingMenu.vue_vue&type=template&id=9254de68&lang.js.map +1 -1
- package/vue3/es/src/components/RefinementList.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/RefinementList.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/RefinementList.vue_vue&type=template&id=28927239&lang.js.map +1 -1
- package/vue3/es/src/components/SortBy.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/SortBy.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/SortBy.vue_vue&type=template&id=b69b3b76&lang.js +1 -1
- package/vue3/es/src/components/SortBy.vue_vue&type=template&id=b69b3b76&lang.js.map +1 -1
- package/vue3/es/src/components/ToggleRefinement.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/ToggleRefinement.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/ToggleRefinement.vue_vue&type=template&id=14e4586f&lang.js +1 -1
- package/vue3/es/src/components/ToggleRefinement.vue_vue&type=template&id=14e4586f&lang.js.map +1 -1
- package/vue3/es/src/mixins/panel.js +1 -1
- package/vue3/es/src/mixins/panel.js.map +1 -1
- package/vue3/es/src/util/createServerRootMixin.js +1 -1
- package/vue3/es/src/util/createServerRootMixin.js.map +1 -1
- package/vue3/umd/index.js +1 -1
- package/vue3/umd/index.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [4.5.0](https://github.com/algolia/vue-instantsearch/compare/v4.4.2...v4.5.0) (2022-09-07)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **nuxt:** only write $nuxt if it's writable ([#1117](https://github.com/algolia/vue-instantsearch/issues/1117)) ([bdecca9](https://github.com/algolia/vue-instantsearch/commit/bdecca9334322e9405ca21e6c6d51735d3ec042f)), closes [/github.com/algolia/vue-instantsearch/commit/acda29326475bd1b73f12b058a0c02df00b8b239#commitcomment-67430759](https://github.com//github.com/algolia/vue-instantsearch/commit/acda29326475bd1b73f12b058a0c02df00b8b239/issues/commitcomment-67430759)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **can-refine:** provide `canRefine` for multiple widget slots ([#1141](https://github.com/algolia/vue-instantsearch/issues/1141)) ([424316d](https://github.com/algolia/vue-instantsearch/commit/424316d8c6e23d4573c0d6a63c56ef919da864e1))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
1
15
|
## [4.4.2](https://github.com/algolia/vue-instantsearch/compare/v4.4.1...v4.4.2) (2022-07-25)
|
|
2
16
|
|
|
3
17
|
|
package/package.json
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"autocomplete"
|
|
17
17
|
],
|
|
18
18
|
"license": "MIT",
|
|
19
|
-
"version": "4.
|
|
19
|
+
"version": "4.5.0",
|
|
20
20
|
"files": [
|
|
21
21
|
"vue2",
|
|
22
22
|
"vue3",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"release": "shipjs prepare"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"instantsearch.js": "^4.
|
|
49
|
+
"instantsearch.js": "^4.45.0",
|
|
50
50
|
"mitt": "^2.1.0"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
@@ -133,11 +133,11 @@
|
|
|
133
133
|
"bundlesize": [
|
|
134
134
|
{
|
|
135
135
|
"path": "./vue2/umd/index.js",
|
|
136
|
-
"maxSize": "56.
|
|
136
|
+
"maxSize": "56.75 kB"
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
"path": "./vue3/umd/index.js",
|
|
140
|
-
"maxSize": "
|
|
140
|
+
"maxSize": "58.00 kB"
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
143
|
"path": "./vue2/cjs/index.js",
|
|
@@ -37,9 +37,7 @@ export default {
|
|
|
37
37
|
$$widgetType: 'ais.clearRefinements',
|
|
38
38
|
}
|
|
39
39
|
),
|
|
40
|
-
createPanelConsumerMixin(
|
|
41
|
-
mapStateToCanRefine: state => Boolean(state.hasRefinements),
|
|
42
|
-
}),
|
|
40
|
+
createPanelConsumerMixin(),
|
|
43
41
|
createSuitMixin({ name: 'ClearRefinements' }),
|
|
44
42
|
],
|
|
45
43
|
props: {
|
|
@@ -71,10 +71,7 @@ export default {
|
|
|
71
71
|
$$widgetType: 'ais.currentRefinements',
|
|
72
72
|
}
|
|
73
73
|
),
|
|
74
|
-
createPanelConsumerMixin(
|
|
75
|
-
mapStateToCanRefine: state =>
|
|
76
|
-
Boolean(state.items) && state.items.length > 0,
|
|
77
|
-
}),
|
|
74
|
+
createPanelConsumerMixin(),
|
|
78
75
|
],
|
|
79
76
|
props: {
|
|
80
77
|
includedAttributes: {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
v-if="state"
|
|
4
|
-
:class="[suit(), !canRefine && suit('', 'noRefinement')]"
|
|
4
|
+
:class="[suit(), !state.canRefine && suit('', 'noRefinement')]"
|
|
5
5
|
>
|
|
6
6
|
<slot
|
|
7
7
|
:items="state.items"
|
|
8
|
-
:can-refine="canRefine"
|
|
8
|
+
:can-refine="state.canRefine"
|
|
9
9
|
:can-toggle-show-more="state.canToggleShowMore"
|
|
10
10
|
:is-showing-more="state.isShowingMore"
|
|
11
11
|
:refine="state.refine"
|
|
@@ -46,9 +46,6 @@ import { createPanelConsumerMixin } from '../mixins/panel';
|
|
|
46
46
|
import HierarchicalMenuList from './HierarchicalMenuList.vue';
|
|
47
47
|
import { createSuitMixin } from '../mixins/suit';
|
|
48
48
|
|
|
49
|
-
const mapStateToCanRefine = state =>
|
|
50
|
-
Boolean(state.items) && state.items.length > 0;
|
|
51
|
-
|
|
52
49
|
export default {
|
|
53
50
|
name: 'AisHierarchicalMenu',
|
|
54
51
|
mixins: [
|
|
@@ -61,9 +58,7 @@ export default {
|
|
|
61
58
|
$$widgetType: 'ais.hierarchicalMenu',
|
|
62
59
|
}
|
|
63
60
|
),
|
|
64
|
-
createPanelConsumerMixin(
|
|
65
|
-
mapStateToCanRefine,
|
|
66
|
-
}),
|
|
61
|
+
createPanelConsumerMixin(),
|
|
67
62
|
],
|
|
68
63
|
components: {
|
|
69
64
|
HierarchicalMenuList,
|
|
@@ -120,9 +115,6 @@ export default {
|
|
|
120
115
|
transformItems: this.transformItems,
|
|
121
116
|
};
|
|
122
117
|
},
|
|
123
|
-
canRefine() {
|
|
124
|
-
return mapStateToCanRefine(this.state);
|
|
125
|
-
},
|
|
126
118
|
},
|
|
127
119
|
};
|
|
128
120
|
</script>
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
:items="state.items"
|
|
8
8
|
:refine="state.refine"
|
|
9
9
|
:hasNoResults="state.hasNoResults"
|
|
10
|
+
:canRefine="state.canRefine"
|
|
10
11
|
>
|
|
11
12
|
<select
|
|
12
13
|
:class="suit('select')"
|
|
@@ -42,9 +43,7 @@ export default {
|
|
|
42
43
|
$$widgetType: 'ais.hitsPerPage',
|
|
43
44
|
}
|
|
44
45
|
),
|
|
45
|
-
createPanelConsumerMixin(
|
|
46
|
-
mapStateToCanRefine: state => state.hasNoResults === false,
|
|
47
|
-
}),
|
|
46
|
+
createPanelConsumerMixin(),
|
|
48
47
|
],
|
|
49
48
|
props: {
|
|
50
49
|
items: {
|
package/src/components/Menu.vue
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
v-if="state"
|
|
4
|
-
:class="[suit(), !canRefine && suit('', 'noRefinement')]"
|
|
4
|
+
:class="[suit(), !state.canRefine && suit('', 'noRefinement')]"
|
|
5
5
|
>
|
|
6
6
|
<slot
|
|
7
7
|
:items="state.items"
|
|
8
|
-
:can-refine="canRefine"
|
|
8
|
+
:can-refine="state.canRefine"
|
|
9
9
|
:refine="state.refine"
|
|
10
10
|
:createURL="state.createURL"
|
|
11
11
|
:send-event="state.sendEvent"
|
|
@@ -51,9 +51,7 @@ export default {
|
|
|
51
51
|
}
|
|
52
52
|
),
|
|
53
53
|
createSuitMixin({ name: 'NumericMenu' }),
|
|
54
|
-
createPanelConsumerMixin(
|
|
55
|
-
mapStateToCanRefine: state => state.hasNoResults === false,
|
|
56
|
-
}),
|
|
54
|
+
createPanelConsumerMixin(),
|
|
57
55
|
],
|
|
58
56
|
props: {
|
|
59
57
|
attribute: {
|
|
@@ -77,9 +75,6 @@ export default {
|
|
|
77
75
|
items: this.items,
|
|
78
76
|
};
|
|
79
77
|
},
|
|
80
|
-
canRefine() {
|
|
81
|
-
return !this.state.hasNoResults;
|
|
82
|
-
},
|
|
83
78
|
},
|
|
84
79
|
};
|
|
85
80
|
</script>
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
v-if="state"
|
|
4
|
-
:class="[suit(), !canRefine && suit('', 'noRefinement')]"
|
|
4
|
+
:class="[suit(), !state.canRefine && suit('', 'noRefinement')]"
|
|
5
5
|
>
|
|
6
6
|
<slot
|
|
7
7
|
:current-refinement="values"
|
|
8
8
|
:refine="refine"
|
|
9
|
-
:can-refine="canRefine"
|
|
9
|
+
:can-refine="state.canRefine"
|
|
10
10
|
:range="state.range"
|
|
11
11
|
:send-event="state.sendEvent"
|
|
12
12
|
>
|
|
@@ -60,9 +60,6 @@ import { createWidgetMixin } from '../mixins/widget';
|
|
|
60
60
|
import { createPanelConsumerMixin } from '../mixins/panel';
|
|
61
61
|
import { createSuitMixin } from '../mixins/suit';
|
|
62
62
|
|
|
63
|
-
const mapStateToCanRefine = state =>
|
|
64
|
-
state && Boolean(state.range) && state.range.min !== state.range.max;
|
|
65
|
-
|
|
66
63
|
export default {
|
|
67
64
|
name: 'AisRangeInput',
|
|
68
65
|
mixins: [
|
|
@@ -75,9 +72,7 @@ export default {
|
|
|
75
72
|
$$widgetType: 'ais.rangeInput',
|
|
76
73
|
}
|
|
77
74
|
),
|
|
78
|
-
createPanelConsumerMixin(
|
|
79
|
-
mapStateToCanRefine,
|
|
80
|
-
}),
|
|
75
|
+
createPanelConsumerMixin(),
|
|
81
76
|
],
|
|
82
77
|
props: {
|
|
83
78
|
attribute: {
|
|
@@ -119,9 +114,6 @@ export default {
|
|
|
119
114
|
precision: this.precision,
|
|
120
115
|
};
|
|
121
116
|
},
|
|
122
|
-
canRefine() {
|
|
123
|
-
return mapStateToCanRefine(this.state);
|
|
124
|
-
},
|
|
125
117
|
step() {
|
|
126
118
|
return 1 / Math.pow(10, this.precision);
|
|
127
119
|
},
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
:refine="state.refine"
|
|
9
9
|
:createURL="state.createURL"
|
|
10
10
|
:send-event="state.sendEvent"
|
|
11
|
+
:can-refine="state.canRefine"
|
|
11
12
|
>
|
|
12
13
|
<svg
|
|
13
14
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -95,9 +96,7 @@ export default {
|
|
|
95
96
|
$$widgetType: 'ais.ratingMenu',
|
|
96
97
|
}
|
|
97
98
|
),
|
|
98
|
-
createPanelConsumerMixin(
|
|
99
|
-
mapStateToCanRefine: state => state.hasNoResults === false,
|
|
100
|
-
}),
|
|
99
|
+
createPanelConsumerMixin(),
|
|
101
100
|
],
|
|
102
101
|
props: {
|
|
103
102
|
attribute: {
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
:has-no-results="state.hasNoResults"
|
|
9
9
|
:refine="state.refine"
|
|
10
10
|
:current-refinement="state.currentRefinement"
|
|
11
|
+
:can-refine="state.canRefine"
|
|
11
12
|
>
|
|
12
13
|
<select
|
|
13
14
|
:class="suit('select')"
|
|
@@ -42,9 +43,7 @@ export default {
|
|
|
42
43
|
}
|
|
43
44
|
),
|
|
44
45
|
|
|
45
|
-
createPanelConsumerMixin(
|
|
46
|
-
mapStateToCanRefine: state => state.hasNoResults === false,
|
|
47
|
-
}),
|
|
46
|
+
createPanelConsumerMixin(),
|
|
48
47
|
],
|
|
49
48
|
props: {
|
|
50
49
|
items: {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
v-if="state"
|
|
4
|
-
:class="[suit(), !canRefine && suit('', 'noRefinement')]"
|
|
4
|
+
:class="[suit(), !state.canRefine && suit('', 'noRefinement')]"
|
|
5
5
|
>
|
|
6
6
|
<slot
|
|
7
7
|
:value="state.value"
|
|
8
|
-
:can-refine="canRefine"
|
|
8
|
+
:can-refine="state.canRefine"
|
|
9
9
|
:refine="state.refine"
|
|
10
10
|
:createURL="state.createURL"
|
|
11
11
|
:send-event="state.sendEvent"
|
|
@@ -35,8 +35,6 @@ import { createWidgetMixin } from '../mixins/widget';
|
|
|
35
35
|
import { createPanelConsumerMixin } from '../mixins/panel';
|
|
36
36
|
import { createSuitMixin } from '../mixins/suit';
|
|
37
37
|
|
|
38
|
-
const mapStateToCanRefine = state => Boolean(state.value && state.value.count);
|
|
39
|
-
|
|
40
38
|
export default {
|
|
41
39
|
name: 'AisToggleRefinement',
|
|
42
40
|
mixins: [
|
|
@@ -49,9 +47,7 @@ export default {
|
|
|
49
47
|
$$widgetType: 'ais.toggleRefinement',
|
|
50
48
|
}
|
|
51
49
|
),
|
|
52
|
-
createPanelConsumerMixin(
|
|
53
|
-
mapStateToCanRefine,
|
|
54
|
-
}),
|
|
50
|
+
createPanelConsumerMixin(),
|
|
55
51
|
],
|
|
56
52
|
props: {
|
|
57
53
|
attribute: {
|
|
@@ -82,9 +78,6 @@ export default {
|
|
|
82
78
|
off: this.off,
|
|
83
79
|
};
|
|
84
80
|
},
|
|
85
|
-
canRefine() {
|
|
86
|
-
return mapStateToCanRefine(this.state);
|
|
87
|
-
},
|
|
88
81
|
},
|
|
89
82
|
};
|
|
90
83
|
</script>
|
|
@@ -182,31 +182,6 @@ describe('default render', () => {
|
|
|
182
182
|
});
|
|
183
183
|
});
|
|
184
184
|
|
|
185
|
-
describe('panel', () => {
|
|
186
|
-
it('calls the Panel mixin with `canRefine`', async () => {
|
|
187
|
-
__setState({ ...defaultState });
|
|
188
|
-
|
|
189
|
-
const wrapper = mount(Breadcrumb, {
|
|
190
|
-
propsData: defaultProps,
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
const mapStateToCanRefine = () =>
|
|
194
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
195
|
-
|
|
196
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
197
|
-
|
|
198
|
-
await wrapper.setData({
|
|
199
|
-
state: {
|
|
200
|
-
canRefine: false,
|
|
201
|
-
},
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
205
|
-
|
|
206
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
207
|
-
});
|
|
208
|
-
});
|
|
209
|
-
|
|
210
185
|
describe('custom default render', () => {
|
|
211
186
|
const defaultSlot = `
|
|
212
187
|
<template v-slot="{ items, canRefine, refine, createURL }">
|
|
@@ -187,26 +187,3 @@ describe('custom resetLabel render', () => {
|
|
|
187
187
|
expect(wrapper.html()).toMatchSnapshot();
|
|
188
188
|
});
|
|
189
189
|
});
|
|
190
|
-
|
|
191
|
-
it('calls the Panel mixin with `hasRefinement`', async () => {
|
|
192
|
-
__setState({
|
|
193
|
-
hasRefinements: true,
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
const wrapper = mount(ClearRefinements);
|
|
197
|
-
|
|
198
|
-
const mapStateToCanRefine = () =>
|
|
199
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
200
|
-
|
|
201
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
202
|
-
|
|
203
|
-
await wrapper.setData({
|
|
204
|
-
state: {
|
|
205
|
-
hasRefinements: false,
|
|
206
|
-
},
|
|
207
|
-
});
|
|
208
|
-
|
|
209
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
210
|
-
|
|
211
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
212
|
-
});
|
|
@@ -167,23 +167,6 @@ describe.each([
|
|
|
167
167
|
});
|
|
168
168
|
});
|
|
169
169
|
|
|
170
|
-
it('calls the Panel mixin with `canRefine`', async () => {
|
|
171
|
-
__setState({ items: [{}] });
|
|
172
|
-
|
|
173
|
-
const wrapper = mount(CurrentRefinements);
|
|
174
|
-
|
|
175
|
-
const mapStateToCanRefine = () =>
|
|
176
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
177
|
-
|
|
178
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
179
|
-
|
|
180
|
-
await wrapper.setData({ state: { items: [] } });
|
|
181
|
-
|
|
182
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
183
|
-
|
|
184
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
185
|
-
});
|
|
186
|
-
|
|
187
170
|
it('calls `refine` with a refinement', async () => {
|
|
188
171
|
const spies = [jest.fn(), jest.fn()];
|
|
189
172
|
|
|
@@ -116,6 +116,7 @@ const defaultState = {
|
|
|
116
116
|
createURL: () => {},
|
|
117
117
|
isShowingMore: false,
|
|
118
118
|
canToggleShowMore: true,
|
|
119
|
+
canRefine: true,
|
|
119
120
|
toggleShowMore: () => {},
|
|
120
121
|
sendEvent: () => {},
|
|
121
122
|
};
|
|
@@ -266,6 +267,7 @@ describe('default render', () => {
|
|
|
266
267
|
__setState({
|
|
267
268
|
...defaultState,
|
|
268
269
|
items: [],
|
|
270
|
+
canRefine: false,
|
|
269
271
|
});
|
|
270
272
|
|
|
271
273
|
const wrapper = mount(HierarchicalMenu, {
|
|
@@ -466,25 +468,6 @@ describe('default render', () => {
|
|
|
466
468
|
});
|
|
467
469
|
});
|
|
468
470
|
|
|
469
|
-
it('calls the Panel mixin with `items.length`', async () => {
|
|
470
|
-
__setState({ ...defaultState });
|
|
471
|
-
|
|
472
|
-
const wrapper = mount(HierarchicalMenu, {
|
|
473
|
-
propsData: defaultProps,
|
|
474
|
-
});
|
|
475
|
-
|
|
476
|
-
const mapStateToCanRefine = () =>
|
|
477
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
478
|
-
|
|
479
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
480
|
-
|
|
481
|
-
await wrapper.setData({ state: { items: [] } });
|
|
482
|
-
|
|
483
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
484
|
-
|
|
485
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
486
|
-
});
|
|
487
|
-
|
|
488
471
|
it('exposes send-event method for insights middleware', async () => {
|
|
489
472
|
const sendEvent = jest.fn();
|
|
490
473
|
__setState({
|
|
@@ -574,6 +557,7 @@ describe('custom default render', () => {
|
|
|
574
557
|
__setState({
|
|
575
558
|
...defaultState,
|
|
576
559
|
items: [],
|
|
560
|
+
canRefine: false,
|
|
577
561
|
});
|
|
578
562
|
|
|
579
563
|
const wrapper = mount({
|
|
@@ -76,29 +76,3 @@ it('calls `refine` with the `value` on `change`', async () => {
|
|
|
76
76
|
|
|
77
77
|
expect(wrapper.vm.state.refine).toHaveBeenLastCalledWith(20);
|
|
78
78
|
});
|
|
79
|
-
|
|
80
|
-
it('calls the Panel mixin with `hasNoResults`', async () => {
|
|
81
|
-
__setState({
|
|
82
|
-
...defaultState,
|
|
83
|
-
hasNoResults: false,
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
const wrapper = mount(HitsPerPage, {
|
|
87
|
-
propsData: defaultProps,
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
const mapStateToCanRefine = () =>
|
|
91
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
92
|
-
|
|
93
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
94
|
-
|
|
95
|
-
await wrapper.setData({
|
|
96
|
-
state: {
|
|
97
|
-
hasNoResults: true,
|
|
98
|
-
},
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
102
|
-
|
|
103
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
104
|
-
});
|
|
@@ -325,28 +325,6 @@ describe('default render', () => {
|
|
|
325
325
|
});
|
|
326
326
|
});
|
|
327
327
|
|
|
328
|
-
it('calls the Panel mixin with `canRefine`', async () => {
|
|
329
|
-
__setState({ ...defaultState });
|
|
330
|
-
|
|
331
|
-
const wrapper = mount(Menu, {
|
|
332
|
-
propsData: defaultProps,
|
|
333
|
-
});
|
|
334
|
-
|
|
335
|
-
const mapStateToCanRefine = () =>
|
|
336
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
337
|
-
|
|
338
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
339
|
-
|
|
340
|
-
await wrapper.setData({
|
|
341
|
-
state: {
|
|
342
|
-
canRefine: false,
|
|
343
|
-
},
|
|
344
|
-
});
|
|
345
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
346
|
-
|
|
347
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
348
|
-
});
|
|
349
|
-
|
|
350
328
|
it('exposes send-event method for insights middleware', async () => {
|
|
351
329
|
const sendEvent = jest.fn();
|
|
352
330
|
__setState({
|
|
@@ -201,29 +201,6 @@ describe('default render', () => {
|
|
|
201
201
|
});
|
|
202
202
|
});
|
|
203
203
|
|
|
204
|
-
it('calls the Panel mixin with `canRefine`', async () => {
|
|
205
|
-
__setState({ ...defaultState });
|
|
206
|
-
|
|
207
|
-
const wrapper = mount(MenuSelect, {
|
|
208
|
-
propsData: defaultProps,
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
const mapStateToCanRefine = () =>
|
|
212
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
213
|
-
|
|
214
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
215
|
-
|
|
216
|
-
await wrapper.setData({
|
|
217
|
-
state: {
|
|
218
|
-
canRefine: false,
|
|
219
|
-
},
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
223
|
-
|
|
224
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
225
|
-
});
|
|
226
|
-
|
|
227
204
|
it('exposes send-event method for insights middleware', async () => {
|
|
228
205
|
const sendEvent = jest.fn();
|
|
229
206
|
__setState({
|
|
@@ -41,6 +41,7 @@ const moreThan500 = {
|
|
|
41
41
|
const defaultState = {
|
|
42
42
|
items: [all, lessThan10, from10to100, from100to500, moreThan500],
|
|
43
43
|
hasNoResults: false,
|
|
44
|
+
canRefine: true,
|
|
44
45
|
createURL: () => {},
|
|
45
46
|
refine: () => {},
|
|
46
47
|
};
|
|
@@ -125,7 +126,7 @@ describe('default render', () => {
|
|
|
125
126
|
it('renders correctly without refinement', () => {
|
|
126
127
|
__setState({
|
|
127
128
|
...defaultState,
|
|
128
|
-
|
|
129
|
+
canRefine: false,
|
|
129
130
|
});
|
|
130
131
|
|
|
131
132
|
const props = {
|
|
@@ -190,29 +191,6 @@ describe('default render', () => {
|
|
|
190
191
|
});
|
|
191
192
|
});
|
|
192
193
|
|
|
193
|
-
it('calls the Panel mixin with `hasNoResults`', async () => {
|
|
194
|
-
__setState({ ...defaultState });
|
|
195
|
-
|
|
196
|
-
const wrapper = mount(NumericMenu, {
|
|
197
|
-
propsData: defaultProps,
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
const mapStateToCanRefine = () =>
|
|
201
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
202
|
-
|
|
203
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
204
|
-
|
|
205
|
-
await wrapper.setData({
|
|
206
|
-
state: {
|
|
207
|
-
hasNoResults: true,
|
|
208
|
-
},
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
212
|
-
|
|
213
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
214
|
-
});
|
|
215
|
-
|
|
216
194
|
it('exposes send-event method for insights middleware', async () => {
|
|
217
195
|
const sendEvent = jest.fn();
|
|
218
196
|
__setState({
|
|
@@ -281,7 +259,7 @@ describe('custom default render', () => {
|
|
|
281
259
|
it('renders correctly without refinement', () => {
|
|
282
260
|
__setState({
|
|
283
261
|
...defaultState,
|
|
284
|
-
|
|
262
|
+
canRefine: false,
|
|
285
263
|
});
|
|
286
264
|
|
|
287
265
|
const wrapper = mount({
|
|
@@ -143,27 +143,6 @@ it('Moves to the previous page on that button', async () => {
|
|
|
143
143
|
);
|
|
144
144
|
});
|
|
145
145
|
|
|
146
|
-
it('calls the Panel mixin with `nbPages`', async () => {
|
|
147
|
-
__setState({ ...defaultState });
|
|
148
|
-
|
|
149
|
-
const wrapper = mount(Pagination);
|
|
150
|
-
|
|
151
|
-
const mapStateToCanRefine = () =>
|
|
152
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
153
|
-
|
|
154
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
155
|
-
|
|
156
|
-
await wrapper.setData({
|
|
157
|
-
state: {
|
|
158
|
-
nbPages: 1,
|
|
159
|
-
},
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
163
|
-
|
|
164
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
165
|
-
});
|
|
166
|
-
|
|
167
146
|
it('implements showFirst', async () => {
|
|
168
147
|
__setState({ ...defaultState });
|
|
169
148
|
|