@commonsku/styles 1.17.23 → 1.17.25
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/index.cjs +220 -78
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +73 -586
- package/dist/index.mjs +221 -80
- package/dist/index.mjs.map +1 -1
- package/dist/styles/Select/AsyncSelect.d.ts +9 -0
- package/dist/styles/Select/AsyncSelect.d.ts.map +1 -0
- package/dist/styles/Select/CreatableSelect.d.ts +9 -0
- package/dist/styles/Select/CreatableSelect.d.ts.map +1 -0
- package/dist/styles/Select/PanelledSelect.d.ts +18 -0
- package/dist/styles/Select/PanelledSelect.d.ts.map +1 -0
- package/dist/styles/Select/Select.d.ts +9 -0
- package/dist/styles/Select/Select.d.ts.map +1 -0
- package/dist/styles/Select/index.d.ts +5 -0
- package/dist/styles/Select/index.d.ts.map +1 -0
- package/dist/styles/Select/types.d.ts +62 -0
- package/dist/styles/Select/types.d.ts.map +1 -0
- package/dist/styles/Select/utils.d.ts +32 -0
- package/dist/styles/Select/utils.d.ts.map +1 -0
- package/dist/styles/icons/CircleProgressIcon.d.ts +6 -5
- package/dist/styles/icons/CircleProgressIcon.d.ts.map +1 -1
- package/dist/styles/index.d.ts +1 -0
- package/dist/styles/index.d.ts.map +1 -1
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/styles/Select.d.ts +0 -595
- package/dist/styles/Select.d.ts.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -5,8 +5,8 @@ var styled = require('styled-components');
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var reactDropzone = require('react-dropzone');
|
|
7
7
|
var BaseSelect = require('react-select');
|
|
8
|
-
var BaseCreatableSelect = require('react-select/creatable');
|
|
9
8
|
var BaseAsyncSelect = require('react-select/async');
|
|
9
|
+
var BaseCreatableSelect = require('react-select/creatable');
|
|
10
10
|
var reactBeautifulDnd = require('react-beautiful-dnd');
|
|
11
11
|
var ReactDOM = require('react-dom');
|
|
12
12
|
var dateFns = require('date-fns');
|
|
@@ -41,8 +41,8 @@ var ___default = /*#__PURE__*/_interopDefaultCompat(_);
|
|
|
41
41
|
var styled__default = /*#__PURE__*/_interopDefaultCompat(styled);
|
|
42
42
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
43
43
|
var BaseSelect__default = /*#__PURE__*/_interopDefaultCompat(BaseSelect);
|
|
44
|
-
var BaseCreatableSelect__default = /*#__PURE__*/_interopDefaultCompat(BaseCreatableSelect);
|
|
45
44
|
var BaseAsyncSelect__default = /*#__PURE__*/_interopDefaultCompat(BaseAsyncSelect);
|
|
45
|
+
var BaseCreatableSelect__default = /*#__PURE__*/_interopDefaultCompat(BaseCreatableSelect);
|
|
46
46
|
var ReactDOM__default = /*#__PURE__*/_interopDefaultCompat(ReactDOM);
|
|
47
47
|
var ReactDatePicker__default = /*#__PURE__*/_interopDefaultCompat(ReactDatePicker);
|
|
48
48
|
var require$$0__namespace = /*#__PURE__*/_interopNamespaceCompat(require$$0);
|
|
@@ -1452,58 +1452,86 @@ var Theme = function (_a) {
|
|
|
1452
1452
|
children));
|
|
1453
1453
|
};
|
|
1454
1454
|
|
|
1455
|
+
var iconSizes$9 = {
|
|
1456
|
+
tiny: {
|
|
1457
|
+
width: 32,
|
|
1458
|
+
height: 32,
|
|
1459
|
+
viewBox: "0 0 32 32",
|
|
1460
|
+
fontSize: ".6em",
|
|
1461
|
+
defaultStrokeWidth: 3,
|
|
1462
|
+
},
|
|
1463
|
+
small: {
|
|
1464
|
+
width: 40,
|
|
1465
|
+
height: 40,
|
|
1466
|
+
viewBox: "0 0 40 40",
|
|
1467
|
+
fontSize: ".6em",
|
|
1468
|
+
defaultStrokeWidth: 3,
|
|
1469
|
+
},
|
|
1470
|
+
medium: {
|
|
1471
|
+
width: 48,
|
|
1472
|
+
height: 48,
|
|
1473
|
+
viewBox: "0 0 48 48",
|
|
1474
|
+
fontSize: ".8em",
|
|
1475
|
+
defaultStrokeWidth: 5,
|
|
1476
|
+
},
|
|
1477
|
+
large: {
|
|
1478
|
+
width: 72,
|
|
1479
|
+
height: 72,
|
|
1480
|
+
viewBox: "0 0 72 72",
|
|
1481
|
+
fontSize: "1em",
|
|
1482
|
+
defaultStrokeWidth: 5,
|
|
1483
|
+
},
|
|
1484
|
+
huge: {
|
|
1485
|
+
width: 96,
|
|
1486
|
+
height: 96,
|
|
1487
|
+
viewBox: "0 0 96 96",
|
|
1488
|
+
fontSize: "1em",
|
|
1489
|
+
defaultStrokeWidth: 5,
|
|
1490
|
+
},
|
|
1491
|
+
default: {
|
|
1492
|
+
height: 48,
|
|
1493
|
+
width: 48,
|
|
1494
|
+
viewBox: "0 0 48 48",
|
|
1495
|
+
fontSize: ".8em",
|
|
1496
|
+
defaultStrokeWidth: 5,
|
|
1497
|
+
},
|
|
1498
|
+
};
|
|
1455
1499
|
function CircleProgressIcon(_a) {
|
|
1456
|
-
var
|
|
1457
|
-
var iconSizes =
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
viewBox: "0 0 32 32",
|
|
1462
|
-
},
|
|
1463
|
-
small: {
|
|
1464
|
-
width: 40,
|
|
1465
|
-
height: 40,
|
|
1466
|
-
viewBox: "0 0 40 40",
|
|
1467
|
-
},
|
|
1468
|
-
medium: {
|
|
1469
|
-
width: 48,
|
|
1470
|
-
height: 48,
|
|
1471
|
-
viewBox: "0 0 48 48",
|
|
1472
|
-
},
|
|
1473
|
-
large: {
|
|
1474
|
-
width: 72,
|
|
1475
|
-
height: 72,
|
|
1476
|
-
viewBox: "0 0 72 72",
|
|
1477
|
-
},
|
|
1478
|
-
huge: {
|
|
1479
|
-
width: 96,
|
|
1480
|
-
height: 96,
|
|
1481
|
-
viewBox: "0 0 96 96",
|
|
1482
|
-
},
|
|
1483
|
-
default: {
|
|
1484
|
-
height: 48,
|
|
1485
|
-
width: 48,
|
|
1486
|
-
viewBox: "0 0 48 48",
|
|
1487
|
-
},
|
|
1488
|
-
};
|
|
1489
|
-
sqSize = iconSizes[size]["width"];
|
|
1490
|
-
strokeWidth = size === "tiny" || size === "small" ? 3 : 5;
|
|
1491
|
-
var radius = (sqSize - strokeWidth) / 2;
|
|
1492
|
-
// const viewBox = `0 0 ${sqSize} ${sqSize}`;
|
|
1500
|
+
var strokeWidth = _a.strokeWidth, _b = _a.percentage, percentage = _b === void 0 ? 0 : _b, _c = _a.strokeColor, strokeColor = _c === void 0 ? teal.main : _c, _d = _a.textColor, textColor = _d === void 0 ? teal.main : _d, _e = _a.text, text = _e === void 0 ? "" : _e, _f = _a.textStyle, textStyle = _f === void 0 ? {} : _f, _g = _a.showCheckMarkOnComplete, showCheckMarkOnComplete = _g === void 0 ? false : _g, _h = _a.size, size = _h === void 0 ? "medium" : _h, _j = _a.altText, altText = _j === void 0 ? "Progress level" : _j, props = __rest(_a, ["strokeWidth", "percentage", "strokeColor", "textColor", "text", "textStyle", "showCheckMarkOnComplete", "size", "altText"]);
|
|
1501
|
+
var _k = iconSizes$9[size], width = _k.width, defaultStrokeWidth = _k.defaultStrokeWidth, fontSize = _k.fontSize; _k.viewBox;
|
|
1502
|
+
strokeWidth = strokeWidth || defaultStrokeWidth;
|
|
1503
|
+
var squareSize = width;
|
|
1504
|
+
var radius = (squareSize - strokeWidth) / 2;
|
|
1493
1505
|
var dashArray = radius * Math.PI * 2;
|
|
1494
|
-
var dashOffset = dashArray - dashArray * percentage / 100;
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1506
|
+
var dashOffset = dashArray - (dashArray * percentage) / 100;
|
|
1507
|
+
var isComplete = percentage === 100;
|
|
1508
|
+
var renderInnerText = React.useCallback(function () { return (React__default.default.createElement("text", { className: "circle-text", x: "50%", y: "50%", dy: ".3em", textAnchor: "middle", style: __assign({ fontSize: fontSize, fontWeight: "bold", fill: textColor }, textStyle) }, text || "".concat(percentage, "%"))); }, [fontSize, textColor, textStyle, text, percentage]);
|
|
1509
|
+
var renderCheckMark = React.useCallback(function () {
|
|
1510
|
+
var preferredViewBox = 40;
|
|
1511
|
+
var scale = squareSize / preferredViewBox;
|
|
1512
|
+
var scaledPath = [
|
|
1513
|
+
{ x: 12.0006 * scale, y: 21.599 * scale },
|
|
1514
|
+
{ x: 17.5629 * scale, y: 27.1617 * scale },
|
|
1515
|
+
{ x: 29.1621 * scale, y: 15.5625 * scale },
|
|
1516
|
+
]
|
|
1517
|
+
.map(function (p) { return "".concat(p.x, ",").concat(p.y); })
|
|
1518
|
+
.join(" L");
|
|
1519
|
+
return (React__default.default.createElement("path", { d: "M".concat(scaledPath), stroke: strokeColor, strokeWidth: "".concat(strokeWidth, "px"), fill: "none" }));
|
|
1520
|
+
}, [squareSize, strokeColor, strokeWidth]);
|
|
1521
|
+
return (React__default.default.createElement(SVG$1, __assign({ size: size, iconSizes: iconSizes$9, "aria-labelledby": "CircleProgressIcon" }, props),
|
|
1522
|
+
React__default.default.createElement("title", { id: "CircleProgressIcon" }, altText || (text ? "".concat(text, " stage") : "".concat(percentage, "% completed"))),
|
|
1523
|
+
React__default.default.createElement("circle", { className: "circle-background", cx: squareSize / 2, cy: squareSize / 2, r: radius, strokeWidth: "".concat(strokeWidth, "px"), style: { fill: "none", stroke: colors$1.disabledButtonBorder } }),
|
|
1524
|
+
React__default.default.createElement("circle", { className: "circle-progress", cx: squareSize / 2, cy: squareSize / 2, r: radius, strokeWidth: "".concat(strokeWidth, "px"), transform: "rotate(-90 ".concat(squareSize / 2, " ").concat(squareSize / 2, ")"), style: {
|
|
1499
1525
|
strokeDasharray: dashArray,
|
|
1500
1526
|
strokeDashoffset: dashOffset,
|
|
1501
|
-
fill:
|
|
1527
|
+
fill: "none",
|
|
1502
1528
|
stroke: strokeColor,
|
|
1503
|
-
strokeLinecap:
|
|
1504
|
-
strokeLinejoin:
|
|
1529
|
+
strokeLinecap: "round",
|
|
1530
|
+
strokeLinejoin: "round",
|
|
1505
1531
|
} }),
|
|
1506
|
-
|
|
1532
|
+
showCheckMarkOnComplete && isComplete
|
|
1533
|
+
? renderCheckMark()
|
|
1534
|
+
: renderInnerText()));
|
|
1507
1535
|
}
|
|
1508
1536
|
|
|
1509
1537
|
var SVG = styled__default.default.svg(templateObject_1$Y || (templateObject_1$Y = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), SharedStyles);
|
|
@@ -4095,20 +4123,24 @@ function skuSelectStyles(props) {
|
|
|
4095
4123
|
valueContainer: function (provided, state) {
|
|
4096
4124
|
return __assign(__assign(__assign({}, provided), { padding: '2px 8px' }), props.valueContainerStyles);
|
|
4097
4125
|
},
|
|
4126
|
+
multiValue: function (provided, state) {
|
|
4127
|
+
return __assign(__assign(__assign({}, provided), { backgroundColor: getThemeColor(props, 'primary10', colors$1.primary10), color: getThemeColor(props, 'textbody', colors$1.textbody), borderRadius: 20, padding: '0.25rem' }), props.multiValueStyles);
|
|
4128
|
+
},
|
|
4098
4129
|
};
|
|
4099
4130
|
}
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
var noMargin = _a.noMargin, menuRelative = _a.menuRelative, inPopup = _a.inPopup, error = _a.error, props = __rest(_a, ["noMargin", "menuRelative", "inPopup", "error"]);
|
|
4106
|
-
var skuSelectTheme = skuSelectThemeByProps(props);
|
|
4131
|
+
function skuSelectThemeByProps(props) {
|
|
4132
|
+
return function (theme) { return (__assign(__assign({}, theme), { borderRadius: 5, colors: __assign(__assign({}, theme.colors), { primary25: getThemeColor(props, 'primary0', colors$1.primary0), primary75: getThemeColor(props, 'primary0', colors$1.primary0), primary50: getThemeColor(props, 'primary10', colors$1.primary10), primary: getThemeColor(props, 'primary', colors$1.primary), neutral20: getThemeColor(props, 'select.border', colors$1.select.border), neutral30: getThemeColor(props, 'select.border', colors$1.select.border), neutral80: getThemeColor(props, 'textbody', colors$1.textbody), neutral90: getThemeColor(props, 'textbody', colors$1.textbody) }) })); };
|
|
4133
|
+
}
|
|
4134
|
+
|
|
4135
|
+
function ForwardedSKUSelect(_a, ref) {
|
|
4136
|
+
var noMargin = _a.noMargin, menuRelative = _a.menuRelative, inPopup = _a.inPopup, error = _a.error, value = _a.value, isMulti = _a.isMulti, props = __rest(_a, ["noMargin", "menuRelative", "inPopup", "error", "value", "isMulti"]);
|
|
4137
|
+
var skuSelectTheme = skuSelectThemeByProps(__assign({ value: value, isMulti: isMulti }, props));
|
|
4107
4138
|
var classNamePrefix = "".concat(error ? 'select-error' : '', " commonsku-styles-select");
|
|
4108
|
-
var selectStyleProps = __assign(__assign({}, props), { noMargin: noMargin, menuRelative: menuRelative, inPopup: inPopup, error: error, classNamePrefix: classNamePrefix, theme: skuSelectTheme });
|
|
4109
|
-
return React__default.default.createElement(BaseSelect__default.default, __assign({
|
|
4110
|
-
}
|
|
4111
|
-
var
|
|
4139
|
+
var selectStyleProps = __assign(__assign({}, props), { value: value, isMulti: isMulti, noMargin: noMargin, menuRelative: menuRelative, inPopup: inPopup, error: error, classNamePrefix: classNamePrefix, theme: skuSelectTheme });
|
|
4140
|
+
return (React__default.default.createElement(BaseSelect__default.default, __assign({ value: value, isMulti: isMulti, ref: ref, classNamePrefix: classNamePrefix, styles: skuSelectStyles(selectStyleProps), theme: skuSelectTheme }, props, (inPopup ? popupStyles : {}))));
|
|
4141
|
+
}
|
|
4142
|
+
var SKUSelect = React__default.default.forwardRef(ForwardedSKUSelect);
|
|
4143
|
+
function ForwardedLabeledSelect(_a, ref) {
|
|
4112
4144
|
var parentStyle = _a.parentStyle, labelStyle = _a.labelStyle, props = __rest(_a, ["parentStyle", "labelStyle"]);
|
|
4113
4145
|
return (React__default.default.createElement("div", { style: parentStyle },
|
|
4114
4146
|
React__default.default.createElement(Label, { htmlFor: props.name, style: labelStyle },
|
|
@@ -4116,39 +4148,46 @@ var LabeledSelect = React__default.default.forwardRef(function (_a, ref) {
|
|
|
4116
4148
|
" ",
|
|
4117
4149
|
props.required && '*'),
|
|
4118
4150
|
React__default.default.createElement(SKUSelect, __assign({}, props, { ref: ref }))));
|
|
4119
|
-
}
|
|
4120
|
-
var
|
|
4121
|
-
|
|
4122
|
-
|
|
4151
|
+
}
|
|
4152
|
+
var LabeledSelect = React__default.default.forwardRef(ForwardedLabeledSelect);
|
|
4153
|
+
|
|
4154
|
+
function ForwardedSKUAsyncSelect(_a, ref) {
|
|
4155
|
+
var noMargin = _a.noMargin, menuRelative = _a.menuRelative, inPopup = _a.inPopup, error = _a.error, value = _a.value, isMulti = _a.isMulti, props = __rest(_a, ["noMargin", "menuRelative", "inPopup", "error", "value", "isMulti"]);
|
|
4156
|
+
var skuSelectTheme = skuSelectThemeByProps(__assign({ value: value, isMulti: isMulti }, props));
|
|
4123
4157
|
var classNamePrefix = "".concat(error ? 'select-error' : '', " commonsku-styles-select");
|
|
4124
|
-
var selectStyleProps = __assign(__assign({}, props), { noMargin: noMargin, menuRelative: menuRelative, inPopup: inPopup, error: error, classNamePrefix: classNamePrefix, theme: skuSelectTheme });
|
|
4125
|
-
return (React__default.default.createElement(
|
|
4126
|
-
}
|
|
4127
|
-
var
|
|
4158
|
+
var selectStyleProps = __assign(__assign({}, props), { value: value, isMulti: isMulti, noMargin: noMargin, menuRelative: menuRelative, inPopup: inPopup, error: error, classNamePrefix: classNamePrefix, theme: skuSelectTheme });
|
|
4159
|
+
return (React__default.default.createElement(BaseAsyncSelect__default.default, __assign({ value: value, isMulti: isMulti, ref: ref, classNamePrefix: classNamePrefix, styles: skuSelectStyles(selectStyleProps), theme: skuSelectTheme }, props, (inPopup ? popupStyles : {}))));
|
|
4160
|
+
}
|
|
4161
|
+
var SKUAsyncSelect = React__default.default.forwardRef(ForwardedSKUAsyncSelect);
|
|
4162
|
+
function ForwardedLabeledAsyncSelect(_a, ref) {
|
|
4128
4163
|
var parentStyle = _a.parentStyle, labelStyle = _a.labelStyle, props = __rest(_a, ["parentStyle", "labelStyle"]);
|
|
4129
4164
|
return (React__default.default.createElement("div", { style: parentStyle },
|
|
4130
4165
|
React__default.default.createElement(Label, { htmlFor: props.name, style: labelStyle },
|
|
4131
4166
|
props.label,
|
|
4132
4167
|
" ",
|
|
4133
4168
|
props.required && '*'),
|
|
4134
|
-
React__default.default.createElement(
|
|
4135
|
-
}
|
|
4136
|
-
var
|
|
4137
|
-
|
|
4138
|
-
|
|
4169
|
+
React__default.default.createElement(SKUAsyncSelect, __assign({}, props, { ref: ref }))));
|
|
4170
|
+
}
|
|
4171
|
+
var LabeledAsyncSelect = React__default.default.forwardRef(ForwardedLabeledAsyncSelect);
|
|
4172
|
+
|
|
4173
|
+
function ForwardedSKUCreatableSelect(_a, ref) {
|
|
4174
|
+
var noMargin = _a.noMargin, menuRelative = _a.menuRelative, inPopup = _a.inPopup, error = _a.error, value = _a.value, isMulti = _a.isMulti, props = __rest(_a, ["noMargin", "menuRelative", "inPopup", "error", "value", "isMulti"]);
|
|
4175
|
+
var skuSelectTheme = skuSelectThemeByProps(__assign({ value: value, isMulti: isMulti }, props));
|
|
4139
4176
|
var classNamePrefix = "".concat(error ? 'select-error' : '', " commonsku-styles-select");
|
|
4140
|
-
var selectStyleProps = __assign(__assign({}, props), { noMargin: noMargin, menuRelative: menuRelative, inPopup: inPopup, error: error, classNamePrefix: classNamePrefix, theme: skuSelectTheme });
|
|
4141
|
-
return (React__default.default.createElement(
|
|
4142
|
-
}
|
|
4143
|
-
var
|
|
4177
|
+
var selectStyleProps = __assign(__assign({}, props), { value: value, isMulti: isMulti, noMargin: noMargin, menuRelative: menuRelative, inPopup: inPopup, error: error, classNamePrefix: classNamePrefix, theme: skuSelectTheme });
|
|
4178
|
+
return (React__default.default.createElement(BaseCreatableSelect__default.default, __assign({ value: value, isMulti: isMulti, ref: ref, classNamePrefix: classNamePrefix, styles: skuSelectStyles(selectStyleProps), theme: skuSelectTheme }, props, (inPopup ? popupStyles : {}))));
|
|
4179
|
+
}
|
|
4180
|
+
var SKUCreatableSelect = React__default.default.forwardRef(ForwardedSKUCreatableSelect);
|
|
4181
|
+
function ForwardedLabeledCreatableSelect(_a, ref) {
|
|
4144
4182
|
var parentStyle = _a.parentStyle, labelStyle = _a.labelStyle, props = __rest(_a, ["parentStyle", "labelStyle"]);
|
|
4145
4183
|
return (React__default.default.createElement("div", { style: parentStyle },
|
|
4146
4184
|
React__default.default.createElement(Label, { htmlFor: props.name, style: labelStyle },
|
|
4147
4185
|
props.label,
|
|
4148
4186
|
" ",
|
|
4149
4187
|
props.required && '*'),
|
|
4150
|
-
React__default.default.createElement(
|
|
4151
|
-
}
|
|
4188
|
+
React__default.default.createElement(SKUCreatableSelect, __assign({}, props, { ref: ref }))));
|
|
4189
|
+
}
|
|
4190
|
+
var LabeledCreatableSelect = React__default.default.forwardRef(ForwardedLabeledCreatableSelect);
|
|
4152
4191
|
|
|
4153
4192
|
var Backdrop = styled__default.default.div(templateObject_1$G || (templateObject_1$G = __makeTemplateObject(["\n position: fixed;\n width: 100%;\n height: 100%;\n background-color: rgba(67, 83, 91, .3);\n z-index: 100;\n transition: all ", "s ease-in-out;\n -moz-transition: all ", "s ease-in-out;\n -webkit-transition: all ", "s ease-in-out;\n opacity: 0.8;\n"], ["\n position: fixed;\n width: 100%;\n height: 100%;\n background-color: rgba(67, 83, 91, .3);\n z-index: 100;\n transition: all ", "s ease-in-out;\n -moz-transition: all ", "s ease-in-out;\n -webkit-transition: all ", "s ease-in-out;\n opacity: 0.8;\n"])), function (p) { return ((p.animationDuration || 300) / 1000); }, function (p) { return ((p.animationDuration || 300) / 1000); }, function (p) { return ((p.animationDuration || 300) / 1000); });
|
|
4154
4193
|
var templateObject_1$G;
|
|
@@ -5635,6 +5674,108 @@ var Dropdown = function (_a) {
|
|
|
5635
5674
|
};
|
|
5636
5675
|
var templateObject_1$p, templateObject_2$b, templateObject_3$6;
|
|
5637
5676
|
|
|
5677
|
+
var menuContainerStyles = {
|
|
5678
|
+
position: 'absolute',
|
|
5679
|
+
width: '100%',
|
|
5680
|
+
};
|
|
5681
|
+
var subMenuContainerStyles = {
|
|
5682
|
+
position: 'absolute',
|
|
5683
|
+
width: 'max-content',
|
|
5684
|
+
};
|
|
5685
|
+
var menuStyles = {
|
|
5686
|
+
position: 'relative',
|
|
5687
|
+
marginBottom: '0px !important',
|
|
5688
|
+
};
|
|
5689
|
+
var subMenuStyles = {
|
|
5690
|
+
position: 'relative',
|
|
5691
|
+
borderTop: '1px solid',
|
|
5692
|
+
borderTopRightRadius: '5px',
|
|
5693
|
+
marginTop: 0,
|
|
5694
|
+
};
|
|
5695
|
+
var ParentOption = function (_a) {
|
|
5696
|
+
var setFocusedOption = _a.setFocusedOption, OptionComponent = _a.OptionComponent, props = __rest(_a, ["setFocusedOption", "OptionComponent"]);
|
|
5697
|
+
var option = props.data, isFocused = props.isFocused;
|
|
5698
|
+
React.useEffect(function () {
|
|
5699
|
+
if (isFocused) {
|
|
5700
|
+
setFocusedOption(option);
|
|
5701
|
+
}
|
|
5702
|
+
}, [option, isFocused, setFocusedOption]);
|
|
5703
|
+
if (OptionComponent != null) {
|
|
5704
|
+
return (React__default.default.createElement(OptionComponent, __assign({}, props)));
|
|
5705
|
+
}
|
|
5706
|
+
return (React__default.default.createElement(BaseSelect.components.Option, __assign({}, props)));
|
|
5707
|
+
};
|
|
5708
|
+
var BasePanelledSelect = function (_a, ref) {
|
|
5709
|
+
var value = _a.value, options = _a.options, onChange = _a.onChange, subMenuProps = _a.subMenuProps, components = _a.components, closeMenuOnSelect = _a.closeMenuOnSelect, _b = _a.hideSelectedOptions, hideSelectedOptions = _b === void 0 ? false : _b, props = __rest(_a, ["value", "options", "onChange", "subMenuProps", "components", "closeMenuOnSelect", "hideSelectedOptions"]);
|
|
5710
|
+
var error = props.error, isMulti = props.isMulti;
|
|
5711
|
+
var _c = React.useState(false), isOpen = _c[0], setOpen = _c[1];
|
|
5712
|
+
var _d = React.useState(undefined), focusedOption = _d[0], setFocusedOption = _d[1];
|
|
5713
|
+
var _e = React.useState(0), menuHeight = _e[0], setMenuHeight = _e[1];
|
|
5714
|
+
var _f = React.useState(0), controlHeight = _f[0], setControlHeight = _f[1];
|
|
5715
|
+
var menuRef = React.useRef(null);
|
|
5716
|
+
var controlRef = React.useRef(null);
|
|
5717
|
+
var windowSize = useWindowSize();
|
|
5718
|
+
React.useLayoutEffect(function () {
|
|
5719
|
+
if (menuRef.current != null) {
|
|
5720
|
+
setMenuHeight(menuRef.current.offsetHeight);
|
|
5721
|
+
}
|
|
5722
|
+
if (controlRef.current != null) {
|
|
5723
|
+
setControlHeight(controlRef.current.offsetHeight);
|
|
5724
|
+
}
|
|
5725
|
+
}, [windowSize, isOpen, value]);
|
|
5726
|
+
var hasSubOptions = React.useCallback(function (option) {
|
|
5727
|
+
return option != null && option.subOptions != null && option.subOptions.length > 0;
|
|
5728
|
+
}, []);
|
|
5729
|
+
var currentSubOptions = React.useMemo(function () {
|
|
5730
|
+
if (focusedOption != null && hasSubOptions(focusedOption)) {
|
|
5731
|
+
return focusedOption.subOptions;
|
|
5732
|
+
}
|
|
5733
|
+
return undefined;
|
|
5734
|
+
}, [hasSubOptions, focusedOption]);
|
|
5735
|
+
var onValueChange = function (newValue, actionMeta) {
|
|
5736
|
+
if (onChange == null)
|
|
5737
|
+
return;
|
|
5738
|
+
if (newValue == null) {
|
|
5739
|
+
onChange(newValue, actionMeta);
|
|
5740
|
+
}
|
|
5741
|
+
if (isMulti) {
|
|
5742
|
+
var multiValue = newValue;
|
|
5743
|
+
var singleValues = multiValue.filter(function (opt) { return !hasSubOptions(opt); });
|
|
5744
|
+
onChange(singleValues, actionMeta);
|
|
5745
|
+
return;
|
|
5746
|
+
}
|
|
5747
|
+
if (!hasSubOptions(newValue)) {
|
|
5748
|
+
onChange(newValue, actionMeta);
|
|
5749
|
+
if (closeMenuOnSelect !== null && closeMenuOnSelect !== void 0 ? closeMenuOnSelect : !isMulti) {
|
|
5750
|
+
setOpen(false);
|
|
5751
|
+
}
|
|
5752
|
+
}
|
|
5753
|
+
};
|
|
5754
|
+
var onSubValueChange = function (newSubValue, actionMeta) {
|
|
5755
|
+
if (onChange != null) {
|
|
5756
|
+
onChange(newSubValue, actionMeta);
|
|
5757
|
+
}
|
|
5758
|
+
if (closeMenuOnSelect !== null && closeMenuOnSelect !== void 0 ? closeMenuOnSelect : !isMulti) {
|
|
5759
|
+
setOpen(false);
|
|
5760
|
+
}
|
|
5761
|
+
};
|
|
5762
|
+
var renderParentOption = React.useCallback(function (props) { return (React__default.default.createElement(ParentOption, __assign({ setFocusedOption: setFocusedOption, OptionComponent: components === null || components === void 0 ? void 0 : components.Option }, props))); }, [setFocusedOption, components === null || components === void 0 ? void 0 : components.Option]);
|
|
5763
|
+
var renderMenu = React.useCallback(function (props) { return (React__default.default.createElement("div", { style: __assign(__assign({}, menuContainerStyles), { top: controlHeight }), ref: menuRef },
|
|
5764
|
+
React__default.default.createElement(BaseSelect.components.Menu, __assign({}, props)))); }, [controlHeight]);
|
|
5765
|
+
var renderSubMenu = React.useCallback(function (props) { return (React__default.default.createElement("div", { style: subMenuContainerStyles },
|
|
5766
|
+
React__default.default.createElement(BaseSelect.components.Menu, __assign({}, props)))); }, []);
|
|
5767
|
+
var renderControl = React.useCallback(function (props) { return (React__default.default.createElement("div", { ref: controlRef },
|
|
5768
|
+
React__default.default.createElement(BaseSelect.components.Control, __assign({}, props)))); }, []);
|
|
5769
|
+
return (React__default.default.createElement("div", null,
|
|
5770
|
+
React__default.default.createElement(Row, null,
|
|
5771
|
+
React__default.default.createElement(SKUSelect, __assign({ value: value, options: options, onMenuOpen: function () { return setOpen(true); }, onMenuClose: function () { return setOpen(false); }, menuIsOpen: isOpen, ref: ref, components: __assign(__assign({}, components), { Option: renderParentOption, Menu: renderMenu, Control: renderControl }), onChange: onValueChange, menuStyles: menuStyles, hideSelectedOptions: hideSelectedOptions, closeMenuOnSelect: false }, props)),
|
|
5772
|
+
currentSubOptions != null &&
|
|
5773
|
+
React__default.default.createElement(SKUSelect, __assign({ value: value, options: currentSubOptions, menuIsOpen: isOpen, onChange: onSubValueChange, menuStyles: __assign(__assign({}, subMenuStyles), { height: menuHeight, top: controlHeight, borderTopColor: error
|
|
5774
|
+
? getThemeColor(props, 'select.error.border', colors$1.select.error.border)
|
|
5775
|
+
: getThemeColor(props, 'select.active.border', colors$1.select.active.border) }), hideSelectedOptions: hideSelectedOptions, closeMenuOnSelect: false, isMulti: isMulti }, subMenuProps, { components: __assign(__assign({ Control: function () { return null; } }, (subMenuProps === null || subMenuProps === void 0 ? void 0 : subMenuProps.components)), { Menu: renderSubMenu }) })))));
|
|
5776
|
+
};
|
|
5777
|
+
var PanelledSelect = React.forwardRef(BasePanelledSelect);
|
|
5778
|
+
|
|
5638
5779
|
var Badge = styled__default.default.span(templateObject_1$o || (templateObject_1$o = __makeTemplateObject(["\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n background-color: ", ";\n color: ", ";\n border-radius: 10px;\n ", "\n"], ["\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n background-color: ", ";\n color: ", ";\n border-radius: 10px;\n ", "\n"])), function (p) { return p.color === 'cta' ? colors$1.cta : p.color === 'grey' ? colors$1.primary0 : colors$1.primary; }, function (p) { return p.color === 'grey' ? colors$1.primary100 : colors$1.white; }, SharedStyles);
|
|
5639
5780
|
var templateObject_1$o;
|
|
5640
5781
|
|
|
@@ -8756,6 +8897,7 @@ exports.Padding = Padding;
|
|
|
8756
8897
|
exports.Page = Page;
|
|
8757
8898
|
exports.PanelContact = PanelContact;
|
|
8758
8899
|
exports.PanelTileContact = PanelTileContact;
|
|
8900
|
+
exports.PanelledSelect = PanelledSelect;
|
|
8759
8901
|
exports.PendingApprovalIcon = PendingApprovalIcon;
|
|
8760
8902
|
exports.PercentIcon = PercentIcon;
|
|
8761
8903
|
exports.PinIcon = PinIcon;
|