@searchspring/snap-preact-components 0.20.3 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/cjs/components/Atoms/Merchandising/InlineBanner.d.ts +1 -0
  2. package/dist/cjs/components/Atoms/Merchandising/InlineBanner.d.ts.map +1 -1
  3. package/dist/cjs/components/Atoms/Merchandising/InlineBanner.js +5 -3
  4. package/dist/cjs/components/Atoms/Merchandising/InlineBanner.stories.d.ts +9 -0
  5. package/dist/cjs/components/Atoms/Merchandising/InlineBanner.stories.d.ts.map +1 -1
  6. package/dist/cjs/components/Atoms/Merchandising/InlineBanner.stories.js +8 -0
  7. package/dist/cjs/components/Molecules/Carousel/Carousel.d.ts +37 -2
  8. package/dist/cjs/components/Molecules/Carousel/Carousel.d.ts.map +1 -1
  9. package/dist/cjs/components/Molecules/Carousel/Carousel.js +26 -11
  10. package/dist/cjs/components/Molecules/Carousel/Carousel.stories.d.ts +15 -0
  11. package/dist/cjs/components/Molecules/Carousel/Carousel.stories.d.ts.map +1 -1
  12. package/dist/cjs/components/Molecules/Carousel/Carousel.stories.js +10 -0
  13. package/dist/cjs/components/Molecules/FacetGridOptions/FacetGridOptions.d.ts +2 -1
  14. package/dist/cjs/components/Molecules/FacetGridOptions/FacetGridOptions.d.ts.map +1 -1
  15. package/dist/cjs/components/Molecules/FacetGridOptions/FacetGridOptions.js +6 -2
  16. package/dist/cjs/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.d.ts +2 -1
  17. package/dist/cjs/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.d.ts.map +1 -1
  18. package/dist/cjs/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.js +6 -2
  19. package/dist/cjs/components/Molecules/FacetListOptions/FacetListOptions.d.ts +2 -1
  20. package/dist/cjs/components/Molecules/FacetListOptions/FacetListOptions.d.ts.map +1 -1
  21. package/dist/cjs/components/Molecules/FacetListOptions/FacetListOptions.js +6 -2
  22. package/dist/cjs/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.d.ts +2 -1
  23. package/dist/cjs/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.d.ts.map +1 -1
  24. package/dist/cjs/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.js +6 -2
  25. package/dist/cjs/components/Molecules/Result/Result.d.ts +1 -0
  26. package/dist/cjs/components/Molecules/Result/Result.d.ts.map +1 -1
  27. package/dist/cjs/components/Molecules/Result/Result.js +5 -3
  28. package/dist/cjs/components/Molecules/Result/Result.stories.d.ts +9 -0
  29. package/dist/cjs/components/Molecules/Result/Result.stories.d.ts.map +1 -1
  30. package/dist/cjs/components/Molecules/Result/Result.stories.js +8 -0
  31. package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.d.ts +3 -2
  32. package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.d.ts.map +1 -1
  33. package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.js +52 -52
  34. package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.stories.d.ts +18 -0
  35. package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.stories.d.ts.map +1 -1
  36. package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.stories.js +16 -0
  37. package/dist/cjs/components/Organisms/Recommendation/Recommendation.d.ts +2 -2
  38. package/dist/cjs/components/Organisms/Recommendation/Recommendation.d.ts.map +1 -1
  39. package/dist/cjs/components/Organisms/Recommendation/Recommendation.js +9 -36
  40. package/dist/cjs/components/Organisms/Results/Results.d.ts +1 -7
  41. package/dist/cjs/components/Organisms/Results/Results.d.ts.map +1 -1
  42. package/dist/cjs/hooks/useDisplaySettings.d.ts +1 -1
  43. package/dist/cjs/hooks/useDisplaySettings.d.ts.map +1 -1
  44. package/dist/cjs/types.d.ts +6 -0
  45. package/dist/cjs/types.d.ts.map +1 -1
  46. package/dist/esm/components/Atoms/Merchandising/InlineBanner.d.ts +1 -0
  47. package/dist/esm/components/Atoms/Merchandising/InlineBanner.d.ts.map +1 -1
  48. package/dist/esm/components/Atoms/Merchandising/InlineBanner.js +6 -4
  49. package/dist/esm/components/Atoms/Merchandising/InlineBanner.stories.d.ts +9 -0
  50. package/dist/esm/components/Atoms/Merchandising/InlineBanner.stories.d.ts.map +1 -1
  51. package/dist/esm/components/Atoms/Merchandising/InlineBanner.stories.js +9 -0
  52. package/dist/esm/components/Molecules/Carousel/Carousel.d.ts +37 -2
  53. package/dist/esm/components/Molecules/Carousel/Carousel.d.ts.map +1 -1
  54. package/dist/esm/components/Molecules/Carousel/Carousel.js +30 -10
  55. package/dist/esm/components/Molecules/Carousel/Carousel.stories.d.ts +15 -0
  56. package/dist/esm/components/Molecules/Carousel/Carousel.stories.d.ts.map +1 -1
  57. package/dist/esm/components/Molecules/Carousel/Carousel.stories.js +11 -0
  58. package/dist/esm/components/Molecules/FacetGridOptions/FacetGridOptions.d.ts +2 -1
  59. package/dist/esm/components/Molecules/FacetGridOptions/FacetGridOptions.d.ts.map +1 -1
  60. package/dist/esm/components/Molecules/FacetGridOptions/FacetGridOptions.js +4 -1
  61. package/dist/esm/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.d.ts +2 -1
  62. package/dist/esm/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.d.ts.map +1 -1
  63. package/dist/esm/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.js +4 -1
  64. package/dist/esm/components/Molecules/FacetListOptions/FacetListOptions.d.ts +2 -1
  65. package/dist/esm/components/Molecules/FacetListOptions/FacetListOptions.d.ts.map +1 -1
  66. package/dist/esm/components/Molecules/FacetListOptions/FacetListOptions.js +4 -1
  67. package/dist/esm/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.d.ts +2 -1
  68. package/dist/esm/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.d.ts.map +1 -1
  69. package/dist/esm/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.js +4 -1
  70. package/dist/esm/components/Molecules/Result/Result.d.ts +1 -0
  71. package/dist/esm/components/Molecules/Result/Result.d.ts.map +1 -1
  72. package/dist/esm/components/Molecules/Result/Result.js +5 -3
  73. package/dist/esm/components/Molecules/Result/Result.stories.d.ts +9 -0
  74. package/dist/esm/components/Molecules/Result/Result.stories.d.ts.map +1 -1
  75. package/dist/esm/components/Molecules/Result/Result.stories.js +9 -0
  76. package/dist/esm/components/Organisms/Autocomplete/Autocomplete.d.ts +3 -2
  77. package/dist/esm/components/Organisms/Autocomplete/Autocomplete.d.ts.map +1 -1
  78. package/dist/esm/components/Organisms/Autocomplete/Autocomplete.js +52 -51
  79. package/dist/esm/components/Organisms/Autocomplete/Autocomplete.stories.d.ts +18 -0
  80. package/dist/esm/components/Organisms/Autocomplete/Autocomplete.stories.d.ts.map +1 -1
  81. package/dist/esm/components/Organisms/Autocomplete/Autocomplete.stories.js +18 -0
  82. package/dist/esm/components/Organisms/Recommendation/Recommendation.d.ts +2 -2
  83. package/dist/esm/components/Organisms/Recommendation/Recommendation.d.ts.map +1 -1
  84. package/dist/esm/components/Organisms/Recommendation/Recommendation.js +15 -38
  85. package/dist/esm/components/Organisms/Results/Results.d.ts +1 -7
  86. package/dist/esm/components/Organisms/Results/Results.d.ts.map +1 -1
  87. package/dist/esm/hooks/useDisplaySettings.d.ts +1 -1
  88. package/dist/esm/hooks/useDisplaySettings.d.ts.map +1 -1
  89. package/dist/esm/types.d.ts +6 -0
  90. package/dist/esm/types.d.ts.map +1 -1
  91. package/package.json +11 -11
@@ -161,21 +161,7 @@ exports.Autocomplete = (0, mobx_react_lite_1.observer)(function (properties) {
161
161
  rows: 3,
162
162
  },
163
163
  };
164
- var displaySettings = (0, useDisplaySettings_1.useDisplaySettings)(breakpoints);
165
- if (displaySettings && Object.keys(displaySettings).length) {
166
- var theme_1 = (0, deepmerge_1.default)((props === null || props === void 0 ? void 0 : props.theme) || {}, (displaySettings === null || displaySettings === void 0 ? void 0 : displaySettings.theme) || {});
167
- props = __assign(__assign(__assign({}, props), displaySettings), { theme: theme_1 });
168
- }
169
- var hideTerms = props.hideTerms, hideFacets = props.hideFacets, hideContent = props.hideContent, hideBanners = props.hideBanners, hideLink = props.hideLink, horizontalTerms = props.horizontalTerms, vertical = props.vertical, termsTitle = props.termsTitle, trendingTitle = props.trendingTitle, facetsTitle = props.facetsTitle, contentTitle = props.contentTitle, viewportMaxHeight = props.viewportMaxHeight, termsSlot = props.termsSlot, facetsSlot = props.facetsSlot, contentSlot = props.contentSlot, resultsSlot = props.resultsSlot, noResultsSlot = props.noResultsSlot, linkSlot = props.linkSlot, disableStyles = props.disableStyles, className = props.className, width = props.width, style = props.style, controller = props.controller;
170
- var input = props.input;
171
- var inputViewportOffsetBottom;
172
- if (input) {
173
- if (typeof input === 'string') {
174
- input = document.querySelector(input);
175
- }
176
- var rect = input === null || input === void 0 ? void 0 : input.getBoundingClientRect();
177
- inputViewportOffsetBottom = (rect === null || rect === void 0 ? void 0 : rect.bottom) || 0;
178
- }
164
+ var hideTerms = props.hideTerms, hideFacets = props.hideFacets, hideContent = props.hideContent, hideBanners = props.hideBanners, hideLink = props.hideLink, horizontalTerms = props.horizontalTerms, vertical = props.vertical, termsTitle = props.termsTitle, trendingTitle = props.trendingTitle, facetsTitle = props.facetsTitle, contentTitle = props.contentTitle, viewportMaxHeight = props.viewportMaxHeight, termsSlot = props.termsSlot, facetsSlot = props.facetsSlot, contentSlot = props.contentSlot, resultsSlot = props.resultsSlot, noResultsSlot = props.noResultsSlot, linkSlot = props.linkSlot, onFacetOptionClick = props.onFacetOptionClick, onTermClick = props.onTermClick, disableStyles = props.disableStyles, className = props.className, width = props.width, style = props.style, controller = props.controller;
179
165
  var delayTimeout;
180
166
  var delayTime = 333;
181
167
  var valueProps = {
@@ -189,38 +175,58 @@ exports.Autocomplete = (0, mobx_react_lite_1.observer)(function (properties) {
189
175
  clearTimeout(delayTimeout);
190
176
  },
191
177
  };
178
+ var themeOverride = {
179
+ components: {
180
+ facet: {
181
+ limit: 6,
182
+ disableOverflow: true,
183
+ disableCollapse: true,
184
+ previewOnFocus: true,
185
+ valueProps: valueProps,
186
+ },
187
+ facetGridOptions: {
188
+ columns: 3,
189
+ onClick: onFacetOptionClick,
190
+ },
191
+ facetHierarchyOptions: {
192
+ hideCount: true,
193
+ onClick: onFacetOptionClick,
194
+ },
195
+ facetListOptions: {
196
+ hideCheckbox: true,
197
+ hideCount: true,
198
+ onClick: onFacetOptionClick,
199
+ },
200
+ facetPaletteOptions: {
201
+ hideLabel: true,
202
+ columns: 3,
203
+ onClick: onFacetOptionClick,
204
+ },
205
+ result: {
206
+ hideBadge: true,
207
+ },
208
+ },
209
+ };
210
+ var displaySettings = (0, useDisplaySettings_1.useDisplaySettings)(breakpoints);
211
+ if (displaySettings && Object.keys(displaySettings).length) {
212
+ var theme_1 = (0, deepmerge_1.default)(themeOverride, (props === null || props === void 0 ? void 0 : props.theme) || {}, (displaySettings === null || displaySettings === void 0 ? void 0 : displaySettings.theme) || {});
213
+ props = __assign(__assign(__assign({}, props), displaySettings), { theme: theme_1 });
214
+ }
215
+ var input = props.input;
216
+ var inputViewportOffsetBottom;
217
+ if (input) {
218
+ if (typeof input === 'string') {
219
+ input = document.querySelector(input);
220
+ }
221
+ var rect = input === null || input === void 0 ? void 0 : input.getBoundingClientRect();
222
+ inputViewportOffsetBottom = (rect === null || rect === void 0 ? void 0 : rect.bottom) || 0;
223
+ }
192
224
  var subProps = {
193
225
  facets: __assign(__assign(__assign({
194
226
  // default props
195
227
  limit: 3 }, (_d = globalTheme === null || globalTheme === void 0 ? void 0 : globalTheme.components) === null || _d === void 0 ? void 0 : _d.facets), (0, utilities_1.defined)({
196
228
  disableStyles: disableStyles,
197
- })), {
198
- // component theme overrides
199
- theme: (0, deepmerge_1.default)({
200
- components: {
201
- facet: {
202
- limit: 6,
203
- disableOverflow: true,
204
- disableCollapse: true,
205
- previewOnFocus: true,
206
- valueProps: valueProps,
207
- },
208
- facetGridOptions: {
209
- columns: 3,
210
- },
211
- facetHierarchyOptions: {
212
- hideCount: true,
213
- },
214
- facetListOptions: {
215
- hideCheckbox: true,
216
- hideCount: true,
217
- },
218
- facetPaletteOptions: {
219
- hideLabel: true,
220
- columns: 3,
221
- },
222
- },
223
- }, __assign({}, props.theme)) }),
229
+ })), { theme: props.theme }),
224
230
  banner: __assign(__assign(__assign({
225
231
  // default props
226
232
  className: 'ss__autocomplete__banner' }, (_e = globalTheme === null || globalTheme === void 0 ? void 0 : globalTheme.components) === null || _e === void 0 ? void 0 : _e.banner), (0, utilities_1.defined)({
@@ -234,13 +240,7 @@ exports.Autocomplete = (0, mobx_react_lite_1.observer)(function (properties) {
234
240
  disableStyles: disableStyles,
235
241
  })), {
236
242
  // component theme overrides
237
- theme: (0, deepmerge_1.default)({
238
- components: {
239
- result: {
240
- hideBadge: true,
241
- },
242
- },
243
- }, __assign({}, props.theme)) }),
243
+ theme: props.theme }),
244
244
  icon: __assign(__assign(__assign({
245
245
  // default props
246
246
  className: 'ss__autocomplete__icon', icon: 'angle-right', size: '10px' }, (_g = globalTheme === null || globalTheme === void 0 ? void 0 : globalTheme.components) === null || _g === void 0 ? void 0 : _g.icon), (0, utilities_1.defined)({
@@ -286,21 +286,21 @@ exports.Autocomplete = (0, mobx_react_lite_1.observer)(function (properties) {
286
286
  }
287
287
  return (visible && ((0, react_1.jsx)(providers_1.CacheProvider, null,
288
288
  (0, react_1.jsx)("div", __assign({}, styling, { className: (0, classnames_1.default)('ss__autocomplete', className, { 'ss__autocomplete--only-terms': onlyTerms }), onClick: function (e) { return e.stopPropagation(); } }),
289
- !hideTerms && ((0, react_1.jsx)("div", { className: (0, classnames_1.default)('ss__autocomplete__terms', { 'ss__autocomplete__terms-trending': showTrending }) }, termsSlot ? ((0, utilities_1.cloneWithProps)(termsSlot, { terms: terms, trending: trending, termsTitle: termsTitle, trendingTitle: trendingTitle, showTrending: showTrending, valueProps: valueProps, emIfy: emIfy, controller: controller })) : ((0, react_1.jsx)(preact_1.Fragment, null,
289
+ !hideTerms && ((0, react_1.jsx)("div", { className: (0, classnames_1.default)('ss__autocomplete__terms', { 'ss__autocomplete__terms-trending': showTrending }) }, termsSlot ? ((0, utilities_1.cloneWithProps)(termsSlot, { terms: terms, trending: trending, termsTitle: termsTitle, trendingTitle: trendingTitle, showTrending: showTrending, valueProps: valueProps, emIfy: emIfy, onTermClick: onTermClick, controller: controller })) : ((0, react_1.jsx)(preact_1.Fragment, null,
290
290
  terms.length > 0 ? ((0, react_1.jsx)(preact_1.Fragment, null,
291
291
  termsTitle ? ((0, react_1.jsx)("div", { className: "ss__autocomplete__title ss__autocomplete__title--terms" },
292
292
  (0, react_1.jsx)("h5", null, termsTitle))) : null,
293
293
  (0, react_1.jsx)("div", { className: "ss__autocomplete__terms__options" }, terms.map(function (term) { return ((0, react_1.jsx)("div", { className: (0, classnames_1.default)('ss__autocomplete__terms__option', {
294
294
  'ss__autocomplete__terms__option--active': term.active,
295
295
  }) },
296
- (0, react_1.jsx)("a", __assign({ href: term.url.href }, valueProps, { onFocus: function () { return term.preview(); } }), emIfy(term.value, state.input)))); })))) : null,
296
+ (0, react_1.jsx)("a", __assign({ onClick: function (e) { return onTermClick && onTermClick(e); }, href: term.url.href }, valueProps, { onFocus: function () { return term.preview(); } }), emIfy(term.value, state.input)))); })))) : null,
297
297
  showTrending ? ((0, react_1.jsx)(preact_1.Fragment, null,
298
298
  trendingTitle ? ((0, react_1.jsx)("div", { className: "ss__autocomplete__title ss__autocomplete__title--trending" },
299
299
  (0, react_1.jsx)("h5", null, trendingTitle))) : null,
300
300
  (0, react_1.jsx)("div", { className: "ss__autocomplete__terms__options" }, trending.map(function (term) { return ((0, react_1.jsx)("div", { className: (0, classnames_1.default)('ss__autocomplete__terms__option', {
301
301
  'ss__autocomplete__terms__option--active': term.active,
302
302
  }) },
303
- (0, react_1.jsx)("a", __assign({ href: term.url.href }, valueProps, { onFocus: function () { return term.preview(); } }), emIfy(term.value, state.input)))); })))) : null)))),
303
+ (0, react_1.jsx)("a", __assign({ onClick: function (e) { return onTermClick && onTermClick(e); }, href: term.url.href }, valueProps, { onFocus: function () { return term.preview(); } }), emIfy(term.value, state.input)))); })))) : null)))),
304
304
  !hideFacets &&
305
305
  (facetsSlot ? ((0, react_1.jsx)("div", { className: "ss__autocomplete__facets" }, (0, utilities_1.cloneWithProps)(facetsSlot, { facets: facetsToShow, merchandising: merchandising, facetsTitle: facetsTitle, hideBanners: hideBanners, controller: controller, valueProps: valueProps }))) : (facetsToShow.length > 0 && ((0, react_1.jsx)(preact_1.Fragment, null,
306
306
  facetsTitle && vertical ? ((0, react_1.jsx)("div", { className: (0, classnames_1.default)('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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKjE,wBA4OE;AAuBF,eAAO,MAAM,OAAO,KAAoB,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"}
@@ -257,6 +257,22 @@ exports.default = {
257
257
  control: {
258
258
  type: 'object',
259
259
  },
260
+ }, onFacetOptionClick: {
261
+ description: 'Custom onClick event handler for facet options.',
262
+ table: {
263
+ type: {
264
+ summary: 'function',
265
+ },
266
+ },
267
+ action: 'onFacetOptionClick',
268
+ }, onTermClick: {
269
+ description: 'Custom onClick event handler for Suggested & Trending Terms',
270
+ table: {
271
+ type: {
272
+ summary: 'function',
273
+ },
274
+ },
275
+ action: 'onTermClick',
260
276
  } }, utilities_1.componentArgs),
261
277
  };
262
278
  var snapInstance = snapify_1.Snapify.autocomplete({
@@ -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?: any;
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":";AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAM9E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAiDhD,eAAO,MAAM,cAAc,gBAAyB,mBAAmB,KAAG,WAAW;;CAyJnF,CAAC;AAEH,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IAC1D,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,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"}
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"}
@@ -30,11 +30,13 @@ var hooks_1 = require("preact/hooks");
30
30
  var react_1 = require("@emotion/react");
31
31
  var classnames_1 = __importDefault(require("classnames"));
32
32
  var mobx_react_lite_1 = require("mobx-react-lite");
33
+ var deepmerge_1 = __importDefault(require("deepmerge"));
33
34
  var Carousel_1 = require("../../Molecules/Carousel");
34
35
  var Result_1 = require("../../Molecules/Result");
35
36
  var utilities_1 = require("../../../utilities");
36
37
  var providers_1 = require("../../../providers");
37
38
  var hooks_2 = require("../../../hooks");
39
+ var useDisplaySettings_1 = require("../../../hooks/useDisplaySettings");
38
40
  var CSS = {
39
41
  recommendation: function (_a) {
40
42
  var vertical = _a.vertical;
@@ -46,46 +48,17 @@ var CSS = {
46
48
  });
47
49
  },
48
50
  };
49
- var defaultRecommendationBreakpoints = {
50
- 0: {
51
- slidesPerView: 1,
52
- slidesPerGroup: 1,
53
- spaceBetween: 0,
54
- },
55
- 480: {
56
- slidesPerView: 2,
57
- slidesPerGroup: 2,
58
- spaceBetween: 10,
59
- },
60
- 768: {
61
- slidesPerView: 3,
62
- slidesPerGroup: 3,
63
- spaceBetween: 10,
64
- },
65
- 1024: {
66
- slidesPerView: 4,
67
- slidesPerGroup: 4,
68
- spaceBetween: 10,
69
- },
70
- 1200: {
71
- slidesPerView: 5,
72
- slidesPerGroup: 5,
73
- spaceBetween: 10,
74
- },
75
- };
76
- var defaultVerticalRecommendationBreakpoints = {
77
- 0: {
78
- slidesPerView: 1,
79
- slidesPerGroup: 1,
80
- spaceBetween: 0,
81
- },
82
- };
83
51
  exports.Recommendation = (0, mobx_react_lite_1.observer)(function (properties) {
84
52
  var _a, _b, _c, _d, _e, _f, _g, _h;
85
53
  var globalTheme = (0, providers_1.useTheme)();
86
54
  var props = __assign(__assign(__assign({
87
55
  // default props
88
- breakpoints: properties.vertical ? defaultVerticalRecommendationBreakpoints : defaultRecommendationBreakpoints, pagination: false, loop: true }, (_a = globalTheme === null || globalTheme === void 0 ? void 0 : globalTheme.components) === null || _a === void 0 ? void 0 : _a.recommendation), properties), (_c = (_b = properties.theme) === null || _b === void 0 ? void 0 : _b.components) === null || _c === void 0 ? void 0 : _c.recommendation);
56
+ breakpoints: properties.vertical ? Carousel_1.defaultVerticalCarouselBreakpoints : Carousel_1.defaultCarouselBreakpoints, pagination: false, loop: true }, (_a = globalTheme === null || globalTheme === void 0 ? void 0 : globalTheme.components) === null || _a === void 0 ? void 0 : _a.recommendation), properties), (_c = (_b = properties.theme) === null || _b === void 0 ? void 0 : _b.components) === null || _c === void 0 ? void 0 : _c.recommendation);
57
+ var displaySettings = (0, useDisplaySettings_1.useDisplaySettings)(props.breakpoints);
58
+ if (displaySettings && Object.keys(displaySettings).length) {
59
+ var theme = (0, deepmerge_1.default)((props === null || props === void 0 ? void 0 : props.theme) || {}, (displaySettings === null || displaySettings === void 0 ? void 0 : displaySettings.theme) || {});
60
+ props = __assign(__assign(__assign({}, props), displaySettings), { theme: theme });
61
+ }
89
62
  var title = props.title, controller = props.controller, children = props.children, breakpoints = props.breakpoints, loop = props.loop, pagination = props.pagination, nextButton = props.nextButton, prevButton = props.prevButton, hideButtons = props.hideButtons, disableStyles = props.disableStyles, style = props.style, className = props.className, vertical = props.vertical, additionalProps = __rest(props, ["title", "controller", "children", "breakpoints", "loop", "pagination", "nextButton", "prevButton", "hideButtons", "disableStyles", "style", "className", "vertical"]);
90
63
  if (!controller || controller.type !== 'recommendation') {
91
64
  throw new Error("<Recommendation> Component requires 'controller' prop with an instance of RecommendationController");
@@ -162,7 +135,7 @@ exports.Recommendation = (0, mobx_react_lite_1.observer)(function (properties) {
162
135
  if (!Number.isNaN(clickedIndex)) {
163
136
  controller.track.product.click(e, results[clickedIndex]);
164
137
  }
165
- }, loop: loop, breakpoints: breakpoints, pagination: pagination }, subProps.carousel, additionalProps), children
138
+ }, loop: loop, pagination: pagination, breakpoints: breakpoints }, subProps.carousel, additionalProps, displaySettings), children
166
139
  ? children.map(function (child) { return child; })
167
140
  : results.map(function (result) { return (0, react_1.jsx)(Result_1.Result, __assign({ controller: controller, result: result }, subProps.result)); }))))));
168
141
  });
@@ -1,5 +1,5 @@
1
1
  import type { SearchController, AutocompleteController, RecommendationController } from '@searchspring/snap-controller';
2
- import { ComponentProps, Result as ResultType, LayoutType, InlineBannerContent } from '../../../types';
2
+ import { ComponentProps, Result as ResultType, LayoutType, InlineBannerContent, BreakpointsProps } from '../../../types';
3
3
  export declare const Results: ((properties: ResultsProp) => JSX.Element) & {
4
4
  displayName: string;
5
5
  };
@@ -12,10 +12,4 @@ export interface ResultsProp extends ComponentProps {
12
12
  breakpoints?: BreakpointsProps;
13
13
  controller?: SearchController | AutocompleteController | RecommendationController;
14
14
  }
15
- export declare type BreakpointsProps = {
16
- [key: number]: BreakpointsEntry;
17
- };
18
- export declare type BreakpointsEntry = {
19
- [property: string]: any;
20
- };
21
15
  //# sourceMappingURL=Results.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Results.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/Results/Results.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAIxH,OAAO,EAAE,cAAc,EAAU,MAAM,IAAI,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAc,MAAM,gBAAgB,CAAC;AAsD3H,eAAO,MAAM,OAAO,gBAAyB,WAAW,KAAG,WAAW;;CAoFpE,CAAC;AAEH,MAAM,WAAW,WAAY,SAAQ,cAAc;IAClD,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;CAClF;AAED,oBAAY,gBAAgB,GAAG;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;CAChC,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC9B,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"Results.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/Results/Results.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAIxH,OAAO,EAAE,cAAc,EAAU,MAAM,IAAI,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAc,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAsD7I,eAAO,MAAM,OAAO,gBAAyB,WAAW,KAAG,WAAW;;CAoFpE,CAAC;AAEH,MAAM,WAAW,WAAY,SAAQ,cAAc;IAClD,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;CAClF"}
@@ -1,3 +1,3 @@
1
- import { BreakpointsProps, BreakpointsEntry } from '../components/Organisms/Results/Results';
1
+ import { BreakpointsProps, BreakpointsEntry } from '../types';
2
2
  export declare function useDisplaySettings(breakpointsObj: BreakpointsProps): BreakpointsEntry;
3
3
  //# sourceMappingURL=useDisplaySettings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDisplaySettings.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDisplaySettings.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE7F,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,gBAAgB,GAAG,gBAAgB,CAoBrF"}
1
+ {"version":3,"file":"useDisplaySettings.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDisplaySettings.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,gBAAgB,GAAG,gBAAgB,CAoBrF"}
@@ -227,4 +227,10 @@ export declare enum FacetDisplay {
227
227
  SLIDER = "slider",
228
228
  HIERARCHY = "hierarchy"
229
229
  }
230
+ export declare type BreakpointsProps = {
231
+ [key: number]: BreakpointsEntry;
232
+ };
233
+ export declare type BreakpointsEntry = {
234
+ [property: string]: any;
235
+ };
230
236
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,6 @@ export interface InlineBannerProps extends ComponentProps {
5
5
  banner: InlineBannerContent;
6
6
  width?: string;
7
7
  layout?: LayoutType;
8
+ onClick?: (e: React.MouseEvent) => void;
8
9
  }
9
10
  //# sourceMappingURL=InlineBanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InlineBanner.d.ts","sourceRoot":"","sources":["../../../../../src/components/Atoms/Merchandising/InlineBanner.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAU,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAyBzF,wBAAgB,YAAY,CAAC,UAAU,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAoCvE;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACxD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,CAAC;CACpB"}
1
+ {"version":3,"file":"InlineBanner.d.ts","sourceRoot":"","sources":["../../../../../src/components/Atoms/Merchandising/InlineBanner.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAU,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAyBzF,wBAAgB,YAAY,CAAC,UAAU,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAwCvE;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACxD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CACxC"}
@@ -30,12 +30,12 @@ export function InlineBanner(properties) {
30
30
  layout: Layout.GRID,
31
31
  banner: {},
32
32
  // global theme
33
- ...globalTheme?.components?.banner,
33
+ ...globalTheme?.components?.inlineBanner,
34
34
  // props
35
35
  ...properties,
36
- ...properties.theme?.components?.banner,
36
+ ...properties.theme?.components?.inlineBanner,
37
37
  };
38
- const { banner, disableStyles, className, width, layout, style } = props;
38
+ const { banner, disableStyles, className, width, layout, onClick, style } = props;
39
39
  const styling = {};
40
40
  if (!disableStyles) {
41
41
  styling.css = [CSS.inlineBanner({ width }), style];
@@ -45,7 +45,9 @@ export function InlineBanner(properties) {
45
45
  }
46
46
  return (banner &&
47
47
  banner.value && (jsx(CacheProvider, null,
48
- jsx("div", { className: classnames('ss__inline-banner', `ss__inline-banner--${layout}`, className), ...styling, dangerouslySetInnerHTML: {
48
+ jsx("div", { onClick: (e) => {
49
+ onClick && onClick(e);
50
+ }, className: classnames('ss__inline-banner', `ss__inline-banner--${layout}`, className), ...styling, dangerouslySetInnerHTML: {
49
51
  __html: banner.value,
50
52
  } }))));
51
53
  }
@@ -99,6 +99,15 @@ declare const _default: {
99
99
  type: string;
100
100
  };
101
101
  };
102
+ onClick: {
103
+ description: string;
104
+ table: {
105
+ type: {
106
+ summary: string;
107
+ };
108
+ };
109
+ action: string;
110
+ };
102
111
  };
103
112
  decorators: ((Story: any) => h.JSX.Element)[];
104
113
  };
@@ -1 +1 @@
1
- {"version":3,"file":"InlineBanner.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Atoms/Merchandising/InlineBanner.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,OAAO,EAAE,YAAY,EAAqB,MAAM,gBAAgB,CAAC;AAIjE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExC,wBA6DE;AASF,eAAO,MAAM,OAAO,KAAoB,CAAC"}
1
+ {"version":3,"file":"InlineBanner.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Atoms/Merchandising/InlineBanner.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,OAAO,EAAE,YAAY,EAAqB,MAAM,gBAAgB,CAAC;AAIjE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExC,wBAsEE;AASF,eAAO,MAAM,OAAO,KAAoB,CAAC"}
@@ -48,6 +48,15 @@ export default {
48
48
  },
49
49
  control: { type: 'text' },
50
50
  },
51
+ onClick: {
52
+ description: 'Custom onClick event handler',
53
+ table: {
54
+ type: {
55
+ summary: 'function',
56
+ },
57
+ },
58
+ action: 'onClick',
59
+ },
51
60
  ...componentArgs,
52
61
  },
53
62
  decorators: [
@@ -1,17 +1,52 @@
1
1
  /// <reference types="react" />
2
2
  import 'swiper/swiper.min.css';
3
- import { ComponentProps } from '../../../types';
3
+ import { ComponentProps, BreakpointsProps } from '../../../types';
4
+ export declare const defaultCarouselBreakpoints: {
5
+ 0: {
6
+ slidesPerView: number;
7
+ slidesPerGroup: number;
8
+ spaceBetween: number;
9
+ };
10
+ 480: {
11
+ slidesPerView: number;
12
+ slidesPerGroup: number;
13
+ spaceBetween: number;
14
+ };
15
+ 768: {
16
+ slidesPerView: number;
17
+ slidesPerGroup: number;
18
+ spaceBetween: number;
19
+ };
20
+ 1024: {
21
+ slidesPerView: number;
22
+ slidesPerGroup: number;
23
+ spaceBetween: number;
24
+ };
25
+ 1200: {
26
+ slidesPerView: number;
27
+ slidesPerGroup: number;
28
+ spaceBetween: number;
29
+ };
30
+ };
31
+ export declare const defaultVerticalCarouselBreakpoints: {
32
+ 0: {
33
+ slidesPerView: number;
34
+ slidesPerGroup: number;
35
+ spaceBetween: number;
36
+ };
37
+ };
4
38
  export declare const Carousel: ((properties: CarouselProps) => JSX.Element) & {
5
39
  displayName: string;
6
40
  };
7
41
  export interface CarouselProps extends ComponentProps {
8
- breakpoints?: any;
42
+ breakpoints?: BreakpointsProps;
9
43
  prevButton?: JSX.Element | string;
10
44
  nextButton?: JSX.Element | string;
11
45
  hideButtons?: boolean;
12
46
  loop?: boolean;
13
47
  vertical?: boolean;
14
48
  pagination?: boolean;
49
+ autoAdjustSlides?: boolean;
15
50
  onClick?: (swiper: any, e: any) => void;
16
51
  onNextButtonClick?: (e: any) => void;
17
52
  onPrevButtonClick?: (e: any) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/Carousel/Carousel.tsx"],"names":[],"mappings":";AAQA,OAAO,uBAAuB,CAAC;AAM/B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AA2HhD,eAAO,MAAM,QAAQ,gBAAyB,aAAa,KAAG,WAAW;;CAgIvE,CAAC;AAEH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACpD,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,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,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,MAAM,KAAA,EAAE,CAAC,KAAA,KAAK,IAAI,CAAC;IAC9B,iBAAiB,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAA,KAAK,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;CACzB"}
1
+ {"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/Carousel/Carousel.tsx"],"names":[],"mappings":";AASA,OAAO,uBAAuB,CAAC;AAM/B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA2FlE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BtC,CAAC;AAEF,eAAO,MAAM,kCAAkC;;;;;;CAM9C,CAAC;AAEF,eAAO,MAAM,QAAQ,gBAAyB,aAAa,KAAG,WAAW;;CA8IvE,CAAC;AAEH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACpD,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,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,MAAM,KAAA,EAAE,CAAC,KAAA,KAAK,IAAI,CAAC;IAC9B,iBAAiB,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAA,KAAK,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;CACzB"}
@@ -2,12 +2,14 @@ import { 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 deepmerge from 'deepmerge';
5
6
  import SwiperCore, { Pagination, Navigation } from 'swiper/core';
6
7
  import 'swiper/swiper.min.css';
7
8
  import { Icon } from '../../Atoms/Icon/Icon';
8
9
  import { Swiper, SwiperSlide } from 'swiper/react';
9
10
  import { defined } from '../../../utilities';
10
11
  import { useTheme, CacheProvider } from '../../../providers';
12
+ import { useDisplaySettings } from '../../../hooks/useDisplaySettings';
11
13
  const CSS = {
12
14
  carousel: ({ theme, vertical }) => css({
13
15
  display: 'flex',
@@ -45,6 +47,9 @@ const CSS = {
45
47
  display: 'flex',
46
48
  justifyContent: 'center',
47
49
  alignItems: 'center',
50
+ '&.ss__carousel__next-wrapper--hidden, &.ss__carousel__prev-wrapper--hidden': {
51
+ display: 'none',
52
+ },
48
53
  },
49
54
  '.ss__carousel__next, .ss__carousel__prev': {
50
55
  padding: '5px',
@@ -86,7 +91,7 @@ const CSS = {
86
91
  },
87
92
  }),
88
93
  };
89
- const defaultCarouselBreakpoints = {
94
+ export const defaultCarouselBreakpoints = {
90
95
  0: {
91
96
  slidesPerView: 1,
92
97
  slidesPerGroup: 1,
@@ -113,7 +118,7 @@ const defaultCarouselBreakpoints = {
113
118
  spaceBetween: 10,
114
119
  },
115
120
  };
116
- const defaultVerticalCarouselBreakpoints = {
121
+ export const defaultVerticalCarouselBreakpoints = {
117
122
  0: {
118
123
  slidesPerView: 1,
119
124
  slidesPerGroup: 1,
@@ -123,18 +128,33 @@ const defaultVerticalCarouselBreakpoints = {
123
128
  export const Carousel = observer((properties) => {
124
129
  const globalTheme = useTheme();
125
130
  const theme = { ...globalTheme, ...properties.theme };
126
- const props = {
131
+ let props = {
127
132
  // default props
128
133
  breakpoints: properties.vertical ? defaultVerticalCarouselBreakpoints : defaultCarouselBreakpoints,
129
134
  pagination: false,
130
135
  loop: true,
136
+ autoAdjustSlides: true,
131
137
  // global theme
132
138
  ...globalTheme?.components?.carousel,
133
139
  //props
134
140
  ...properties,
135
141
  ...properties.theme?.components?.carousel,
136
142
  };
137
- const { children, breakpoints, loop, pagination, nextButton, prevButton, hideButtons, vertical, onInit, onNextButtonClick, onPrevButtonClick, onClick, disableStyles, style, className, ...additionalProps } = props;
143
+ const displaySettings = useDisplaySettings(props.breakpoints);
144
+ if (displaySettings && Object.keys(displaySettings).length) {
145
+ const theme = deepmerge(props?.theme || {}, displaySettings?.theme || {});
146
+ if (props.autoAdjustSlides && props.children.length < displaySettings.slidesPerView) {
147
+ displaySettings.slidesPerView = props.children.length;
148
+ displaySettings.slidesPerGroup = props.children.length;
149
+ displaySettings.loop = false;
150
+ }
151
+ props = {
152
+ ...props,
153
+ ...displaySettings,
154
+ theme,
155
+ };
156
+ }
157
+ const { children, breakpoints, loop, pagination, nextButton, prevButton, hideButtons, vertical, autoAdjustSlides, onInit, onNextButtonClick, onPrevButtonClick, onClick, disableStyles, style, className, ...additionalProps } = props;
138
158
  const subProps = {
139
159
  icon: {
140
160
  // default props
@@ -162,8 +182,8 @@ export const Carousel = observer((properties) => {
162
182
  }
163
183
  return (children && (jsx(CacheProvider, null,
164
184
  jsx("div", { ref: rootComponentRef, ...styling, className: classnames('ss__carousel', vertical ? 'ss__carousel-vertical' : '', className) },
165
- !hideButtons && (jsx("div", { className: "ss__carousel__prev-wrapper" },
166
- jsx("div", { className: "ss__carousel__prev", ref: navigationPrevRef, onClick: onPrevButtonClick && ((e) => onPrevButtonClick(e)) }, prevButton || jsx(Icon, { icon: vertical ? 'angle-up' : 'angle-left', ...subProps.icon })))),
185
+ jsx("div", { className: classnames('ss__carousel__prev-wrapper', { 'ss__carousel__prev-wrapper--hidden': hideButtons }) },
186
+ jsx("div", { className: "ss__carousel__prev", ref: navigationPrevRef, onClick: onPrevButtonClick && ((e) => onPrevButtonClick(e)) }, prevButton || jsx(Icon, { icon: vertical ? 'angle-up' : 'angle-left', ...subProps.icon }))),
167
187
  jsx(Swiper, { centerInsufficientSlides: true, onInit: (swiper) => {
168
188
  //@ts-ignore
169
189
  swiper.params.navigation.prevEl = navigationPrevRef.current ? navigationPrevRef.current : undefined;
@@ -174,13 +194,13 @@ export const Carousel = observer((properties) => {
174
194
  }
175
195
  }, onClick: (swiper, e) => {
176
196
  onClick && onClick(swiper, e);
177
- }, direction: vertical ? 'vertical' : 'horizontal', loop: loop, breakpoints: breakpoints, pagination: pagination
197
+ }, direction: vertical ? 'vertical' : 'horizontal', loop: loop, pagination: pagination
178
198
  ? {
179
199
  clickable: true,
180
200
  }
181
- : false, ...additionalProps }, children.map((child) => {
201
+ : false, ...additionalProps, ...displaySettings }, children.map((child) => {
182
202
  return jsx(SwiperSlide, null, child);
183
203
  })),
184
- !hideButtons && (jsx("div", { className: "ss__carousel__next-wrapper" },
185
- jsx("div", { className: "ss__carousel__next", ref: navigationNextRef, onClick: onNextButtonClick && ((e) => onNextButtonClick(e)) }, nextButton || jsx(Icon, { icon: vertical ? 'angle-down' : 'angle-right', ...subProps.icon }))))))));
204
+ jsx("div", { className: classnames('ss__carousel__next-wrapper', { 'ss__carousel__next-wrapper--hidden': hideButtons }) },
205
+ jsx("div", { className: "ss__carousel__next", ref: navigationNextRef, onClick: onNextButtonClick && ((e) => onNextButtonClick(e)) }, nextButton || jsx(Icon, { icon: vertical ? 'angle-down' : 'angle-right', ...subProps.icon })))))));
186
206
  });