@mvf/external-components 3.36.2 → 3.37.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/Experiments/CRO-712/Atoms/ProgressBar/IComponentProps.d.ts +8 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/IComponentProps.js +3 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/IComponentProps.js.map +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.d.ts +7 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.js +42 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.js.map +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.test.d.ts +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.test.js +28 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.test.js.map +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.d.ts +5 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.js +28 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.js.map +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.test.d.ts +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.test.js +40 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.test.js.map +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarStory.d.ts +8 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarStory.js +45 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarStory.js.map +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/defaultProps.d.ts +4 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/defaultProps.js +7 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/defaultProps.js.map +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/index.d.ts +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/index.js +9 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/index.js.map +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.d.ts +7 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.js +51 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.js.map +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.test.d.ts +1 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.test.js +18 -0
- package/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.test.js.map +1 -0
- package/Interfaces/Atoms/ProgressBar/ProgressBar.js +3 -0
- package/Interfaces/Atoms/ProgressBar/ProgressBar.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IComponentProps.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/IComponentProps.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FunctionComponentWithDefaultProps } from '../../../../Helpers/React';
|
|
2
|
+
import defaultProps from './defaultProps';
|
|
3
|
+
import IComponentProps from './IComponentProps';
|
|
4
|
+
import WithExperimentName from '../../../../@types/WithExperimentName';
|
|
5
|
+
export type ProgressBarType = FunctionComponentWithDefaultProps<WithExperimentName<IComponentProps>, typeof defaultProps>;
|
|
6
|
+
declare const ProgressBar: ProgressBarType;
|
|
7
|
+
export default ProgressBar;
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
18
|
+
/** @jsxImportSource @emotion/react */
|
|
19
|
+
var Box_1 = __importDefault(require("@mui/material/Box"));
|
|
20
|
+
var LinearProgress_1 = __importDefault(require("@mui/material/LinearProgress"));
|
|
21
|
+
var Typography_1 = __importDefault(require("@mui/material/Typography"));
|
|
22
|
+
var defaultProps_1 = __importDefault(require("./defaultProps"));
|
|
23
|
+
var react_1 = require("@emotion/react");
|
|
24
|
+
var ProgressBarHelpers_1 = require("./ProgressBarHelpers");
|
|
25
|
+
var makeProgressBarStyling_1 = __importDefault(require("./makeProgressBarStyling"));
|
|
26
|
+
var ProgressBar = function (_a) {
|
|
27
|
+
var id = _a.id, progress = _a.progress, text = _a.text, testId = _a.testId, totalSteps = _a.totalSteps;
|
|
28
|
+
var theme = (0, react_1.useTheme)();
|
|
29
|
+
var displayProgress = totalSteps
|
|
30
|
+
? Math.min(100, progress + Math.round(100 / totalSteps))
|
|
31
|
+
: progress;
|
|
32
|
+
var useLightText = (0, ProgressBarHelpers_1.shouldUseLightText)({
|
|
33
|
+
progressBarFilledColor: theme.mvf.palette.component.progressBarFilledColor,
|
|
34
|
+
progressBarUnfilledColor: theme.mvf.palette.component.progressBarUnfilledColor,
|
|
35
|
+
progress: displayProgress,
|
|
36
|
+
});
|
|
37
|
+
var styles = (0, makeProgressBarStyling_1.default)(theme, useLightText, Boolean(totalSteps));
|
|
38
|
+
return ((0, jsx_runtime_1.jsxs)(Box_1.default, __assign({ css: styles.container, "data-testid": testId }, { children: [(0, jsx_runtime_1.jsxs)(Typography_1.default, __assign({ css: styles.text }, { children: [text, " ", displayProgress, "%"] })), (0, jsx_runtime_1.jsx)(LinearProgress_1.default, { variant: "determinate", css: styles.progressBar, id: id, value: displayProgress })] })));
|
|
39
|
+
};
|
|
40
|
+
ProgressBar.defaultProps = defaultProps_1.default;
|
|
41
|
+
exports.default = ProgressBar;
|
|
42
|
+
//# sourceMappingURL=ProgressBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,0DAAoC;AACpC,gFAA0D;AAC1D,wEAAkD;AAElD,gEAA0C;AAE1C,wCAA0C;AAC1C,2DAA0D;AAE1D,oFAA8D;AAQ9D,IAAM,WAAW,GAAoB,UAAC,EAMrC;QALC,EAAE,QAAA,EACF,QAAQ,cAAA,EACR,IAAI,UAAA,EACJ,MAAM,YAAA,EACN,UAAU,gBAAA;IAEV,IAAM,KAAK,GAAW,IAAA,gBAAQ,GAAE,CAAC;IAEjC,IAAM,eAAe,GAAG,UAAU;QAChC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;QACxD,CAAC,CAAC,QAAQ,CAAC;IAEb,IAAM,YAAY,GAAG,IAAA,uCAAkB,EAAC;QACtC,sBAAsB,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAsB;QAC1E,wBAAwB,EACtB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,wBAAwB;QACtD,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IAEH,IAAM,MAAM,GAAG,IAAA,gCAAsB,EACnC,KAAK,EACL,YAAY,EACZ,OAAO,CAAC,UAAU,CAAC,CACpB,CAAC;IACF,OAAO,CACL,wBAAC,aAAG,aAAC,GAAG,EAAE,MAAM,CAAC,SAAS,iBAAe,MAAM,iBAC7C,wBAAC,oBAAU,aAAC,GAAG,EAAE,MAAM,CAAC,IAAI,iBACzB,IAAI,OAAG,eAAe,UACZ,EACb,uBAAC,wBAAc,IACb,OAAO,EAAC,aAAa,EACrB,GAAG,EAAE,MAAM,CAAC,WAAW,EACvB,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,eAAe,GACtB,KACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,WAAW,CAAC,YAAY,GAAG,sBAAY,CAAC;AAExC,kBAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
7
|
+
/** @jsxImportSource @emotion/react */
|
|
8
|
+
var renderWithProviders_1 = __importDefault(require("../../../../Helpers/React/renderWithProviders"));
|
|
9
|
+
var ProgressBar_1 = __importDefault(require("./ProgressBar"));
|
|
10
|
+
describe('<ProgressBar /> (CRO-712 head-start)', function () {
|
|
11
|
+
it('should display progress bar', function () {
|
|
12
|
+
var getByTestId = (0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(ProgressBar_1.default, { id: "test-id", testId: "test-id", progress: 50, experimentName: "CRO-712" })).getByTestId;
|
|
13
|
+
expect(getByTestId('test-id')).toBeTruthy();
|
|
14
|
+
});
|
|
15
|
+
it('shifts progress up by one step when totalSteps is provided', function () {
|
|
16
|
+
var getByText = (0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(ProgressBar_1.default, { id: "test-id", progress: 0, totalSteps: 9, text: "Progress:", experimentName: "CRO-712" })).getByText;
|
|
17
|
+
expect(getByText(/11%/)).toBeTruthy();
|
|
18
|
+
});
|
|
19
|
+
it('clamps the shifted progress at 100%', function () {
|
|
20
|
+
var getByText = (0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(ProgressBar_1.default, { id: "test-id", progress: 95, totalSteps: 9, text: "Progress:", experimentName: "CRO-712" })).getByText;
|
|
21
|
+
expect(getByText(/100%/)).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
it('falls back to the plain progress value when totalSteps is not provided', function () {
|
|
24
|
+
var getByText = (0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(ProgressBar_1.default, { id: "test-id", progress: 50, text: "Progress:", experimentName: "CRO-712" })).getByText;
|
|
25
|
+
expect(getByText(/50%/)).toBeTruthy();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=ProgressBar.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBar.test.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.test.tsx"],"names":[],"mappings":";;;;;;AAAA,sCAAsC;AACtC,sGAAgF;AAChF,8DAAwC;AAExC,QAAQ,CAAC,sCAAsC,EAAE;IAC/C,EAAE,CAAC,6BAA6B,EAAE;QACxB,IAAA,WAAW,GAAK,IAAA,6BAAmB,EACzC,uBAAC,qBAAW,IACV,EAAE,EAAC,SAAS,EACZ,MAAM,EAAC,SAAS,EAChB,QAAQ,EAAE,EAAE,EACZ,cAAc,EAAC,SAAS,GACxB,CACH,YAPkB,CAOjB;QACF,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE;QACvD,IAAA,SAAS,GAAK,IAAA,6BAAmB,EACvC,uBAAC,qBAAW,IACV,EAAE,EAAC,SAAS,EACZ,QAAQ,EAAE,CAAC,EACX,UAAU,EAAE,CAAC,EACb,IAAI,EAAC,WAAW,EAChB,cAAc,EAAC,SAAS,GACxB,CACH,UARgB,CAQf;QACF,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE;QAChC,IAAA,SAAS,GAAK,IAAA,6BAAmB,EACvC,uBAAC,qBAAW,IACV,EAAE,EAAC,SAAS,EACZ,QAAQ,EAAE,EAAE,EACZ,UAAU,EAAE,CAAC,EACb,IAAI,EAAC,WAAW,EAChB,cAAc,EAAC,SAAS,GACxB,CACH,UARgB,CAQf;QACF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE;QACnE,IAAA,SAAS,GAAK,IAAA,6BAAmB,EACvC,uBAAC,qBAAW,IACV,EAAE,EAAC,SAAS,EACZ,QAAQ,EAAE,EAAE,EACZ,IAAI,EAAC,WAAW,EAChB,cAAc,EAAC,SAAS,GACxB,CACH,UAPgB,CAOf;QACF,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.shouldUseLightText = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* calculateYIQ uses the luma conversion formula to calculate the relative luminescence of a color.
|
|
6
|
+
* see https://en.wikipedia.org/wiki/YIQ
|
|
7
|
+
* @param hexColor: rgb color
|
|
8
|
+
* @returns number: YIQ = (Y)luminance (IQ)chrominance for the RGB colour provided
|
|
9
|
+
*/
|
|
10
|
+
var calculateYIQ = function (hexcolor) {
|
|
11
|
+
var _a, _b, _c;
|
|
12
|
+
var rgb = hexcolor.replace(/[^0-9\,]/g, ''); // remove everything except numbers and commas
|
|
13
|
+
var split = rgb.split(',');
|
|
14
|
+
var r = parseInt((_a = split[0]) !== null && _a !== void 0 ? _a : 0, 16);
|
|
15
|
+
var g = parseInt((_b = split[1]) !== null && _b !== void 0 ? _b : 0, 16);
|
|
16
|
+
var b = parseInt((_c = split[2]) !== null && _c !== void 0 ? _c : 0, 16);
|
|
17
|
+
var yiq = (r * 0.299 + g * 0.587 + b * 0.114) / 1000;
|
|
18
|
+
return yiq;
|
|
19
|
+
};
|
|
20
|
+
var shouldUseLightText = function (_a) {
|
|
21
|
+
var progressBarFilledColor = _a.progressBarFilledColor, progressBarUnfilledColor = _a.progressBarUnfilledColor, progress = _a.progress;
|
|
22
|
+
var textBackground = progress > 50 ? progressBarFilledColor : progressBarUnfilledColor;
|
|
23
|
+
// This matches the hexadecimal 138 value suggested by Vlad Gutkovsky see https://www.infinityinsight.com/blog/?p=411
|
|
24
|
+
var DARK_YIQ = 0.31;
|
|
25
|
+
return calculateYIQ(textBackground) < DARK_YIQ;
|
|
26
|
+
};
|
|
27
|
+
exports.shouldUseLightText = shouldUseLightText;
|
|
28
|
+
//# sourceMappingURL=ProgressBarHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBarHelpers.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,IAAM,YAAY,GAAG,UAAC,QAAgB;;IACpC,IAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,8CAA8C;IAC7F,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAM,CAAC,GAAG,QAAQ,CAAC,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,IAAM,CAAC,GAAG,QAAQ,CAAC,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,IAAM,CAAC,GAAG,QAAQ,CAAC,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,IAAM,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;IACvD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEK,IAAM,kBAAkB,GAAG,UAAC,EAQlC;QAPC,sBAAsB,4BAAA,EACtB,wBAAwB,8BAAA,EACxB,QAAQ,cAAA;IAMR,IAAM,cAAc,GAClB,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,wBAAwB,CAAC;IAEpE,qHAAqH;IACrH,IAAM,QAAQ,GAAG,IAAI,CAAC;IACtB,OAAO,YAAY,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;AACjD,CAAC,CAAC;AAfW,QAAA,kBAAkB,sBAe7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var ProgressBarHelpers_1 = require("./ProgressBarHelpers");
|
|
4
|
+
describe('ProgressBarHelpers', function () {
|
|
5
|
+
var darkBackground = 'rgb(0, 0, 0)';
|
|
6
|
+
var lightBackground = 'rgb(255, 255, 255)';
|
|
7
|
+
it('should use light text for dark filled text background', function () {
|
|
8
|
+
var useLightText = (0, ProgressBarHelpers_1.shouldUseLightText)({
|
|
9
|
+
progressBarFilledColor: darkBackground,
|
|
10
|
+
progressBarUnfilledColor: lightBackground,
|
|
11
|
+
progress: 51,
|
|
12
|
+
});
|
|
13
|
+
expect(useLightText).toBe(true);
|
|
14
|
+
});
|
|
15
|
+
it('should use dark text for light filled text background', function () {
|
|
16
|
+
var useLightText = (0, ProgressBarHelpers_1.shouldUseLightText)({
|
|
17
|
+
progressBarFilledColor: lightBackground,
|
|
18
|
+
progressBarUnfilledColor: darkBackground,
|
|
19
|
+
progress: 51,
|
|
20
|
+
});
|
|
21
|
+
expect(useLightText).toBe(false);
|
|
22
|
+
});
|
|
23
|
+
it('should use light text for dark unfilled text background', function () {
|
|
24
|
+
var useLightText = (0, ProgressBarHelpers_1.shouldUseLightText)({
|
|
25
|
+
progressBarFilledColor: lightBackground,
|
|
26
|
+
progressBarUnfilledColor: darkBackground,
|
|
27
|
+
progress: 50,
|
|
28
|
+
});
|
|
29
|
+
expect(useLightText).toBe(true);
|
|
30
|
+
});
|
|
31
|
+
it('should use dark text for light unfilled text background', function () {
|
|
32
|
+
var useLightText = (0, ProgressBarHelpers_1.shouldUseLightText)({
|
|
33
|
+
progressBarFilledColor: darkBackground,
|
|
34
|
+
progressBarUnfilledColor: lightBackground,
|
|
35
|
+
progress: 50,
|
|
36
|
+
});
|
|
37
|
+
expect(useLightText).toBe(false);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=ProgressBarHelpers.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBarHelpers.test.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.test.ts"],"names":[],"mappings":";;AAAA,2DAA0D;AAE1D,QAAQ,CAAC,oBAAoB,EAAE;IAC7B,IAAM,cAAc,GAAG,cAAc,CAAC;IACtC,IAAM,eAAe,GAAG,oBAAoB,CAAC;IAE7C,EAAE,CAAC,uDAAuD,EAAE;QAC1D,IAAM,YAAY,GAAG,IAAA,uCAAkB,EAAC;YACtC,sBAAsB,EAAE,cAAc;YACtC,wBAAwB,EAAE,eAAe;YACzC,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE;QAC1D,IAAM,YAAY,GAAG,IAAA,uCAAkB,EAAC;YACtC,sBAAsB,EAAE,eAAe;YACvC,wBAAwB,EAAE,cAAc;YACxC,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE;QAC5D,IAAM,YAAY,GAAG,IAAA,uCAAkB,EAAC;YACtC,sBAAsB,EAAE,eAAe;YACvC,wBAAwB,EAAE,cAAc;YACxC,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE;QAC5D,IAAM,YAAY,GAAG,IAAA,uCAAkB,EAAC;YACtC,sBAAsB,EAAE,cAAc;YACtC,wBAAwB,EAAE,eAAe;YACzC,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
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
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
18
|
+
var react_1 = __importDefault(require("react"));
|
|
19
|
+
var ProgressBar_1 = __importDefault(require("./ProgressBar"));
|
|
20
|
+
// totalSteps/step are canvas-local convenience sliders. Moving either
|
|
21
|
+
// computes the raw progress a real step position would produce and reports
|
|
22
|
+
// it via onProgressChange (wired to the Controls-panel `progress` arg in
|
|
23
|
+
// ProgressBar.stories.mdx), so that slider and these two stay in sync and
|
|
24
|
+
// all three drive the same rendered bar.
|
|
25
|
+
var ProgressBarStory = function (_a) {
|
|
26
|
+
var text = _a.text, progress = _a.progress, onProgressChange = _a.onProgressChange;
|
|
27
|
+
var _b = react_1.default.useState(10), totalSteps = _b[0], setTotalSteps = _b[1];
|
|
28
|
+
var _c = react_1.default.useState(10), step = _c[0], setStep = _c[1];
|
|
29
|
+
var clampedStep = Math.min(step, totalSteps);
|
|
30
|
+
var applyStep = function (nextStep, nextTotalSteps) {
|
|
31
|
+
var clamped = Math.min(nextStep, nextTotalSteps);
|
|
32
|
+
onProgressChange(Math.round(((clamped - 1) * 100) / nextTotalSteps));
|
|
33
|
+
};
|
|
34
|
+
return ((0, jsx_runtime_1.jsxs)("div", __assign({ style: { maxWidth: '500px' } }, { children: [(0, jsx_runtime_1.jsxs)("label", __assign({ style: { display: 'block', marginBottom: 16 } }, { children: ["totalSteps: ", totalSteps, (0, jsx_runtime_1.jsx)("input", { type: "range", min: 1, max: 30, value: totalSteps, onChange: function (event) {
|
|
35
|
+
var next = Number(event.target.value);
|
|
36
|
+
setTotalSteps(next);
|
|
37
|
+
applyStep(step, next);
|
|
38
|
+
}, style: { width: '100%' } })] })), (0, jsx_runtime_1.jsxs)("label", __assign({ style: { display: 'block', marginBottom: 16 } }, { children: ["step: ", clampedStep, " / ", totalSteps, (0, jsx_runtime_1.jsx)("input", { type: "range", min: 1, max: totalSteps, value: clampedStep, onChange: function (event) {
|
|
39
|
+
var next = Number(event.target.value);
|
|
40
|
+
setStep(next);
|
|
41
|
+
applyStep(next, totalSteps);
|
|
42
|
+
}, style: { width: '100%' } })] })), (0, jsx_runtime_1.jsx)("div", __assign({ style: { position: 'relative' } }, { children: (0, jsx_runtime_1.jsx)(ProgressBar_1.default, { id: "id", progress: progress, text: text, totalSteps: totalSteps, experimentName: "CRO-712" }) }))] })));
|
|
43
|
+
};
|
|
44
|
+
exports.default = ProgressBarStory;
|
|
45
|
+
//# sourceMappingURL=ProgressBarStory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBarStory.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarStory.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,8DAAwC;AAQxC,sEAAsE;AACtE,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAC1E,yCAAyC;AACzC,IAAM,gBAAgB,GAAyB,UAAC,EAI/C;QAHC,IAAI,UAAA,EACJ,QAAQ,cAAA,EACR,gBAAgB,sBAAA;IAEV,IAAA,KAA8B,eAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAA/C,UAAU,QAAA,EAAE,aAAa,QAAsB,CAAC;IACjD,IAAA,KAAkB,eAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAnC,IAAI,QAAA,EAAE,OAAO,QAAsB,CAAC;IAC3C,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE/C,IAAM,SAAS,GAAG,UAAC,QAAgB,EAAE,cAAsB;QACzD,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACnD,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,OAAO,CACL,0CAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAC/B,4CAAO,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,iCACrC,UAAU,EACvB,kCACE,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,EAAE,EACP,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,UAAC,KAAK;4BACd,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BACxC,aAAa,CAAC,IAAI,CAAC,CAAC;4BACpB,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBACxB,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GACxB,KACI,EACR,4CAAO,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,2BAC3C,WAAW,SAAK,UAAU,EACjC,kCACE,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,UAAC,KAAK;4BACd,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BACxC,OAAO,CAAC,IAAI,CAAC,CAAC;4BACd,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;wBAC9B,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GACxB,KACI,EACR,yCAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAClC,uBAAC,qBAAW,IACV,EAAE,EAAC,IAAI,EACP,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,cAAc,EAAC,SAAS,GACxB,IACE,KACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultProps.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/defaultProps.ts"],"names":[],"mappings":";;AAAA,IAAM,YAAY,GAAG;IACnB,IAAI,EAAE,WAAW;CAClB,CAAC;AAEF,kBAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './ProgressBar';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var ProgressBar_1 = require("./ProgressBar");
|
|
8
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(ProgressBar_1).default; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/index.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAwC;AAA/B,uHAAA,OAAO,OAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ITheme } from '../../../../Themes/themes';
|
|
2
|
+
declare const makeProgressBarStyling: (theme: ITheme, useLightText: boolean, hasHeadStart: boolean) => {
|
|
3
|
+
container: import("@emotion/react").SerializedStyles;
|
|
4
|
+
progressBar: import("@emotion/react").SerializedStyles;
|
|
5
|
+
text: import("@emotion/react").SerializedStyles;
|
|
6
|
+
};
|
|
7
|
+
export default makeProgressBarStyling;
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
var react_1 = require("@emotion/react");
|
|
15
|
+
var LIGHT_TEXT_SHADOW = 'rgb(255, 255, 255) 1px 1px 4px';
|
|
16
|
+
var DARK_TEXT_SHADOW = 'rgb(0, 0, 0) 1px 1px 4px';
|
|
17
|
+
var DARK_TEXT_COLOR = 'rgb(0, 0, 0)';
|
|
18
|
+
var LIGHT_TEXT_COLOR = 'rgb(255, 255, 255)';
|
|
19
|
+
var makeProgressBarStyling = function (theme, useLightText, hasHeadStart) {
|
|
20
|
+
var headStartBorderWidth = "clamp(".concat(theme.mvf.spacing.little, ", 6cqi, ").concat(theme.mvf.spacing.ample, ")");
|
|
21
|
+
return {
|
|
22
|
+
container: (0, react_1.css)({
|
|
23
|
+
height: 25,
|
|
24
|
+
display: 'grid',
|
|
25
|
+
width: '100%',
|
|
26
|
+
containerType: 'inline-size',
|
|
27
|
+
}),
|
|
28
|
+
progressBar: (0, react_1.css)(__assign(__assign({ height: '100%', position: 'relative', boxSizing: 'border-box', gridRowStart: 1, gridColumnStart: 1 }, (hasHeadStart && {
|
|
29
|
+
borderInlineStart: "".concat(headStartBorderWidth, " solid ").concat(theme.mvf.palette.component.progressBarFilledColor),
|
|
30
|
+
})), { '& .MuiLinearProgress-barColorPrimary': {
|
|
31
|
+
backgroundColor: theme.mvf.palette.component.progressBarFilledColor,
|
|
32
|
+
}, '&.MuiLinearProgress-colorPrimary': {
|
|
33
|
+
backgroundColor: theme.mvf.palette.component.progressBarUnfilledColor,
|
|
34
|
+
} })),
|
|
35
|
+
text: (0, react_1.css)({
|
|
36
|
+
gridRowStart: 1,
|
|
37
|
+
gridColumnStart: 1,
|
|
38
|
+
position: 'relative',
|
|
39
|
+
width: 'inherit',
|
|
40
|
+
zIndex: 1,
|
|
41
|
+
lineHeight: '25px',
|
|
42
|
+
fontSize: theme.mvf.fontSize.tiny,
|
|
43
|
+
textShadow: useLightText ? DARK_TEXT_SHADOW : LIGHT_TEXT_SHADOW,
|
|
44
|
+
color: useLightText ? LIGHT_TEXT_COLOR : DARK_TEXT_COLOR,
|
|
45
|
+
textAlign: 'center',
|
|
46
|
+
transition: 'color 0.5s ease, textShadow 0.5s ease',
|
|
47
|
+
}),
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
exports.default = makeProgressBarStyling;
|
|
51
|
+
//# sourceMappingURL=makeProgressBarStyling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeProgressBarStyling.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,wCAAqC;AAGrC,IAAM,iBAAiB,GAAG,gCAAgC,CAAC;AAC3D,IAAM,gBAAgB,GAAG,0BAA0B,CAAC;AACpD,IAAM,eAAe,GAAG,cAAc,CAAC;AACvC,IAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAE9C,IAAM,sBAAsB,GAAG,UAC7B,KAAa,EACb,YAAqB,EACrB,YAAqB;IAErB,IAAM,oBAAoB,GAAG,gBAAS,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,qBAAW,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAG,CAAC;IAEpG,OAAO;QACL,SAAS,EAAE,IAAA,WAAG,EAAC;YACb,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,MAAM;YACb,aAAa,EAAE,aAAa;SAC7B,CAAC;QACF,WAAW,EAAE,IAAA,WAAG,sBACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,YAAY,EACvB,YAAY,EAAE,CAAC,EACf,eAAe,EAAE,CAAC,IACf,CAAC,YAAY,IAAI;YAClB,iBAAiB,EAAE,UAAG,oBAAoB,oBAAU,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAE;SACzG,CAAC,KACF,sCAAsC,EAAE;gBACtC,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAsB;aACpE,EACD,kCAAkC,EAAE;gBAClC,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,wBAAwB;aACtE,IACD;QACF,IAAI,EAAE,IAAA,WAAG,EAAC;YACR,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,CAAC;YAClB,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;YACjC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB;YAC/D,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe;YACxD,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,uCAAuC;SACpD,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var Themes_1 = require("../../../../Themes");
|
|
7
|
+
var makeProgressBarStyling_1 = __importDefault(require("./makeProgressBarStyling"));
|
|
8
|
+
describe('makeProgressBarStyling', function () {
|
|
9
|
+
it('adds the head-start border when hasHeadStart is true', function () {
|
|
10
|
+
var progressBar = (0, makeProgressBarStyling_1.default)(Themes_1.chameleonTheme, false, true).progressBar;
|
|
11
|
+
expect(progressBar.styles).toContain('border-inline-start');
|
|
12
|
+
});
|
|
13
|
+
it('omits the head-start border when hasHeadStart is false', function () {
|
|
14
|
+
var progressBar = (0, makeProgressBarStyling_1.default)(Themes_1.chameleonTheme, false, false).progressBar;
|
|
15
|
+
expect(progressBar.styles).not.toContain('border-inline-start');
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=makeProgressBarStyling.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeProgressBarStyling.test.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.test.ts"],"names":[],"mappings":";;;;;AAAA,6CAAoD;AACpD,oFAA8D;AAE9D,QAAQ,CAAC,wBAAwB,EAAE;IACjC,EAAE,CAAC,sDAAsD,EAAE;QACjD,IAAA,WAAW,GAAK,IAAA,gCAAsB,EAAC,uBAAc,EAAE,KAAK,EAAE,IAAI,CAAC,YAAxD,CAAyD;QAC5E,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE;QACnD,IAAA,WAAW,GAAK,IAAA,gCAAsB,EAC5C,uBAAc,EACd,KAAK,EACL,KAAK,CACN,YAJkB,CAIjB;QACF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -19,8 +19,11 @@ var ProgressBar_1 = __importDefault(require("../../../Components/Atoms/ProgressB
|
|
|
19
19
|
var defaultProps_1 = __importDefault(require("../../../Components/Atoms/ProgressBar/defaultProps"));
|
|
20
20
|
var ProgressBar_2 = __importDefault(require("../../../Experiments/CRO-582/Atoms/ProgressBar/ProgressBar"));
|
|
21
21
|
var ProgressBar_3 = __importDefault(require("../../../Experiments/CRO-585-a/Atoms/ProgressBar/ProgressBar"));
|
|
22
|
+
var ProgressBar_4 = __importDefault(require("../../../Experiments/CRO-712/Atoms/ProgressBar/ProgressBar"));
|
|
22
23
|
var ProgressBar = function (props) {
|
|
23
24
|
switch (props.experimentName) {
|
|
25
|
+
case 'CRO-712':
|
|
26
|
+
return (0, jsx_runtime_1.jsx)(ProgressBar_4.default, __assign({}, props));
|
|
24
27
|
case 'CRO-585-a':
|
|
25
28
|
return (0, jsx_runtime_1.jsx)(ProgressBar_3.default, __assign({}, props));
|
|
26
29
|
case 'CRO-582':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../../src/Interfaces/Atoms/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kGAE2D;AAC3D,oGAA8E;AAC9E,2GAA2F;AAC3F,6GAA8F;
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../../src/Interfaces/Atoms/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kGAE2D;AAC3D,oGAA8E;AAC9E,2GAA2F;AAC3F,6GAA8F;AAC9F,2GAA2F;AAE3F,IAAM,WAAW,GAAoB,UAAC,KAAK;IACzC,QAAQ,KAAK,CAAC,cAAc,EAAE;QAC5B,KAAK,SAAS;YACZ,OAAO,uBAAC,qBAAiB,eAAK,KAAK,EAAI,CAAC;QAC1C,KAAK,WAAW;YACd,OAAO,uBAAC,qBAAkB,eAAK,KAAK,EAAI,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,uBAAC,qBAAiB,eAAK,KAAK,EAAI,CAAC;QAC1C;YACE,OAAO,uBAAC,qBAAkB,eAAK,KAAK,EAAI,CAAC;KAC5C;AACH,CAAC,CAAC;AAEF,WAAW,CAAC,YAAY,GAAG,sBAAY,CAAC;AAExC,kBAAe,WAAW,CAAC"}
|