instantsearch-ui-components 0.5.0 → 0.6.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 (46) hide show
  1. package/dist/cjs/components/FrequentlyBoughtTogether.js +78 -0
  2. package/dist/cjs/components/Hits.js +1 -2
  3. package/dist/cjs/components/LookingSimilar.js +78 -0
  4. package/dist/cjs/components/RelatedProducts.js +78 -0
  5. package/dist/cjs/components/TrendingItems.js +78 -0
  6. package/dist/cjs/components/index.js +44 -0
  7. package/dist/cjs/components/recommend-shared/DefaultEmpty.js +14 -0
  8. package/dist/cjs/components/recommend-shared/DefaultHeader.js +24 -0
  9. package/dist/cjs/components/recommend-shared/DefaultItem.js +13 -0
  10. package/dist/cjs/components/recommend-shared/ListView.js +30 -0
  11. package/dist/cjs/components/recommend-shared/index.js +49 -0
  12. package/dist/cjs/types/Recommend.js +1 -0
  13. package/dist/cjs/types/index.js +22 -0
  14. package/dist/cjs/types/shared.js +1 -0
  15. package/dist/cjs/version.js +1 -1
  16. package/dist/es/components/FrequentlyBoughtTogether.d.ts +4 -0
  17. package/dist/es/components/FrequentlyBoughtTogether.js +71 -0
  18. package/dist/es/components/Hits.d.ts +2 -3
  19. package/dist/es/components/Hits.js +1 -2
  20. package/dist/es/components/LookingSimilar.d.ts +4 -0
  21. package/dist/es/components/LookingSimilar.js +71 -0
  22. package/dist/es/components/RelatedProducts.d.ts +4 -0
  23. package/dist/es/components/RelatedProducts.js +71 -0
  24. package/dist/es/components/TrendingItems.d.ts +4 -0
  25. package/dist/es/components/TrendingItems.js +71 -0
  26. package/dist/es/components/index.d.ts +4 -0
  27. package/dist/es/components/index.js +5 -1
  28. package/dist/es/components/recommend-shared/DefaultEmpty.d.ts +3 -0
  29. package/dist/es/components/recommend-shared/DefaultEmpty.js +8 -0
  30. package/dist/es/components/recommend-shared/DefaultHeader.d.ts +3 -0
  31. package/dist/es/components/recommend-shared/DefaultHeader.js +18 -0
  32. package/dist/es/components/recommend-shared/DefaultItem.d.ts +3 -0
  33. package/dist/es/components/recommend-shared/DefaultItem.js +7 -0
  34. package/dist/es/components/recommend-shared/ListView.d.ts +3 -0
  35. package/dist/es/components/recommend-shared/ListView.js +24 -0
  36. package/dist/es/components/recommend-shared/index.d.ts +4 -0
  37. package/dist/es/components/recommend-shared/index.js +4 -0
  38. package/dist/es/types/Recommend.d.ts +71 -0
  39. package/dist/es/types/Recommend.js +1 -0
  40. package/dist/es/types/index.d.ts +2 -0
  41. package/dist/es/types/index.js +3 -1
  42. package/dist/es/types/shared.d.ts +1 -0
  43. package/dist/es/types/shared.js +1 -0
  44. package/dist/es/version.d.ts +1 -1
  45. package/dist/es/version.js +1 -1
  46. package/package.json +2 -2
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createFrequentlyBoughtTogetherComponent = createFrequentlyBoughtTogetherComponent;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _lib = require("../lib");
12
+ var _recommendShared = require("./recommend-shared");
13
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
+ function createFrequentlyBoughtTogetherComponent(_ref) {
17
+ var createElement = _ref.createElement,
18
+ Fragment = _ref.Fragment;
19
+ return function FrequentlyBoughtTogether(userProps) {
20
+ var _userProps$classNames = userProps.classNames,
21
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
22
+ _userProps$emptyCompo = userProps.emptyComponent,
23
+ EmptyComponent = _userProps$emptyCompo === void 0 ? (0, _recommendShared.createDefaultEmptyComponent)({
24
+ createElement: createElement,
25
+ Fragment: Fragment
26
+ }) : _userProps$emptyCompo,
27
+ _userProps$headerComp = userProps.headerComponent,
28
+ HeaderComponent = _userProps$headerComp === void 0 ? (0, _recommendShared.createDefaultHeaderComponent)({
29
+ createElement: createElement,
30
+ Fragment: Fragment
31
+ }) : _userProps$headerComp,
32
+ _userProps$itemCompon = userProps.itemComponent,
33
+ ItemComponent = _userProps$itemCompon === void 0 ? (0, _recommendShared.createDefaultItemComponent)({
34
+ createElement: createElement,
35
+ Fragment: Fragment
36
+ }) : _userProps$itemCompon,
37
+ _userProps$view = userProps.view,
38
+ View = _userProps$view === void 0 ? (0, _recommendShared.createListViewComponent)({
39
+ createElement: createElement,
40
+ Fragment: Fragment
41
+ }) : _userProps$view,
42
+ items = userProps.items,
43
+ status = userProps.status,
44
+ userTranslations = userProps.translations,
45
+ sendEvent = userProps.sendEvent,
46
+ props = (0, _objectWithoutProperties2.default)(userProps, _excluded);
47
+ var translations = _objectSpread({
48
+ title: 'Frequently bought together',
49
+ sliderLabel: 'Frequently bought together products'
50
+ }, userTranslations);
51
+ var cssClasses = {
52
+ root: (0, _lib.cx)('ais-FrequentlyBoughtTogether', classNames.root),
53
+ emptyRoot: (0, _lib.cx)('ais-FrequentlyBoughtTogether', classNames.root, 'ais-FrequentlyBoughtTogether--empty', classNames.emptyRoot, props.className),
54
+ title: (0, _lib.cx)('ais-FrequentlyBoughtTogether-title', classNames.title),
55
+ container: (0, _lib.cx)('ais-FrequentlyBoughtTogether-container', classNames.container),
56
+ list: (0, _lib.cx)('ais-FrequentlyBoughtTogether-list', classNames.list),
57
+ item: (0, _lib.cx)('ais-FrequentlyBoughtTogether-item', classNames.item)
58
+ };
59
+ if (items.length === 0 && status === 'idle') {
60
+ return createElement("section", (0, _extends2.default)({}, props, {
61
+ className: cssClasses.emptyRoot
62
+ }), createElement(EmptyComponent, null));
63
+ }
64
+ return createElement("section", (0, _extends2.default)({}, props, {
65
+ className: cssClasses.root
66
+ }), createElement(HeaderComponent, {
67
+ classNames: cssClasses,
68
+ items: items,
69
+ translations: translations
70
+ }), createElement(View, {
71
+ classNames: cssClasses,
72
+ translations: translations,
73
+ itemComponent: ItemComponent,
74
+ items: items,
75
+ sendEvent: sendEvent
76
+ }));
77
+ };
78
+ }
@@ -14,7 +14,6 @@ var _excluded = ["classNames", "hits", "itemComponent", "sendEvent", "emptyCompo
14
14
  function createDefaultBannerComponent(_ref) {
15
15
  var createElement = _ref.createElement;
16
16
  return function DefaultBanner(_ref2) {
17
- var _banner$link;
18
17
  var classNames = _ref2.classNames,
19
18
  banner = _ref2.banner;
20
19
  if (!banner.image.urls[0].url) {
@@ -22,7 +21,7 @@ function createDefaultBannerComponent(_ref) {
22
21
  }
23
22
  return createElement("aside", {
24
23
  className: (0, _lib.cx)('ais-Hits-banner', classNames.bannerRoot)
25
- }, (_banner$link = banner.link) !== null && _banner$link !== void 0 && _banner$link.url ? createElement("a", {
24
+ }, banner.link ? createElement("a", {
26
25
  className: (0, _lib.cx)('ais-Hits-banner-link', classNames.bannerLink),
27
26
  href: banner.link.url,
28
27
  target: banner.link.target
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createLookingSimilarComponent = createLookingSimilarComponent;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _lib = require("../lib");
12
+ var _recommendShared = require("./recommend-shared");
13
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
+ function createLookingSimilarComponent(_ref) {
17
+ var createElement = _ref.createElement,
18
+ Fragment = _ref.Fragment;
19
+ return function LookingSimilar(userProps) {
20
+ var _userProps$classNames = userProps.classNames,
21
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
22
+ _userProps$emptyCompo = userProps.emptyComponent,
23
+ EmptyComponent = _userProps$emptyCompo === void 0 ? (0, _recommendShared.createDefaultEmptyComponent)({
24
+ createElement: createElement,
25
+ Fragment: Fragment
26
+ }) : _userProps$emptyCompo,
27
+ _userProps$headerComp = userProps.headerComponent,
28
+ HeaderComponent = _userProps$headerComp === void 0 ? (0, _recommendShared.createDefaultHeaderComponent)({
29
+ createElement: createElement,
30
+ Fragment: Fragment
31
+ }) : _userProps$headerComp,
32
+ _userProps$itemCompon = userProps.itemComponent,
33
+ ItemComponent = _userProps$itemCompon === void 0 ? (0, _recommendShared.createDefaultItemComponent)({
34
+ createElement: createElement,
35
+ Fragment: Fragment
36
+ }) : _userProps$itemCompon,
37
+ _userProps$view = userProps.view,
38
+ View = _userProps$view === void 0 ? (0, _recommendShared.createListViewComponent)({
39
+ createElement: createElement,
40
+ Fragment: Fragment
41
+ }) : _userProps$view,
42
+ items = userProps.items,
43
+ status = userProps.status,
44
+ userTranslations = userProps.translations,
45
+ sendEvent = userProps.sendEvent,
46
+ props = (0, _objectWithoutProperties2.default)(userProps, _excluded);
47
+ var translations = _objectSpread({
48
+ title: 'Looking similar',
49
+ sliderLabel: 'Looking similar'
50
+ }, userTranslations);
51
+ var cssClasses = {
52
+ root: (0, _lib.cx)('ais-LookingSimilar', classNames.root),
53
+ emptyRoot: (0, _lib.cx)('ais-LookingSimilar', classNames.root, 'ais-LookingSimilar--empty', classNames.emptyRoot, props.className),
54
+ title: (0, _lib.cx)('ais-LookingSimilar-title', classNames.title),
55
+ container: (0, _lib.cx)('ais-LookingSimilar-container', classNames.container),
56
+ list: (0, _lib.cx)('ais-LookingSimilar-list', classNames.list),
57
+ item: (0, _lib.cx)('ais-LookingSimilar-item', classNames.item)
58
+ };
59
+ if (items.length === 0 && status === 'idle') {
60
+ return createElement("section", (0, _extends2.default)({}, props, {
61
+ className: cssClasses.emptyRoot
62
+ }), createElement(EmptyComponent, null));
63
+ }
64
+ return createElement("section", (0, _extends2.default)({}, props, {
65
+ className: cssClasses.root
66
+ }), createElement(HeaderComponent, {
67
+ classNames: cssClasses,
68
+ items: items,
69
+ translations: translations
70
+ }), createElement(View, {
71
+ classNames: cssClasses,
72
+ translations: translations,
73
+ itemComponent: ItemComponent,
74
+ items: items,
75
+ sendEvent: sendEvent
76
+ }));
77
+ };
78
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createRelatedProductsComponent = createRelatedProductsComponent;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _lib = require("../lib");
12
+ var _recommendShared = require("./recommend-shared");
13
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
+ function createRelatedProductsComponent(_ref) {
17
+ var createElement = _ref.createElement,
18
+ Fragment = _ref.Fragment;
19
+ return function RelatedProducts(userProps) {
20
+ var _userProps$classNames = userProps.classNames,
21
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
22
+ _userProps$emptyCompo = userProps.emptyComponent,
23
+ EmptyComponent = _userProps$emptyCompo === void 0 ? (0, _recommendShared.createDefaultEmptyComponent)({
24
+ createElement: createElement,
25
+ Fragment: Fragment
26
+ }) : _userProps$emptyCompo,
27
+ _userProps$headerComp = userProps.headerComponent,
28
+ HeaderComponent = _userProps$headerComp === void 0 ? (0, _recommendShared.createDefaultHeaderComponent)({
29
+ createElement: createElement,
30
+ Fragment: Fragment
31
+ }) : _userProps$headerComp,
32
+ _userProps$itemCompon = userProps.itemComponent,
33
+ ItemComponent = _userProps$itemCompon === void 0 ? (0, _recommendShared.createDefaultItemComponent)({
34
+ createElement: createElement,
35
+ Fragment: Fragment
36
+ }) : _userProps$itemCompon,
37
+ _userProps$view = userProps.view,
38
+ View = _userProps$view === void 0 ? (0, _recommendShared.createListViewComponent)({
39
+ createElement: createElement,
40
+ Fragment: Fragment
41
+ }) : _userProps$view,
42
+ items = userProps.items,
43
+ status = userProps.status,
44
+ userTranslations = userProps.translations,
45
+ sendEvent = userProps.sendEvent,
46
+ props = (0, _objectWithoutProperties2.default)(userProps, _excluded);
47
+ var translations = _objectSpread({
48
+ title: 'Related products',
49
+ sliderLabel: 'Related products'
50
+ }, userTranslations);
51
+ var cssClasses = {
52
+ root: (0, _lib.cx)('ais-RelatedProducts', classNames.root),
53
+ emptyRoot: (0, _lib.cx)('ais-RelatedProducts', classNames.root, 'ais-RelatedProducts--empty', classNames.emptyRoot, props.className),
54
+ title: (0, _lib.cx)('ais-RelatedProducts-title', classNames.title),
55
+ container: (0, _lib.cx)('ais-RelatedProducts-container', classNames.container),
56
+ list: (0, _lib.cx)('ais-RelatedProducts-list', classNames.list),
57
+ item: (0, _lib.cx)('ais-RelatedProducts-item', classNames.item)
58
+ };
59
+ if (items.length === 0 && status === 'idle') {
60
+ return createElement("section", (0, _extends2.default)({}, props, {
61
+ className: cssClasses.emptyRoot
62
+ }), createElement(EmptyComponent, null));
63
+ }
64
+ return createElement("section", (0, _extends2.default)({}, props, {
65
+ className: cssClasses.root
66
+ }), createElement(HeaderComponent, {
67
+ classNames: cssClasses,
68
+ items: items,
69
+ translations: translations
70
+ }), createElement(View, {
71
+ classNames: cssClasses,
72
+ translations: translations,
73
+ itemComponent: ItemComponent,
74
+ items: items,
75
+ sendEvent: sendEvent
76
+ }));
77
+ };
78
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createTrendingItemsComponent = createTrendingItemsComponent;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _lib = require("../lib");
12
+ var _recommendShared = require("./recommend-shared");
13
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
+ function createTrendingItemsComponent(_ref) {
17
+ var createElement = _ref.createElement,
18
+ Fragment = _ref.Fragment;
19
+ return function TrendingItems(userProps) {
20
+ var _userProps$classNames = userProps.classNames,
21
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
22
+ _userProps$emptyCompo = userProps.emptyComponent,
23
+ EmptyComponent = _userProps$emptyCompo === void 0 ? (0, _recommendShared.createDefaultEmptyComponent)({
24
+ createElement: createElement,
25
+ Fragment: Fragment
26
+ }) : _userProps$emptyCompo,
27
+ _userProps$headerComp = userProps.headerComponent,
28
+ HeaderComponent = _userProps$headerComp === void 0 ? (0, _recommendShared.createDefaultHeaderComponent)({
29
+ createElement: createElement,
30
+ Fragment: Fragment
31
+ }) : _userProps$headerComp,
32
+ _userProps$itemCompon = userProps.itemComponent,
33
+ ItemComponent = _userProps$itemCompon === void 0 ? (0, _recommendShared.createDefaultItemComponent)({
34
+ createElement: createElement,
35
+ Fragment: Fragment
36
+ }) : _userProps$itemCompon,
37
+ _userProps$view = userProps.view,
38
+ View = _userProps$view === void 0 ? (0, _recommendShared.createListViewComponent)({
39
+ createElement: createElement,
40
+ Fragment: Fragment
41
+ }) : _userProps$view,
42
+ items = userProps.items,
43
+ status = userProps.status,
44
+ userTranslations = userProps.translations,
45
+ sendEvent = userProps.sendEvent,
46
+ props = (0, _objectWithoutProperties2.default)(userProps, _excluded);
47
+ var translations = _objectSpread({
48
+ title: 'Trending items',
49
+ sliderLabel: 'Trending items'
50
+ }, userTranslations);
51
+ var cssClasses = {
52
+ root: (0, _lib.cx)('ais-TrendingItems', classNames.root),
53
+ emptyRoot: (0, _lib.cx)('ais-TrendingItems', classNames.root, 'ais-TrendingItems--empty', classNames.emptyRoot, props.className),
54
+ title: (0, _lib.cx)('ais-TrendingItems-title', classNames.title),
55
+ container: (0, _lib.cx)('ais-TrendingItems-container', classNames.container),
56
+ list: (0, _lib.cx)('ais-TrendingItems-list', classNames.list),
57
+ item: (0, _lib.cx)('ais-TrendingItems-item', classNames.item)
58
+ };
59
+ if (items.length === 0 && status === 'idle') {
60
+ return createElement("section", (0, _extends2.default)({}, props, {
61
+ className: cssClasses.emptyRoot
62
+ }), createElement(EmptyComponent, null));
63
+ }
64
+ return createElement("section", (0, _extends2.default)({}, props, {
65
+ className: cssClasses.root
66
+ }), createElement(HeaderComponent, {
67
+ classNames: cssClasses,
68
+ items: items,
69
+ translations: translations
70
+ }), createElement(View, {
71
+ classNames: cssClasses,
72
+ translations: translations,
73
+ itemComponent: ItemComponent,
74
+ items: items,
75
+ sendEvent: sendEvent
76
+ }));
77
+ };
78
+ }
@@ -3,6 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _FrequentlyBoughtTogether = require("./FrequentlyBoughtTogether");
7
+ Object.keys(_FrequentlyBoughtTogether).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _FrequentlyBoughtTogether[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _FrequentlyBoughtTogether[key];
14
+ }
15
+ });
16
+ });
6
17
  var _Highlight = require("./Highlight");
7
18
  Object.keys(_Highlight).forEach(function (key) {
8
19
  if (key === "default" || key === "__esModule") return;
@@ -24,4 +35,37 @@ Object.keys(_Hits).forEach(function (key) {
24
35
  return _Hits[key];
25
36
  }
26
37
  });
38
+ });
39
+ var _RelatedProducts = require("./RelatedProducts");
40
+ Object.keys(_RelatedProducts).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _RelatedProducts[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function get() {
46
+ return _RelatedProducts[key];
47
+ }
48
+ });
49
+ });
50
+ var _TrendingItems = require("./TrendingItems");
51
+ Object.keys(_TrendingItems).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _TrendingItems[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _TrendingItems[key];
58
+ }
59
+ });
60
+ });
61
+ var _LookingSimilar = require("./LookingSimilar");
62
+ Object.keys(_LookingSimilar).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _LookingSimilar[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function get() {
68
+ return _LookingSimilar[key];
69
+ }
70
+ });
27
71
  });
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createDefaultEmptyComponent = createDefaultEmptyComponent;
7
+ function createDefaultEmptyComponent(_ref) {
8
+ var createElement = _ref.createElement,
9
+ Fragment = _ref.Fragment;
10
+ var _ref2 = createElement(Fragment, null, "No results");
11
+ return function DefaultEmpty() {
12
+ return _ref2;
13
+ };
14
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createDefaultHeaderComponent = createDefaultHeaderComponent;
7
+ function createDefaultHeaderComponent(_ref) {
8
+ var createElement = _ref.createElement;
9
+ return function DefaultHeader(userProps) {
10
+ var _userProps$classNames = userProps.classNames,
11
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
12
+ items = userProps.items,
13
+ translations = userProps.translations;
14
+ if (!items || items.length < 1) {
15
+ return null;
16
+ }
17
+ if (!translations.title) {
18
+ return null;
19
+ }
20
+ return createElement("h3", {
21
+ className: classNames.title
22
+ }, translations.title);
23
+ };
24
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createDefaultItemComponent = createDefaultItemComponent;
7
+ function createDefaultItemComponent(_ref) {
8
+ var createElement = _ref.createElement,
9
+ Fragment = _ref.Fragment;
10
+ return function DefaultItem(userProps) {
11
+ return createElement(Fragment, null, JSON.stringify(userProps.item, null, 2));
12
+ };
13
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createListViewComponent = createListViewComponent;
7
+ function createListViewComponent(_ref) {
8
+ var createElement = _ref.createElement;
9
+ return function ListView(userProps) {
10
+ var _userProps$classNames = userProps.classNames,
11
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
12
+ ItemComponent = userProps.itemComponent,
13
+ items = userProps.items,
14
+ sendEvent = userProps.sendEvent;
15
+ return createElement("div", {
16
+ className: classNames.container
17
+ }, createElement("ol", {
18
+ className: classNames.list
19
+ }, items.map(function (item) {
20
+ return createElement("li", {
21
+ key: item.objectID,
22
+ className: classNames.item,
23
+ onClick: sendEvent,
24
+ onAuxClick: sendEvent
25
+ }, createElement(ItemComponent, {
26
+ item: item
27
+ }));
28
+ })));
29
+ };
30
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _DefaultEmpty = require("./DefaultEmpty");
7
+ Object.keys(_DefaultEmpty).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _DefaultEmpty[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _DefaultEmpty[key];
14
+ }
15
+ });
16
+ });
17
+ var _DefaultHeader = require("./DefaultHeader");
18
+ Object.keys(_DefaultHeader).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _DefaultHeader[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return _DefaultHeader[key];
25
+ }
26
+ });
27
+ });
28
+ var _DefaultItem = require("./DefaultItem");
29
+ Object.keys(_DefaultItem).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _DefaultItem[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _DefaultItem[key];
36
+ }
37
+ });
38
+ });
39
+ var _ListView = require("./ListView");
40
+ Object.keys(_ListView).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _ListView[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function get() {
46
+ return _ListView[key];
47
+ }
48
+ });
49
+ });
@@ -0,0 +1 @@
1
+ "use strict";
@@ -13,4 +13,26 @@ Object.keys(_Renderer).forEach(function (key) {
13
13
  return _Renderer[key];
14
14
  }
15
15
  });
16
+ });
17
+ var _Recommend = require("./Recommend");
18
+ Object.keys(_Recommend).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _Recommend[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return _Recommend[key];
25
+ }
26
+ });
27
+ });
28
+ var _shared = require("./shared");
29
+ Object.keys(_shared).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _shared[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _shared[key];
36
+ }
37
+ });
16
38
  });
@@ -0,0 +1 @@
1
+ "use strict";
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = '0.5.0';
7
+ var _default = '0.6.0';
8
8
  exports.default = _default;
@@ -0,0 +1,4 @@
1
+ /** @jsx createElement */
2
+ import type { Renderer, ComponentProps, RecommendComponentProps } from '../types';
3
+ export type FrequentlyBoughtTogetherProps<TObject, TComponentProps extends Record<string, unknown> = Record<string, unknown>> = ComponentProps<'div'> & RecommendComponentProps<TObject, TComponentProps>;
4
+ export declare function createFrequentlyBoughtTogetherComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: FrequentlyBoughtTogetherProps<TObject, Record<string, unknown>>) => JSX.Element;
@@ -0,0 +1,71 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
+ import { cx } from "../lib/index.js";
8
+ import { createDefaultEmptyComponent, createDefaultHeaderComponent, createDefaultItemComponent, createListViewComponent } from "./recommend-shared/index.js";
9
+ export function createFrequentlyBoughtTogetherComponent(_ref) {
10
+ var createElement = _ref.createElement,
11
+ Fragment = _ref.Fragment;
12
+ return function FrequentlyBoughtTogether(userProps) {
13
+ var _userProps$classNames = userProps.classNames,
14
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
15
+ _userProps$emptyCompo = userProps.emptyComponent,
16
+ EmptyComponent = _userProps$emptyCompo === void 0 ? createDefaultEmptyComponent({
17
+ createElement: createElement,
18
+ Fragment: Fragment
19
+ }) : _userProps$emptyCompo,
20
+ _userProps$headerComp = userProps.headerComponent,
21
+ HeaderComponent = _userProps$headerComp === void 0 ? createDefaultHeaderComponent({
22
+ createElement: createElement,
23
+ Fragment: Fragment
24
+ }) : _userProps$headerComp,
25
+ _userProps$itemCompon = userProps.itemComponent,
26
+ ItemComponent = _userProps$itemCompon === void 0 ? createDefaultItemComponent({
27
+ createElement: createElement,
28
+ Fragment: Fragment
29
+ }) : _userProps$itemCompon,
30
+ _userProps$view = userProps.view,
31
+ View = _userProps$view === void 0 ? createListViewComponent({
32
+ createElement: createElement,
33
+ Fragment: Fragment
34
+ }) : _userProps$view,
35
+ items = userProps.items,
36
+ status = userProps.status,
37
+ userTranslations = userProps.translations,
38
+ sendEvent = userProps.sendEvent,
39
+ props = _objectWithoutProperties(userProps, _excluded);
40
+ var translations = _objectSpread({
41
+ title: 'Frequently bought together',
42
+ sliderLabel: 'Frequently bought together products'
43
+ }, userTranslations);
44
+ var cssClasses = {
45
+ root: cx('ais-FrequentlyBoughtTogether', classNames.root),
46
+ emptyRoot: cx('ais-FrequentlyBoughtTogether', classNames.root, 'ais-FrequentlyBoughtTogether--empty', classNames.emptyRoot, props.className),
47
+ title: cx('ais-FrequentlyBoughtTogether-title', classNames.title),
48
+ container: cx('ais-FrequentlyBoughtTogether-container', classNames.container),
49
+ list: cx('ais-FrequentlyBoughtTogether-list', classNames.list),
50
+ item: cx('ais-FrequentlyBoughtTogether-item', classNames.item)
51
+ };
52
+ if (items.length === 0 && status === 'idle') {
53
+ return createElement("section", _extends({}, props, {
54
+ className: cssClasses.emptyRoot
55
+ }), createElement(EmptyComponent, null));
56
+ }
57
+ return createElement("section", _extends({}, props, {
58
+ className: cssClasses.root
59
+ }), createElement(HeaderComponent, {
60
+ classNames: cssClasses,
61
+ items: items,
62
+ translations: translations
63
+ }), createElement(View, {
64
+ classNames: cssClasses,
65
+ translations: translations,
66
+ itemComponent: ItemComponent,
67
+ items: items,
68
+ sendEvent: sendEvent
69
+ }));
70
+ };
71
+ }
@@ -1,8 +1,7 @@
1
- import type { ComponentProps, Renderer } from '../types';
1
+ import type { ComponentProps, Renderer, SendEventForHits } from '../types';
2
2
  type Hit = Record<string, unknown> & {
3
3
  objectID: string;
4
4
  };
5
- type SendEventForHits = (...props: unknown[]) => void;
6
5
  type Banner = {
7
6
  image: {
8
7
  urls: Array<{
@@ -11,7 +10,7 @@ type Banner = {
11
10
  title?: string;
12
11
  };
13
12
  link?: {
14
- url?: string;
13
+ url: string;
15
14
  target?: '_blank' | '_self';
16
15
  };
17
16
  };
@@ -8,7 +8,6 @@ import { cx } from "../lib/index.js";
8
8
  function createDefaultBannerComponent(_ref) {
9
9
  var createElement = _ref.createElement;
10
10
  return function DefaultBanner(_ref2) {
11
- var _banner$link;
12
11
  var classNames = _ref2.classNames,
13
12
  banner = _ref2.banner;
14
13
  if (!banner.image.urls[0].url) {
@@ -16,7 +15,7 @@ function createDefaultBannerComponent(_ref) {
16
15
  }
17
16
  return createElement("aside", {
18
17
  className: cx('ais-Hits-banner', classNames.bannerRoot)
19
- }, (_banner$link = banner.link) !== null && _banner$link !== void 0 && _banner$link.url ? createElement("a", {
18
+ }, banner.link ? createElement("a", {
20
19
  className: cx('ais-Hits-banner-link', classNames.bannerLink),
21
20
  href: banner.link.url,
22
21
  target: banner.link.target
@@ -0,0 +1,4 @@
1
+ /** @jsx createElement */
2
+ import type { ComponentProps, RecommendComponentProps, Renderer } from '../types';
3
+ export type LookingSimilarProps<TObject, TComponentProps extends Record<string, unknown> = Record<string, unknown>> = ComponentProps<'div'> & RecommendComponentProps<TObject, TComponentProps>;
4
+ export declare function createLookingSimilarComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: LookingSimilarProps<TObject, Record<string, unknown>>) => JSX.Element;
@@ -0,0 +1,71 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
+ import { cx } from "../lib/index.js";
8
+ import { createDefaultEmptyComponent, createDefaultHeaderComponent, createDefaultItemComponent, createListViewComponent } from "./recommend-shared/index.js";
9
+ export function createLookingSimilarComponent(_ref) {
10
+ var createElement = _ref.createElement,
11
+ Fragment = _ref.Fragment;
12
+ return function LookingSimilar(userProps) {
13
+ var _userProps$classNames = userProps.classNames,
14
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
15
+ _userProps$emptyCompo = userProps.emptyComponent,
16
+ EmptyComponent = _userProps$emptyCompo === void 0 ? createDefaultEmptyComponent({
17
+ createElement: createElement,
18
+ Fragment: Fragment
19
+ }) : _userProps$emptyCompo,
20
+ _userProps$headerComp = userProps.headerComponent,
21
+ HeaderComponent = _userProps$headerComp === void 0 ? createDefaultHeaderComponent({
22
+ createElement: createElement,
23
+ Fragment: Fragment
24
+ }) : _userProps$headerComp,
25
+ _userProps$itemCompon = userProps.itemComponent,
26
+ ItemComponent = _userProps$itemCompon === void 0 ? createDefaultItemComponent({
27
+ createElement: createElement,
28
+ Fragment: Fragment
29
+ }) : _userProps$itemCompon,
30
+ _userProps$view = userProps.view,
31
+ View = _userProps$view === void 0 ? createListViewComponent({
32
+ createElement: createElement,
33
+ Fragment: Fragment
34
+ }) : _userProps$view,
35
+ items = userProps.items,
36
+ status = userProps.status,
37
+ userTranslations = userProps.translations,
38
+ sendEvent = userProps.sendEvent,
39
+ props = _objectWithoutProperties(userProps, _excluded);
40
+ var translations = _objectSpread({
41
+ title: 'Looking similar',
42
+ sliderLabel: 'Looking similar'
43
+ }, userTranslations);
44
+ var cssClasses = {
45
+ root: cx('ais-LookingSimilar', classNames.root),
46
+ emptyRoot: cx('ais-LookingSimilar', classNames.root, 'ais-LookingSimilar--empty', classNames.emptyRoot, props.className),
47
+ title: cx('ais-LookingSimilar-title', classNames.title),
48
+ container: cx('ais-LookingSimilar-container', classNames.container),
49
+ list: cx('ais-LookingSimilar-list', classNames.list),
50
+ item: cx('ais-LookingSimilar-item', classNames.item)
51
+ };
52
+ if (items.length === 0 && status === 'idle') {
53
+ return createElement("section", _extends({}, props, {
54
+ className: cssClasses.emptyRoot
55
+ }), createElement(EmptyComponent, null));
56
+ }
57
+ return createElement("section", _extends({}, props, {
58
+ className: cssClasses.root
59
+ }), createElement(HeaderComponent, {
60
+ classNames: cssClasses,
61
+ items: items,
62
+ translations: translations
63
+ }), createElement(View, {
64
+ classNames: cssClasses,
65
+ translations: translations,
66
+ itemComponent: ItemComponent,
67
+ items: items,
68
+ sendEvent: sendEvent
69
+ }));
70
+ };
71
+ }
@@ -0,0 +1,4 @@
1
+ /** @jsx createElement */
2
+ import type { ComponentProps, RecommendComponentProps, Renderer } from '../types';
3
+ export type RelatedProductsProps<TObject, TComponentProps extends Record<string, unknown> = Record<string, unknown>> = ComponentProps<'div'> & RecommendComponentProps<TObject, TComponentProps>;
4
+ export declare function createRelatedProductsComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: RelatedProductsProps<TObject, Record<string, unknown>>) => JSX.Element;
@@ -0,0 +1,71 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
+ import { cx } from "../lib/index.js";
8
+ import { createDefaultEmptyComponent, createDefaultHeaderComponent, createDefaultItemComponent, createListViewComponent } from "./recommend-shared/index.js";
9
+ export function createRelatedProductsComponent(_ref) {
10
+ var createElement = _ref.createElement,
11
+ Fragment = _ref.Fragment;
12
+ return function RelatedProducts(userProps) {
13
+ var _userProps$classNames = userProps.classNames,
14
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
15
+ _userProps$emptyCompo = userProps.emptyComponent,
16
+ EmptyComponent = _userProps$emptyCompo === void 0 ? createDefaultEmptyComponent({
17
+ createElement: createElement,
18
+ Fragment: Fragment
19
+ }) : _userProps$emptyCompo,
20
+ _userProps$headerComp = userProps.headerComponent,
21
+ HeaderComponent = _userProps$headerComp === void 0 ? createDefaultHeaderComponent({
22
+ createElement: createElement,
23
+ Fragment: Fragment
24
+ }) : _userProps$headerComp,
25
+ _userProps$itemCompon = userProps.itemComponent,
26
+ ItemComponent = _userProps$itemCompon === void 0 ? createDefaultItemComponent({
27
+ createElement: createElement,
28
+ Fragment: Fragment
29
+ }) : _userProps$itemCompon,
30
+ _userProps$view = userProps.view,
31
+ View = _userProps$view === void 0 ? createListViewComponent({
32
+ createElement: createElement,
33
+ Fragment: Fragment
34
+ }) : _userProps$view,
35
+ items = userProps.items,
36
+ status = userProps.status,
37
+ userTranslations = userProps.translations,
38
+ sendEvent = userProps.sendEvent,
39
+ props = _objectWithoutProperties(userProps, _excluded);
40
+ var translations = _objectSpread({
41
+ title: 'Related products',
42
+ sliderLabel: 'Related products'
43
+ }, userTranslations);
44
+ var cssClasses = {
45
+ root: cx('ais-RelatedProducts', classNames.root),
46
+ emptyRoot: cx('ais-RelatedProducts', classNames.root, 'ais-RelatedProducts--empty', classNames.emptyRoot, props.className),
47
+ title: cx('ais-RelatedProducts-title', classNames.title),
48
+ container: cx('ais-RelatedProducts-container', classNames.container),
49
+ list: cx('ais-RelatedProducts-list', classNames.list),
50
+ item: cx('ais-RelatedProducts-item', classNames.item)
51
+ };
52
+ if (items.length === 0 && status === 'idle') {
53
+ return createElement("section", _extends({}, props, {
54
+ className: cssClasses.emptyRoot
55
+ }), createElement(EmptyComponent, null));
56
+ }
57
+ return createElement("section", _extends({}, props, {
58
+ className: cssClasses.root
59
+ }), createElement(HeaderComponent, {
60
+ classNames: cssClasses,
61
+ items: items,
62
+ translations: translations
63
+ }), createElement(View, {
64
+ classNames: cssClasses,
65
+ translations: translations,
66
+ itemComponent: ItemComponent,
67
+ items: items,
68
+ sendEvent: sendEvent
69
+ }));
70
+ };
71
+ }
@@ -0,0 +1,4 @@
1
+ /** @jsx createElement */
2
+ import type { ComponentProps, RecommendComponentProps, Renderer } from '../types';
3
+ export type TrendingItemsProps<TObject, TComponentProps extends Record<string, unknown> = Record<string, unknown>> = ComponentProps<'div'> & RecommendComponentProps<TObject, TComponentProps>;
4
+ export declare function createTrendingItemsComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: TrendingItemsProps<TObject, Record<string, unknown>>) => JSX.Element;
@@ -0,0 +1,71 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "view", "items", "status", "translations", "sendEvent"];
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
+ import { cx } from "../lib/index.js";
8
+ import { createDefaultEmptyComponent, createDefaultHeaderComponent, createDefaultItemComponent, createListViewComponent } from "./recommend-shared/index.js";
9
+ export function createTrendingItemsComponent(_ref) {
10
+ var createElement = _ref.createElement,
11
+ Fragment = _ref.Fragment;
12
+ return function TrendingItems(userProps) {
13
+ var _userProps$classNames = userProps.classNames,
14
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
15
+ _userProps$emptyCompo = userProps.emptyComponent,
16
+ EmptyComponent = _userProps$emptyCompo === void 0 ? createDefaultEmptyComponent({
17
+ createElement: createElement,
18
+ Fragment: Fragment
19
+ }) : _userProps$emptyCompo,
20
+ _userProps$headerComp = userProps.headerComponent,
21
+ HeaderComponent = _userProps$headerComp === void 0 ? createDefaultHeaderComponent({
22
+ createElement: createElement,
23
+ Fragment: Fragment
24
+ }) : _userProps$headerComp,
25
+ _userProps$itemCompon = userProps.itemComponent,
26
+ ItemComponent = _userProps$itemCompon === void 0 ? createDefaultItemComponent({
27
+ createElement: createElement,
28
+ Fragment: Fragment
29
+ }) : _userProps$itemCompon,
30
+ _userProps$view = userProps.view,
31
+ View = _userProps$view === void 0 ? createListViewComponent({
32
+ createElement: createElement,
33
+ Fragment: Fragment
34
+ }) : _userProps$view,
35
+ items = userProps.items,
36
+ status = userProps.status,
37
+ userTranslations = userProps.translations,
38
+ sendEvent = userProps.sendEvent,
39
+ props = _objectWithoutProperties(userProps, _excluded);
40
+ var translations = _objectSpread({
41
+ title: 'Trending items',
42
+ sliderLabel: 'Trending items'
43
+ }, userTranslations);
44
+ var cssClasses = {
45
+ root: cx('ais-TrendingItems', classNames.root),
46
+ emptyRoot: cx('ais-TrendingItems', classNames.root, 'ais-TrendingItems--empty', classNames.emptyRoot, props.className),
47
+ title: cx('ais-TrendingItems-title', classNames.title),
48
+ container: cx('ais-TrendingItems-container', classNames.container),
49
+ list: cx('ais-TrendingItems-list', classNames.list),
50
+ item: cx('ais-TrendingItems-item', classNames.item)
51
+ };
52
+ if (items.length === 0 && status === 'idle') {
53
+ return createElement("section", _extends({}, props, {
54
+ className: cssClasses.emptyRoot
55
+ }), createElement(EmptyComponent, null));
56
+ }
57
+ return createElement("section", _extends({}, props, {
58
+ className: cssClasses.root
59
+ }), createElement(HeaderComponent, {
60
+ classNames: cssClasses,
61
+ items: items,
62
+ translations: translations
63
+ }), createElement(View, {
64
+ classNames: cssClasses,
65
+ translations: translations,
66
+ itemComponent: ItemComponent,
67
+ items: items,
68
+ sendEvent: sendEvent
69
+ }));
70
+ };
71
+ }
@@ -1,2 +1,6 @@
1
+ export * from './FrequentlyBoughtTogether';
1
2
  export * from './Highlight';
2
3
  export * from './Hits';
4
+ export * from './RelatedProducts';
5
+ export * from './TrendingItems';
6
+ export * from './LookingSimilar';
@@ -1,2 +1,6 @@
1
+ export * from "./FrequentlyBoughtTogether.js";
1
2
  export * from "./Highlight.js";
2
- export * from "./Hits.js";
3
+ export * from "./Hits.js";
4
+ export * from "./RelatedProducts.js";
5
+ export * from "./TrendingItems.js";
6
+ export * from "./LookingSimilar.js";
@@ -0,0 +1,3 @@
1
+ /** @jsx createElement */
2
+ import type { Renderer } from '../../types';
3
+ export declare function createDefaultEmptyComponent({ createElement, Fragment, }: Renderer): () => JSX.Element;
@@ -0,0 +1,8 @@
1
+ export function createDefaultEmptyComponent(_ref) {
2
+ var createElement = _ref.createElement,
3
+ Fragment = _ref.Fragment;
4
+ var _ref2 = createElement(Fragment, null, "No results");
5
+ return function DefaultEmpty() {
6
+ return _ref2;
7
+ };
8
+ }
@@ -0,0 +1,3 @@
1
+ /** @jsx createElement */
2
+ import type { RecommendInnerComponentProps, Renderer } from '../../types';
3
+ export declare function createDefaultHeaderComponent({ createElement }: Renderer): <TObject>(userProps: RecommendInnerComponentProps<TObject>) => JSX.Element | null;
@@ -0,0 +1,18 @@
1
+ export function createDefaultHeaderComponent(_ref) {
2
+ var createElement = _ref.createElement;
3
+ return function DefaultHeader(userProps) {
4
+ var _userProps$classNames = userProps.classNames,
5
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
6
+ items = userProps.items,
7
+ translations = userProps.translations;
8
+ if (!items || items.length < 1) {
9
+ return null;
10
+ }
11
+ if (!translations.title) {
12
+ return null;
13
+ }
14
+ return createElement("h3", {
15
+ className: classNames.title
16
+ }, translations.title);
17
+ };
18
+ }
@@ -0,0 +1,3 @@
1
+ /** @jsx createElement */
2
+ import type { RecommendItemComponentProps, Renderer } from '../../types';
3
+ export declare function createDefaultItemComponent({ createElement, Fragment, }: Renderer): <TObject>(userProps: RecommendItemComponentProps<TObject>) => JSX.Element;
@@ -0,0 +1,7 @@
1
+ export function createDefaultItemComponent(_ref) {
2
+ var createElement = _ref.createElement,
3
+ Fragment = _ref.Fragment;
4
+ return function DefaultItem(userProps) {
5
+ return createElement(Fragment, null, JSON.stringify(userProps.item, null, 2));
6
+ };
7
+ }
@@ -0,0 +1,3 @@
1
+ /** @jsx createElement */
2
+ import type { RecommendClassNames, RecommendTranslations, RecordWithObjectID, Renderer, RecommendViewProps } from '../../types';
3
+ export declare function createListViewComponent({ createElement }: Renderer): <TItem extends RecordWithObjectID>(userProps: RecommendViewProps<TItem, RecommendTranslations, Partial<RecommendClassNames>>) => JSX.Element;
@@ -0,0 +1,24 @@
1
+ export function createListViewComponent(_ref) {
2
+ var createElement = _ref.createElement;
3
+ return function ListView(userProps) {
4
+ var _userProps$classNames = userProps.classNames,
5
+ classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
6
+ ItemComponent = userProps.itemComponent,
7
+ items = userProps.items,
8
+ sendEvent = userProps.sendEvent;
9
+ return createElement("div", {
10
+ className: classNames.container
11
+ }, createElement("ol", {
12
+ className: classNames.list
13
+ }, items.map(function (item) {
14
+ return createElement("li", {
15
+ key: item.objectID,
16
+ className: classNames.item,
17
+ onClick: sendEvent,
18
+ onAuxClick: sendEvent
19
+ }, createElement(ItemComponent, {
20
+ item: item
21
+ }));
22
+ })));
23
+ };
24
+ }
@@ -0,0 +1,4 @@
1
+ export * from './DefaultEmpty';
2
+ export * from './DefaultHeader';
3
+ export * from './DefaultItem';
4
+ export * from './ListView';
@@ -0,0 +1,4 @@
1
+ export * from "./DefaultEmpty.js";
2
+ export * from "./DefaultHeader.js";
3
+ export * from "./DefaultItem.js";
4
+ export * from "./ListView.js";
@@ -0,0 +1,71 @@
1
+ import type { SendEventForHits } from '.';
2
+ export type RecommendClassNames = {
3
+ /**
4
+ * Class names to apply to the root element
5
+ */
6
+ root: string;
7
+ /**
8
+ * Class names to apply to the root element without results
9
+ */
10
+ emptyRoot: string;
11
+ /**
12
+ * Class names to apply to the title element
13
+ */
14
+ title: string;
15
+ /**
16
+ * Class names to apply to the container element
17
+ */
18
+ container: string;
19
+ /**
20
+ * Class names to apply to the list element
21
+ */
22
+ list: string;
23
+ /**
24
+ * Class names to apply to each item element
25
+ */
26
+ item: string;
27
+ };
28
+ export type RecommendTranslations = {
29
+ /**
30
+ * The title of the recommendation section
31
+ */
32
+ title: string;
33
+ /**
34
+ * The label of the horizontal slider
35
+ */
36
+ sliderLabel: string;
37
+ };
38
+ export type RecommendViewProps<TItem extends RecordWithObjectID, TTranslations extends Record<string, string>, TClassNames extends Record<string, string>> = {
39
+ classNames: TClassNames;
40
+ itemComponent: <TComponentProps extends Record<string, unknown> = Record<string, unknown>>(props: RecommendItemComponentProps<RecordWithObjectID<TItem>> & TComponentProps) => JSX.Element;
41
+ items: TItem[];
42
+ translations: TTranslations;
43
+ sendEvent: SendEventForHits;
44
+ };
45
+ export type RecommendComponentProps<TObject, TComponentProps extends Record<string, unknown> = Record<string, unknown>> = {
46
+ itemComponent?: (props: RecommendItemComponentProps<RecordWithObjectID<TObject>> & TComponentProps) => JSX.Element;
47
+ items: Array<RecordWithObjectID<TObject>>;
48
+ classNames?: Partial<RecommendClassNames>;
49
+ emptyComponent?: (props: TComponentProps) => JSX.Element;
50
+ headerComponent?: (props: RecommendInnerComponentProps<TObject> & TComponentProps) => JSX.Element;
51
+ status: RecommendStatus;
52
+ translations?: Partial<RecommendTranslations>;
53
+ sendEvent: SendEventForHits;
54
+ view?: (props: RecommendViewProps<RecordWithObjectID<TObject>, Required<RecommendTranslations>, Record<string, string>> & TComponentProps) => JSX.Element;
55
+ };
56
+ export type RecommendInnerComponentProps<TObject> = {
57
+ classNames: Partial<RecommendClassNames>;
58
+ items: TObject[];
59
+ translations: Partial<RecommendTranslations>;
60
+ };
61
+ export type RecordWithObjectID<TObject = Record<string, unknown>> = TObject & {
62
+ objectID: string;
63
+ __position: number;
64
+ __queryID?: string;
65
+ };
66
+ export type RecommendItemComponentProps<TObject> = {
67
+ item: TObject;
68
+ onClick?: () => void;
69
+ onAuxClick?: () => void;
70
+ };
71
+ export type RecommendStatus = 'idle' | 'loading' | 'stalled' | 'error';
@@ -0,0 +1 @@
1
+ export {};
@@ -1 +1,3 @@
1
1
  export * from './Renderer';
2
+ export * from './Recommend';
3
+ export * from './shared';
@@ -1 +1,3 @@
1
- export * from "./Renderer.js";
1
+ export * from "./Renderer.js";
2
+ export * from "./Recommend.js";
3
+ export * from "./shared.js";
@@ -0,0 +1 @@
1
+ export type SendEventForHits = (...props: unknown[]) => void;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,2 +1,2 @@
1
- declare const _default: "0.5.0";
1
+ declare const _default: "0.6.0";
2
2
  export default _default;
@@ -1 +1 @@
1
- export default '0.5.0';
1
+ export default '0.6.0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instantsearch-ui-components",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Common UI components for InstantSearch.",
5
5
  "types": "dist/es/index.d.ts",
6
6
  "main": "dist/cjs/index.js",
@@ -49,5 +49,5 @@
49
49
  "dependencies": {
50
50
  "@babel/runtime": "^7.1.2"
51
51
  },
52
- "gitHead": "68fe2ee8544096eff8c2fbafe01a50a8acbca2b9"
52
+ "gitHead": "95ec6c4ce746c77eeb92fab1e42b5f833f3f04bc"
53
53
  }