@empathyco/x-components 3.0.0-alpha.121 → 3.0.0-alpha.124

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.
Files changed (79) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/core/index.js +1 -0
  3. package/core/index.js.map +1 -1
  4. package/design-system/full-theme.css +19 -19
  5. package/docs/API-reference/api/x-adapter-platform.md +2 -0
  6. package/docs/API-reference/api/x-adapter-platform.partialresultsschema.md +11 -0
  7. package/docs/API-reference/api/x-adapter-platform.platformpartialresult.content.md +11 -0
  8. package/docs/API-reference/api/x-adapter-platform.platformpartialresult.md +20 -0
  9. package/docs/API-reference/api/x-adapter-platform.platformpartialresult.numfound.md +11 -0
  10. package/docs/API-reference/api/x-adapter-platform.platformpartialresult.term.md +11 -0
  11. package/docs/API-reference/api/x-adapter-platform.platformsearchresponse.catalog.md +1 -0
  12. package/docs/API-reference/api/x-adapter-platform.platformsearchresponse.md +1 -1
  13. package/docs/API-reference/api/x-components.baseswitch.md +21 -0
  14. package/docs/API-reference/api/x-components.baseswitch.value.md +13 -0
  15. package/docs/API-reference/api/x-components.featurelocation.md +1 -1
  16. package/docs/API-reference/api/x-components.md +1 -0
  17. package/docs/API-reference/components/common/x-components.base-switch.md +80 -0
  18. package/js/components/base-switch.vue.js +59 -0
  19. package/js/components/base-switch.vue.js.map +1 -0
  20. package/js/components/base-switch.vue_rollup-plugin-vue_script.vue.js +47 -0
  21. package/js/components/base-switch.vue_rollup-plugin-vue_script.vue.js.map +1 -0
  22. package/js/index.js +1 -0
  23. package/js/index.js.map +1 -1
  24. package/js/x-modules/extra-params/components/extra-params.vue_rollup-plugin-vue_script.vue.js +1 -0
  25. package/js/x-modules/extra-params/components/extra-params.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  26. package/js/x-modules/extra-params/components/renderless-extra-param.vue_rollup-plugin-vue_script.vue.js +1 -0
  27. package/js/x-modules/extra-params/components/renderless-extra-param.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  28. package/js/x-modules/facets/components/clear-filters.vue_rollup-plugin-vue_script.vue.js +1 -0
  29. package/js/x-modules/facets/components/clear-filters.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  30. package/js/x-modules/facets/components/facets/facets-provider.vue_rollup-plugin-vue_script.vue.js +1 -0
  31. package/js/x-modules/facets/components/facets/facets-provider.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  32. package/js/x-modules/facets/components/filters/all-filter.vue_rollup-plugin-vue_script.vue.js +1 -0
  33. package/js/x-modules/facets/components/filters/all-filter.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  34. package/js/x-modules/facets/components/filters/hierarchical-filter.vue_rollup-plugin-vue_script.vue.js +1 -0
  35. package/js/x-modules/facets/components/filters/hierarchical-filter.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  36. package/js/x-modules/facets/components/filters/number-range-filter.vue_rollup-plugin-vue_script.vue.js +1 -0
  37. package/js/x-modules/facets/components/filters/number-range-filter.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  38. package/js/x-modules/facets/components/filters/renderless-filter.vue_rollup-plugin-vue_script.vue.js +1 -0
  39. package/js/x-modules/facets/components/filters/renderless-filter.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  40. package/js/x-modules/facets/components/filters/simple-filter.vue_rollup-plugin-vue_script.vue.js +1 -0
  41. package/js/x-modules/facets/components/filters/simple-filter.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  42. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue_rollup-plugin-vue_script.vue.js +1 -0
  43. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  44. package/js/x-modules/facets/components/lists/filters-list.vue_rollup-plugin-vue_script.vue.js +1 -0
  45. package/js/x-modules/facets/components/lists/filters-list.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  46. package/js/x-modules/facets/components/lists/filters-search.vue_rollup-plugin-vue_script.vue.js +1 -0
  47. package/js/x-modules/facets/components/lists/filters-search.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  48. package/js/x-modules/facets/components/lists/selected-filters.vue_rollup-plugin-vue_script.vue.js +1 -0
  49. package/js/x-modules/facets/components/lists/selected-filters.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  50. package/js/x-modules/facets/components/lists/sliced-filters.vue_rollup-plugin-vue_script.vue.js +1 -0
  51. package/js/x-modules/facets/components/lists/sliced-filters.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  52. package/js/x-modules/facets/components/lists/sorted-filters.vue_rollup-plugin-vue_script.vue.js +1 -0
  53. package/js/x-modules/facets/components/lists/sorted-filters.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  54. package/js/x-modules/scroll/components/main-scroll-item.vue_rollup-plugin-vue_script.vue.js +1 -0
  55. package/js/x-modules/scroll/components/main-scroll-item.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  56. package/js/x-modules/scroll/components/scroll-to-top.vue_rollup-plugin-vue_script.vue.js +1 -0
  57. package/js/x-modules/scroll/components/scroll-to-top.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  58. package/js/x-modules/scroll/components/window-scroll.vue_rollup-plugin-vue_script.vue.js +1 -0
  59. package/js/x-modules/scroll/components/window-scroll.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  60. package/js/x-modules/search/components/sort-list.vue_rollup-plugin-vue_script.vue.js +1 -0
  61. package/js/x-modules/search/components/sort-list.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  62. package/js/x-modules/search/components/sort.mixin.js +1 -0
  63. package/js/x-modules/search/components/sort.mixin.js.map +1 -1
  64. package/js/x-modules/search/components/spellcheck.vue_rollup-plugin-vue_script.vue.js +1 -0
  65. package/js/x-modules/search/components/spellcheck.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  66. package/js/x-modules/url/components/url-handler.vue_rollup-plugin-vue_script.vue.js +1 -0
  67. package/js/x-modules/url/components/url-handler.vue_rollup-plugin-vue_script.vue.js.map +1 -1
  68. package/package.json +3 -3
  69. package/report/x-adapter-platform.api.json +167 -2
  70. package/report/x-components.api.json +57 -1
  71. package/report/x-components.api.md +10 -1
  72. package/types/components/base-switch.vue.d.ts +32 -0
  73. package/types/components/base-switch.vue.d.ts.map +1 -0
  74. package/types/components/index.d.ts +1 -0
  75. package/types/components/index.d.ts.map +1 -1
  76. package/types/types/origin.d.ts +1 -1
  77. package/types/types/origin.d.ts.map +1 -1
  78. package/types/views/home/types.d.ts +16 -0
  79. package/types/views/home/types.d.ts.map +1 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,50 @@
3
3
  All notable changes to this project will be documented in this file. See
4
4
  [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.0.0-alpha.124](https://github.com/empathyco/x/compare/@empathyco/x-components@3.0.0-alpha.123...@empathyco/x-components@3.0.0-alpha.124) (2022-07-06)
7
+
8
+ ### Features
9
+
10
+ - add 'my_history' as feature location (#587)
11
+ ([7b0263e](https://github.com/empathyco/x/commit/7b0263e23c9afb2af61174ac53bdedd3eb4263ba)),
12
+ closes [EX-6527](https://searchbroker.atlassian.net/browse/EX-6527)
13
+ - **components:** add `BaseSwitch` component (#586)
14
+ ([31cde2d](https://github.com/empathyco/x/commit/31cde2dfb79dcc549c8662b558ef5b80529f2d01)),
15
+ closes [EX-6004](https://searchbroker.atlassian.net/browse/EX-6004)
16
+
17
+ ### Testing
18
+
19
+ - fix exclude-filters e2e test (#588)
20
+ ([51ecc52](https://github.com/empathyco/x/commit/51ecc5234b665a2320a760d485bf6da74648f902)),
21
+ closes [EX-6590](https://searchbroker.atlassian.net/browse/EX-6590)
22
+
23
+ # Change Log
24
+
25
+ All notable changes to this project will be documented in this file. See
26
+ [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
27
+
28
+ ## [3.0.0-alpha.123](https://github.com/empathyco/x/compare/@empathyco/x-components@3.0.0-alpha.122...@empathyco/x-components@3.0.0-alpha.123) (2022-07-04)
29
+
30
+ **Note:** Version bump only for package @empathyco/x-components
31
+
32
+ # Change Log
33
+
34
+ All notable changes to this project will be documented in this file. See
35
+ [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
36
+
37
+ ## [3.0.0-alpha.122](https://github.com/empathyco/x/compare/@empathyco/x-components@3.0.0-alpha.121...@empathyco/x-components@3.0.0-alpha.122) (2022-06-30)
38
+
39
+ ### Code Refactoring
40
+
41
+ - Move aside to its own component in Home view. (#581)
42
+ ([5b40994](https://github.com/empathyco/x/commit/5b40994af47c268ed10f06624ac1fdc634523a6d)),
43
+ closes [EX-6525](https://searchbroker.atlassian.net/browse/EX-6525)
44
+
45
+ # Change Log
46
+
47
+ All notable changes to this project will be documented in this file. See
48
+ [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
49
+
6
50
  ## [3.0.0-alpha.121](https://github.com/empathyco/x/compare/@empathyco/x-components@3.0.0-alpha.120...@empathyco/x-components@3.0.0-alpha.121) (2022-06-29)
7
51
 
8
52
  ### Features
package/core/index.js CHANGED
@@ -103,6 +103,7 @@ export { default as BaseEventButton } from '../js/components/base-event-button.v
103
103
  export { default as BaseGrid } from '../js/components/base-grid.vue.js';
104
104
  export { default as BaseKeyboardNavigation } from '../js/components/base-keyboard-navigation.vue.js';
105
105
  export { default as BaseRating } from '../js/components/base-rating.vue.js';
106
+ export { default as BaseSwitch } from '../js/components/base-switch.vue.js';
106
107
  export { default as BaseVariableColumnGrid } from '../js/components/base-variable-column-grid.vue.js';
107
108
  export { default as GlobalXBus } from '../js/components/global-x-bus.vue.js';
108
109
  export { default as ItemsList } from '../js/components/items-list.vue.js';
package/core/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -898,20 +898,6 @@
898
898
  --x-size-border-width-bottom-facet-header-line: var(--x-size-border-width-facet-header-line);
899
899
  --x-size-border-width-left-facet-header-line: 0;
900
900
  }
901
- .x-facet--outlined.x-facet,
902
- .x-facet--outlined .x-facet {
903
- --x-color-border-facet-default: var(--x-color-border-facet-outlined);
904
- --x-size-border-width-facet-default: var(--x-size-border-width-facet-outlined);
905
- --x-size-border-width-top-facet-default: var(--x-size-border-width-top-facet-outlined);
906
- --x-size-border-width-right-facet-default: var(--x-size-border-width-right-facet-outlined);
907
- --x-size-border-width-bottom-facet-default: var(--x-size-border-width-bottom-facet-outlined);
908
- --x-size-border-width-left-facet-default: var(--x-size-border-width-left-facet-outlined);
909
- --x-size-padding-facet-header-default: var(--x-size-padding-facet-header-outlined);
910
- --x-size-padding-top-facet-header-default: var(--x-size-padding-top-facet-header-outlined);
911
- --x-size-padding-right-facet-header-default: var(--x-size-padding-right-facet-header-outlined);
912
- --x-size-padding-bottom-facet-header-default: var(--x-size-padding-bottom-facet-header-outlined);
913
- --x-size-padding-left-facet-header-default: var(--x-size-padding-left-facet-header-outlined);
914
- }
915
901
  :root {
916
902
  --x-color-border-facet-outlined: var(--x-color-base-neutral-70);
917
903
  --x-size-border-width-facet-outlined: var(--x-size-border-width-base);
@@ -3637,6 +3623,12 @@
3637
3623
  .x-sliding-panel__scroll > .x-list {
3638
3624
  --x-string-flow-list: row nowrap;
3639
3625
  }
3626
+ :root {
3627
+ --x-color-background-sliding-panel: var(--x-color-base-neutral-100);
3628
+ --x-size-width-sliding-panel-gradient: var(--x-size-base-09);
3629
+ --x-size-padding-sliding-panel-button: var(--x-size-base-03);
3630
+ --x-size-horizontal-margin-sliding-panel-button-overflow: var(--x-size-base-02);
3631
+ }
3640
3632
  [dir="ltr"] .x-suggestion-group {
3641
3633
  padding-left: var(--x-size-padding-left-suggestion-group-default);
3642
3634
  }
@@ -7608,9 +7600,17 @@
7608
7600
  text-transform: none;
7609
7601
  }
7610
7602
 
7611
- :root {
7612
- --x-color-background-sliding-panel: var(--x-color-base-neutral-100);
7613
- --x-size-width-sliding-panel-gradient: var(--x-size-base-09);
7614
- --x-size-padding-sliding-panel-button: var(--x-size-base-03);
7615
- --x-size-horizontal-margin-sliding-panel-button-overflow: var(--x-size-base-02);
7603
+ .x-facet--outlined.x-facet,
7604
+ .x-facet--outlined .x-facet {
7605
+ --x-color-border-facet-default: var(--x-color-border-facet-outlined);
7606
+ --x-size-border-width-facet-default: var(--x-size-border-width-facet-outlined);
7607
+ --x-size-border-width-top-facet-default: var(--x-size-border-width-top-facet-outlined);
7608
+ --x-size-border-width-right-facet-default: var(--x-size-border-width-right-facet-outlined);
7609
+ --x-size-border-width-bottom-facet-default: var(--x-size-border-width-bottom-facet-outlined);
7610
+ --x-size-border-width-left-facet-default: var(--x-size-border-width-left-facet-outlined);
7611
+ --x-size-padding-facet-header-default: var(--x-size-padding-facet-header-outlined);
7612
+ --x-size-padding-top-facet-header-default: var(--x-size-padding-top-facet-header-outlined);
7613
+ --x-size-padding-right-facet-header-default: var(--x-size-padding-right-facet-header-outlined);
7614
+ --x-size-padding-bottom-facet-header-default: var(--x-size-padding-bottom-facet-header-outlined);
7615
+ --x-size-padding-left-facet-header-default: var(--x-size-padding-left-facet-header-outlined);
7616
7616
  }
@@ -29,6 +29,7 @@
29
29
  | [PlatformNextQueriesRequest](./x-adapter-platform.platformnextqueriesrequest.md) | Request for the <code>next queries</code> endpoint with <code>extra params</code>. |
30
30
  | [PlatformNextQueriesResponse](./x-adapter-platform.platformnextqueriesresponse.md) | Response for the <code>next queries</code> endpoint. |
31
31
  | [PlatformNextQuery](./x-adapter-platform.platformnextquery.md) | Next query model for the <code>platform</code> API. |
32
+ | [PlatformPartialResult](./x-adapter-platform.platformpartialresult.md) | |
32
33
  | [PlatformPopularSearchesRequest](./x-adapter-platform.platformpopularsearchesrequest.md) | Platform request for the <code>popular searches</code> endpoint. |
33
34
  | [PlatformPopularSearchesResponse](./x-adapter-platform.platformpopularsearchesresponse.md) | Response for the <code>popular searches</code> endpoint. |
34
35
  | [PlatformPromoted](./x-adapter-platform.platformpromoted.md) | Promoted model for the <code>platform</code> API. |
@@ -66,6 +67,7 @@
66
67
  | [nextQueriesResponseSchema](./x-adapter-platform.nextqueriesresponseschema.md) | |
67
68
  | [nextQuerySchema](./x-adapter-platform.nextqueryschema.md) | |
68
69
  | [numberFilterSchema](./x-adapter-platform.numberfilterschema.md) | |
70
+ | [partialResultsSchema](./x-adapter-platform.partialresultsschema.md) | |
69
71
  | [platformAdapter](./x-adapter-platform.platformadapter.md) | |
70
72
  | [popularSearchesEndpointAdapter](./x-adapter-platform.popularsearchesendpointadapter.md) | |
71
73
  | [popularSearchesRequestMapper](./x-adapter-platform.popularsearchesrequestmapper.md) | |
@@ -0,0 +1,11 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-adapter-platform](./x-adapter-platform.md) &gt; [partialResultsSchema](./x-adapter-platform.partialresultsschema.md)
4
+
5
+ ## partialResultsSchema variable
6
+
7
+ <b>Signature:</b>
8
+
9
+ ```typescript
10
+ partialResultsSchema: import("@empathyco/x-adapter").MutableSchema<Schema<PlatformPartialResult, PartialResult>>
11
+ ```
@@ -0,0 +1,11 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-adapter-platform](./x-adapter-platform.md) &gt; [PlatformPartialResult](./x-adapter-platform.platformpartialresult.md) &gt; [content](./x-adapter-platform.platformpartialresult.content.md)
4
+
5
+ ## PlatformPartialResult.content property
6
+
7
+ <b>Signature:</b>
8
+
9
+ ```typescript
10
+ content: PlatformResult[];
11
+ ```
@@ -0,0 +1,20 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-adapter-platform](./x-adapter-platform.md) &gt; [PlatformPartialResult](./x-adapter-platform.platformpartialresult.md)
4
+
5
+ ## PlatformPartialResult interface
6
+
7
+ <b>Signature:</b>
8
+
9
+ ```typescript
10
+ export interface PlatformPartialResult
11
+ ```
12
+
13
+ ## Properties
14
+
15
+ | Property | Type | Description |
16
+ | --- | --- | --- |
17
+ | [content](./x-adapter-platform.platformpartialresult.content.md) | [PlatformResult](./x-adapter-platform.platformresult.md)<!-- -->\[\] | |
18
+ | [numFound](./x-adapter-platform.platformpartialresult.numfound.md) | number | |
19
+ | [term](./x-adapter-platform.platformpartialresult.term.md) | string | |
20
+
@@ -0,0 +1,11 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-adapter-platform](./x-adapter-platform.md) &gt; [PlatformPartialResult](./x-adapter-platform.platformpartialresult.md) &gt; [numFound](./x-adapter-platform.platformpartialresult.numfound.md)
4
+
5
+ ## PlatformPartialResult.numFound property
6
+
7
+ <b>Signature:</b>
8
+
9
+ ```typescript
10
+ numFound: number;
11
+ ```
@@ -0,0 +1,11 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-adapter-platform](./x-adapter-platform.md) &gt; [PlatformPartialResult](./x-adapter-platform.platformpartialresult.md) &gt; [term](./x-adapter-platform.platformpartialresult.term.md)
4
+
5
+ ## PlatformPartialResult.term property
6
+
7
+ <b>Signature:</b>
8
+
9
+ ```typescript
10
+ term: string;
11
+ ```
@@ -12,6 +12,7 @@ catalog: {
12
12
  facets: PlatformFacet[];
13
13
  numFound: number;
14
14
  spellchecked: string;
15
+ partials: PlatformPartialResult[];
15
16
  tagging: {
16
17
  query: string;
17
18
  };
@@ -17,7 +17,7 @@ export interface PlatformSearchResponse
17
17
  | Property | Type | Description |
18
18
  | --- | --- | --- |
19
19
  | [banner](./x-adapter-platform.platformsearchresponse.banner.md) | { content: [PlatformBanner](./x-adapter-platform.platformbanner.md)<!-- -->\[\]; } | |
20
- | [catalog](./x-adapter-platform.platformsearchresponse.catalog.md) | { content: [PlatformResult](./x-adapter-platform.platformresult.md)<!-- -->\[\]; facets: [PlatformFacet](./x-adapter-platform.platformfacet.md)<!-- -->\[\]; numFound: number; spellchecked: string; tagging: { query: string; }; } | |
20
+ | [catalog](./x-adapter-platform.platformsearchresponse.catalog.md) | { content: [PlatformResult](./x-adapter-platform.platformresult.md)<!-- -->\[\]; facets: [PlatformFacet](./x-adapter-platform.platformfacet.md)<!-- -->\[\]; numFound: number; spellchecked: string; partials: [PlatformPartialResult](./x-adapter-platform.platformpartialresult.md)<!-- -->\[\]; tagging: { query: string; }; } | |
21
21
  | [direct](./x-adapter-platform.platformsearchresponse.direct.md) | { content: [PlatformRedirection](./x-adapter-platform.platformredirection.md)<!-- -->\[\]; } | |
22
22
  | [promoted](./x-adapter-platform.platformsearchresponse.promoted.md) | { content: [PlatformPromoted](./x-adapter-platform.platformpromoted.md)<!-- -->\[\]; } | |
23
23
 
@@ -0,0 +1,21 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [BaseSwitch](./x-components.baseswitch.md)
4
+
5
+ ## BaseSwitch class
6
+
7
+ Basic switch component to handle boolean values. This component receives its selected state using a prop, and emits a Vue event whenever the user clicks it.
8
+
9
+ <b>Signature:</b>
10
+
11
+ ```typescript
12
+ export default class BaseSwitch extends Vue
13
+ ```
14
+ <b>Extends:</b> Vue
15
+
16
+ ## Properties
17
+
18
+ | Property | Modifiers | Type | Description |
19
+ | --- | --- | --- | --- |
20
+ | [value](./x-components.baseswitch.value.md) | | boolean | The selected value of the switch. |
21
+
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [BaseSwitch](./x-components.baseswitch.md) &gt; [value](./x-components.baseswitch.value.md)
4
+
5
+ ## BaseSwitch.value property
6
+
7
+ The selected value of the switch.
8
+
9
+ <b>Signature:</b>
10
+
11
+ ```typescript
12
+ value: boolean;
13
+ ```
@@ -9,7 +9,7 @@ Indicates where the feature is placed.
9
9
  <b>Signature:</b>
10
10
 
11
11
  ```typescript
12
- export declare type FeatureLocation = 'external' | 'no_query' | 'no_results' | 'none' | 'predictive_layer' | 'results' | 'pdp' | 'url_history' | 'url_history_pdp';
12
+ export declare type FeatureLocation = 'external' | 'my_history' | 'no_query' | 'no_results' | 'none' | 'predictive_layer' | 'results' | 'pdp' | 'url_history' | 'url_history_pdp';
13
13
  ```
14
14
 
15
15
  ## Example 1
@@ -45,6 +45,7 @@ X-Components is a library usable everywhere not only for search experiences.
45
45
  | [BaseScroll](./x-components.basescroll.md) | Base scroll component that depending on the user interactivity emits different events for knowing when the user scrolls, the direction of scroll and if user reaches the start or end. |
46
46
  | [BaseSuggestion](./x-components.basesuggestion.md) | Renders a button with a default slot. It receives a query, which should be the query of the module using this component, a suggestion, the [XEvents](./x-components.xevent.md) that will be emitted on click with a given feature.<!-- -->The default slot receives the suggestion and the matched query has props. |
47
47
  | [BaseSuggestions](./x-components.basesuggestions.md) | Paints a list of suggestions passed in by prop. Requires a component for a single suggestion in the default slot for working. |
48
+ | [BaseSwitch](./x-components.baseswitch.md) | Basic switch component to handle boolean values. This component receives its selected state using a prop, and emits a Vue event whenever the user clicks it. |
48
49
  | [BaseTogglePanel](./x-components.basetogglepanel.md) | Simple panel that receives its open state via prop, which is responsible of rendering default slot inside a configurable transition. |
49
50
  | [BaseVariableColumnGrid](./x-components.basevariablecolumngrid.md) | The <code>BaseVariableColumnGrid</code> component is a wrapper of the <code>BaseGrid</code> component that listens to the <code>UserClickedColumnPicker</code> and the <code>ColumnsNumberProvided</code> events and passes the selected number of columns to the grid. It also allows to customize the grid items using the available <code>scopedSlots</code>. |
50
51
  | [BaseXAPI](./x-components.basexapi.md) | Default implementation for [XAPI](./x-components.xapi.md)<!-- -->. |
@@ -0,0 +1,80 @@
1
+ ---
2
+
3
+ title: BaseSwitch
4
+
5
+ ---
6
+
7
+ # BaseSwitch
8
+
9
+ Basic switch component to handle boolean values. This component receives
10
+ its selected state using a prop, and emits a Vue event whenever the user
11
+ clicks it.
12
+
13
+ ## Props
14
+
15
+ | Name | Description | Type | Default |
16
+ | ------------------ | --------------------------------- | -------------------- | ------------- |
17
+ | <code>value</code> | The selected value of the switch. | <code>boolean</code> | <code></code> |
18
+
19
+ ## Events
20
+
21
+ | Event name | Type | Description |
22
+ | ---------- | --------- | ----------- |
23
+ | change | undefined |
24
+
25
+ ## Events
26
+
27
+ This component emits no events.
28
+
29
+ ## See it in action
30
+
31
+ Here you have a basic example of how the switch is rendered.
32
+
33
+ _Try clicking it to see how it changes its state_
34
+
35
+ ```vue live
36
+ <template>
37
+ <BaseSwitch @change="value = !value" :value="value" />
38
+ </template>
39
+
40
+ <script>
41
+ import { BaseSwitch } from "@empathyco/x-components";
42
+
43
+ export default {
44
+ name: "BaseSwitchDemo",
45
+ components: {
46
+ BaseSwitch
47
+ },
48
+ data() {
49
+ return {
50
+ value: false
51
+ };
52
+ }
53
+ };
54
+ </script>
55
+ ```
56
+
57
+ The switch component also supports using the `v-model` directive, to automatically handle its state
58
+ change:
59
+
60
+ ```vue live
61
+ <template>
62
+ <BaseSwitch v-model="value" />
63
+ </template>
64
+
65
+ <script>
66
+ import { BaseSwitch } from "@empathyco/x-components";
67
+
68
+ export default {
69
+ name: "BaseSwitchDemo",
70
+ components: {
71
+ BaseSwitch
72
+ },
73
+ data() {
74
+ return {
75
+ value: false
76
+ };
77
+ }
78
+ };
79
+ </script>
80
+ ```
@@ -0,0 +1,59 @@
1
+ import script from './base-switch.vue_rollup-plugin-vue_script.vue.js';
2
+ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.mjs';
3
+ import __vue_create_injector__ from 'vue-runtime-helpers/dist/inject-style/browser.mjs';
4
+
5
+ /* script */
6
+ const __vue_script__ = script;
7
+
8
+ /* template */
9
+ var __vue_render__ = function () {
10
+ var _vm = this;
11
+ var _h = _vm.$createElement;
12
+ var _c = _vm._self._c || _h;
13
+ return _c(
14
+ "button",
15
+ {
16
+ staticClass: "x-switch",
17
+ class: _vm.cssClasses,
18
+ attrs: { "aria-checked": _vm.value.toString(), role: "switch" },
19
+ on: { click: _vm.toggle },
20
+ },
21
+ [_c("div", { staticClass: "x-switch__handle" })]
22
+ )
23
+ };
24
+ var __vue_staticRenderFns__ = [];
25
+ __vue_render__._withStripped = true;
26
+
27
+ /* style */
28
+ const __vue_inject_styles__ = function (inject) {
29
+ if (!inject) return
30
+ inject("data-v-25cc8ef8_0", { source: ".x-switch[data-v-25cc8ef8] {\n --x-switch-height: var(--x-size-base-05);\n --x-switch-width: calc(2 * (var(--x-switch-height)) + 2 * var(--x-switch-padding));\n --x-switch-background: var(--x-color-base-neutral-70);\n --x-switch-padding: var(--x-size-base-01);\n --x-switch-handle-size: calc(var(--x-switch-height));\n box-sizing: content-box;\n height: var(--x-switch-height);\n padding: var(--x-switch-padding);\n border-radius: var(--x-size-border-radius-base-pill);\n background: var(--x-switch-background);\n width: var(--x-switch-width);\n border: none;\n transition: 0.25s ease-out background-color;\n cursor: pointer;\n}\n.x-switch__handle[data-v-25cc8ef8] {\n background: var(--x-color-base-neutral-100);\n border-radius: 50%;\n height: var(--x-switch-handle-size);\n width: var(--x-switch-handle-size);\n transition: 0.25s ease-out transform;\n transform: translateX(var(--x-switch-translate-x, 0%));\n}\n.x-switch--is-selected[data-v-25cc8ef8] {\n --x-switch-translate-x: calc(var(--x-switch-padding) + var(--x-switch-width) / 2);\n --x-switch-background: var(--x-color-base-neutral-10);\n}\n.x-switch--sm[data-v-25cc8ef8] {\n --x-switch-height: var(--x-size-base-04);\n}\n.x-switch--lg[data-v-25cc8ef8] {\n --x-switch-height: var(--x-size-base-06);\n}", map: undefined, media: undefined });
31
+
32
+ };
33
+ /* scoped */
34
+ const __vue_scope_id__ = "data-v-25cc8ef8";
35
+ /* module identifier */
36
+ const __vue_module_identifier__ = undefined;
37
+ /* functional template */
38
+ const __vue_is_functional_template__ = false;
39
+ /* style inject SSR */
40
+
41
+ /* style inject shadow dom */
42
+
43
+
44
+
45
+ const __vue_component__ = /*#__PURE__*/__vue_normalize__(
46
+ { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
47
+ __vue_inject_styles__,
48
+ __vue_script__,
49
+ __vue_scope_id__,
50
+ __vue_is_functional_template__,
51
+ __vue_module_identifier__,
52
+ false,
53
+ __vue_create_injector__,
54
+ undefined,
55
+ undefined
56
+ );
57
+
58
+ export { __vue_component__ as default };
59
+ //# sourceMappingURL=base-switch.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-switch.vue.js","sources":["../../../src/components/base-switch.vue"],"sourcesContent":["<template>\n <button\n @click=\"toggle\"\n :aria-checked=\"value.toString()\"\n :class=\"cssClasses\"\n class=\"x-switch\"\n role=\"switch\"\n >\n <div class=\"x-switch__handle\" />\n </button>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { VueCSSClasses } from '../utils/types';\n\n /**\n * Basic switch component to handle boolean values. This component receives\n * its selected state using a prop, and emits a Vue event whenever the user\n * clicks it.\n *\n * @public\n */\n @Component({\n model: {\n event: 'change'\n }\n })\n export default class BaseSwitch extends Vue {\n /**\n * The selected value of the switch.\n *\n * @public\n */\n @Prop({ required: true })\n public value!: boolean;\n\n /**\n * Dynamic CSS classes to add to the switch component\n * depending on its internal state.\n *\n * @returns A boolean dictionary with dynamic CSS classes.\n * @internal\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-switch--is-selected': this.value\n };\n }\n\n /**\n * Emits a change event with the desired value of the switch.\n *\n * @internal\n */\n protected toggle(): void {\n this.$emit('change', !this.value);\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .x-switch {\n --x-switch-height: var(--x-size-base-05);\n --x-switch-width: calc(2 * (var(--x-switch-height)) + 2 * var(--x-switch-padding));\n --x-switch-background: var(--x-color-base-neutral-70);\n --x-switch-padding: var(--x-size-base-01);\n --x-switch-handle-size: calc(var(--x-switch-height));\n box-sizing: content-box;\n height: var(--x-switch-height);\n padding: var(--x-switch-padding);\n border-radius: var(--x-size-border-radius-base-pill);\n background: var(--x-switch-background);\n width: var(--x-switch-width);\n border: none;\n transition: 0.25s ease-out background-color;\n cursor: pointer;\n\n &__handle {\n background: var(--x-color-base-neutral-100);\n border-radius: 50%;\n height: var(--x-switch-handle-size);\n width: var(--x-switch-handle-size);\n transition: 0.25s ease-out transform;\n transform: translateX(var(--x-switch-translate-x, 0%));\n }\n\n &--is-selected {\n --x-switch-translate-x: calc(var(--x-switch-padding) + var(--x-switch-width) / 2);\n --x-switch-background: var(--x-color-base-neutral-10);\n }\n\n &--sm {\n --x-switch-height: var(--x-size-base-04);\n }\n\n &--lg {\n --x-switch-height: var(--x-size-base-06);\n }\n }\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits no events.\n\n## See it in action\n\nHere you have a basic example of how the switch is rendered.\n\n_Try clicking it to see how it changes its state_\n\n```vue live\n<template>\n <BaseSwitch @change=\"value = !value\" :value=\"value\" />\n</template>\n\n<script>\n import { BaseSwitch } from '@empathyco/x-components';\n\n export default {\n name: 'BaseSwitchDemo',\n components: {\n BaseSwitch\n },\n data() {\n return {\n value: false\n };\n }\n };\n</script>\n```\n\nThe switch component also supports using the `v-model` directive, to automatically handle its state\nchange:\n\n```vue live\n<template>\n <BaseSwitch v-model=\"value\" />\n</template>\n\n<script>\n import { BaseSwitch } from '@empathyco/x-components';\n\n export default {\n name: 'BaseSwitchDemo',\n components: {\n BaseSwitch\n },\n data() {\n return {\n value: false\n };\n }\n };\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,47 @@
1
+ import { __decorate } from 'tslib';
2
+ import Vue from 'vue';
3
+ import { Prop, Component } from 'vue-property-decorator';
4
+
5
+ /**
6
+ * Basic switch component to handle boolean values. This component receives
7
+ * its selected state using a prop, and emits a Vue event whenever the user
8
+ * clicks it.
9
+ *
10
+ * @public
11
+ */
12
+ let BaseSwitch = class BaseSwitch extends Vue {
13
+ /**
14
+ * Dynamic CSS classes to add to the switch component
15
+ * depending on its internal state.
16
+ *
17
+ * @returns A boolean dictionary with dynamic CSS classes.
18
+ * @internal
19
+ */
20
+ get cssClasses() {
21
+ return {
22
+ 'x-switch--is-selected': this.value
23
+ };
24
+ }
25
+ /**
26
+ * Emits a change event with the desired value of the switch.
27
+ *
28
+ * @internal
29
+ */
30
+ toggle() {
31
+ this.$emit('change', !this.value);
32
+ }
33
+ };
34
+ __decorate([
35
+ Prop({ required: true })
36
+ ], BaseSwitch.prototype, "value", void 0);
37
+ BaseSwitch = __decorate([
38
+ Component({
39
+ model: {
40
+ event: 'change'
41
+ }
42
+ })
43
+ ], BaseSwitch);
44
+ var script = BaseSwitch;
45
+
46
+ export { script as default };
47
+ //# sourceMappingURL=base-switch.vue_rollup-plugin-vue_script.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-switch.vue_rollup-plugin-vue_script.vue.js","sources":["../../../src/components/base-switch.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { VueCSSClasses } from '../utils/types';\n\n/**\n * Basic switch component to handle boolean values. This component receives\n * its selected state using a prop, and emits a Vue event whenever the user\n * clicks it.\n *\n * @public\n */\n@Component({\n model: {\n event: 'change'\n }\n})\nexport default class BaseSwitch extends Vue {\n /**\n * The selected value of the switch.\n *\n * @public\n */\n @Prop({ required: true })\n public value!: boolean;\n\n /**\n * Dynamic CSS classes to add to the switch component\n * depending on its internal state.\n *\n * @returns A boolean dictionary with dynamic CSS classes.\n * @internal\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-switch--is-selected': this.value\n };\n }\n\n /**\n * Emits a change event with the desired value of the switch.\n *\n * @internal\n */\n protected toggle(): void {\n this.$emit('change', !this.value);\n }\n}\n"],"names":[],"mappings":";;;;AAiBA;;;;;;;AAYA,IAAqB,UAAU,GAA/B,MAAqB,UAAW,SAAQ,GAAG;;;;;;;;IAgBzC,IAAc,UAAU;QACtB,OAAO;YACL,uBAAuB,EAAE,IAAI,CAAC,KAAK;SACpC,CAAC;KACH;;;;;;IAOS,MAAM;QACd,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;CACF,CAAA;AAvBC;IADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;yCACF;AAPJ,UAAU;IAL9B,SAAS,CAAC;QACT,KAAK,EAAE;YACL,KAAK,EAAE,QAAQ;SAChB;KACF,CAAC;GACmB,UAAU,CA8B9B;aA9BoB,UAAU;;;;"}
package/js/index.js CHANGED
@@ -103,6 +103,7 @@ export { default as BaseEventButton } from './components/base-event-button.vue.j
103
103
  export { default as BaseGrid } from './components/base-grid.vue.js';
104
104
  export { default as BaseKeyboardNavigation } from './components/base-keyboard-navigation.vue.js';
105
105
  export { default as BaseRating } from './components/base-rating.vue.js';
106
+ export { default as BaseSwitch } from './components/base-switch.vue.js';
106
107
  export { default as BaseVariableColumnGrid } from './components/base-variable-column-grid.vue.js';
107
108
  export { default as GlobalXBus } from './components/global-x-bus.vue.js';
108
109
  export { default as ItemsList } from './components/items-list.vue.js';
package/js/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -106,6 +106,7 @@ import '../../../components/base-event-button.vue.js';
106
106
  import '../../../components/base-grid.vue.js';
107
107
  import '../../../components/base-keyboard-navigation.vue.js';
108
108
  import '../../../components/base-rating.vue.js';
109
+ import '../../../components/base-switch.vue.js';
109
110
  import '../../../components/base-variable-column-grid.vue.js';
110
111
  import '../../../components/global-x-bus.vue_rollup-plugin-vue_script.vue.js';
111
112
  import '../../../components/items-list.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"extra-params.vue_rollup-plugin-vue_script.vue.js","sources":["../../../../../src/x-modules/extra-params/components/extra-params.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\nimport { Dictionary } from '@empathyco/x-utils';\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { State, xComponentMixin, XEmit } from '../../../components';\nimport { extraParamsXModule } from '../x-module';\n\n/**\n * It emits a {@link ExtraParamsXEvents.ExtraParamsProvided} with the values\n * received as a prop.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(extraParamsXModule)]\n})\nexport default class ExtraParams extends Vue {\n /**\n * Emits the initial extra params, overriding with the state extra params, just in case, those\n * values were already set by XComponents initialization (url, plugin config, etc.).\n */\n mounted(): void {\n this.$x.emit('ExtraParamsInitialized', { ...this.values });\n this.$x.emit('ExtraParamsProvided', { ...this.values, ...this.storeExtraParams });\n }\n\n /**\n * (Required) A Dictionary where the keys are the extra param names and its values.\n *\n * @remarks Emits the {@link ExtraParamsXEvents.ExtraParamsProvided} when the\n * component is rendered or the values changed.\n *\n * @public\n */\n @XEmit('ExtraParamsProvided', { deep: true })\n @Prop({ required: true })\n public values!: Dictionary<unknown>;\n\n /**\n * State extra params. Used to override the initial extra params.\n */\n @State('extraParams', 'params')\n public storeExtraParams!: Dictionary<unknown>;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n render(): void {}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;;;;;AASA,IAAqB,WAAW,GAAhC,MAAqB,WAAY,SAAQ,GAAG;;;;;IAK1C,OAAO;QACL,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;KACnF;;IAqBD,MAAM,MAAW;CAClB,CAAA;AAVC;IAFC,KAAK,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;2CACW;AAMpC;IADC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC;qDACe;AA1B3B,WAAW;IAH/B,SAAS,CAAC;QACT,MAAM,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;KAC9C,CAAC;GACmB,WAAW,CA8B/B;aA9BoB,WAAW;;;;"}
1
+ {"version":3,"file":"extra-params.vue_rollup-plugin-vue_script.vue.js","sources":["../../../../../src/x-modules/extra-params/components/extra-params.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\nimport { Dictionary } from '@empathyco/x-utils';\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { State, xComponentMixin, XEmit } from '../../../components';\nimport { extraParamsXModule } from '../x-module';\n\n/**\n * It emits a {@link ExtraParamsXEvents.ExtraParamsProvided} with the values\n * received as a prop.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(extraParamsXModule)]\n})\nexport default class ExtraParams extends Vue {\n /**\n * Emits the initial extra params, overriding with the state extra params, just in case, those\n * values were already set by XComponents initialization (url, plugin config, etc.).\n */\n mounted(): void {\n this.$x.emit('ExtraParamsInitialized', { ...this.values });\n this.$x.emit('ExtraParamsProvided', { ...this.values, ...this.storeExtraParams });\n }\n\n /**\n * (Required) A Dictionary where the keys are the extra param names and its values.\n *\n * @remarks Emits the {@link ExtraParamsXEvents.ExtraParamsProvided} when the\n * component is rendered or the values changed.\n *\n * @public\n */\n @XEmit('ExtraParamsProvided', { deep: true })\n @Prop({ required: true })\n public values!: Dictionary<unknown>;\n\n /**\n * State extra params. Used to override the initial extra params.\n */\n @State('extraParams', 'params')\n public storeExtraParams!: Dictionary<unknown>;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n render(): void {}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;;;;;AASA,IAAqB,WAAW,GAAhC,MAAqB,WAAY,SAAQ,GAAG;;;;;IAK1C,OAAO;QACL,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;KACnF;;IAqBD,MAAM,MAAW;CAClB,CAAA;AAVC;IAFC,KAAK,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;2CACW;AAMpC;IADC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC;qDACe;AA1B3B,WAAW;IAH/B,SAAS,CAAC;QACT,MAAM,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;KAC9C,CAAC;GACmB,WAAW,CA8B/B;aA9BoB,WAAW;;;;"}
@@ -106,6 +106,7 @@ import '../../../components/base-event-button.vue.js';
106
106
  import '../../../components/base-grid.vue.js';
107
107
  import '../../../components/base-keyboard-navigation.vue.js';
108
108
  import '../../../components/base-rating.vue.js';
109
+ import '../../../components/base-switch.vue.js';
109
110
  import '../../../components/base-variable-column-grid.vue.js';
110
111
  import '../../../components/global-x-bus.vue_rollup-plugin-vue_script.vue.js';
111
112
  import '../../../components/items-list.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"renderless-extra-param.vue_rollup-plugin-vue_script.vue.js","sources":["../../../../../src/x-modules/extra-params/components/renderless-extra-param.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\nimport { Dictionary } from '@empathyco/x-utils';\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { NoElement, State, xComponentMixin } from '../../../components';\nimport { extraParamsXModule } from '../x-module';\n\n/**\n * It emits a {@link ExtraParamsXEvents.UserChangedExtraParams} when the `updateValue`\n * is called.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(extraParamsXModule)],\n components: {\n NoElement\n }\n})\nexport default class RenderlessExtraParam extends Vue {\n /**\n * The extra param's name.\n *\n * @public\n */\n @Prop({ required: true })\n public name!: string;\n\n /**\n * A dictionary with the extra params in the store state.\n *\n * @public\n */\n @State('extraParams', 'params')\n public stateParams!: Dictionary<unknown>;\n\n /**\n * It returns the value of the extra param from the store.\n *\n * @returns - The value from the store.\n *\n * @internal\n */\n protected get value(): unknown {\n return this.stateParams[this.name];\n }\n\n /**\n * It sets the new value to the store.\n *\n * @param newValue - The new value of the extra param.\n *\n * @internal\n */\n protected updateValue(newValue: unknown): void {\n this.$x.emit('UserChangedExtraParams', { [this.name]: newValue });\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA;;;;;;AAYA,IAAqB,oBAAoB,GAAzC,MAAqB,oBAAqB,SAAQ,GAAG;;;;;;;;IAwBnD,IAAc,KAAK;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpC;;;;;;;;IASS,WAAW,CAAC,QAAiB;QACrC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC;KACnE;CACF,CAAA;AA/BC;IADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;kDACJ;AAQrB;IADC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC;yDACU;AAftB,oBAAoB;IANxC,SAAS,CAAC;QACT,MAAM,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAC7C,UAAU,EAAE;YACV,SAAS;SACV;KACF,CAAC;GACmB,oBAAoB,CAsCxC;aAtCoB,oBAAoB;;;;"}
1
+ {"version":3,"file":"renderless-extra-param.vue_rollup-plugin-vue_script.vue.js","sources":["../../../../../src/x-modules/extra-params/components/renderless-extra-param.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\nimport { Dictionary } from '@empathyco/x-utils';\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { NoElement, State, xComponentMixin } from '../../../components';\nimport { extraParamsXModule } from '../x-module';\n\n/**\n * It emits a {@link ExtraParamsXEvents.UserChangedExtraParams} when the `updateValue`\n * is called.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(extraParamsXModule)],\n components: {\n NoElement\n }\n})\nexport default class RenderlessExtraParam extends Vue {\n /**\n * The extra param's name.\n *\n * @public\n */\n @Prop({ required: true })\n public name!: string;\n\n /**\n * A dictionary with the extra params in the store state.\n *\n * @public\n */\n @State('extraParams', 'params')\n public stateParams!: Dictionary<unknown>;\n\n /**\n * It returns the value of the extra param from the store.\n *\n * @returns - The value from the store.\n *\n * @internal\n */\n protected get value(): unknown {\n return this.stateParams[this.name];\n }\n\n /**\n * It sets the new value to the store.\n *\n * @param newValue - The new value of the extra param.\n *\n * @internal\n */\n protected updateValue(newValue: unknown): void {\n this.$x.emit('UserChangedExtraParams', { [this.name]: newValue });\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA;;;;;;AAYA,IAAqB,oBAAoB,GAAzC,MAAqB,oBAAqB,SAAQ,GAAG;;;;;;;;IAwBnD,IAAc,KAAK;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpC;;;;;;;;IASS,WAAW,CAAC,QAAiB;QACrC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC;KACnE;CACF,CAAA;AA/BC;IADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;kDACJ;AAQrB;IADC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC;yDACU;AAftB,oBAAoB;IANxC,SAAS,CAAC;QACT,MAAM,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAC7C,UAAU,EAAE;YACV,SAAS;SACV;KACF,CAAC;GACmB,oBAAoB,CAsCxC;aAtCoB,oBAAoB;;;;"}
@@ -106,6 +106,7 @@ import __vue_component__ from '../../../components/base-event-button.vue.js';
106
106
  import '../../../components/base-grid.vue.js';
107
107
  import '../../../components/base-keyboard-navigation.vue.js';
108
108
  import '../../../components/base-rating.vue.js';
109
+ import '../../../components/base-switch.vue.js';
109
110
  import '../../../components/base-variable-column-grid.vue.js';
110
111
  import '../../../components/global-x-bus.vue_rollup-plugin-vue_script.vue.js';
111
112
  import '../../../components/items-list.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"clear-filters.vue_rollup-plugin-vue_script.vue.js","sources":["../../../../../src/x-modules/facets/components/clear-filters.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Component from 'vue-class-component';\nimport { xComponentMixin } from '../../../components';\nimport BaseEventButton from '../../../components/base-event-button.vue';\nimport { VueCSSClasses } from '../../../utils';\nimport { XEventsTypes } from '../../../wiring';\nimport { facetsXModule } from '../x-module';\nimport FacetsMixin from './facets.mixin';\n\n/**\n * Renders a simple button, emitting the needed events when clicked.\n *\n * @remarks It extends {@link FacetsMixin}.\n *\n * @public\n */\n@Component({\n components: { BaseEventButton },\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class ClearFilters extends FacetsMixin {\n /**\n * The events that will be emitted when the button clear filters is clicked.\n *\n * @returns The events to be emitted when the button clear filters is clicked.\n * @internal\n */\n protected get events(): Partial<XEventsTypes> {\n return this.facetsIds\n ? {\n UserClickedClearAllFilters: this.facetsIds\n }\n : {\n UserClickedClearAllFilters: undefined\n };\n }\n\n /**\n * Dynamic CSS classes to apply to the component.\n *\n * @returns The dynamic CSS classes to apply to the component.\n * @internal\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-clear-filters--has-not-selected-filters': !this.hasSelectedFilters,\n 'x-clear-filters--has-selected-filters': this.hasSelectedFilters\n };\n }\n}\n"],"names":["BaseEventButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA;;;;;;;AAWA,IAAqB,YAAY,GAAjC,MAAqB,YAAa,SAAQ,WAAW;;;;;;;IAOnD,IAAc,MAAM;QAClB,OAAO,IAAI,CAAC,SAAS;cACjB;gBACE,0BAA0B,EAAE,IAAI,CAAC,SAAS;aAC3C;cACD;gBACE,0BAA0B,EAAE,SAAS;aACtC,CAAC;KACP;;;;;;;IAQD,IAAc,UAAU;QACtB,OAAO;YACL,2CAA2C,EAAE,CAAC,IAAI,CAAC,kBAAkB;YACrE,uCAAuC,EAAE,IAAI,CAAC,kBAAkB;SACjE,CAAC;KACH;CACF,CAAA;AA7BoB,YAAY;IAJhC,SAAS,CAAC;QACT,UAAU,EAAE,mBAAEA,iBAAe,EAAE;QAC/B,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACzC,CAAC;GACmB,YAAY,CA6BhC;aA7BoB,YAAY;;;;"}
1
+ {"version":3,"file":"clear-filters.vue_rollup-plugin-vue_script.vue.js","sources":["../../../../../src/x-modules/facets/components/clear-filters.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Component from 'vue-class-component';\nimport { xComponentMixin } from '../../../components';\nimport BaseEventButton from '../../../components/base-event-button.vue';\nimport { VueCSSClasses } from '../../../utils';\nimport { XEventsTypes } from '../../../wiring';\nimport { facetsXModule } from '../x-module';\nimport FacetsMixin from './facets.mixin';\n\n/**\n * Renders a simple button, emitting the needed events when clicked.\n *\n * @remarks It extends {@link FacetsMixin}.\n *\n * @public\n */\n@Component({\n components: { BaseEventButton },\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class ClearFilters extends FacetsMixin {\n /**\n * The events that will be emitted when the button clear filters is clicked.\n *\n * @returns The events to be emitted when the button clear filters is clicked.\n * @internal\n */\n protected get events(): Partial<XEventsTypes> {\n return this.facetsIds\n ? {\n UserClickedClearAllFilters: this.facetsIds\n }\n : {\n UserClickedClearAllFilters: undefined\n };\n }\n\n /**\n * Dynamic CSS classes to apply to the component.\n *\n * @returns The dynamic CSS classes to apply to the component.\n * @internal\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-clear-filters--has-not-selected-filters': !this.hasSelectedFilters,\n 'x-clear-filters--has-selected-filters': this.hasSelectedFilters\n };\n }\n}\n"],"names":["BaseEventButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA;;;;;;;AAWA,IAAqB,YAAY,GAAjC,MAAqB,YAAa,SAAQ,WAAW;;;;;;;IAOnD,IAAc,MAAM;QAClB,OAAO,IAAI,CAAC,SAAS;cACjB;gBACE,0BAA0B,EAAE,IAAI,CAAC,SAAS;aAC3C;cACD;gBACE,0BAA0B,EAAE,SAAS;aACtC,CAAC;KACP;;;;;;;IAQD,IAAc,UAAU;QACtB,OAAO;YACL,2CAA2C,EAAE,CAAC,IAAI,CAAC,kBAAkB;YACrE,uCAAuC,EAAE,IAAI,CAAC,kBAAkB;SACjE,CAAC;KACH;CACF,CAAA;AA7BoB,YAAY;IAJhC,SAAS,CAAC;QACT,UAAU,EAAE,mBAAEA,iBAAe,EAAE;QAC/B,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACzC,CAAC;GACmB,YAAY,CA6BhC;aA7BoB,YAAY;;;;"}
@@ -106,6 +106,7 @@ import '../../../../components/base-event-button.vue.js';
106
106
  import '../../../../components/base-grid.vue.js';
107
107
  import '../../../../components/base-keyboard-navigation.vue.js';
108
108
  import '../../../../components/base-rating.vue.js';
109
+ import '../../../../components/base-switch.vue.js';
109
110
  import '../../../../components/base-variable-column-grid.vue.js';
110
111
  import '../../../../components/global-x-bus.vue_rollup-plugin-vue_script.vue.js';
111
112
  import '../../../../components/items-list.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"facets-provider.vue_rollup-plugin-vue_script.vue.js","sources":["../../../../../../src/x-modules/facets/components/facets/facets-provider.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\nimport { Facet, Filter } from '@empathyco/x-types';\nimport Vue from 'vue';\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { XOn } from '../../../../components';\nimport { xComponentMixin } from '../../../../components/x-component.mixin';\nimport { areFiltersDifferent } from '../../../../utils/filters';\nimport { FacetsGroup } from '../../service/types';\nimport { GroupId } from '../../store/types';\nimport { facetsXModule } from '../../x-module';\n\n/**\n * This component allows to provide facets by prop, to add them to the state of the\n * `Facets X-Module`. These facets will be added to the `Facets X-Module` state together with\n * the facets emitted by the `Search X-Module` through the {@link SearchXEvents.FacetsChanged}\n * event.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class FacetsProvider extends Vue {\n /**\n * An facet group identifier to distinguish the provided facets from other facets like the\n * `Search X-Module` facets.\n *\n * @public\n */\n @Prop({ default: 'provided-facets' })\n public groupId!: GroupId;\n\n /**\n * The facets to provide to the `Facets X-Module` state. They have to include the\n * {@link @empathyco/x-types#Filter | filters}.\n *\n * @internal\n */\n @Prop({ required: true })\n public facets!: Facet[];\n\n /**\n * Temporarily stores the selected filters from the {@link FacetsProvider.facets} prop.\n * This is necessary to handle the {@link FacetsXEvents.UserChangedSelectedFilters} event.\n *\n * @internal\n */\n protected selectedFilters: Filter[] | null = null;\n\n /**\n * A computed property to group the facets and the groupId. This is used by the watcher.\n *\n * @returns The FacetGroup with the facets and the group id.\n *\n * @internal\n */\n protected get facetsGroup(): FacetsGroup {\n return { id: this.groupId, facets: this.facets };\n }\n\n /**\n * Emits the {@link FacetsXEvents.UserChangedSelectedFilters} event when the user changes\n * the selected filters.\n *\n * @param selectedFilters - The new list of selected filters.\n * @internal\n */\n @XOn('SelectedFiltersChanged')\n emitSelectedFiltersChanged(selectedFilters: Filter[]): void {\n if (\n this.selectedFilters === null ||\n areFiltersDifferent(this.selectedFilters, selectedFilters)\n ) {\n this.$x.emit('UserChangedSelectedFilters', selectedFilters);\n }\n this.selectedFilters = null;\n }\n\n /**\n * Emits the {@link FacetsXEvents.FacetsGroupProvided} event with the\n * {@link FacetsProvider.facetsGroup} as payload. It also extracts and saves the selected\n * filters.\n */\n @Watch('facetsGroup', { immediate: true })\n provideFacets(): void {\n if (this.facetsGroup.facets) {\n this.$x.emit('FacetsGroupProvided', this.facetsGroup);\n this.extractSelectedFilters(this.facets);\n }\n }\n\n /**\n * Extracts the selected filters from the facets and stores them in the\n * {@link FacetsProvider.selectedFilters} property.\n *\n * @param facets - The facets from whom extract the selected filters.\n * @internal\n */\n protected extractSelectedFilters(facets: Facet[]): void {\n this.selectedFilters = facets\n .flatMap(facet => facet.filters)\n .filter(filter => filter.selected);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n render(): void {}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA;;;;;;;;AAWA,IAAqB,cAAc,GAAnC,MAAqB,cAAe,SAAQ,GAAG;IAA/C;;;;;;;;QAyBY,oBAAe,GAAoB,IAAI,CAAC;KA2DnD;;;;;;;;IAlDC,IAAc,WAAW;QACvB,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;KAClD;;;;;;;;IAUD,0BAA0B,CAAC,eAAyB;QAClD,IACE,IAAI,CAAC,eAAe,KAAK,IAAI;YAC7B,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,EAC1D;YACA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,eAAe,CAAC,CAAC;SAC7D;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC7B;;;;;;IAQD,aAAa;QACX,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC3B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACtD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1C;KACF;;;;;;;;IASS,sBAAsB,CAAC,MAAe;QAC9C,IAAI,CAAC,eAAe,GAAG,MAAM;aAC1B,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;aAC/B,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;KACtC;;IAGD,MAAM,MAAW;CAClB,CAAA;AA5EC;IADC,IAAI,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;+CACZ;AASzB;IADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8CACD;AA6BxB;IADC,GAAG,CAAC,wBAAwB,CAAC;gEAS7B;AAQD;IADC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;mDAMzC;AAnEkB,cAAc;IAHlC,SAAS,CAAC;QACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACzC,CAAC;GACmB,cAAc,CAoFlC;aApFoB,cAAc;;;;"}
1
+ {"version":3,"file":"facets-provider.vue_rollup-plugin-vue_script.vue.js","sources":["../../../../../../src/x-modules/facets/components/facets/facets-provider.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\nimport { Facet, Filter } from '@empathyco/x-types';\nimport Vue from 'vue';\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { XOn } from '../../../../components';\nimport { xComponentMixin } from '../../../../components/x-component.mixin';\nimport { areFiltersDifferent } from '../../../../utils/filters';\nimport { FacetsGroup } from '../../service/types';\nimport { GroupId } from '../../store/types';\nimport { facetsXModule } from '../../x-module';\n\n/**\n * This component allows to provide facets by prop, to add them to the state of the\n * `Facets X-Module`. These facets will be added to the `Facets X-Module` state together with\n * the facets emitted by the `Search X-Module` through the {@link SearchXEvents.FacetsChanged}\n * event.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class FacetsProvider extends Vue {\n /**\n * An facet group identifier to distinguish the provided facets from other facets like the\n * `Search X-Module` facets.\n *\n * @public\n */\n @Prop({ default: 'provided-facets' })\n public groupId!: GroupId;\n\n /**\n * The facets to provide to the `Facets X-Module` state. They have to include the\n * {@link @empathyco/x-types#Filter | filters}.\n *\n * @internal\n */\n @Prop({ required: true })\n public facets!: Facet[];\n\n /**\n * Temporarily stores the selected filters from the {@link FacetsProvider.facets} prop.\n * This is necessary to handle the {@link FacetsXEvents.UserChangedSelectedFilters} event.\n *\n * @internal\n */\n protected selectedFilters: Filter[] | null = null;\n\n /**\n * A computed property to group the facets and the groupId. This is used by the watcher.\n *\n * @returns The FacetGroup with the facets and the group id.\n *\n * @internal\n */\n protected get facetsGroup(): FacetsGroup {\n return { id: this.groupId, facets: this.facets };\n }\n\n /**\n * Emits the {@link FacetsXEvents.UserChangedSelectedFilters} event when the user changes\n * the selected filters.\n *\n * @param selectedFilters - The new list of selected filters.\n * @internal\n */\n @XOn('SelectedFiltersChanged')\n emitSelectedFiltersChanged(selectedFilters: Filter[]): void {\n if (\n this.selectedFilters === null ||\n areFiltersDifferent(this.selectedFilters, selectedFilters)\n ) {\n this.$x.emit('UserChangedSelectedFilters', selectedFilters);\n }\n this.selectedFilters = null;\n }\n\n /**\n * Emits the {@link FacetsXEvents.FacetsGroupProvided} event with the\n * {@link FacetsProvider.facetsGroup} as payload. It also extracts and saves the selected\n * filters.\n */\n @Watch('facetsGroup', { immediate: true })\n provideFacets(): void {\n if (this.facetsGroup.facets) {\n this.$x.emit('FacetsGroupProvided', this.facetsGroup);\n this.extractSelectedFilters(this.facets);\n }\n }\n\n /**\n * Extracts the selected filters from the facets and stores them in the\n * {@link FacetsProvider.selectedFilters} property.\n *\n * @param facets - The facets from whom extract the selected filters.\n * @internal\n */\n protected extractSelectedFilters(facets: Facet[]): void {\n this.selectedFilters = facets\n .flatMap(facet => facet.filters)\n .filter(filter => filter.selected);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n render(): void {}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA;;;;;;;;AAWA,IAAqB,cAAc,GAAnC,MAAqB,cAAe,SAAQ,GAAG;IAA/C;;;;;;;;QAyBY,oBAAe,GAAoB,IAAI,CAAC;KA2DnD;;;;;;;;IAlDC,IAAc,WAAW;QACvB,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;KAClD;;;;;;;;IAUD,0BAA0B,CAAC,eAAyB;QAClD,IACE,IAAI,CAAC,eAAe,KAAK,IAAI;YAC7B,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,EAC1D;YACA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,eAAe,CAAC,CAAC;SAC7D;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC7B;;;;;;IAQD,aAAa;QACX,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC3B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACtD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1C;KACF;;;;;;;;IASS,sBAAsB,CAAC,MAAe;QAC9C,IAAI,CAAC,eAAe,GAAG,MAAM;aAC1B,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;aAC/B,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;KACtC;;IAGD,MAAM,MAAW;CAClB,CAAA;AA5EC;IADC,IAAI,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;+CACZ;AASzB;IADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8CACD;AA6BxB;IADC,GAAG,CAAC,wBAAwB,CAAC;gEAS7B;AAQD;IADC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;mDAMzC;AAnEkB,cAAc;IAHlC,SAAS,CAAC;QACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACzC,CAAC;GACmB,cAAc,CAoFlC;aApFoB,cAAc;;;;"}