@searchspring/snap-preact-components 0.20.2 → 0.20.5
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/dist/cjs/components/Atoms/Merchandising/InlineBanner.d.ts +1 -0
- package/dist/cjs/components/Atoms/Merchandising/InlineBanner.d.ts.map +1 -1
- package/dist/cjs/components/Atoms/Merchandising/InlineBanner.js +5 -3
- package/dist/cjs/components/Atoms/Merchandising/InlineBanner.stories.d.ts +9 -0
- package/dist/cjs/components/Atoms/Merchandising/InlineBanner.stories.d.ts.map +1 -1
- package/dist/cjs/components/Atoms/Merchandising/InlineBanner.stories.js +8 -0
- package/dist/cjs/components/Molecules/Carousel/Carousel.d.ts +37 -2
- package/dist/cjs/components/Molecules/Carousel/Carousel.d.ts.map +1 -1
- package/dist/cjs/components/Molecules/Carousel/Carousel.js +26 -11
- package/dist/cjs/components/Molecules/Carousel/Carousel.stories.d.ts +15 -0
- package/dist/cjs/components/Molecules/Carousel/Carousel.stories.d.ts.map +1 -1
- package/dist/cjs/components/Molecules/Carousel/Carousel.stories.js +10 -0
- package/dist/cjs/components/Molecules/FacetGridOptions/FacetGridOptions.d.ts +2 -1
- package/dist/cjs/components/Molecules/FacetGridOptions/FacetGridOptions.d.ts.map +1 -1
- package/dist/cjs/components/Molecules/FacetGridOptions/FacetGridOptions.js +6 -2
- package/dist/cjs/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.d.ts +2 -1
- package/dist/cjs/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.d.ts.map +1 -1
- package/dist/cjs/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.js +6 -2
- package/dist/cjs/components/Molecules/FacetListOptions/FacetListOptions.d.ts +2 -1
- package/dist/cjs/components/Molecules/FacetListOptions/FacetListOptions.d.ts.map +1 -1
- package/dist/cjs/components/Molecules/FacetListOptions/FacetListOptions.js +6 -2
- package/dist/cjs/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.d.ts +2 -1
- package/dist/cjs/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.d.ts.map +1 -1
- package/dist/cjs/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.js +6 -2
- package/dist/cjs/components/Molecules/Result/Result.d.ts +1 -0
- package/dist/cjs/components/Molecules/Result/Result.d.ts.map +1 -1
- package/dist/cjs/components/Molecules/Result/Result.js +5 -3
- package/dist/cjs/components/Molecules/Result/Result.stories.d.ts +9 -0
- package/dist/cjs/components/Molecules/Result/Result.stories.d.ts.map +1 -1
- package/dist/cjs/components/Molecules/Result/Result.stories.js +8 -0
- package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.d.ts +3 -2
- package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.js +52 -52
- package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.stories.d.ts +18 -0
- package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.stories.d.ts.map +1 -1
- package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.stories.js +16 -0
- package/dist/cjs/components/Organisms/Recommendation/Recommendation.d.ts +2 -2
- package/dist/cjs/components/Organisms/Recommendation/Recommendation.d.ts.map +1 -1
- package/dist/cjs/components/Organisms/Recommendation/Recommendation.js +9 -36
- package/dist/cjs/components/Organisms/Results/Results.d.ts +1 -7
- package/dist/cjs/components/Organisms/Results/Results.d.ts.map +1 -1
- package/dist/cjs/hooks/useDisplaySettings.d.ts +1 -1
- package/dist/cjs/hooks/useDisplaySettings.d.ts.map +1 -1
- package/dist/cjs/types.d.ts +6 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/components/Atoms/Merchandising/InlineBanner.d.ts +1 -0
- package/dist/esm/components/Atoms/Merchandising/InlineBanner.d.ts.map +1 -1
- package/dist/esm/components/Atoms/Merchandising/InlineBanner.js +6 -4
- package/dist/esm/components/Atoms/Merchandising/InlineBanner.stories.d.ts +9 -0
- package/dist/esm/components/Atoms/Merchandising/InlineBanner.stories.d.ts.map +1 -1
- package/dist/esm/components/Atoms/Merchandising/InlineBanner.stories.js +9 -0
- package/dist/esm/components/Molecules/Carousel/Carousel.d.ts +37 -2
- package/dist/esm/components/Molecules/Carousel/Carousel.d.ts.map +1 -1
- package/dist/esm/components/Molecules/Carousel/Carousel.js +30 -10
- package/dist/esm/components/Molecules/Carousel/Carousel.stories.d.ts +15 -0
- package/dist/esm/components/Molecules/Carousel/Carousel.stories.d.ts.map +1 -1
- package/dist/esm/components/Molecules/Carousel/Carousel.stories.js +11 -0
- package/dist/esm/components/Molecules/FacetGridOptions/FacetGridOptions.d.ts +2 -1
- package/dist/esm/components/Molecules/FacetGridOptions/FacetGridOptions.d.ts.map +1 -1
- package/dist/esm/components/Molecules/FacetGridOptions/FacetGridOptions.js +4 -1
- package/dist/esm/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.d.ts +2 -1
- package/dist/esm/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.d.ts.map +1 -1
- package/dist/esm/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.js +4 -1
- package/dist/esm/components/Molecules/FacetListOptions/FacetListOptions.d.ts +2 -1
- package/dist/esm/components/Molecules/FacetListOptions/FacetListOptions.d.ts.map +1 -1
- package/dist/esm/components/Molecules/FacetListOptions/FacetListOptions.js +4 -1
- package/dist/esm/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.d.ts +2 -1
- package/dist/esm/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.d.ts.map +1 -1
- package/dist/esm/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.js +4 -1
- package/dist/esm/components/Molecules/Result/Result.d.ts +1 -0
- package/dist/esm/components/Molecules/Result/Result.d.ts.map +1 -1
- package/dist/esm/components/Molecules/Result/Result.js +5 -3
- package/dist/esm/components/Molecules/Result/Result.stories.d.ts +9 -0
- package/dist/esm/components/Molecules/Result/Result.stories.d.ts.map +1 -1
- package/dist/esm/components/Molecules/Result/Result.stories.js +9 -0
- package/dist/esm/components/Organisms/Autocomplete/Autocomplete.d.ts +3 -2
- package/dist/esm/components/Organisms/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/esm/components/Organisms/Autocomplete/Autocomplete.js +52 -51
- package/dist/esm/components/Organisms/Autocomplete/Autocomplete.stories.d.ts +18 -0
- package/dist/esm/components/Organisms/Autocomplete/Autocomplete.stories.d.ts.map +1 -1
- package/dist/esm/components/Organisms/Autocomplete/Autocomplete.stories.js +18 -0
- package/dist/esm/components/Organisms/Recommendation/Recommendation.d.ts +2 -2
- package/dist/esm/components/Organisms/Recommendation/Recommendation.d.ts.map +1 -1
- package/dist/esm/components/Organisms/Recommendation/Recommendation.js +15 -38
- package/dist/esm/components/Organisms/Results/Results.d.ts +1 -7
- package/dist/esm/components/Organisms/Results/Results.d.ts.map +1 -1
- package/dist/esm/hooks/useDisplaySettings.d.ts +1 -1
- package/dist/esm/hooks/useDisplaySettings.d.ts.map +1 -1
- package/dist/esm/types.d.ts +6 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +11 -11
|
@@ -160,6 +160,21 @@ declare const _default: {
|
|
|
160
160
|
type: string;
|
|
161
161
|
};
|
|
162
162
|
};
|
|
163
|
+
autoAdjustSlides: {
|
|
164
|
+
defaultValue: boolean;
|
|
165
|
+
description: string;
|
|
166
|
+
table: {
|
|
167
|
+
type: {
|
|
168
|
+
summary: string;
|
|
169
|
+
};
|
|
170
|
+
defaultValue: {
|
|
171
|
+
summary: boolean;
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
control: {
|
|
175
|
+
type: string;
|
|
176
|
+
};
|
|
177
|
+
};
|
|
163
178
|
onNextButtonClick: {
|
|
164
179
|
description: string;
|
|
165
180
|
table: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/Carousel/Carousel.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAY,CAAC,EAAE,MAAM,QAAQ,CAAC
|
|
1
|
+
{"version":3,"file":"Carousel.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/Carousel/Carousel.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAY,CAAC,EAAE,MAAM,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASrC,wBAqJE;AAGF,eAAO,MAAM,MAAM;;;;;;;CAQlB,CAAC;AAOF,eAAO,MAAM,KAAK,+BAajB,CAAC"}
|
|
@@ -95,6 +95,17 @@ export default {
|
|
|
95
95
|
},
|
|
96
96
|
control: { type: 'object' },
|
|
97
97
|
},
|
|
98
|
+
autoAdjustSlides: {
|
|
99
|
+
defaultValue: true,
|
|
100
|
+
description: 'If true and children length is less than the current breakpoint slidesPerView value, slidesPerView and slidesPerGroup will be set to the children length and loop to false',
|
|
101
|
+
table: {
|
|
102
|
+
type: {
|
|
103
|
+
summary: 'boolean',
|
|
104
|
+
},
|
|
105
|
+
defaultValue: { summary: true },
|
|
106
|
+
},
|
|
107
|
+
control: { type: 'boolean' },
|
|
108
|
+
},
|
|
98
109
|
onNextButtonClick: {
|
|
99
110
|
description: 'Carousel next button click event handler',
|
|
100
111
|
table: {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { ComponentProps, ValueFacetValue } from '../../../types';
|
|
2
3
|
export declare const FacetGridOptions: ((properties: FacetGridOptionsProps) => JSX.Element) & {
|
|
3
4
|
displayName: string;
|
|
@@ -6,7 +7,7 @@ export interface FacetGridOptionsProps extends ComponentProps {
|
|
|
6
7
|
values: ValueFacetValue[];
|
|
7
8
|
columns?: number;
|
|
8
9
|
gapSize?: string;
|
|
9
|
-
onClick?: (e:
|
|
10
|
+
onClick?: (e: React.MouseEvent) => void;
|
|
10
11
|
previewOnFocus?: boolean;
|
|
11
12
|
valueProps?: any;
|
|
12
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetGridOptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/FacetGridOptions/FacetGridOptions.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAiEjE,eAAO,MAAM,gBAAgB,gBAAyB,qBAAqB,KAAG,WAAW;;
|
|
1
|
+
{"version":3,"file":"FacetGridOptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/FacetGridOptions/FacetGridOptions.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAiEjE,eAAO,MAAM,gBAAgB,gBAAyB,qBAAqB,KAAG,WAAW;;CAoDvF,CAAC;AAEH,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC5D,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,GAAG,CAAC;CACjB"}
|
|
@@ -81,7 +81,10 @@ export const FacetGridOptions = observer((properties) => {
|
|
|
81
81
|
styling.css = [style];
|
|
82
82
|
}
|
|
83
83
|
return (values?.length && (jsx(CacheProvider, null,
|
|
84
|
-
jsx("div", { ...styling, className: classnames('ss__facet-grid-options', className) }, values.map((value) => (jsx("a", { className: classnames('ss__facet-grid-options__option', { 'ss__facet-grid-options__option--filtered': value.filtered }),
|
|
84
|
+
jsx("div", { ...styling, className: classnames('ss__facet-grid-options', className) }, values.map((value) => (jsx("a", { className: classnames('ss__facet-grid-options__option', { 'ss__facet-grid-options__option--filtered': value.filtered }), onFocus: () => previewOnFocus && value.preview && value.preview(), ...valueProps, href: value.url?.link?.href, onClick: (e) => {
|
|
85
|
+
value.url?.link?.onClick(e);
|
|
86
|
+
onClick && onClick(e);
|
|
87
|
+
} },
|
|
85
88
|
jsx("span", { className: classnames('ss__facet-grid-options__option__value', {
|
|
86
89
|
'ss__facet-grid-options__option__value--smaller': value.label.length > 3,
|
|
87
90
|
}) }, value.label))))))));
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { ComponentProps, HierarchyFacetValue } from '../../../types';
|
|
2
3
|
export declare const FacetHierarchyOptions: ((properties: FacetHierarchyOptionsProps) => JSX.Element) & {
|
|
3
4
|
displayName: string;
|
|
@@ -5,7 +6,7 @@ export declare const FacetHierarchyOptions: ((properties: FacetHierarchyOptionsP
|
|
|
5
6
|
export interface FacetHierarchyOptionsProps extends ComponentProps {
|
|
6
7
|
values: HierarchyFacetValue[];
|
|
7
8
|
hideCount?: boolean;
|
|
8
|
-
onClick?: (e:
|
|
9
|
+
onClick?: (e: React.MouseEvent) => void;
|
|
9
10
|
previewOnFocus?: boolean;
|
|
10
11
|
valueProps?: any;
|
|
11
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetHierarchyOptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AA2CrE,eAAO,MAAM,qBAAqB,gBAAyB,0BAA0B,KAAG,WAAW;;
|
|
1
|
+
{"version":3,"file":"FacetHierarchyOptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AA2CrE,eAAO,MAAM,qBAAqB,gBAAyB,0BAA0B,KAAG,WAAW;;CAqDjG,CAAC;AACH,MAAM,WAAW,0BAA2B,SAAQ,cAAc;IACjE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,GAAG,CAAC;CACjB"}
|
|
@@ -61,7 +61,10 @@ export const FacetHierarchyOptions = observer((properties) => {
|
|
|
61
61
|
styling.css = [style];
|
|
62
62
|
}
|
|
63
63
|
return (values?.length && (jsx(CacheProvider, null,
|
|
64
|
-
jsx("div", { ...styling, className: classnames('ss__facet-hierarchy-options', className) }, values.map((value) => (jsx("a", { className: classnames('ss__facet-hierarchy-options__option', { 'ss__facet-hierarchy-options__option--filtered': value.filtered }, { 'ss__facet-hierarchy-options__option--return': value.history && !value.filtered }),
|
|
64
|
+
jsx("div", { ...styling, className: classnames('ss__facet-hierarchy-options', className) }, values.map((value) => (jsx("a", { className: classnames('ss__facet-hierarchy-options__option', { 'ss__facet-hierarchy-options__option--filtered': value.filtered }, { 'ss__facet-hierarchy-options__option--return': value.history && !value.filtered }), href: value.url?.link?.href, onClick: (e) => {
|
|
65
|
+
value.url?.link?.onClick(e);
|
|
66
|
+
onClick && onClick(e);
|
|
67
|
+
}, onFocus: () => previewOnFocus && value.preview && value.preview(), ...valueProps },
|
|
65
68
|
jsx("span", { className: "ss__facet-hierarchy-options__option__value" },
|
|
66
69
|
value.label,
|
|
67
70
|
!hideCount && value.count > 0 && !value.filtered && (jsx("span", { className: "ss__facet-hierarchy-options__option__value__count" },
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { ComponentProps, ValueFacetValue } from '../../../types';
|
|
2
3
|
export declare const FacetListOptions: ((properties: FacetListOptionsProps) => JSX.Element) & {
|
|
3
4
|
displayName: string;
|
|
@@ -6,7 +7,7 @@ export interface FacetListOptionsProps extends ComponentProps {
|
|
|
6
7
|
values: ValueFacetValue[];
|
|
7
8
|
hideCheckbox?: boolean;
|
|
8
9
|
hideCount?: boolean;
|
|
9
|
-
onClick?: (e:
|
|
10
|
+
onClick?: (e: React.MouseEvent) => void;
|
|
10
11
|
previewOnFocus?: boolean;
|
|
11
12
|
valueProps?: any;
|
|
12
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetListOptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/FacetListOptions/FacetListOptions.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA+BjE,eAAO,MAAM,gBAAgB,gBAAyB,qBAAqB,KAAG,WAAW;;
|
|
1
|
+
{"version":3,"file":"FacetListOptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/FacetListOptions/FacetListOptions.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA+BjE,eAAO,MAAM,gBAAgB,gBAAyB,qBAAqB,KAAG,WAAW;;CA+DvF,CAAC;AAEH,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC5D,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,GAAG,CAAC;CACjB"}
|
|
@@ -63,7 +63,10 @@ export const FacetListOptions = observer((properties) => {
|
|
|
63
63
|
styling.css = [style];
|
|
64
64
|
}
|
|
65
65
|
return (values?.length && (jsx(CacheProvider, null,
|
|
66
|
-
jsx("div", { ...styling, className: classnames('ss__facet-list-options', className) }, values.map((value) => (jsx("a", { className: classnames('ss__facet-list-options__option', { 'ss__facet-list-options__option--filtered': value.filtered }),
|
|
66
|
+
jsx("div", { ...styling, className: classnames('ss__facet-list-options', className) }, values.map((value) => (jsx("a", { className: classnames('ss__facet-list-options__option', { 'ss__facet-list-options__option--filtered': value.filtered }), onFocus: () => previewOnFocus && value.preview && value.preview(), ...valueProps, href: value.url?.link?.href, onClick: (e) => {
|
|
67
|
+
value.url?.link?.onClick(e);
|
|
68
|
+
onClick && onClick(e);
|
|
69
|
+
} },
|
|
67
70
|
!hideCheckbox && jsx(Checkbox, { ...subProps.checkbox, checked: value.filtered }),
|
|
68
71
|
jsx("span", { className: "ss__facet-list-options__option__value" },
|
|
69
72
|
value.label,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { ValueFacetValue, ComponentProps } from '../../../types';
|
|
2
3
|
export declare const FacetPaletteOptions: ((properties: FacetPaletteOptionsProps) => JSX.Element) & {
|
|
3
4
|
displayName: string;
|
|
@@ -8,7 +9,7 @@ export interface FacetPaletteOptionsProps extends ComponentProps {
|
|
|
8
9
|
columns?: number;
|
|
9
10
|
gapSize?: string;
|
|
10
11
|
hideIcon?: boolean;
|
|
11
|
-
onClick?: (e:
|
|
12
|
+
onClick?: (e: React.MouseEvent) => void;
|
|
12
13
|
previewOnFocus?: boolean;
|
|
13
14
|
valueProps?: any;
|
|
14
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetPaletteOptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAiFjE,eAAO,MAAM,mBAAmB,gBAAyB,wBAAwB,KAAG,WAAW;;
|
|
1
|
+
{"version":3,"file":"FacetPaletteOptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAiFjE,eAAO,MAAM,mBAAmB,gBAAyB,wBAAwB,KAAG,WAAW;;CA6E7F,CAAC;AAEH,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC/D,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,GAAG,CAAC;CACjB"}
|
|
@@ -117,7 +117,10 @@ export const FacetPaletteOptions = observer((properties) => {
|
|
|
117
117
|
styling.css = [style];
|
|
118
118
|
}
|
|
119
119
|
return (values?.length && (jsx(CacheProvider, null,
|
|
120
|
-
jsx("div", { ...styling, className: classnames('ss__facet-palette-options', className) }, values.map((value) => (jsx("a", { className: classnames('ss__facet-palette-options__option', { 'ss__facet-palette-options__option--filtered': value.filtered }),
|
|
120
|
+
jsx("div", { ...styling, className: classnames('ss__facet-palette-options', className) }, values.map((value) => (jsx("a", { className: classnames('ss__facet-palette-options__option', { 'ss__facet-palette-options__option--filtered': value.filtered }), "aria-label": value.value, onFocus: () => previewOnFocus && value.preview && value.preview(), ...valueProps, href: value.url?.link?.href, onClick: (e) => {
|
|
121
|
+
value.url?.link?.onClick(e);
|
|
122
|
+
onClick && onClick(e);
|
|
123
|
+
} },
|
|
121
124
|
jsx("div", { className: "ss__facet-palette-options__option__wrapper" },
|
|
122
125
|
jsx("div", { className: classnames('ss__facet-palette-options__option__palette', `ss__facet-palette-options__option__palette--${filters.handleize(value.value)}`), css: { background: value.value } }, !hideIcon && value.filtered && jsx(Icon, { ...subProps.icon }))),
|
|
123
126
|
!hideLabel && jsx("span", { className: "ss__facet-palette-options__option__value" }, value.label))))))));
|
|
@@ -18,6 +18,7 @@ export interface ResultProps extends ComponentProps {
|
|
|
18
18
|
fallback?: string;
|
|
19
19
|
layout?: LayoutType;
|
|
20
20
|
truncateTitle?: TruncateTitleProps;
|
|
21
|
+
onClick?: (e: React.MouseEvent<HTMLAnchorElement, Event>) => void;
|
|
21
22
|
controller?: SearchController | AutocompleteController | RecommendationController;
|
|
22
23
|
}
|
|
23
24
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/Result/Result.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAU,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AA4DxH,eAAO,MAAM,MAAM,gBAAyB,WAAW,KAAG,WAAW;;
|
|
1
|
+
{"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/Result/Result.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAU,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AA4DxH,eAAO,MAAM,MAAM,gBAAyB,WAAW,KAAG,WAAW;;CA2HnE,CAAC;AAOH,UAAU,kBAAkB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc;IAClD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;IAClE,UAAU,CAAC,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;CAClF"}
|
|
@@ -73,7 +73,7 @@ export const Result = observer((properties) => {
|
|
|
73
73
|
...properties,
|
|
74
74
|
...properties.theme?.components?.result,
|
|
75
75
|
};
|
|
76
|
-
const { result, hideBadge, hideTitle, hidePricing, hideImage, detailSlot, fallback, disableStyles, className, layout, style, controller } = props;
|
|
76
|
+
const { result, hideBadge, hideTitle, hidePricing, hideImage, detailSlot, fallback, disableStyles, className, layout, onClick, style, controller } = props;
|
|
77
77
|
const core = result?.mappings?.core;
|
|
78
78
|
const subProps = {
|
|
79
79
|
price: {
|
|
@@ -131,14 +131,16 @@ export const Result = observer((properties) => {
|
|
|
131
131
|
return (core && (jsx(CacheProvider, null,
|
|
132
132
|
jsx("article", { ...styling, className: classnames('ss__result', `ss__result--${layout}`, className) },
|
|
133
133
|
jsx("div", { className: "ss__result__image-wrapper" },
|
|
134
|
-
jsx("a", { href: core.url,
|
|
134
|
+
jsx("a", { href: core.url, onClick: (e) => {
|
|
135
|
+
onClick && onClick(e);
|
|
135
136
|
controller?.track?.product?.click(e, result);
|
|
136
137
|
} },
|
|
137
138
|
!hideBadge && onSale && jsx(Badge, { ...subProps.badge }),
|
|
138
139
|
!hideImage && jsx(Image, { ...subProps.image }))),
|
|
139
140
|
jsx("div", { className: "ss__result__details" },
|
|
140
141
|
!hideTitle && (jsx("div", { className: "ss__result__details__title" },
|
|
141
|
-
jsx("a", { href: core.url,
|
|
142
|
+
jsx("a", { href: core.url, onClick: (e) => {
|
|
143
|
+
onClick && onClick(e);
|
|
142
144
|
controller?.track?.product?.click(e, result);
|
|
143
145
|
}, dangerouslySetInnerHTML: {
|
|
144
146
|
__html: displayName,
|
|
@@ -186,6 +186,15 @@ declare const _default: {
|
|
|
186
186
|
options: Layout[];
|
|
187
187
|
};
|
|
188
188
|
};
|
|
189
|
+
onClick: {
|
|
190
|
+
description: string;
|
|
191
|
+
table: {
|
|
192
|
+
type: {
|
|
193
|
+
summary: string;
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
action: string;
|
|
197
|
+
};
|
|
189
198
|
controller: {
|
|
190
199
|
description: string;
|
|
191
200
|
table: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Result.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/Result/Result.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,OAAO,EAAU,WAAW,EAAE,MAAM,UAAU,CAAC;AAK/C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC
|
|
1
|
+
{"version":3,"file":"Result.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/Result/Result.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,OAAO,EAAU,WAAW,EAAE,MAAM,UAAU,CAAC;AAK/C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExC,wBAwIE;AAKF,eAAO,MAAM,OAAO,KAAoB,CAAC;AAUzC,eAAO,MAAM,YAAY,KAAoB,CAAC;AAe9C,eAAO,MAAM,aAAa,KAAoB,CAAC"}
|
|
@@ -116,6 +116,15 @@ export default {
|
|
|
116
116
|
options: [Layout.GRID, Layout.LIST],
|
|
117
117
|
},
|
|
118
118
|
},
|
|
119
|
+
onClick: {
|
|
120
|
+
description: 'Custom onClick event handler',
|
|
121
|
+
table: {
|
|
122
|
+
type: {
|
|
123
|
+
summary: 'function',
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
action: 'onClick',
|
|
127
|
+
},
|
|
119
128
|
controller: {
|
|
120
129
|
description: 'Controller reference',
|
|
121
130
|
table: {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { AutocompleteController } from '@searchspring/snap-controller';
|
|
3
|
-
import { BreakpointsProps } from '
|
|
4
|
-
import { ComponentProps } from '../../../types';
|
|
3
|
+
import { ComponentProps, BreakpointsProps } from '../../../types';
|
|
5
4
|
export declare const Autocomplete: ((properties: AutocompleteProps) => JSX.Element) & {
|
|
6
5
|
displayName: string;
|
|
7
6
|
};
|
|
@@ -28,5 +27,7 @@ export interface AutocompleteProps extends ComponentProps {
|
|
|
28
27
|
breakpoints?: BreakpointsProps;
|
|
29
28
|
controller: AutocompleteController;
|
|
30
29
|
width?: string;
|
|
30
|
+
onFacetOptionClick?: (e: any) => void;
|
|
31
|
+
onTermClick?: (e: any) => void;
|
|
31
32
|
}
|
|
32
33
|
//# sourceMappingURL=Autocomplete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":";AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":";AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAQ5E,OAAO,EAAc,cAAc,EAAgB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA2J5F,eAAO,MAAM,YAAY,gBAAyB,iBAAiB,KAAG,WAAW;;CA8X/E,CAAC;AAkCH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACxD,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAC;CAC1B"}
|
|
@@ -169,16 +169,61 @@ export const Autocomplete = observer((properties) => {
|
|
|
169
169
|
rows: 3,
|
|
170
170
|
},
|
|
171
171
|
};
|
|
172
|
+
const { hideTerms, hideFacets, hideContent, hideBanners, hideLink, horizontalTerms, vertical, termsTitle, trendingTitle, facetsTitle, contentTitle, viewportMaxHeight, termsSlot, facetsSlot, contentSlot, resultsSlot, noResultsSlot, linkSlot, onFacetOptionClick, onTermClick, disableStyles, className, width, style, controller, } = props;
|
|
173
|
+
let delayTimeout;
|
|
174
|
+
const delayTime = 333;
|
|
175
|
+
const valueProps = {
|
|
176
|
+
onMouseEnter: (e) => {
|
|
177
|
+
clearTimeout(delayTimeout);
|
|
178
|
+
delayTimeout = setTimeout(() => {
|
|
179
|
+
e.target.focus();
|
|
180
|
+
}, delayTime);
|
|
181
|
+
},
|
|
182
|
+
onMouseLeave: () => {
|
|
183
|
+
clearTimeout(delayTimeout);
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
const themeOverride = {
|
|
187
|
+
components: {
|
|
188
|
+
facet: {
|
|
189
|
+
limit: 6,
|
|
190
|
+
disableOverflow: true,
|
|
191
|
+
disableCollapse: true,
|
|
192
|
+
previewOnFocus: true,
|
|
193
|
+
valueProps,
|
|
194
|
+
},
|
|
195
|
+
facetGridOptions: {
|
|
196
|
+
columns: 3,
|
|
197
|
+
onClick: onFacetOptionClick,
|
|
198
|
+
},
|
|
199
|
+
facetHierarchyOptions: {
|
|
200
|
+
hideCount: true,
|
|
201
|
+
onClick: onFacetOptionClick,
|
|
202
|
+
},
|
|
203
|
+
facetListOptions: {
|
|
204
|
+
hideCheckbox: true,
|
|
205
|
+
hideCount: true,
|
|
206
|
+
onClick: onFacetOptionClick,
|
|
207
|
+
},
|
|
208
|
+
facetPaletteOptions: {
|
|
209
|
+
hideLabel: true,
|
|
210
|
+
columns: 3,
|
|
211
|
+
onClick: onFacetOptionClick,
|
|
212
|
+
},
|
|
213
|
+
result: {
|
|
214
|
+
hideBadge: true,
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
};
|
|
172
218
|
const displaySettings = useDisplaySettings(breakpoints);
|
|
173
219
|
if (displaySettings && Object.keys(displaySettings).length) {
|
|
174
|
-
const theme = deepmerge(props?.theme || {}, displaySettings?.theme || {});
|
|
220
|
+
const theme = deepmerge(themeOverride, props?.theme || {}, displaySettings?.theme || {});
|
|
175
221
|
props = {
|
|
176
222
|
...props,
|
|
177
223
|
...displaySettings,
|
|
178
224
|
theme,
|
|
179
225
|
};
|
|
180
226
|
}
|
|
181
|
-
const { hideTerms, hideFacets, hideContent, hideBanners, hideLink, horizontalTerms, vertical, termsTitle, trendingTitle, facetsTitle, contentTitle, viewportMaxHeight, termsSlot, facetsSlot, contentSlot, resultsSlot, noResultsSlot, linkSlot, disableStyles, className, width, style, controller, } = props;
|
|
182
227
|
let { input } = props;
|
|
183
228
|
let inputViewportOffsetBottom;
|
|
184
229
|
if (input) {
|
|
@@ -188,19 +233,6 @@ export const Autocomplete = observer((properties) => {
|
|
|
188
233
|
const rect = input?.getBoundingClientRect();
|
|
189
234
|
inputViewportOffsetBottom = rect?.bottom || 0;
|
|
190
235
|
}
|
|
191
|
-
let delayTimeout;
|
|
192
|
-
const delayTime = 333;
|
|
193
|
-
const valueProps = {
|
|
194
|
-
onMouseEnter: (e) => {
|
|
195
|
-
clearTimeout(delayTimeout);
|
|
196
|
-
delayTimeout = setTimeout(() => {
|
|
197
|
-
e.target.focus();
|
|
198
|
-
}, delayTime);
|
|
199
|
-
},
|
|
200
|
-
onMouseLeave: () => {
|
|
201
|
-
clearTimeout(delayTimeout);
|
|
202
|
-
},
|
|
203
|
-
};
|
|
204
236
|
const subProps = {
|
|
205
237
|
facets: {
|
|
206
238
|
// default props
|
|
@@ -211,32 +243,7 @@ export const Autocomplete = observer((properties) => {
|
|
|
211
243
|
...defined({
|
|
212
244
|
disableStyles,
|
|
213
245
|
}),
|
|
214
|
-
|
|
215
|
-
theme: deepmerge({
|
|
216
|
-
components: {
|
|
217
|
-
facet: {
|
|
218
|
-
limit: 6,
|
|
219
|
-
disableOverflow: true,
|
|
220
|
-
disableCollapse: true,
|
|
221
|
-
previewOnFocus: true,
|
|
222
|
-
valueProps,
|
|
223
|
-
},
|
|
224
|
-
facetGridOptions: {
|
|
225
|
-
columns: 3,
|
|
226
|
-
},
|
|
227
|
-
facetHierarchyOptions: {
|
|
228
|
-
hideCount: true,
|
|
229
|
-
},
|
|
230
|
-
facetListOptions: {
|
|
231
|
-
hideCheckbox: true,
|
|
232
|
-
hideCount: true,
|
|
233
|
-
},
|
|
234
|
-
facetPaletteOptions: {
|
|
235
|
-
hideLabel: true,
|
|
236
|
-
columns: 3,
|
|
237
|
-
},
|
|
238
|
-
},
|
|
239
|
-
}, { ...props.theme }),
|
|
246
|
+
theme: props.theme,
|
|
240
247
|
},
|
|
241
248
|
banner: {
|
|
242
249
|
// default props
|
|
@@ -261,13 +268,7 @@ export const Autocomplete = observer((properties) => {
|
|
|
261
268
|
disableStyles,
|
|
262
269
|
}),
|
|
263
270
|
// component theme overrides
|
|
264
|
-
theme:
|
|
265
|
-
components: {
|
|
266
|
-
result: {
|
|
267
|
-
hideBadge: true,
|
|
268
|
-
},
|
|
269
|
-
},
|
|
270
|
-
}, { ...props.theme }),
|
|
271
|
+
theme: props.theme,
|
|
271
272
|
},
|
|
272
273
|
icon: {
|
|
273
274
|
// default props
|
|
@@ -321,21 +322,21 @@ export const Autocomplete = observer((properties) => {
|
|
|
321
322
|
}
|
|
322
323
|
return (visible && (jsx(CacheProvider, null,
|
|
323
324
|
jsx("div", { ...styling, className: classnames('ss__autocomplete', className, { 'ss__autocomplete--only-terms': onlyTerms }), onClick: (e) => e.stopPropagation() },
|
|
324
|
-
!hideTerms && (jsx("div", { className: classnames('ss__autocomplete__terms', { 'ss__autocomplete__terms-trending': showTrending }) }, termsSlot ? (cloneWithProps(termsSlot, { terms, trending, termsTitle, trendingTitle, showTrending, valueProps, emIfy, controller })) : (jsx(Fragment, null,
|
|
325
|
+
!hideTerms && (jsx("div", { className: classnames('ss__autocomplete__terms', { 'ss__autocomplete__terms-trending': showTrending }) }, termsSlot ? (cloneWithProps(termsSlot, { terms, trending, termsTitle, trendingTitle, showTrending, valueProps, emIfy, onTermClick, controller })) : (jsx(Fragment, null,
|
|
325
326
|
terms.length > 0 ? (jsx(Fragment, null,
|
|
326
327
|
termsTitle ? (jsx("div", { className: "ss__autocomplete__title ss__autocomplete__title--terms" },
|
|
327
328
|
jsx("h5", null, termsTitle))) : null,
|
|
328
329
|
jsx("div", { className: "ss__autocomplete__terms__options" }, terms.map((term) => (jsx("div", { className: classnames('ss__autocomplete__terms__option', {
|
|
329
330
|
'ss__autocomplete__terms__option--active': term.active,
|
|
330
331
|
}) },
|
|
331
|
-
jsx("a", { href: term.url.href, ...valueProps, onFocus: () => term.preview() }, emIfy(term.value, state.input)))))))) : null,
|
|
332
|
+
jsx("a", { onClick: (e) => onTermClick && onTermClick(e), href: term.url.href, ...valueProps, onFocus: () => term.preview() }, emIfy(term.value, state.input)))))))) : null,
|
|
332
333
|
showTrending ? (jsx(Fragment, null,
|
|
333
334
|
trendingTitle ? (jsx("div", { className: "ss__autocomplete__title ss__autocomplete__title--trending" },
|
|
334
335
|
jsx("h5", null, trendingTitle))) : null,
|
|
335
336
|
jsx("div", { className: "ss__autocomplete__terms__options" }, trending.map((term) => (jsx("div", { className: classnames('ss__autocomplete__terms__option', {
|
|
336
337
|
'ss__autocomplete__terms__option--active': term.active,
|
|
337
338
|
}) },
|
|
338
|
-
jsx("a", { href: term.url.href, ...valueProps, onFocus: () => term.preview() }, emIfy(term.value, state.input)))))))) : null)))),
|
|
339
|
+
jsx("a", { onClick: (e) => onTermClick && onTermClick(e), href: term.url.href, ...valueProps, onFocus: () => term.preview() }, emIfy(term.value, state.input)))))))) : null)))),
|
|
339
340
|
!hideFacets &&
|
|
340
341
|
(facetsSlot ? (jsx("div", { className: "ss__autocomplete__facets" }, cloneWithProps(facetsSlot, { facets: facetsToShow, merchandising, facetsTitle, hideBanners, controller, valueProps }))) : (facetsToShow.length > 0 && (jsx(Fragment, null,
|
|
341
342
|
facetsTitle && vertical ? (jsx("div", { className: classnames('ss__autocomplete__title', 'ss__autocomplete__title--facets') },
|
|
@@ -316,6 +316,24 @@ declare const _default: {
|
|
|
316
316
|
type: string;
|
|
317
317
|
};
|
|
318
318
|
};
|
|
319
|
+
onFacetOptionClick: {
|
|
320
|
+
description: string;
|
|
321
|
+
table: {
|
|
322
|
+
type: {
|
|
323
|
+
summary: string;
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
action: string;
|
|
327
|
+
};
|
|
328
|
+
onTermClick: {
|
|
329
|
+
description: string;
|
|
330
|
+
table: {
|
|
331
|
+
type: {
|
|
332
|
+
summary: string;
|
|
333
|
+
};
|
|
334
|
+
};
|
|
335
|
+
action: string;
|
|
336
|
+
};
|
|
319
337
|
};
|
|
320
338
|
};
|
|
321
339
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/Autocomplete/Autocomplete.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAY,MAAM,QAAQ,CAAC;AAIrC,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC
|
|
1
|
+
{"version":3,"file":"Autocomplete.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/Autocomplete/Autocomplete.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAY,MAAM,QAAQ,CAAC;AAIrC,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKjE,wBA8PE;AAuBF,eAAO,MAAM,OAAO,KAAoB,CAAC"}
|
|
@@ -224,6 +224,24 @@ export default {
|
|
|
224
224
|
type: 'object',
|
|
225
225
|
},
|
|
226
226
|
},
|
|
227
|
+
onFacetOptionClick: {
|
|
228
|
+
description: 'Custom onClick event handler for facet options.',
|
|
229
|
+
table: {
|
|
230
|
+
type: {
|
|
231
|
+
summary: 'function',
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
action: 'onFacetOptionClick',
|
|
235
|
+
},
|
|
236
|
+
onTermClick: {
|
|
237
|
+
description: 'Custom onClick event handler for Suggested & Trending Terms',
|
|
238
|
+
table: {
|
|
239
|
+
type: {
|
|
240
|
+
summary: 'function',
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
action: 'onTermClick',
|
|
244
|
+
},
|
|
227
245
|
...componentArgs,
|
|
228
246
|
},
|
|
229
247
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { RecommendationController } from '@searchspring/snap-controller';
|
|
3
|
-
import { ComponentProps } from '../../../types';
|
|
3
|
+
import { ComponentProps, BreakpointsProps } from '../../../types';
|
|
4
4
|
export declare const Recommendation: ((properties: RecommendationProps) => JSX.Element) & {
|
|
5
5
|
displayName: string;
|
|
6
6
|
};
|
|
7
7
|
export interface RecommendationProps extends ComponentProps {
|
|
8
8
|
title?: JSX.Element | string;
|
|
9
|
-
breakpoints?:
|
|
9
|
+
breakpoints?: BreakpointsProps;
|
|
10
10
|
prevButton?: JSX.Element | string;
|
|
11
11
|
nextButton?: JSX.Element | string;
|
|
12
12
|
hideButtons?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Recommendation.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/Recommendation/Recommendation.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Recommendation.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/Recommendation/Recommendation.tsx"],"names":[],"mappings":";AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAM9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAclE,eAAO,MAAM,cAAc,gBAAyB,mBAAmB,KAAG,WAAW;;CAoKnF,CAAC;AAEH,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IAC1D,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,wBAAwB,CAAC;IACrC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -2,11 +2,13 @@ import { useState, useRef } from 'preact/hooks';
|
|
|
2
2
|
import { jsx, css } from '@emotion/react';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import { observer } from 'mobx-react-lite';
|
|
5
|
-
import
|
|
5
|
+
import deepmerge from 'deepmerge';
|
|
6
|
+
import { Carousel, defaultCarouselBreakpoints, defaultVerticalCarouselBreakpoints } from '../../Molecules/Carousel';
|
|
6
7
|
import { Result } from '../../Molecules/Result';
|
|
7
8
|
import { defined } from '../../../utilities';
|
|
8
9
|
import { useTheme, CacheProvider } from '../../../providers';
|
|
9
10
|
import { useIntersection } from '../../../hooks';
|
|
11
|
+
import { useDisplaySettings } from '../../../hooks/useDisplaySettings';
|
|
10
12
|
const CSS = {
|
|
11
13
|
recommendation: ({ vertical }) => css({
|
|
12
14
|
height: vertical ? '100%' : null,
|
|
@@ -15,45 +17,11 @@ const CSS = {
|
|
|
15
17
|
},
|
|
16
18
|
}),
|
|
17
19
|
};
|
|
18
|
-
const defaultRecommendationBreakpoints = {
|
|
19
|
-
0: {
|
|
20
|
-
slidesPerView: 1,
|
|
21
|
-
slidesPerGroup: 1,
|
|
22
|
-
spaceBetween: 0,
|
|
23
|
-
},
|
|
24
|
-
480: {
|
|
25
|
-
slidesPerView: 2,
|
|
26
|
-
slidesPerGroup: 2,
|
|
27
|
-
spaceBetween: 10,
|
|
28
|
-
},
|
|
29
|
-
768: {
|
|
30
|
-
slidesPerView: 3,
|
|
31
|
-
slidesPerGroup: 3,
|
|
32
|
-
spaceBetween: 10,
|
|
33
|
-
},
|
|
34
|
-
1024: {
|
|
35
|
-
slidesPerView: 4,
|
|
36
|
-
slidesPerGroup: 4,
|
|
37
|
-
spaceBetween: 10,
|
|
38
|
-
},
|
|
39
|
-
1200: {
|
|
40
|
-
slidesPerView: 5,
|
|
41
|
-
slidesPerGroup: 5,
|
|
42
|
-
spaceBetween: 10,
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
const defaultVerticalRecommendationBreakpoints = {
|
|
46
|
-
0: {
|
|
47
|
-
slidesPerView: 1,
|
|
48
|
-
slidesPerGroup: 1,
|
|
49
|
-
spaceBetween: 0,
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
20
|
export const Recommendation = observer((properties) => {
|
|
53
21
|
const globalTheme = useTheme();
|
|
54
|
-
|
|
22
|
+
let props = {
|
|
55
23
|
// default props
|
|
56
|
-
breakpoints: properties.vertical ?
|
|
24
|
+
breakpoints: properties.vertical ? defaultVerticalCarouselBreakpoints : defaultCarouselBreakpoints,
|
|
57
25
|
pagination: false,
|
|
58
26
|
loop: true,
|
|
59
27
|
// global theme
|
|
@@ -62,6 +30,15 @@ export const Recommendation = observer((properties) => {
|
|
|
62
30
|
// props
|
|
63
31
|
...properties.theme?.components?.recommendation,
|
|
64
32
|
};
|
|
33
|
+
const displaySettings = useDisplaySettings(props.breakpoints);
|
|
34
|
+
if (displaySettings && Object.keys(displaySettings).length) {
|
|
35
|
+
const theme = deepmerge(props?.theme || {}, displaySettings?.theme || {});
|
|
36
|
+
props = {
|
|
37
|
+
...props,
|
|
38
|
+
...displaySettings,
|
|
39
|
+
theme,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
65
42
|
const { title, controller, children, breakpoints, loop, pagination, nextButton, prevButton, hideButtons, disableStyles, style, className, vertical, ...additionalProps } = props;
|
|
66
43
|
if (!controller || controller.type !== 'recommendation') {
|
|
67
44
|
throw new Error(`<Recommendation> Component requires 'controller' prop with an instance of RecommendationController`);
|
|
@@ -148,7 +125,7 @@ export const Recommendation = observer((properties) => {
|
|
|
148
125
|
if (!Number.isNaN(clickedIndex)) {
|
|
149
126
|
controller.track.product.click(e, results[clickedIndex]);
|
|
150
127
|
}
|
|
151
|
-
}, loop: loop,
|
|
128
|
+
}, loop: loop, pagination: pagination, breakpoints: breakpoints, ...subProps.carousel, ...additionalProps, ...displaySettings }, children
|
|
152
129
|
? children.map((child) => child)
|
|
153
130
|
: results.map((result) => jsx(Result, { controller: controller, result: result, ...subProps.result })))))));
|
|
154
131
|
});
|