@searchspring/snap-preact-components 0.63.5 → 0.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Atoms/Dropdown/Dropdown.d.ts +4 -0
- package/dist/cjs/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/cjs/components/Atoms/Dropdown/Dropdown.js +53 -18
- package/dist/cjs/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
- package/dist/cjs/components/Molecules/OverlayBadge/OverlayBadge.js +1 -1
- package/dist/cjs/components/Organisms/Recommendation/Recommendation.js +5 -5
- package/dist/cjs/components/Organisms/RecommendationBundle/BundleSelector.d.ts +1 -1
- package/dist/cjs/components/Organisms/RecommendationBundle/BundleSelector.d.ts.map +1 -1
- package/dist/cjs/components/Organisms/RecommendationBundle/RecommendationBundle.d.ts.map +1 -1
- package/dist/cjs/components/Organisms/RecommendationBundle/RecommendationBundle.js +33 -15
- package/dist/cjs/components/Organisms/Results/Results.d.ts.map +1 -1
- package/dist/cjs/components/Organisms/Results/Results.js +14 -25
- package/dist/cjs/components/Trackers/Recommendation/ProfileTracker/RecommendationProfileTracker.d.ts +3 -1
- package/dist/cjs/components/Trackers/Recommendation/ProfileTracker/RecommendationProfileTracker.d.ts.map +1 -1
- package/dist/cjs/components/Trackers/Recommendation/ProfileTracker/RecommendationProfileTracker.js +2 -12
- package/dist/cjs/components/Trackers/ResultTracker/ResultTracker.d.ts +18 -0
- package/dist/cjs/components/Trackers/ResultTracker/ResultTracker.d.ts.map +1 -0
- package/dist/cjs/components/Trackers/ResultTracker/ResultTracker.js +68 -0
- package/dist/cjs/components/Trackers/ResultTracker/index.d.ts +2 -0
- package/dist/cjs/components/Trackers/ResultTracker/index.d.ts.map +1 -0
- package/dist/cjs/components/Trackers/{Recommendation/ResultTracker → ResultTracker}/index.js +1 -1
- package/dist/cjs/index.d.ts +3 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +6 -2
- package/dist/esm/components/Atoms/Dropdown/Dropdown.d.ts +4 -0
- package/dist/esm/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Atoms/Dropdown/Dropdown.js +53 -18
- package/dist/esm/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
- package/dist/esm/components/Molecules/OverlayBadge/OverlayBadge.js +1 -0
- package/dist/esm/components/Organisms/Recommendation/Recommendation.js +5 -5
- package/dist/esm/components/Organisms/RecommendationBundle/BundleSelector.d.ts +1 -1
- package/dist/esm/components/Organisms/RecommendationBundle/BundleSelector.d.ts.map +1 -1
- package/dist/esm/components/Organisms/RecommendationBundle/RecommendationBundle.d.ts.map +1 -1
- package/dist/esm/components/Organisms/RecommendationBundle/RecommendationBundle.js +33 -15
- package/dist/esm/components/Organisms/Results/Results.d.ts.map +1 -1
- package/dist/esm/components/Organisms/Results/Results.js +3 -10
- package/dist/esm/components/Trackers/Recommendation/ProfileTracker/RecommendationProfileTracker.d.ts +3 -1
- package/dist/esm/components/Trackers/Recommendation/ProfileTracker/RecommendationProfileTracker.d.ts.map +1 -1
- package/dist/esm/components/Trackers/Recommendation/ProfileTracker/RecommendationProfileTracker.js +2 -12
- package/dist/esm/components/Trackers/ResultTracker/ResultTracker.d.ts +18 -0
- package/dist/esm/components/Trackers/ResultTracker/ResultTracker.d.ts.map +1 -0
- package/dist/esm/components/Trackers/ResultTracker/ResultTracker.js +58 -0
- package/dist/esm/components/Trackers/ResultTracker/index.d.ts +2 -0
- package/dist/esm/components/Trackers/ResultTracker/index.d.ts.map +1 -0
- package/dist/esm/components/Trackers/ResultTracker/index.js +1 -0
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -2
- package/package.json +11 -11
- package/dist/cjs/components/Trackers/Recommendation/ResultTracker/RecommendationResultTracker.d.ts +0 -15
- package/dist/cjs/components/Trackers/Recommendation/ResultTracker/RecommendationResultTracker.d.ts.map +0 -1
- package/dist/cjs/components/Trackers/Recommendation/ResultTracker/RecommendationResultTracker.js +0 -59
- package/dist/cjs/components/Trackers/Recommendation/ResultTracker/index.d.ts +0 -2
- package/dist/cjs/components/Trackers/Recommendation/ResultTracker/index.d.ts.map +0 -1
- package/dist/esm/components/Trackers/Recommendation/ResultTracker/RecommendationResultTracker.d.ts +0 -15
- package/dist/esm/components/Trackers/Recommendation/ResultTracker/RecommendationResultTracker.d.ts.map +0 -1
- package/dist/esm/components/Trackers/Recommendation/ResultTracker/RecommendationResultTracker.js +0 -51
- package/dist/esm/components/Trackers/Recommendation/ResultTracker/index.d.ts +0 -2
- package/dist/esm/components/Trackers/Recommendation/ResultTracker/index.d.ts.map +0 -1
- package/dist/esm/components/Trackers/Recommendation/ResultTracker/index.js +0 -1
|
@@ -9,10 +9,14 @@ export interface DropdownProps extends ComponentProps {
|
|
|
9
9
|
children?: ComponentChildren;
|
|
10
10
|
disabled?: boolean;
|
|
11
11
|
open?: boolean;
|
|
12
|
+
disableClick?: boolean;
|
|
12
13
|
disableOverlay?: boolean;
|
|
13
14
|
onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
|
|
15
|
+
onMouseEnter?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
|
|
16
|
+
onMouseLeave?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
|
|
14
17
|
onToggle?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>, showContent: boolean) => void;
|
|
15
18
|
startOpen?: boolean;
|
|
19
|
+
toggleOnHover?: boolean;
|
|
16
20
|
disableClickOutside?: boolean;
|
|
17
21
|
disableA11y?: boolean;
|
|
18
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../../../src/components/Atoms/Dropdown/Dropdown.tsx"],"names":[],"mappings":";AAAA,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAK,MAAM,QAAQ,CAAC;AAO9C,OAAO,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AA+B5D,eAAO,MAAM,QAAQ,eAAyB,aAAa,KAAG,
|
|
1
|
+
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../../../src/components/Atoms/Dropdown/Dropdown.tsx"],"names":[],"mappings":";AAAA,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAK,MAAM,QAAQ,CAAC;AAO9C,OAAO,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AA+B5D,eAAO,MAAM,QAAQ,eAAyB,aAAa,KAAG,WAmJ5D,CAAC;AAEH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACpD,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IACxE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IAC7E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IAC7E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -56,32 +56,37 @@ exports.Dropdown = (0, mobx_react_1.observer)(function (properties) {
|
|
|
56
56
|
var props = __assign(__assign(__assign({
|
|
57
57
|
// default props
|
|
58
58
|
startOpen: false, disableA11y: false }, (_b = globalTheme === null || globalTheme === void 0 ? void 0 : globalTheme.components) === null || _b === void 0 ? void 0 : _b.dropdown), properties), (_d = (_c = properties.theme) === null || _c === void 0 ? void 0 : _c.components) === null || _d === void 0 ? void 0 : _d.dropdown);
|
|
59
|
-
var button = props.button, content = props.content, children = props.children, disabled = props.disabled, open = props.open, disableOverlay = props.disableOverlay, onClick = props.onClick, onToggle = props.onToggle, startOpen = props.startOpen, disableClickOutside = props.disableClickOutside, disableA11y = props.disableA11y, disableStyles = props.disableStyles, className = props.className, style = props.style;
|
|
60
|
-
var
|
|
59
|
+
var button = props.button, content = props.content, children = props.children, disabled = props.disabled, open = props.open, toggleOnHover = props.toggleOnHover, onMouseEnter = props.onMouseEnter, onMouseLeave = props.onMouseLeave, disableClick = props.disableClick, disableOverlay = props.disableOverlay, onClick = props.onClick, onToggle = props.onToggle, startOpen = props.startOpen, disableClickOutside = props.disableClickOutside, disableA11y = props.disableA11y, disableStyles = props.disableStyles, className = props.className, style = props.style;
|
|
60
|
+
var dropdownOpen, setDropdownOpen;
|
|
61
61
|
var stateful = open === undefined;
|
|
62
62
|
if (stateful) {
|
|
63
|
-
_a = (0, hooks_1.useState)(startOpen),
|
|
63
|
+
_a = (0, hooks_1.useState)(startOpen), dropdownOpen = _a[0], setDropdownOpen = _a[1];
|
|
64
64
|
}
|
|
65
65
|
else {
|
|
66
|
-
|
|
66
|
+
dropdownOpen = open;
|
|
67
67
|
}
|
|
68
|
+
// state to track touch interactions
|
|
69
|
+
var _e = (0, hooks_1.useState)(false), isTouchInteraction = _e[0], setIsTouchInteraction = _e[1];
|
|
68
70
|
var innerRef;
|
|
69
71
|
if (!disableClickOutside) {
|
|
70
72
|
innerRef = (0, hooks_2.useClickOutside)(function (e) {
|
|
71
|
-
if (
|
|
73
|
+
if (dropdownOpen) {
|
|
72
74
|
if (!disabled) {
|
|
73
|
-
stateful &&
|
|
75
|
+
stateful && setDropdownOpen && setDropdownOpen(false);
|
|
74
76
|
onToggle && onToggle(e, false);
|
|
75
77
|
}
|
|
76
78
|
}
|
|
77
79
|
});
|
|
78
80
|
}
|
|
79
|
-
var
|
|
81
|
+
var toggleOpenDropdown = function (e, state) {
|
|
80
82
|
if (stateful) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
setDropdownOpen &&
|
|
84
|
+
setDropdownOpen(function (prev) {
|
|
85
|
+
var newState = state !== null && state !== void 0 ? state : !prev;
|
|
86
|
+
if (newState != prev) {
|
|
87
|
+
onToggle && onToggle(e, newState);
|
|
88
|
+
}
|
|
89
|
+
return newState;
|
|
85
90
|
});
|
|
86
91
|
}
|
|
87
92
|
};
|
|
@@ -92,15 +97,45 @@ exports.Dropdown = (0, mobx_react_1.observer)(function (properties) {
|
|
|
92
97
|
else if (style) {
|
|
93
98
|
styling.css = [style];
|
|
94
99
|
}
|
|
100
|
+
var hoverProps = {
|
|
101
|
+
onMouseEnter: (toggleOnHover || onMouseEnter) &&
|
|
102
|
+
(function (e) {
|
|
103
|
+
// skip if it's a touch interaction
|
|
104
|
+
if (isTouchInteraction)
|
|
105
|
+
return;
|
|
106
|
+
if (toggleOnHover && !disabled) {
|
|
107
|
+
toggleOpenDropdown(e, true);
|
|
108
|
+
}
|
|
109
|
+
onMouseEnter && onMouseEnter(e);
|
|
110
|
+
}),
|
|
111
|
+
onMouseLeave: (toggleOnHover || onMouseLeave) &&
|
|
112
|
+
(function (e) {
|
|
113
|
+
// skip if it's a touch interaction
|
|
114
|
+
if (isTouchInteraction)
|
|
115
|
+
return;
|
|
116
|
+
if (toggleOnHover && !disabled) {
|
|
117
|
+
toggleOpenDropdown(e, false);
|
|
118
|
+
}
|
|
119
|
+
onMouseLeave && onMouseLeave(e);
|
|
120
|
+
}),
|
|
121
|
+
};
|
|
95
122
|
return ((0, react_1.jsx)(providers_1.CacheProvider, null,
|
|
96
|
-
(0, react_1.jsx)("div", __assign({}, styling, { className: (0, classnames_1.default)('ss__dropdown', { 'ss__dropdown--open':
|
|
97
|
-
(0, react_1.jsx)("div", { className: "ss__dropdown__button", ref: function (e) { return (!disableA11y ? (0, useA11y_1.useA11y)(e) : null); }, "aria-expanded":
|
|
98
|
-
|
|
99
|
-
|
|
123
|
+
(0, react_1.jsx)("div", __assign({}, styling, { className: (0, classnames_1.default)('ss__dropdown', { 'ss__dropdown--open': dropdownOpen }, className), ref: innerRef }, hoverProps),
|
|
124
|
+
(0, react_1.jsx)("div", { className: "ss__dropdown__button", ref: function (e) { return (!disableA11y ? (0, useA11y_1.useA11y)(e) : null); }, "aria-expanded": dropdownOpen, role: "button", onTouchStart: function () {
|
|
125
|
+
// mark this as a touch interaction to avoid hover state conflicts
|
|
126
|
+
setIsTouchInteraction(true);
|
|
127
|
+
}, onClick: function (e) {
|
|
128
|
+
if (!disabled && !disableClick) {
|
|
129
|
+
toggleOpenDropdown(e);
|
|
100
130
|
onClick && onClick(e);
|
|
101
131
|
}
|
|
102
|
-
|
|
132
|
+
// reset touch interaction after a short delay
|
|
133
|
+
// this gives time for the click handler to complete before allowing hover events again
|
|
134
|
+
setTimeout(function () {
|
|
135
|
+
setIsTouchInteraction(false);
|
|
136
|
+
}, 300);
|
|
137
|
+
} }, (0, utilities_1.cloneWithProps)(button, { open: dropdownOpen, toggleOpen: toggleOpenDropdown })),
|
|
103
138
|
(0, react_1.jsx)("div", { className: "ss__dropdown__content" },
|
|
104
|
-
(0, utilities_1.cloneWithProps)(content, { open:
|
|
105
|
-
(0, utilities_1.cloneWithProps)(children, { open:
|
|
139
|
+
(0, utilities_1.cloneWithProps)(content, { open: dropdownOpen, toggleOpen: toggleOpenDropdown }),
|
|
140
|
+
(0, utilities_1.cloneWithProps)(children, { open: dropdownOpen, toggleOpen: toggleOpenDropdown })))));
|
|
106
141
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayBadge.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/OverlayBadge/OverlayBadge.tsx"],"names":[],"mappings":";AAAA,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAe,MAAM,QAAQ,CAAC;AAOxD,OAAO,EAAE,cAAc,EAAc,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACxH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"OverlayBadge.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/OverlayBadge/OverlayBadge.tsx"],"names":[],"mappings":";AAAA,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAe,MAAM,QAAQ,CAAC;AAOxD,OAAO,EAAE,cAAc,EAAc,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACxH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AA+C7D,eAAO,MAAM,YAAY,eAAyB,iBAAiB,KAAG,WAuFpE,CAAC;AAEH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;IACjF,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -39,7 +39,7 @@ var CSS = {
|
|
|
39
39
|
}
|
|
40
40
|
return (0, react_1.css)({
|
|
41
41
|
position: 'relative',
|
|
42
|
-
'& .ss__overlay-badge__grid-wrapper': __assign({ display: 'grid', position: 'absolute', top: 0, right: 0, bottom: 0, left: 0 }, gridProperties),
|
|
42
|
+
'& .ss__overlay-badge__grid-wrapper': __assign({ pointerEvents: 'none', display: 'grid', position: 'absolute', top: 0, right: 0, bottom: 0, left: 0 }, gridProperties),
|
|
43
43
|
});
|
|
44
44
|
},
|
|
45
45
|
BadgePositioning: function (_a) {
|
|
@@ -40,7 +40,7 @@ var hooks_2 = require("../../../hooks");
|
|
|
40
40
|
var providers_1 = require("../../../providers");
|
|
41
41
|
var useDisplaySettings_1 = require("../../../hooks/useDisplaySettings");
|
|
42
42
|
var ProfileTracker_1 = require("../../Trackers/Recommendation/ProfileTracker");
|
|
43
|
-
var ResultTracker_1 = require("../../Trackers/
|
|
43
|
+
var ResultTracker_1 = require("../../Trackers/ResultTracker");
|
|
44
44
|
var CSS = {
|
|
45
45
|
recommendation: function (_a) {
|
|
46
46
|
var vertical = _a.vertical;
|
|
@@ -109,11 +109,11 @@ exports.Recommendation = (0, mobx_react_1.observer)(function (properties) {
|
|
|
109
109
|
(0, react_1.jsx)("div", __assign({}, styling, { className: (0, classnames_1.default)('ss__recommendation', className), ref: recsRef }), isVisible ? ((0, react_1.jsx)(ProfileTracker_1.RecommendationProfileTracker, { controller: controller },
|
|
110
110
|
title && (0, react_1.jsx)("h3", { className: "ss__recommendation__title" }, title),
|
|
111
111
|
(0, react_1.jsx)(Carousel_1.Carousel, __assign({ prevButton: prevButton, nextButton: nextButton, hideButtons: hideButtons, loop: loop, pagination: pagination, breakpoints: breakpoints }, subProps.carousel, additionalProps, displaySettings), Array.isArray(children) && children.length
|
|
112
|
-
? children.map(function (child, idx) { return ((0, react_1.jsx)(ResultTracker_1.
|
|
113
|
-
: resultsToRender.map(function (result) { return ((0, react_1.jsx)(ResultTracker_1.
|
|
112
|
+
? children.map(function (child, idx) { return ((0, react_1.jsx)(ResultTracker_1.ResultTracker, { controller: controller, result: resultsToRender[idx] }, child)); })
|
|
113
|
+
: resultsToRender.map(function (result) { return ((0, react_1.jsx)(ResultTracker_1.ResultTracker, { controller: controller, result: result },
|
|
114
114
|
(0, react_1.jsx)(Result_1.Result, __assign({}, subProps.result, { controller: controller, result: result })))); })))) : ((0, react_1.jsx)(ProfileTracker_1.RecommendationProfileTracker, { controller: controller }, Array.isArray(children) && children.length
|
|
115
|
-
? children.map(function (child, idx) { return ((0, react_1.jsx)(ResultTracker_1.
|
|
115
|
+
? children.map(function (child, idx) { return ((0, react_1.jsx)(ResultTracker_1.ResultTracker, { controller: controller, result: resultsToRender[idx] },
|
|
116
116
|
(0, react_1.jsx)(preact_1.Fragment, null))); })
|
|
117
|
-
: resultsToRender.map(function (result) { return ((0, react_1.jsx)(ResultTracker_1.
|
|
117
|
+
: resultsToRender.map(function (result) { return ((0, react_1.jsx)(ResultTracker_1.ResultTracker, { controller: controller, result: result },
|
|
118
118
|
(0, react_1.jsx)(preact_1.Fragment, null))); })))))) : ((0, react_1.jsx)(preact_1.Fragment, null));
|
|
119
119
|
});
|
|
@@ -15,7 +15,7 @@ export interface BundleSelectorProps extends ComponentProps {
|
|
|
15
15
|
seedText?: string;
|
|
16
16
|
seed?: boolean;
|
|
17
17
|
hideCheckboxes?: boolean;
|
|
18
|
-
onCheck?: () => void;
|
|
18
|
+
onCheck?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
19
19
|
icon?: string | Partial<IconProps> | boolean;
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=BundleSelector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BundleSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/RecommendationBundle/BundleSelector.tsx"],"names":[],"mappings":";AAAA,eAAe;AACf,OAAO,EAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAK9C,OAAO,EAAY,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAQ,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,eAAO,MAAM,cAAc,eAAyB,mBAAmB,KAAG,WAmDxE,CAAC;AAEH,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IAC1D,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"BundleSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/RecommendationBundle/BundleSelector.tsx"],"names":[],"mappings":";AAAA,eAAe;AACf,OAAO,EAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAK9C,OAAO,EAAY,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAQ,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,eAAO,MAAM,cAAc,eAAyB,mBAAmB,KAAG,WAmDxE,CAAC;AAEH,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IAC1D,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IACjE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;CAC7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendationBundle.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/RecommendationBundle/RecommendationBundle.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAY,aAAa,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIpF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,CAAC;AAI9E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAyG7D,eAAO,MAAM,oBAAoB,eAAyB,yBAAyB,KAAG,
|
|
1
|
+
{"version":3,"file":"RecommendationBundle.d.ts","sourceRoot":"","sources":["../../../../../src/components/Organisms/RecommendationBundle/RecommendationBundle.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAY,aAAa,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIpF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,CAAC;AAI9E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAyG7D,eAAO,MAAM,oBAAoB,eAAyB,yBAAyB,KAAG,WA8fpF,CAAC;AAEH,KAAK,mBAAmB,GAAG;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAE3B,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAChE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,wBAAwB,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACvD,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,eAAe,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,UAAU,CAAC,EAAE;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACF"}
|
|
@@ -39,7 +39,7 @@ var utilities_1 = require("../../../utilities");
|
|
|
39
39
|
var providers_1 = require("../../../providers");
|
|
40
40
|
var useDisplaySettings_1 = require("../../../hooks/useDisplaySettings");
|
|
41
41
|
var ProfileTracker_1 = require("../../Trackers/Recommendation/ProfileTracker");
|
|
42
|
-
var ResultTracker_1 = require("../../Trackers/
|
|
42
|
+
var ResultTracker_1 = require("../../Trackers/ResultTracker");
|
|
43
43
|
var BundleSelector_1 = require("./BundleSelector");
|
|
44
44
|
var BundleCTA_1 = require("./BundleCTA");
|
|
45
45
|
var hooks_2 = require("../../../hooks");
|
|
@@ -266,7 +266,7 @@ exports.RecommendationBundle = (0, mobx_react_1.observer)(function (properties)
|
|
|
266
266
|
};
|
|
267
267
|
var addToCart = function (e) {
|
|
268
268
|
// add to cart tracking
|
|
269
|
-
controller.track.
|
|
269
|
+
controller.track.bundle.addToCart(selectedItems);
|
|
270
270
|
//call the function passed
|
|
271
271
|
onAddToCart && onAddToCart(e, selectedItems);
|
|
272
272
|
};
|
|
@@ -302,8 +302,11 @@ exports.RecommendationBundle = (0, mobx_react_1.observer)(function (properties)
|
|
|
302
302
|
}) },
|
|
303
303
|
carouselEnabled ? ((0, react_1.jsx)(preact_1.Fragment, null,
|
|
304
304
|
!seedInCarousel && !hideSeed && ((0, react_1.jsx)("div", { className: "ss__recommendation-bundle__wrapper__seed-container" },
|
|
305
|
-
(0, react_1.jsx)(ResultTracker_1.
|
|
306
|
-
(0, react_1.jsx)(BundleSelector_1.BundleSelector, { seedText: seedText, seed: true, onCheck: function () {
|
|
305
|
+
(0, react_1.jsx)(ResultTracker_1.ResultTracker, { controller: controller, result: seed, track: { impression: false } },
|
|
306
|
+
(0, react_1.jsx)(BundleSelector_1.BundleSelector, { seedText: seedText, seed: true, onCheck: function (e) {
|
|
307
|
+
e.stopPropagation();
|
|
308
|
+
onProductSelect(seed);
|
|
309
|
+
}, checked: selectedItems.findIndex(function (item) { return item.id == seed.id; }) > -1, icon: separatorIcon, hideCheckboxes: hideCheckboxes, theme: props.theme, ref: seedRef }, resultComponent ? ((0, utilities_1.cloneWithProps)(resultComponent, {
|
|
307
310
|
result: seed,
|
|
308
311
|
seed: true,
|
|
309
312
|
selected: selectedItems.findIndex(function (item) { return item.id == seed.id; }) > -1,
|
|
@@ -316,35 +319,50 @@ exports.RecommendationBundle = (0, mobx_react_1.observer)(function (properties)
|
|
|
316
319
|
.map(function (result, idx) {
|
|
317
320
|
var selected = selectedItems.findIndex(function (item) { return item.id == result.id; }) > -1;
|
|
318
321
|
if (idx == 0 && !hideSeed) {
|
|
319
|
-
return ((0, react_1.jsx)(ResultTracker_1.
|
|
320
|
-
(0, react_1.jsx)(BundleSelector_1.BundleSelector, { seedText: seedText, seed: true, icon: separatorIcon, onCheck: function () {
|
|
322
|
+
return ((0, react_1.jsx)(ResultTracker_1.ResultTracker, { controller: controller, result: result, track: { impression: false } },
|
|
323
|
+
(0, react_1.jsx)(BundleSelector_1.BundleSelector, { seedText: seedText, seed: true, icon: separatorIcon, onCheck: function (e) {
|
|
324
|
+
e.stopPropagation();
|
|
325
|
+
onProductSelect(result);
|
|
326
|
+
}, checked: selected, hideCheckboxes: hideCheckboxes, theme: props.theme }, resultComponent ? ((0, utilities_1.cloneWithProps)(resultComponent, { result: result, seed: true, selected: selected, onProductSelect: onProductSelect })) : ((0, react_1.jsx)(Result_1.Result, __assign({}, subProps.result, { controller: controller, result: result }))))));
|
|
321
327
|
}
|
|
322
328
|
else {
|
|
323
|
-
return ((0, react_1.jsx)(ResultTracker_1.
|
|
324
|
-
(0, react_1.jsx)(BundleSelector_1.BundleSelector, { icon: separatorIconSeedOnly ? false : separatorIcon, onCheck: function () {
|
|
329
|
+
return ((0, react_1.jsx)(ResultTracker_1.ResultTracker, { controller: controller, result: result },
|
|
330
|
+
(0, react_1.jsx)(BundleSelector_1.BundleSelector, { icon: separatorIconSeedOnly ? false : separatorIcon, onCheck: function (e) {
|
|
331
|
+
e.stopPropagation();
|
|
332
|
+
onProductSelect(result);
|
|
333
|
+
}, checked: selected, hideCheckboxes: hideCheckboxes, theme: props.theme, className: idx + 1 == resultsToRender.length ? 'ss__recommendation-bundle__wrapper__selector--last' : '' }, resultComponent ? ((0, utilities_1.cloneWithProps)(resultComponent, { result: result, seed: false, selected: selected, onProductSelect: onProductSelect })) : ((0, react_1.jsx)(Result_1.Result, __assign({}, subProps.result, { controller: controller, result: result }))))));
|
|
325
334
|
}
|
|
326
335
|
})
|
|
327
336
|
: resultsToRender
|
|
328
337
|
.filter(function (result, idx) { return idx !== 0; })
|
|
329
338
|
.map(function (result, idx, results) {
|
|
330
339
|
var selected = selectedItems.findIndex(function (item) { return item.id == result.id; }) > -1;
|
|
331
|
-
return ((0, react_1.jsx)(ResultTracker_1.
|
|
332
|
-
(0, react_1.jsx)(BundleSelector_1.BundleSelector, { icon: separatorIconSeedOnly ? false : separatorIcon, onCheck: function () {
|
|
340
|
+
return ((0, react_1.jsx)(ResultTracker_1.ResultTracker, { controller: controller, result: result },
|
|
341
|
+
(0, react_1.jsx)(BundleSelector_1.BundleSelector, { icon: separatorIconSeedOnly ? false : separatorIcon, onCheck: function (e) {
|
|
342
|
+
e.stopPropagation();
|
|
343
|
+
onProductSelect(result);
|
|
344
|
+
}, checked: selected, hideCheckboxes: hideCheckboxes, theme: props.theme, className: idx + 1 == results.length ? 'ss__recommendation-bundle__wrapper__selector--last' : '' }, resultComponent ? ((0, utilities_1.cloneWithProps)(resultComponent, { result: result, seed: false, selected: selected, onProductSelect: onProductSelect })) : ((0, react_1.jsx)(Result_1.Result, __assign({}, subProps.result, { controller: controller, result: result }))))));
|
|
333
345
|
}))))) : (resultsToRender
|
|
334
346
|
.filter(function (result, idx) { return (hideSeed && idx == 0 ? false : true); })
|
|
335
347
|
.map(function (result, idx) {
|
|
336
348
|
var selected = selectedItems.findIndex(function (item) { return item.id == result.id; }) > -1;
|
|
337
349
|
if (idx == 0 && !hideSeed) {
|
|
338
|
-
return ((0, react_1.jsx)(ResultTracker_1.
|
|
339
|
-
(0, react_1.jsx)(BundleSelector_1.BundleSelector, { seedText: seedText, seed: true, icon: separatorIcon, onCheck: function () {
|
|
350
|
+
return ((0, react_1.jsx)(ResultTracker_1.ResultTracker, { controller: controller, result: result, track: { impression: false } },
|
|
351
|
+
(0, react_1.jsx)(BundleSelector_1.BundleSelector, { seedText: seedText, seed: true, icon: separatorIcon, onCheck: function (e) {
|
|
352
|
+
e.stopPropagation();
|
|
353
|
+
onProductSelect(result);
|
|
354
|
+
}, checked: selected, hideCheckboxes: hideCheckboxes, theme: props.theme }, resultComponent ? ((0, utilities_1.cloneWithProps)(resultComponent, { result: result, seed: true, selected: selected, onProductSelect: onProductSelect })) : ((0, react_1.jsx)(Result_1.Result, __assign({}, subProps.result, { controller: controller, result: result }))))));
|
|
340
355
|
}
|
|
341
356
|
else {
|
|
342
|
-
return ((0, react_1.jsx)(ResultTracker_1.
|
|
343
|
-
(0, react_1.jsx)(BundleSelector_1.BundleSelector, { icon: separatorIconSeedOnly ? false : separatorIcon, onCheck: function () {
|
|
357
|
+
return ((0, react_1.jsx)(ResultTracker_1.ResultTracker, { controller: controller, result: result },
|
|
358
|
+
(0, react_1.jsx)(BundleSelector_1.BundleSelector, { icon: separatorIconSeedOnly ? false : separatorIcon, onCheck: function (e) {
|
|
359
|
+
e.stopPropagation();
|
|
360
|
+
onProductSelect(result);
|
|
361
|
+
}, checked: selected, hideCheckboxes: hideCheckboxes, theme: props.theme, className: idx + 1 == resultsToRender.length ? 'ss__recommendation-bundle__wrapper__selector--last' : '' }, resultComponent ? ((0, utilities_1.cloneWithProps)(resultComponent, { result: result, seed: false, selected: selected, onProductSelect: onProductSelect })) : ((0, react_1.jsx)(Result_1.Result, __assign({}, subProps.result, { controller: controller, result: result }))))));
|
|
344
362
|
}
|
|
345
363
|
})),
|
|
346
364
|
ctaInline && ((0, react_1.jsx)(BundleCTA_1.BundledCTA, { ctaSlot: ctaSlot, cartStore: cartStore, onAddToCart: function (e) { return addToCart(e); }, ctaButtonText: ctaButtonText, ctaButtonSuccessText: ctaButtonSuccessText, ctaButtonSuccessTimeout: ctaButtonSuccessTimeout, ctaIcon: ctaIcon }))),
|
|
347
|
-
!ctaInline && ((0, react_1.jsx)(BundleCTA_1.BundledCTA, { ctaSlot: ctaSlot, cartStore: cartStore, onAddToCart: function (e) { return addToCart(e); }, ctaButtonText: ctaButtonText, ctaButtonSuccessText: ctaButtonSuccessText, ctaButtonSuccessTimeout: ctaButtonSuccessTimeout, ctaIcon: ctaIcon })))) : ((0, react_1.jsx)(ProfileTracker_1.RecommendationProfileTracker, { controller: controller }, resultsToRender.map(function (result) { return ((0, react_1.jsx)(ResultTracker_1.
|
|
365
|
+
!ctaInline && ((0, react_1.jsx)(BundleCTA_1.BundledCTA, { ctaSlot: ctaSlot, cartStore: cartStore, onAddToCart: function (e) { return addToCart(e); }, ctaButtonText: ctaButtonText, ctaButtonSuccessText: ctaButtonSuccessText, ctaButtonSuccessTimeout: ctaButtonSuccessTimeout, ctaIcon: ctaIcon })))) : ((0, react_1.jsx)(ProfileTracker_1.RecommendationProfileTracker, { controller: controller }, resultsToRender.map(function (result) { return ((0, react_1.jsx)(ResultTracker_1.ResultTracker, { controller: controller, result: result },
|
|
348
366
|
(0, react_1.jsx)(preact_1.Fragment, null))); })))))) : ((0, react_1.jsx)(preact_1.Fragment, null));
|
|
349
367
|
return (0, react_1.jsx)(preact_1.Fragment, null);
|
|
350
368
|
});
|
|
@@ -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;AACxH,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,+BAA+B,CAAC;AAIxF,OAAO,EAAE,cAAc,EAAU,UAAU,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,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;AACxH,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,+BAA+B,CAAC;AAIxF,OAAO,EAAE,cAAc,EAAU,UAAU,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,CAAC;AA+BlG,eAAO,MAAM,OAAO,eAAyB,WAAW,KAAG,WA8GzD,CAAC;AAEH,MAAM,WAAW,WAAY,SAAQ,cAAc;IAClD,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,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"}
|
|
@@ -28,9 +28,9 @@ var types_1 = require("../../../types");
|
|
|
28
28
|
var utilities_1 = require("../../../utilities");
|
|
29
29
|
var providers_1 = require("../../../providers");
|
|
30
30
|
var useDisplaySettings_1 = require("../../../hooks/useDisplaySettings");
|
|
31
|
+
var ResultTracker_1 = require("../../Trackers/ResultTracker");
|
|
31
32
|
var CSS = {
|
|
32
33
|
results: function (_a) {
|
|
33
|
-
var _b;
|
|
34
34
|
var columns = _a.columns, gapSize = _a.gapSize;
|
|
35
35
|
return (0, react_1.css)({
|
|
36
36
|
display: 'flex',
|
|
@@ -38,20 +38,11 @@ var CSS = {
|
|
|
38
38
|
gap: gapSize,
|
|
39
39
|
gridTemplateRows: 'auto',
|
|
40
40
|
gridTemplateColumns: "repeat(".concat(columns, ", 1fr)"),
|
|
41
|
-
'& .ss__result':
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
marginBottom: gapSize
|
|
47
|
-
},
|
|
48
|
-
_b["&:nth-of-type(".concat(columns, "n)")] = {
|
|
49
|
-
marginRight: '0',
|
|
50
|
-
},
|
|
51
|
-
_b["&:nth-last-of-type(-n+".concat(columns, ")")] = {
|
|
52
|
-
marginBottom: '0',
|
|
53
|
-
},
|
|
54
|
-
_b),
|
|
41
|
+
'& .ss__result': {
|
|
42
|
+
boxSizing: 'border-box',
|
|
43
|
+
flex: '0 1 auto',
|
|
44
|
+
width: "calc(".concat(100 / columns, "% - (").concat(columns - 1, " * ").concat(gapSize, " / ").concat(columns, " ) )"),
|
|
45
|
+
},
|
|
55
46
|
'@supports (display: grid)': {
|
|
56
47
|
display: 'grid',
|
|
57
48
|
'& .ss__result': {
|
|
@@ -114,14 +105,12 @@ exports.Results = (0, mobx_react_1.observer)(function (properties) {
|
|
|
114
105
|
styling.css = [style];
|
|
115
106
|
}
|
|
116
107
|
return (results === null || results === void 0 ? void 0 : results.length) ? ((0, react_1.jsx)(providers_1.CacheProvider, null,
|
|
117
|
-
(0, react_1.jsx)("div", __assign({}, styling, { className: (0, classnames_1.default)('ss__results', "ss__results-".concat(props.layout), className) }), results.map(function (result) {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
})();
|
|
126
|
-
})))) : ((0, react_1.jsx)(preact_1.Fragment, null));
|
|
108
|
+
(0, react_1.jsx)("div", __assign({}, styling, { className: (0, classnames_1.default)('ss__results', "ss__results-".concat(props.layout), className) }), results.map(function (result) { return ((0, react_1.jsx)(ResultTracker_1.ResultTracker, { result: result, controller: controller }, (function () {
|
|
109
|
+
switch (result.type) {
|
|
110
|
+
case snap_store_mobx_1.ContentType.BANNER:
|
|
111
|
+
return (0, react_1.jsx)(InlineBanner_1.InlineBanner, __assign({}, subProps.inlineBanner, { key: result.id, banner: result, layout: props.layout }));
|
|
112
|
+
default:
|
|
113
|
+
return ((0, react_1.jsx)(Result_1.Result, __assign({ key: result.id }, subProps.result, { result: result, layout: props.layout, controller: controller })));
|
|
114
|
+
}
|
|
115
|
+
})())); })))) : ((0, react_1.jsx)(preact_1.Fragment, null));
|
|
127
116
|
});
|
package/dist/cjs/components/Trackers/Recommendation/ProfileTracker/RecommendationProfileTracker.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
/** @jsx jsx */
|
|
3
|
+
import { ComponentChildren } from 'preact';
|
|
2
4
|
import type { RecommendationController } from '@searchspring/snap-controller';
|
|
3
5
|
import { ComponentProps } from '../../../../types';
|
|
4
6
|
export declare const RecommendationProfileTracker: (properties: RecommendationProfileTrackerProps) => JSX.Element;
|
|
5
7
|
export interface RecommendationProfileTrackerProps extends ComponentProps {
|
|
6
|
-
children:
|
|
8
|
+
children: ComponentChildren;
|
|
7
9
|
controller: RecommendationController;
|
|
8
10
|
}
|
|
9
11
|
//# sourceMappingURL=RecommendationProfileTracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendationProfileTracker.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Trackers/Recommendation/ProfileTracker/RecommendationProfileTracker.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"RecommendationProfileTracker.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Trackers/Recommendation/ProfileTracker/RecommendationProfileTracker.tsx"],"names":[],"mappings":";AAAA,eAAe;AACf,OAAO,EAAE,iBAAiB,EAA6B,MAAM,QAAQ,CAAC;AAItE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAc,MAAM,mBAAmB,CAAC;AAO/D,eAAO,MAAM,4BAA4B,eAAyB,iCAAiC,KAAG,WA8BpG,CAAC;AAEH,MAAM,WAAW,iCAAkC,SAAQ,cAAc;IACxE,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,wBAAwB,CAAC;CACrC"}
|
package/dist/cjs/components/Trackers/Recommendation/ProfileTracker/RecommendationProfileTracker.js
CHANGED
|
@@ -18,10 +18,8 @@ exports.RecommendationProfileTracker = void 0;
|
|
|
18
18
|
/** @jsx jsx */
|
|
19
19
|
var preact_1 = require("preact");
|
|
20
20
|
var react_1 = require("@emotion/react");
|
|
21
|
-
var hooks_1 = require("preact/hooks");
|
|
22
21
|
var mobx_react_1 = require("mobx-react");
|
|
23
22
|
var providers_1 = require("../../../../providers");
|
|
24
|
-
var hooks_2 = require("../../../../hooks");
|
|
25
23
|
var classnames_1 = __importDefault(require("classnames"));
|
|
26
24
|
var CSS = {
|
|
27
25
|
RecommendationProfileTracker: function () { return (0, react_1.css)({}); },
|
|
@@ -30,16 +28,8 @@ exports.RecommendationProfileTracker = (0, mobx_react_1.observer)(function (prop
|
|
|
30
28
|
var _a, _b, _c;
|
|
31
29
|
var globalTheme = (0, providers_1.useTheme)();
|
|
32
30
|
var props = __assign(__assign(__assign({}, (_a = globalTheme === null || globalTheme === void 0 ? void 0 : globalTheme.components) === null || _a === void 0 ? void 0 : _a.RecommendationProfileTracker), properties), (_c = (_b = properties.theme) === null || _b === void 0 ? void 0 : _b.components) === null || _c === void 0 ? void 0 : _c.RecommendationProfileTracker);
|
|
33
|
-
var children = props.children,
|
|
31
|
+
var children = props.children, className = props.className, style = props.style, disableStyles = props.disableStyles;
|
|
34
32
|
var childs = (0, preact_1.toChildArray)(children);
|
|
35
|
-
// do impression tracking for "profile"
|
|
36
|
-
var componentRef = (0, hooks_1.useRef)(null);
|
|
37
|
-
var inViewport = (0, hooks_2.useIntersection)(componentRef, '0px');
|
|
38
|
-
if (inViewport) {
|
|
39
|
-
controller.track.impression();
|
|
40
|
-
}
|
|
41
|
-
// takes care of rendering profile
|
|
42
|
-
childs.length && controller.track.render();
|
|
43
33
|
var styling = {};
|
|
44
34
|
if (!disableStyles) {
|
|
45
35
|
styling.css = [CSS.RecommendationProfileTracker(), style];
|
|
@@ -47,5 +37,5 @@ exports.RecommendationProfileTracker = (0, mobx_react_1.observer)(function (prop
|
|
|
47
37
|
else if (style) {
|
|
48
38
|
styling.css = [style];
|
|
49
39
|
}
|
|
50
|
-
return childs.length ? ((0, react_1.jsx)("div", __assign({ className: (0, classnames_1.default)('ss__recommendation-profile-tracker', className)
|
|
40
|
+
return childs.length ? ((0, react_1.jsx)("div", __assign({ className: (0, classnames_1.default)('ss__recommendation-profile-tracker', className) }, styling), children)) : ((0, react_1.jsx)(preact_1.Fragment, null));
|
|
51
41
|
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/** @jsx jsx */
|
|
3
|
+
import { ComponentChildren } from 'preact';
|
|
4
|
+
import type { AutocompleteController, RecommendationController, SearchController } from '@searchspring/snap-controller';
|
|
5
|
+
import { ComponentProps } from '../../../types';
|
|
6
|
+
import type { Banner, Product } from '@searchspring/snap-store-mobx';
|
|
7
|
+
export declare const ResultTracker: (properties: ResultTrackerProps) => JSX.Element;
|
|
8
|
+
export interface ResultTrackerProps extends ComponentProps {
|
|
9
|
+
children: ComponentChildren;
|
|
10
|
+
result: Product | Banner;
|
|
11
|
+
controller: SearchController | AutocompleteController | RecommendationController;
|
|
12
|
+
track?: {
|
|
13
|
+
render?: boolean;
|
|
14
|
+
impression?: boolean;
|
|
15
|
+
click?: boolean;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ResultTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResultTracker.d.ts","sourceRoot":"","sources":["../../../../../src/components/Trackers/ResultTracker/ResultTracker.tsx"],"names":[],"mappings":";AAAA,eAAe;AACf,OAAO,EAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAM9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACxH,OAAO,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAOrE,eAAO,MAAM,aAAa,eAAyB,kBAAkB,KAAG,WA+DtE,CAAC;AAEH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACzD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,UAAU,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;IACjF,KAAK,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ResultTracker = void 0;
|
|
18
|
+
var react_1 = require("@emotion/react");
|
|
19
|
+
var hooks_1 = require("preact/hooks");
|
|
20
|
+
var mobx_react_1 = require("mobx-react");
|
|
21
|
+
var providers_1 = require("../../../providers");
|
|
22
|
+
var hooks_2 = require("../../../hooks");
|
|
23
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
24
|
+
var CSS = {
|
|
25
|
+
ResultTracker: function () { return (0, react_1.css)({}); },
|
|
26
|
+
};
|
|
27
|
+
exports.ResultTracker = (0, mobx_react_1.observer)(function (properties) {
|
|
28
|
+
var _a, _b, _c, _d, _e;
|
|
29
|
+
var globalTheme = (0, providers_1.useTheme)();
|
|
30
|
+
var defaultTrack = {
|
|
31
|
+
render: true,
|
|
32
|
+
impression: true,
|
|
33
|
+
click: true,
|
|
34
|
+
};
|
|
35
|
+
var props = __assign(__assign(__assign({}, (_a = globalTheme === null || globalTheme === void 0 ? void 0 : globalTheme.components) === null || _a === void 0 ? void 0 : _a.ResultTracker), properties), (_c = (_b = properties.theme) === null || _b === void 0 ? void 0 : _b.components) === null || _c === void 0 ? void 0 : _c.ResultTracker);
|
|
36
|
+
var children = props.children, result = props.result, track = props.track, controller = props.controller, className = props.className, disableStyles = props.disableStyles, style = props.style;
|
|
37
|
+
var mergedTrack = __assign(__assign({}, defaultTrack), track);
|
|
38
|
+
var resultRef = (0, hooks_1.useRef)(null);
|
|
39
|
+
var resultInViewport = (0, hooks_2.useIntersection)(resultRef, '0px');
|
|
40
|
+
(0, hooks_1.useEffect)(function () {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
if (mergedTrack.render) {
|
|
43
|
+
if (result.type === 'product') {
|
|
44
|
+
(_b = (_a = controller === null || controller === void 0 ? void 0 : controller.track) === null || _a === void 0 ? void 0 : _a.product) === null || _b === void 0 ? void 0 : _b.render(result);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}, [result]);
|
|
48
|
+
if (resultInViewport && mergedTrack.impression) {
|
|
49
|
+
if (result.type === 'product' && (controller === null || controller === void 0 ? void 0 : controller.track)) {
|
|
50
|
+
(_e = (_d = controller === null || controller === void 0 ? void 0 : controller.track) === null || _d === void 0 ? void 0 : _d.product) === null || _e === void 0 ? void 0 : _e.impression(result);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
var styling = {};
|
|
54
|
+
if (!disableStyles) {
|
|
55
|
+
styling.css = [CSS.ResultTracker(), style];
|
|
56
|
+
}
|
|
57
|
+
else if (style) {
|
|
58
|
+
styling.css = [style];
|
|
59
|
+
}
|
|
60
|
+
return ((0, react_1.jsx)("div", __assign({ className: (0, classnames_1.default)('ss__result-tracker', "ss__".concat(controller === null || controller === void 0 ? void 0 : controller.type, "-result-tracker"), className), onClick: function (e) {
|
|
61
|
+
var _a, _b;
|
|
62
|
+
if (mergedTrack.click) {
|
|
63
|
+
if (result.type === 'product') {
|
|
64
|
+
(_b = (_a = controller === null || controller === void 0 ? void 0 : controller.track) === null || _a === void 0 ? void 0 : _a.product) === null || _b === void 0 ? void 0 : _b.click(e, result);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}, ref: resultRef }, styling), children));
|
|
68
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Trackers/ResultTracker/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
package/dist/cjs/components/Trackers/{Recommendation/ResultTracker → ResultTracker}/index.js
RENAMED
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./ResultTracker"), exports);
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -13,8 +13,6 @@ export * from './components/Atoms/Merchandising';
|
|
|
13
13
|
export * from './components/Atoms/Overlay';
|
|
14
14
|
export * from './components/Atoms/Price';
|
|
15
15
|
export * from './components/Atoms/Skeleton';
|
|
16
|
-
export * from './components/Trackers/Recommendation/ResultTracker';
|
|
17
|
-
export * from './components/Trackers/Recommendation/ProfileTracker';
|
|
18
16
|
export * from './components/Molecules/CalloutBadge';
|
|
19
17
|
export * from './components/Molecules/Carousel';
|
|
20
18
|
export * from './components/Molecules/Checkbox';
|
|
@@ -42,6 +40,9 @@ export * from './components/Organisms/FilterSummary';
|
|
|
42
40
|
export * from './components/Organisms/Recommendation';
|
|
43
41
|
export * from './components/Organisms/RecommendationBundle';
|
|
44
42
|
export * from './components/Organisms/Results';
|
|
43
|
+
export * from './components/Trackers/Recommendation/ProfileTracker';
|
|
44
|
+
export * from './components/Trackers/ResultTracker';
|
|
45
|
+
export { ResultTracker as RecommendationResultTracker, ResultTrackerProps as RecommendationResultTrackerProps, } from './components/Trackers/ResultTracker';
|
|
45
46
|
export * from './hooks';
|
|
46
47
|
export * from './providers';
|
|
47
48
|
export * from './toolbox';
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAG5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAG/C,cAAc,qDAAqD,CAAC;AACpE,cAAc,qCAAqC,CAAC;AACpD,OAAO,EACN,aAAa,IAAI,2BAA2B,EAC5C,kBAAkB,IAAI,gCAAgC,GACtD,MAAM,qCAAqC,CAAC;AAG7C,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.RecommendationResultTracker = void 0;
|
|
17
18
|
// ATOMS
|
|
18
19
|
__exportStar(require("./components/Atoms/BadgeImage"), exports);
|
|
19
20
|
__exportStar(require("./components/Atoms/BadgePill"), exports);
|
|
@@ -30,8 +31,6 @@ __exportStar(require("./components/Atoms/Merchandising"), exports);
|
|
|
30
31
|
__exportStar(require("./components/Atoms/Overlay"), exports);
|
|
31
32
|
__exportStar(require("./components/Atoms/Price"), exports);
|
|
32
33
|
__exportStar(require("./components/Atoms/Skeleton"), exports);
|
|
33
|
-
__exportStar(require("./components/Trackers/Recommendation/ResultTracker"), exports);
|
|
34
|
-
__exportStar(require("./components/Trackers/Recommendation/ProfileTracker"), exports);
|
|
35
34
|
// MOLECULES
|
|
36
35
|
__exportStar(require("./components/Molecules/CalloutBadge"), exports);
|
|
37
36
|
__exportStar(require("./components/Molecules/Carousel"), exports);
|
|
@@ -61,6 +60,11 @@ __exportStar(require("./components/Organisms/FilterSummary"), exports);
|
|
|
61
60
|
__exportStar(require("./components/Organisms/Recommendation"), exports);
|
|
62
61
|
__exportStar(require("./components/Organisms/RecommendationBundle"), exports);
|
|
63
62
|
__exportStar(require("./components/Organisms/Results"), exports);
|
|
63
|
+
// TRACKERS
|
|
64
|
+
__exportStar(require("./components/Trackers/Recommendation/ProfileTracker"), exports);
|
|
65
|
+
__exportStar(require("./components/Trackers/ResultTracker"), exports);
|
|
66
|
+
var ResultTracker_1 = require("./components/Trackers/ResultTracker");
|
|
67
|
+
Object.defineProperty(exports, "RecommendationResultTracker", { enumerable: true, get: function () { return ResultTracker_1.ResultTracker; } });
|
|
64
68
|
// HOOKS
|
|
65
69
|
__exportStar(require("./hooks"), exports);
|
|
66
70
|
// PROVIDERS
|