@searchspring/snap-preact-components 0.54.0 → 0.56.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/BadgeImage/BadgeImage.d.ts +11 -0
- package/dist/cjs/components/Atoms/BadgeImage/BadgeImage.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgeImage/BadgeImage.js +46 -0
- package/dist/cjs/components/Atoms/BadgeImage/index.d.ts +2 -0
- package/dist/cjs/components/Atoms/BadgeImage/index.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgeImage/index.js +17 -0
- package/dist/cjs/components/Atoms/BadgePill/BadgePill.d.ts +12 -0
- package/dist/cjs/components/Atoms/BadgePill/BadgePill.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgePill/BadgePill.js +57 -0
- package/dist/cjs/components/Atoms/BadgePill/index.d.ts +2 -0
- package/dist/cjs/components/Atoms/BadgePill/index.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgePill/index.js +17 -0
- package/dist/cjs/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts +12 -0
- package/dist/cjs/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgeRectangle/BadgeRectangle.js +56 -0
- package/dist/cjs/components/Atoms/BadgeRectangle/index.d.ts +2 -0
- package/dist/cjs/components/Atoms/BadgeRectangle/index.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgeRectangle/index.js +17 -0
- package/dist/cjs/components/Atoms/BadgeText/BadgeText.d.ts +11 -0
- package/dist/cjs/components/Atoms/BadgeText/BadgeText.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgeText/BadgeText.js +55 -0
- package/dist/cjs/components/Atoms/BadgeText/index.d.ts +2 -0
- package/dist/cjs/components/Atoms/BadgeText/index.d.ts.map +1 -0
- package/dist/cjs/components/Atoms/BadgeText/index.js +17 -0
- package/dist/cjs/components/Molecules/CalloutBadge/CalloutBadge.d.ts +13 -0
- package/dist/cjs/components/Molecules/CalloutBadge/CalloutBadge.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/CalloutBadge/CalloutBadge.js +63 -0
- package/dist/cjs/components/Molecules/CalloutBadge/index.d.ts +2 -0
- package/dist/cjs/components/Molecules/CalloutBadge/index.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/CalloutBadge/index.js +17 -0
- package/dist/cjs/components/Molecules/Grid/Grid.d.ts +20 -0
- package/dist/cjs/components/Molecules/Grid/Grid.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/Grid/Grid.js +210 -0
- package/dist/cjs/components/Molecules/Grid/index.d.ts +2 -0
- package/dist/cjs/components/Molecules/Grid/index.d.ts.map +1 -0
- package/dist/cjs/components/{Atoms/Badge → Molecules/Grid}/index.js +1 -1
- package/dist/cjs/components/Molecules/List/List.d.ts +18 -0
- package/dist/cjs/components/Molecules/List/List.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/List/List.js +158 -0
- package/dist/cjs/components/Molecules/List/index.d.ts +2 -0
- package/dist/cjs/components/Molecules/List/index.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/List/index.js +17 -0
- package/dist/cjs/components/Molecules/OverlayBadge/OverlayBadge.d.ts +17 -0
- package/dist/cjs/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/OverlayBadge/OverlayBadge.js +118 -0
- package/dist/cjs/components/Molecules/OverlayBadge/index.d.ts +2 -0
- package/dist/cjs/components/Molecules/OverlayBadge/index.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/OverlayBadge/index.js +17 -0
- package/dist/cjs/components/Molecules/Result/Result.d.ts.map +1 -1
- package/dist/cjs/components/Molecules/Result/Result.js +19 -9
- package/dist/cjs/components/Molecules/Swatches/Swatches.d.ts +19 -0
- package/dist/cjs/components/Molecules/Swatches/Swatches.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/Swatches/Swatches.js +168 -0
- package/dist/cjs/components/Molecules/Swatches/index.d.ts +2 -0
- package/dist/cjs/components/Molecules/Swatches/index.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/Swatches/index.js +17 -0
- package/dist/cjs/components/Molecules/VariantSelection/VariantSelection.d.ts +9 -0
- package/dist/cjs/components/Molecules/VariantSelection/VariantSelection.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/VariantSelection/VariantSelection.js +146 -0
- package/dist/cjs/components/Molecules/VariantSelection/index.d.ts +2 -0
- package/dist/cjs/components/Molecules/VariantSelection/index.d.ts.map +1 -0
- package/dist/cjs/components/Molecules/VariantSelection/index.js +17 -0
- package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/cjs/components/Organisms/Autocomplete/Autocomplete.js +0 -3
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/index.js +1 -0
- package/dist/cjs/hooks/useComponent.d.ts +4 -0
- package/dist/cjs/hooks/useComponent.d.ts.map +1 -0
- package/dist/cjs/hooks/useComponent.js +23 -0
- package/dist/cjs/index.d.ts +11 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +11 -2
- package/dist/cjs/types.d.ts +20 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utilities/defaultBadgeComponentMap.d.ts +3 -0
- package/dist/cjs/utilities/defaultBadgeComponentMap.d.ts.map +1 -0
- package/dist/cjs/utilities/defaultBadgeComponentMap.js +13 -0
- package/dist/cjs/utilities/index.d.ts +1 -0
- package/dist/cjs/utilities/index.d.ts.map +1 -1
- package/dist/cjs/utilities/index.js +1 -0
- package/dist/cjs/utilities/snapify.d.ts.map +1 -1
- package/dist/cjs/utilities/snapify.js +3 -0
- package/dist/esm/components/Atoms/BadgeImage/BadgeImage.d.ts +11 -0
- package/dist/esm/components/Atoms/BadgeImage/BadgeImage.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgeImage/BadgeImage.js +35 -0
- package/dist/esm/components/Atoms/BadgeImage/index.d.ts +2 -0
- package/dist/esm/components/Atoms/BadgeImage/index.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgeImage/index.js +1 -0
- package/dist/esm/components/Atoms/BadgePill/BadgePill.d.ts +12 -0
- package/dist/esm/components/Atoms/BadgePill/BadgePill.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgePill/BadgePill.js +46 -0
- package/dist/esm/components/Atoms/BadgePill/index.d.ts +2 -0
- package/dist/esm/components/Atoms/BadgePill/index.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgePill/index.js +1 -0
- package/dist/esm/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts +12 -0
- package/dist/esm/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgeRectangle/BadgeRectangle.js +45 -0
- package/dist/esm/components/Atoms/BadgeRectangle/index.d.ts +2 -0
- package/dist/esm/components/Atoms/BadgeRectangle/index.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgeRectangle/index.js +1 -0
- package/dist/esm/components/Atoms/BadgeText/BadgeText.d.ts +11 -0
- package/dist/esm/components/Atoms/BadgeText/BadgeText.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgeText/BadgeText.js +43 -0
- package/dist/esm/components/Atoms/BadgeText/index.d.ts +2 -0
- package/dist/esm/components/Atoms/BadgeText/index.d.ts.map +1 -0
- package/dist/esm/components/Atoms/BadgeText/index.js +1 -0
- package/dist/esm/components/Molecules/CalloutBadge/CalloutBadge.d.ts +13 -0
- package/dist/esm/components/Molecules/CalloutBadge/CalloutBadge.d.ts.map +1 -0
- package/dist/esm/components/Molecules/CalloutBadge/CalloutBadge.js +49 -0
- package/dist/esm/components/Molecules/CalloutBadge/index.d.ts +2 -0
- package/dist/esm/components/Molecules/CalloutBadge/index.d.ts.map +1 -0
- package/dist/esm/components/Molecules/CalloutBadge/index.js +1 -0
- package/dist/esm/components/Molecules/Grid/Grid.d.ts +20 -0
- package/dist/esm/components/Molecules/Grid/Grid.d.ts.map +1 -0
- package/dist/esm/components/Molecules/Grid/Grid.js +189 -0
- package/dist/esm/components/Molecules/Grid/index.d.ts +2 -0
- package/dist/esm/components/Molecules/Grid/index.d.ts.map +1 -0
- package/dist/esm/components/Molecules/Grid/index.js +1 -0
- package/dist/esm/components/Molecules/List/List.d.ts +18 -0
- package/dist/esm/components/Molecules/List/List.d.ts.map +1 -0
- package/dist/esm/components/Molecules/List/List.js +140 -0
- package/dist/esm/components/Molecules/List/index.d.ts +2 -0
- package/dist/esm/components/Molecules/List/index.d.ts.map +1 -0
- package/dist/esm/components/Molecules/List/index.js +1 -0
- package/dist/esm/components/Molecules/OverlayBadge/OverlayBadge.d.ts +17 -0
- package/dist/esm/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -0
- package/dist/esm/components/Molecules/OverlayBadge/OverlayBadge.js +111 -0
- package/dist/esm/components/Molecules/OverlayBadge/index.d.ts +2 -0
- package/dist/esm/components/Molecules/OverlayBadge/index.d.ts.map +1 -0
- package/dist/esm/components/Molecules/OverlayBadge/index.js +1 -0
- package/dist/esm/components/Molecules/Result/Result.d.ts.map +1 -1
- package/dist/esm/components/Molecules/Result/Result.js +23 -9
- package/dist/esm/components/Molecules/Swatches/Swatches.d.ts +19 -0
- package/dist/esm/components/Molecules/Swatches/Swatches.d.ts.map +1 -0
- package/dist/esm/components/Molecules/Swatches/Swatches.js +179 -0
- package/dist/esm/components/Molecules/Swatches/index.d.ts +2 -0
- package/dist/esm/components/Molecules/Swatches/index.d.ts.map +1 -0
- package/dist/esm/components/Molecules/Swatches/index.js +1 -0
- package/dist/esm/components/Molecules/VariantSelection/VariantSelection.d.ts +9 -0
- package/dist/esm/components/Molecules/VariantSelection/VariantSelection.d.ts.map +1 -0
- package/dist/esm/components/Molecules/VariantSelection/VariantSelection.js +167 -0
- package/dist/esm/components/Molecules/VariantSelection/index.d.ts +2 -0
- package/dist/esm/components/Molecules/VariantSelection/index.d.ts.map +1 -0
- package/dist/esm/components/Molecules/VariantSelection/index.js +1 -0
- package/dist/esm/components/Organisms/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/esm/components/Organisms/Autocomplete/Autocomplete.js +0 -3
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/useComponent.d.ts +4 -0
- package/dist/esm/hooks/useComponent.d.ts.map +1 -0
- package/dist/esm/hooks/useComponent.js +19 -0
- package/dist/esm/index.d.ts +11 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +11 -2
- package/dist/esm/types.d.ts +20 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utilities/defaultBadgeComponentMap.d.ts +3 -0
- package/dist/esm/utilities/defaultBadgeComponentMap.d.ts.map +1 -0
- package/dist/esm/utilities/defaultBadgeComponentMap.js +10 -0
- package/dist/esm/utilities/index.d.ts +1 -0
- package/dist/esm/utilities/index.d.ts.map +1 -1
- package/dist/esm/utilities/index.js +1 -0
- package/dist/esm/utilities/snapify.d.ts.map +1 -1
- package/dist/esm/utilities/snapify.js +3 -0
- package/package.json +12 -11
- package/dist/cjs/components/Atoms/Badge/Badge.d.ts +0 -16
- package/dist/cjs/components/Atoms/Badge/Badge.d.ts.map +0 -1
- package/dist/cjs/components/Atoms/Badge/Badge.js +0 -47
- package/dist/cjs/components/Atoms/Badge/index.d.ts +0 -2
- package/dist/cjs/components/Atoms/Badge/index.d.ts.map +0 -1
- package/dist/esm/components/Atoms/Badge/Badge.d.ts +0 -16
- package/dist/esm/components/Atoms/Badge/Badge.d.ts.map +0 -1
- package/dist/esm/components/Atoms/Badge/Badge.js +0 -36
- package/dist/esm/components/Atoms/Badge/index.d.ts +0 -2
- package/dist/esm/components/Atoms/Badge/index.d.ts.map +0 -1
- package/dist/esm/components/Atoms/Badge/index.js +0 -1
|
@@ -0,0 +1,210 @@
|
|
|
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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
14
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15
|
+
if (ar || !(i in from)) {
|
|
16
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
17
|
+
ar[i] = from[i];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21
|
+
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Grid = void 0;
|
|
27
|
+
/** @jsx jsx */
|
|
28
|
+
var preact_1 = require("preact");
|
|
29
|
+
var react_1 = require("@emotion/react");
|
|
30
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
31
|
+
var providers_1 = require("../../../providers");
|
|
32
|
+
var react_2 = require("react");
|
|
33
|
+
var hooks_1 = require("../../../hooks");
|
|
34
|
+
var Image_1 = require("../../Atoms/Image");
|
|
35
|
+
var utilities_1 = require("../../../utilities");
|
|
36
|
+
var snap_toolbox_1 = require("@searchspring/snap-toolbox");
|
|
37
|
+
var CSS = {
|
|
38
|
+
Grid: function (_a) {
|
|
39
|
+
var _b;
|
|
40
|
+
var _c, _d, _e;
|
|
41
|
+
var theme = _a.theme, columns = _a.columns, gapSize = _a.gapSize, disableOverflowAction = _a.disableOverflowAction;
|
|
42
|
+
return (0, react_1.css)({
|
|
43
|
+
'.ss__grid__options': {
|
|
44
|
+
display: 'flex',
|
|
45
|
+
flexFlow: 'row wrap',
|
|
46
|
+
gridTemplateColumns: "repeat(".concat(columns, ", 1fr)"),
|
|
47
|
+
gap: gapSize,
|
|
48
|
+
gridAutoRows: "1fr",
|
|
49
|
+
'& .ss__grid__option': (_b = {
|
|
50
|
+
display: 'flex',
|
|
51
|
+
flexDirection: 'column',
|
|
52
|
+
boxSizing: 'content-box',
|
|
53
|
+
backgroundRepeat: 'no-repeat',
|
|
54
|
+
backgroundSize: "calc(100% / ".concat(columns, " - ").concat(2 * Math.round((columns + 2) / 2), "px)"),
|
|
55
|
+
backgroundPosition: 'center !important',
|
|
56
|
+
justifyContent: 'center',
|
|
57
|
+
alignItems: 'center',
|
|
58
|
+
flex: '0 1 auto',
|
|
59
|
+
border: "1px solid ".concat(((_c = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _c === void 0 ? void 0 : _c.primary) || '#333'),
|
|
60
|
+
textAlign: 'center',
|
|
61
|
+
wordBreak: 'break-all',
|
|
62
|
+
padding: '1em 0',
|
|
63
|
+
width: "calc(100% / ".concat(columns, " - ").concat(2 * Math.round((columns + 2) / 2), "px)"),
|
|
64
|
+
margin: "0 ".concat(gapSize, " ").concat(gapSize, " 0"),
|
|
65
|
+
'.ss__grid__option__label': {
|
|
66
|
+
cursor: 'pointer',
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
_b[":nth-of-type(".concat(columns, "n)")] = {
|
|
70
|
+
marginRight: '0',
|
|
71
|
+
},
|
|
72
|
+
_b['&.ss__grid__option--selected'] = {
|
|
73
|
+
border: "2px solid ".concat(((_d = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _d === void 0 ? void 0 : _d.primary) || '#333'),
|
|
74
|
+
},
|
|
75
|
+
_b['&.ss__grid__option--disabled'] = {
|
|
76
|
+
position: 'relative',
|
|
77
|
+
opacity: '.5',
|
|
78
|
+
cursor: 'none',
|
|
79
|
+
pointerEvents: 'none',
|
|
80
|
+
},
|
|
81
|
+
_b['&.ss__grid__option--unavailable'] = {
|
|
82
|
+
position: 'relative',
|
|
83
|
+
opacity: '.5',
|
|
84
|
+
},
|
|
85
|
+
_b['&.ss__grid__option--disabled:before, &.ss__grid__option--unavailable:before'] = {
|
|
86
|
+
content: '""',
|
|
87
|
+
display: 'block',
|
|
88
|
+
position: 'absolute',
|
|
89
|
+
top: '50%',
|
|
90
|
+
width: '90%',
|
|
91
|
+
height: '1px',
|
|
92
|
+
borderTop: '3px solid #eee',
|
|
93
|
+
outline: '1px solid #ffff',
|
|
94
|
+
transform: 'rotate(-45deg)',
|
|
95
|
+
},
|
|
96
|
+
_b['&:hover:not(.ss__grid__option--selected)'] = {
|
|
97
|
+
cursor: 'pointer',
|
|
98
|
+
background: ((_e = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _e === void 0 ? void 0 : _e.hover) || '#f8f8f8',
|
|
99
|
+
},
|
|
100
|
+
_b),
|
|
101
|
+
'@supports (display: grid)': {
|
|
102
|
+
display: 'grid',
|
|
103
|
+
'& .ss__grid__option': {
|
|
104
|
+
padding: '0',
|
|
105
|
+
margin: '0',
|
|
106
|
+
width: 'initial',
|
|
107
|
+
},
|
|
108
|
+
'&::before': {
|
|
109
|
+
content: '""',
|
|
110
|
+
width: 0,
|
|
111
|
+
paddingBottom: '100%',
|
|
112
|
+
gridRow: '1 / 1',
|
|
113
|
+
gridColumn: '1 / 1',
|
|
114
|
+
},
|
|
115
|
+
'&> *:first-of-type': {
|
|
116
|
+
gridRow: '1 / 1',
|
|
117
|
+
gridColumn: '1 / 1',
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
'.ss__grid__show-more-wrapper': {
|
|
122
|
+
'&:hover': {
|
|
123
|
+
cursor: disableOverflowAction ? 'initial !important' : 'pointer !important',
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
function Grid(properties) {
|
|
130
|
+
var _a, _b, _c, _d;
|
|
131
|
+
var globalTheme = (0, providers_1.useTheme)();
|
|
132
|
+
var theme = __assign(__assign({}, globalTheme), properties.theme);
|
|
133
|
+
var props = __assign(__assign(__assign({
|
|
134
|
+
// default props
|
|
135
|
+
multiSelect: false, columns: 4, gapSize: '8px' }, (_a = globalTheme === null || globalTheme === void 0 ? void 0 : globalTheme.components) === null || _a === void 0 ? void 0 : _a.grid), properties), (_c = (_b = properties.theme) === null || _b === void 0 ? void 0 : _b.components) === null || _c === void 0 ? void 0 : _c.grid);
|
|
136
|
+
var titleText = props.titleText, onSelect = props.onSelect, hideLabels = props.hideLabels, disableOverflowAction = props.disableOverflowAction, multiSelect = props.multiSelect, overflowButton = props.overflowButton, columns = props.columns, rows = props.rows, hideShowLess = props.hideShowLess, gapSize = props.gapSize, overflowButtonInGrid = props.overflowButtonInGrid, disabled = props.disabled, options = props.options, disableStyles = props.disableStyles, onOverflowButtonClick = props.onOverflowButtonClick, className = props.className, style = props.style;
|
|
137
|
+
var subProps = {
|
|
138
|
+
image: __assign(__assign(__assign({
|
|
139
|
+
// default props
|
|
140
|
+
className: 'ss__swatches__Image' }, (_d = globalTheme === null || globalTheme === void 0 ? void 0 : globalTheme.components) === null || _d === void 0 ? void 0 : _d.image), (0, utilities_1.defined)({
|
|
141
|
+
disableStyles: disableStyles,
|
|
142
|
+
})), {
|
|
143
|
+
// component theme overrides
|
|
144
|
+
theme: props === null || props === void 0 ? void 0 : props.theme }),
|
|
145
|
+
};
|
|
146
|
+
var selected = props.selected;
|
|
147
|
+
var styling = {};
|
|
148
|
+
if (!disableStyles) {
|
|
149
|
+
styling.css = [CSS.Grid({ theme: theme, columns: columns, gapSize: gapSize, disableOverflowAction: disableOverflowAction }), style];
|
|
150
|
+
}
|
|
151
|
+
else if (style) {
|
|
152
|
+
styling.css = [style];
|
|
153
|
+
}
|
|
154
|
+
if (selected && !Array.isArray(selected)) {
|
|
155
|
+
selected = [selected];
|
|
156
|
+
}
|
|
157
|
+
// selection state
|
|
158
|
+
var _e = (0, react_2.useState)(selected || []), selection = _e[0], setSelection = _e[1];
|
|
159
|
+
var makeSelection = function (e, option) {
|
|
160
|
+
if (multiSelect) {
|
|
161
|
+
var newArray = void 0;
|
|
162
|
+
if (selection.find(function (select) { return select.value === option.value; })) {
|
|
163
|
+
newArray = __spreadArray([], selection, true);
|
|
164
|
+
newArray.splice(newArray.findIndex(function (select) { return select.value === option.value; }), 1);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
newArray = __spreadArray(__spreadArray([], selection, true), [option], false);
|
|
168
|
+
}
|
|
169
|
+
if (onSelect) {
|
|
170
|
+
onSelect(e, option, newArray);
|
|
171
|
+
}
|
|
172
|
+
setSelection(newArray);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
if (onSelect) {
|
|
176
|
+
onSelect(e, option, [option]);
|
|
177
|
+
}
|
|
178
|
+
setSelection([option]);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
var limit = rows && columns ? columns * rows : options.length;
|
|
182
|
+
var remainder = Math.max(0, options.length - (limit - (overflowButtonInGrid ? 1 : 0)));
|
|
183
|
+
var _f = (0, react_2.useState)(remainder), limited = _f[0], setLimited = _f[1];
|
|
184
|
+
var OverflowButtonElem = function () {
|
|
185
|
+
var showButton = hideShowLess ? (!limited ? false : true) : true;
|
|
186
|
+
return showButton && remainder > 0 && options.length !== limit ? ((0, react_1.jsx)("div", { className: "ss__grid__show-more-wrapper ".concat(overflowButtonInGrid ? 'ss__grid__option' : ''), onClick: function (e) {
|
|
187
|
+
!disableOverflowAction && setLimited(!limited);
|
|
188
|
+
onOverflowButtonClick && onOverflowButtonClick(e, Boolean(limited), remainder);
|
|
189
|
+
} }, overflowButton ? ((0, utilities_1.cloneWithProps)(overflowButton, { limited: limited, remainder: remainder })) : limited ? ((0, react_1.jsx)("span", { className: 'ss__grid__show-more' }, "+ ".concat(remainder))) : remainder ? ((0, react_1.jsx)("span", { className: 'ss__grid__show-less' }, "Less")) : ((0, react_1.jsx)(preact_1.Fragment, null)))) : ((0, react_1.jsx)(preact_1.Fragment, null));
|
|
190
|
+
};
|
|
191
|
+
return typeof options == 'object' && (options === null || options === void 0 ? void 0 : options.length) ? ((0, react_1.jsx)(providers_1.CacheProvider, null,
|
|
192
|
+
(0, react_1.jsx)("div", __assign({}, styling, { className: (0, classnames_1.default)('ss__grid', disabled ? 'ss__grid--disabled' : '', className) }),
|
|
193
|
+
titleText && (0, react_1.jsx)("h5", { className: "ss__grid__title" }, titleText),
|
|
194
|
+
(0, react_1.jsx)("div", { className: "ss__grid__options" },
|
|
195
|
+
options.map(function (option, idx) {
|
|
196
|
+
var selected = selection.some(function (select) { return select.value == option.value; });
|
|
197
|
+
if (!limited || options.length == limit || idx < limit - (overflowButtonInGrid ? 1 : 0)) {
|
|
198
|
+
return ((0, react_1.jsx)("div", { className: (0, classnames_1.default)("ss__grid__option ss__grid__option--".concat(snap_toolbox_1.filters.handleize(option.value.toString())), {
|
|
199
|
+
'ss__grid__option--selected': selected,
|
|
200
|
+
'ss__grid__option--disabled': option === null || option === void 0 ? void 0 : option.disabled,
|
|
201
|
+
'ss__grid__option--unavailable': (option === null || option === void 0 ? void 0 : option.available) === false,
|
|
202
|
+
}), style: { background: option.background ? option.background : option.backgroundImageUrl ? undefined : option.value }, onClick: function (e) { return !disabled && !(option === null || option === void 0 ? void 0 : option.disabled) && makeSelection(e, option); }, ref: function (e) { return (0, hooks_1.useA11y)(e); }, title: option.label, role: "option", "aria-selected": selected },
|
|
203
|
+
!option.background && option.backgroundImageUrl ? ((0, react_1.jsx)(Image_1.Image, __assign({}, subProps.image, { src: option.backgroundImageUrl, alt: option.label || option.value.toString() }))) : ((0, react_1.jsx)(preact_1.Fragment, null)),
|
|
204
|
+
!hideLabels ? (0, react_1.jsx)("label", { className: "ss__grid__option__label" }, option.label || option.value) : (0, react_1.jsx)(preact_1.Fragment, null)));
|
|
205
|
+
}
|
|
206
|
+
}),
|
|
207
|
+
overflowButtonInGrid ? (0, react_1.jsx)(OverflowButtonElem, null) : (0, react_1.jsx)(preact_1.Fragment, null)),
|
|
208
|
+
!overflowButtonInGrid ? (0, react_1.jsx)(OverflowButtonElem, null) : (0, react_1.jsx)(preact_1.Fragment, null)))) : ((0, react_1.jsx)(preact_1.Fragment, null));
|
|
209
|
+
}
|
|
210
|
+
exports.Grid = Grid;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/Grid/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
|
|
@@ -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("./Grid"), exports);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ComponentProps, ListOption } from '../../../types';
|
|
3
|
+
export declare function List(properties: ListProps): JSX.Element;
|
|
4
|
+
export interface ListProps extends ComponentProps {
|
|
5
|
+
options: ListOption[];
|
|
6
|
+
multiSelect?: boolean;
|
|
7
|
+
hideOptionCheckboxes?: boolean;
|
|
8
|
+
hideOptionLabels?: boolean;
|
|
9
|
+
hideOptionIcons?: boolean;
|
|
10
|
+
onSelect?: (e: React.MouseEvent<HTMLElement>, option: ListOption, selected: ListOption[]) => void;
|
|
11
|
+
titleText?: string;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
horizontal?: boolean;
|
|
14
|
+
native?: boolean;
|
|
15
|
+
selected?: ListOption | ListOption[];
|
|
16
|
+
requireSelection?: boolean;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=List.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/List/List.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,cAAc,EAAc,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAyDxE,wBAAgB,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CA+IvD;AAED,MAAM,WAAW,SAAU,SAAQ,cAAc;IAChD,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAClG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACrC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -0,0 +1,158 @@
|
|
|
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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
14
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15
|
+
if (ar || !(i in from)) {
|
|
16
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
17
|
+
ar[i] = from[i];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21
|
+
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.List = void 0;
|
|
27
|
+
/** @jsx jsx */
|
|
28
|
+
var preact_1 = require("preact");
|
|
29
|
+
var react_1 = require("@emotion/react");
|
|
30
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
31
|
+
var providers_1 = require("../../../providers");
|
|
32
|
+
var utilities_1 = require("../../../utilities");
|
|
33
|
+
var react_2 = require("react");
|
|
34
|
+
var Checkbox_1 = require("../Checkbox");
|
|
35
|
+
var hooks_1 = require("../../../hooks");
|
|
36
|
+
var Icon_1 = require("../../Atoms/Icon");
|
|
37
|
+
var snap_toolbox_1 = require("@searchspring/snap-toolbox");
|
|
38
|
+
var CSS = {
|
|
39
|
+
List: function (_a) {
|
|
40
|
+
var horizontal = _a.horizontal;
|
|
41
|
+
return (0, react_1.css)({
|
|
42
|
+
display: 'flex',
|
|
43
|
+
flexDirection: horizontal ? 'row' : 'column',
|
|
44
|
+
alignItems: horizontal ? 'center' : undefined,
|
|
45
|
+
justifyItems: 'flex-start',
|
|
46
|
+
gap: '5px',
|
|
47
|
+
'& .ss__list__options': {
|
|
48
|
+
border: 'none',
|
|
49
|
+
listStyle: 'none',
|
|
50
|
+
padding: '0px',
|
|
51
|
+
margin: '0px',
|
|
52
|
+
display: 'flex',
|
|
53
|
+
flexDirection: horizontal ? 'row' : 'column',
|
|
54
|
+
alignItems: horizontal ? 'center' : undefined,
|
|
55
|
+
justifyItems: 'flex-start',
|
|
56
|
+
gap: '5px',
|
|
57
|
+
},
|
|
58
|
+
'.ss__list__option': {
|
|
59
|
+
cursor: 'pointer',
|
|
60
|
+
display: 'flex',
|
|
61
|
+
alignItems: 'center',
|
|
62
|
+
gap: '5px',
|
|
63
|
+
'& .ss__list__option__label , .ss__list__option__icon': {
|
|
64
|
+
cursor: 'pointer',
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
'&.ss__list--disabled, .ss__list__option--disabled': {
|
|
68
|
+
cursor: 'none',
|
|
69
|
+
pointerEvents: 'none',
|
|
70
|
+
opacity: 0.5,
|
|
71
|
+
},
|
|
72
|
+
'&.ss__list--disabled, .ss__list__option--unavailable': {
|
|
73
|
+
cursor: 'pointer',
|
|
74
|
+
opacity: 0.5,
|
|
75
|
+
},
|
|
76
|
+
'.ss__list__option--selected': {
|
|
77
|
+
fontWeight: 'bold',
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
function List(properties) {
|
|
83
|
+
var _a, _b, _c;
|
|
84
|
+
var globalTheme = (0, providers_1.useTheme)();
|
|
85
|
+
var props = __assign(__assign(__assign({}, (_a = globalTheme === null || globalTheme === void 0 ? void 0 : globalTheme.components) === null || _a === void 0 ? void 0 : _a.list), properties), (_c = (_b = properties.theme) === null || _b === void 0 ? void 0 : _b.components) === null || _c === void 0 ? void 0 : _c.list);
|
|
86
|
+
var titleText = props.titleText, onSelect = props.onSelect, native = props.native, multiSelect = props.multiSelect, hideOptionLabels = props.hideOptionLabels, hideOptionIcons = props.hideOptionIcons, hideOptionCheckboxes = props.hideOptionCheckboxes, disabled = props.disabled, options = props.options, requireSelection = props.requireSelection, disableStyles = props.disableStyles, className = props.className, style = props.style, horizontal = props.horizontal;
|
|
87
|
+
var selected = props.selected;
|
|
88
|
+
var subProps = {
|
|
89
|
+
checkbox: __assign(__assign({
|
|
90
|
+
// default props
|
|
91
|
+
native: native }, (0, utilities_1.defined)({
|
|
92
|
+
disableStyles: disableStyles,
|
|
93
|
+
})), {
|
|
94
|
+
// component theme overrides
|
|
95
|
+
theme: props === null || props === void 0 ? void 0 : props.theme }),
|
|
96
|
+
icon: __assign(__assign({
|
|
97
|
+
// default props
|
|
98
|
+
className: 'ss__list__option__icon' }, (0, utilities_1.defined)({
|
|
99
|
+
disableStyles: disableStyles,
|
|
100
|
+
})), {
|
|
101
|
+
// component theme overrides
|
|
102
|
+
theme: props === null || props === void 0 ? void 0 : props.theme }),
|
|
103
|
+
};
|
|
104
|
+
var styling = {};
|
|
105
|
+
if (!disableStyles) {
|
|
106
|
+
styling.css = [CSS.List({ horizontal: horizontal }), style];
|
|
107
|
+
}
|
|
108
|
+
else if (style) {
|
|
109
|
+
styling.css = [style];
|
|
110
|
+
}
|
|
111
|
+
if (selected && !Array.isArray(selected)) {
|
|
112
|
+
selected = [selected];
|
|
113
|
+
}
|
|
114
|
+
// selection state
|
|
115
|
+
var _d = (0, react_2.useState)(selected || []), selection = _d[0], setSelection = _d[1];
|
|
116
|
+
var makeSelection = function (e, option) {
|
|
117
|
+
var newArray;
|
|
118
|
+
if (multiSelect) {
|
|
119
|
+
if (selection.find(function (select) { return select.value === option.value; })) {
|
|
120
|
+
newArray = __spreadArray([], selection, true);
|
|
121
|
+
newArray.splice(newArray.findIndex(function (select) { return select.value === option.value; }), 1);
|
|
122
|
+
if (newArray.length == 0 && requireSelection) {
|
|
123
|
+
newArray = [option];
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
newArray = __spreadArray(__spreadArray([], selection, true), [option], false);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
if (!requireSelection && selection.find(function (select) { return select.value === option.value; })) {
|
|
132
|
+
newArray = [];
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
newArray = [option];
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (onSelect) {
|
|
139
|
+
onSelect(e, option, newArray);
|
|
140
|
+
}
|
|
141
|
+
setSelection(newArray);
|
|
142
|
+
};
|
|
143
|
+
return typeof options == 'object' && (options === null || options === void 0 ? void 0 : options.length) ? ((0, react_1.jsx)(providers_1.CacheProvider, null,
|
|
144
|
+
(0, react_1.jsx)("div", __assign({}, styling, { className: (0, classnames_1.default)('ss__list', disabled ? 'ss__list--disabled' : '', className) }),
|
|
145
|
+
titleText && (0, react_1.jsx)("h5", { className: "ss__list__title" }, titleText),
|
|
146
|
+
(0, react_1.jsx)("ul", { className: "ss__list__options", role: "listbox", "aria-label": titleText }, options.map(function (option) {
|
|
147
|
+
var selected = selection.some(function (select) { return select.value == option.value; });
|
|
148
|
+
return ((0, react_1.jsx)("li", { className: (0, classnames_1.default)("ss__list__option ss__list__option--".concat(snap_toolbox_1.filters.handleize(option.value.toString())), {
|
|
149
|
+
'ss__list__option--selected': selected,
|
|
150
|
+
'ss__list__option--disabled': option === null || option === void 0 ? void 0 : option.disabled,
|
|
151
|
+
'ss__list__option--unavailable': (option === null || option === void 0 ? void 0 : option.available) === false,
|
|
152
|
+
}), ref: function (e) { return (0, hooks_1.useA11y)(e); }, onClick: function (e) { return !disabled && !(option === null || option === void 0 ? void 0 : option.disabled) && makeSelection(e, option); }, title: option.label, role: "option", "aria-selected": selected },
|
|
153
|
+
!hideOptionCheckboxes && (0, react_1.jsx)(Checkbox_1.Checkbox, __assign({}, subProps.checkbox, { checked: selected, disableA11y: true })),
|
|
154
|
+
option.icon && !hideOptionIcons && ((0, react_1.jsx)(Icon_1.Icon, __assign({}, subProps.icon, (typeof option.icon == 'string' ? { icon: option.icon } : option.icon)))),
|
|
155
|
+
!hideOptionLabels && (option.label || !option.icon) && ((0, react_1.jsx)("label", { className: "ss__list__option__label" }, option.label || option.value))));
|
|
156
|
+
}))))) : ((0, react_1.jsx)(preact_1.Fragment, null));
|
|
157
|
+
}
|
|
158
|
+
exports.List = List;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/List/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./List"), exports);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/** @jsx jsx */
|
|
3
|
+
import { ComponentChildren } from 'preact';
|
|
4
|
+
import { ComponentProps, ComponentMap } from '../../../types';
|
|
5
|
+
import type { AutocompleteController, RecommendationController, SearchController } from '@searchspring/snap-controller';
|
|
6
|
+
import type { Product } from '@searchspring/snap-store-mobx';
|
|
7
|
+
export declare const OverlayBadge: ((properties: OverlayBadgeProps) => JSX.Element) & {
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
10
|
+
export interface OverlayBadgeProps extends ComponentProps {
|
|
11
|
+
result: Product;
|
|
12
|
+
controller: SearchController | AutocompleteController | RecommendationController;
|
|
13
|
+
children: ComponentChildren;
|
|
14
|
+
renderEmpty?: boolean;
|
|
15
|
+
componentMap?: ComponentMap;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=OverlayBadge.d.ts.map
|
|
@@ -0,0 +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;AA6C7D,eAAO,MAAM,YAAY,gBAAyB,iBAAiB,KAAG,WAAW;;CAqF/E,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;CAC5B"}
|
|
@@ -0,0 +1,118 @@
|
|
|
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.OverlayBadge = void 0;
|
|
18
|
+
/** @jsx jsx */
|
|
19
|
+
var preact_1 = require("preact");
|
|
20
|
+
var react_1 = require("@emotion/react");
|
|
21
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
22
|
+
var mobx_react_lite_1 = require("mobx-react-lite");
|
|
23
|
+
var providers_1 = require("../../../providers");
|
|
24
|
+
var utilities_1 = require("../../../utilities");
|
|
25
|
+
var hooks_1 = require("../../../hooks");
|
|
26
|
+
var CSS = {
|
|
27
|
+
OverlayBadge: function (_a) {
|
|
28
|
+
var _b;
|
|
29
|
+
var grid = _a.grid;
|
|
30
|
+
var gridProperties = {};
|
|
31
|
+
if ((grid === null || grid === void 0 ? void 0 : grid.length) && ((_b = grid[0]) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
32
|
+
var gridTemplateAreas = grid.map(function (row) { return "\"".concat(row.join(' '), "\""); }).join(' ');
|
|
33
|
+
var columns = grid[0].length;
|
|
34
|
+
gridProperties = {
|
|
35
|
+
gridTemplateColumns: "repeat(".concat(columns, ", 1fr)"),
|
|
36
|
+
gridTemplateAreas: gridTemplateAreas,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return (0, react_1.css)({
|
|
40
|
+
position: 'relative',
|
|
41
|
+
'& .ss__overlay-badge__grid-wrapper': __assign({ display: 'grid', position: 'absolute', top: 0, right: 0, bottom: 0, left: 0 }, gridProperties),
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
BadgePositioning: function (_a) {
|
|
45
|
+
var index = _a.index, section = _a.section, tag = _a.tag;
|
|
46
|
+
return (0, react_1.css)({
|
|
47
|
+
position: 'absolute',
|
|
48
|
+
display: 'flex',
|
|
49
|
+
flexDirection: 'column',
|
|
50
|
+
alignItems: section == 'right' ? 'flex-end' : 'flex-start',
|
|
51
|
+
right: section == 'right' ? 0 : undefined,
|
|
52
|
+
gap: '0.5em',
|
|
53
|
+
gridArea: tag,
|
|
54
|
+
boxSizing: 'border-box',
|
|
55
|
+
zIndex: Math.max(100 - index, 1),
|
|
56
|
+
width: '100%',
|
|
57
|
+
height: '100%',
|
|
58
|
+
});
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
exports.OverlayBadge = (0, mobx_react_lite_1.observer)(function (properties) {
|
|
62
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
63
|
+
var globalTheme = (0, providers_1.useTheme)();
|
|
64
|
+
var props = __assign(__assign(__assign({}, (_a = globalTheme === null || globalTheme === void 0 ? void 0 : globalTheme.components) === null || _a === void 0 ? void 0 : _a.overlayBadge), properties), (_c = (_b = properties.theme) === null || _b === void 0 ? void 0 : _b.components) === null || _c === void 0 ? void 0 : _c.overlayBadge);
|
|
65
|
+
var result = props.result, children = props.children, controller = props.controller, renderEmpty = props.renderEmpty, disableStyles = props.disableStyles, className = props.className, style = props.style;
|
|
66
|
+
var styling = {};
|
|
67
|
+
if (!children) {
|
|
68
|
+
(_d = controller === null || controller === void 0 ? void 0 : controller.log) === null || _d === void 0 ? void 0 : _d.warn('OverlayBadge component must have children');
|
|
69
|
+
return (0, react_1.jsx)(preact_1.Fragment, null);
|
|
70
|
+
}
|
|
71
|
+
var limit = 1;
|
|
72
|
+
var meta = (_e = controller === null || controller === void 0 ? void 0 : controller.store) === null || _e === void 0 ? void 0 : _e.meta;
|
|
73
|
+
var group = 'overlay';
|
|
74
|
+
var grid = (_h = (_g = (_f = meta === null || meta === void 0 ? void 0 : meta.badges) === null || _f === void 0 ? void 0 : _f.groups) === null || _g === void 0 ? void 0 : _g[group]) === null || _h === void 0 ? void 0 : _h.grid;
|
|
75
|
+
var badgeComponentMap = __assign(__assign({}, utilities_1.defaultBadgeComponentMap), props.componentMap);
|
|
76
|
+
var sections = (_l = (_k = (_j = meta === null || meta === void 0 ? void 0 : meta.badges) === null || _j === void 0 ? void 0 : _j.groups) === null || _k === void 0 ? void 0 : _k[group]) === null || _l === void 0 ? void 0 : _l.sections;
|
|
77
|
+
// build locations and filter out the locations that have no badges in them to prevent rendering
|
|
78
|
+
var locations = sections === null || sections === void 0 ? void 0 : sections.map(function (section) {
|
|
79
|
+
var _a, _b;
|
|
80
|
+
var sectionSlots = (_b = (_a = meta === null || meta === void 0 ? void 0 : meta.data) === null || _a === void 0 ? void 0 : _a.badges) === null || _b === void 0 ? void 0 : _b.locations[section];
|
|
81
|
+
var slots = sectionSlots === null || sectionSlots === void 0 ? void 0 : sectionSlots.map(function (slot) {
|
|
82
|
+
var _a;
|
|
83
|
+
return ({
|
|
84
|
+
tag: slot.tag,
|
|
85
|
+
name: slot.name,
|
|
86
|
+
badges: (_a = result === null || result === void 0 ? void 0 : result.badges) === null || _a === void 0 ? void 0 : _a.atLocation("".concat(section, "/").concat(slot.tag)).slice(0, limit),
|
|
87
|
+
});
|
|
88
|
+
}).filter(function (slot) { return slot.badges.length; });
|
|
89
|
+
return {
|
|
90
|
+
section: section,
|
|
91
|
+
slots: slots,
|
|
92
|
+
};
|
|
93
|
+
}).filter(function (location) { var _a; return (_a = location.slots) === null || _a === void 0 ? void 0 : _a.length; });
|
|
94
|
+
if (!disableStyles) {
|
|
95
|
+
styling.css = [CSS.OverlayBadge(__assign(__assign({}, props), { grid: grid })), style];
|
|
96
|
+
}
|
|
97
|
+
else if (style) {
|
|
98
|
+
styling.css = [style];
|
|
99
|
+
}
|
|
100
|
+
if (renderEmpty || (locations === null || locations === void 0 ? void 0 : locations.length)) {
|
|
101
|
+
return ((0, react_1.jsx)(providers_1.CacheProvider, null,
|
|
102
|
+
(0, react_1.jsx)("div", __assign({}, styling, { className: (0, classnames_1.default)('ss__overlay-badge', className) }),
|
|
103
|
+
(0, react_1.jsx)("div", { className: "ss__overlay-badge__grid-wrapper" }, locations.map(function (location, index) {
|
|
104
|
+
var _a;
|
|
105
|
+
return (_a = location.slots) === null || _a === void 0 ? void 0 : _a.map(function (slot) {
|
|
106
|
+
return ((0, react_1.jsx)("div", { className: (0, classnames_1.default)('ss__overlay-badge__grid-wrapper__slot', "ss__overlay-badge__grid-wrapper__slot--".concat(slot.tag)), css: [CSS.BadgePositioning({ tag: slot.tag, section: location.section, index: index })] }, slot.badges.map(function (badge) {
|
|
107
|
+
var BadgeComponent = (0, hooks_1.useComponent)(badgeComponentMap, badge.component);
|
|
108
|
+
if (!BadgeComponent) {
|
|
109
|
+
return (0, react_1.jsx)(preact_1.Fragment, null);
|
|
110
|
+
}
|
|
111
|
+
return (0, react_1.jsx)(BadgeComponent, __assign({}, badge, badge.parameters));
|
|
112
|
+
})));
|
|
113
|
+
});
|
|
114
|
+
})),
|
|
115
|
+
children)));
|
|
116
|
+
}
|
|
117
|
+
return (0, react_1.jsx)(preact_1.Fragment, null, children);
|
|
118
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/OverlayBadge/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./OverlayBadge"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/Result/Result.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../../../../src/components/Molecules/Result/Result.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAsB,MAAM,gBAAgB,CAAC;AAGhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACxH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AA4D7D,eAAO,MAAM,MAAM,eAAyB,WAAW,KAAG,WAuJxD,CAAC;AAQH,UAAU,kBAAkB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc;IAClD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;IAClE,UAAU,CAAC,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;CAClF"}
|