@configura/web-ui 2.0.0-alpha.20 → 2.0.0-alpha.22
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/.eslintrc.json +1 -14
- package/dist/components/ExpandableHeadingRow.js +9 -7
- package/dist/components/ShareView.js +3 -18
- package/dist/components/productConfiguration/CfgAdditionalProductView.js +7 -3
- package/dist/components/productConfiguration/CfgCheckboxView.d.ts +2 -5
- package/dist/components/productConfiguration/CfgCheckboxView.js +4 -26
- package/dist/components/productConfiguration/CfgCheckboxesView.d.ts +2 -5
- package/dist/components/productConfiguration/CfgCheckboxesView.js +4 -2
- package/dist/components/productConfiguration/CfgConfigurationCommonView.d.ts +8 -0
- package/dist/components/productConfiguration/CfgConfigurationCommonView.js +8 -0
- package/dist/components/productConfiguration/CfgDropdownOptionView.d.ts +2 -5
- package/dist/components/productConfiguration/CfgDropdownOptionView.js +16 -37
- package/dist/components/productConfiguration/CfgDropdownView.d.ts +2 -5
- package/dist/components/productConfiguration/CfgDropdownView.js +8 -5
- package/dist/components/productConfiguration/CfgFeatureView.d.ts +47 -6
- package/dist/components/productConfiguration/CfgFeatureView.js +20 -4
- package/dist/components/productConfiguration/CfgMiscFile.d.ts +5 -0
- package/dist/components/productConfiguration/CfgMiscFile.js +9 -0
- package/dist/components/productConfiguration/CfgMiscFiles.d.ts +5 -0
- package/dist/components/productConfiguration/CfgMiscFiles.js +5 -0
- package/dist/components/productConfiguration/CfgNote.d.ts +5 -0
- package/dist/components/productConfiguration/CfgNote.js +15 -0
- package/dist/components/productConfiguration/CfgNotes.d.ts +5 -0
- package/dist/components/productConfiguration/CfgNotes.js +5 -0
- package/dist/components/productConfiguration/CfgOptionCommonView.d.ts +7 -0
- package/dist/components/productConfiguration/CfgOptionCommonView.js +48 -0
- package/dist/components/productConfiguration/CfgProductConfigurationView.js +4 -1
- package/dist/css/web-ui.css +1 -1
- package/dist/css/web-ui.css.map +1 -1
- package/dist/scss/_configurator.scss +7 -0
- package/dist/scss/_expandable.scss +1 -0
- package/dist/scss/_feature-item.scss +5 -0
- package/dist/scss/_misc-file-and-note.scss +44 -0
- package/dist/scss/_themed.scss +2 -0
- package/package.json +3 -3
- package/dist/components/productConfiguration/CfgOptionFeaturesView.d.ts +0 -4
- package/dist/components/productConfiguration/CfgOptionFeaturesView.js +0 -13
package/.eslintrc.json
CHANGED
|
@@ -1,18 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"parser": "@typescript-eslint/parser",
|
|
3
3
|
"plugins": ["@typescript-eslint"],
|
|
4
|
-
"extends": [
|
|
5
|
-
"eslint:recommended",
|
|
6
|
-
"plugin:@typescript-eslint/recommended",
|
|
7
|
-
"prettier"
|
|
8
|
-
|
|
9
|
-
// TODO: Type-checking rules require a proper tsconfig-file to work,
|
|
10
|
-
// pointed at by the parserOption.project setting.
|
|
11
|
-
//
|
|
12
|
-
//"plugin:@typescript-eslint/recommended-requiring-type-checking"
|
|
13
|
-
]
|
|
14
|
-
//"rules": { "@typescript-eslint/no-floating-promises": "error" }
|
|
15
|
-
//"parserOptions": {
|
|
16
|
-
// "project": "./tsconfig.json"
|
|
17
|
-
//}
|
|
4
|
+
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"]
|
|
18
5
|
}
|
|
@@ -9,13 +9,15 @@ export var ExpandableHeadingRowSymbol;
|
|
|
9
9
|
export const ExpandableHeadingRow = (props) => {
|
|
10
10
|
const { heading, open: active, onClick, children } = props;
|
|
11
11
|
const symbol = props.symbol === undefined ? ExpandableHeadingRowSymbol.Chevron : props.symbol;
|
|
12
|
+
const inner = (React.createElement(React.Fragment, null,
|
|
13
|
+
children,
|
|
14
|
+
React.createElement("div", { className: "cfgExpandableHeadingRow__title" },
|
|
15
|
+
React.createElement("div", { className: "cfgTextOverflow" }, heading))));
|
|
12
16
|
if (props.expandable === false) {
|
|
13
|
-
return
|
|
14
|
-
children,
|
|
15
|
-
React.createElement("div", { className: "cfgExpandableHeadingRow__title cfgTextOverflow" }, heading)));
|
|
17
|
+
return React.createElement("div", { className: "cfgExpandableHeadingRow" }, inner);
|
|
16
18
|
}
|
|
17
|
-
return (React.createElement(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
return (React.createElement(React.Fragment, null,
|
|
20
|
+
React.createElement("button", { className: `cfgExpandableHeadingRow cfgExpandableHeadingRow--expandable ${props.className || ""}`, style: props.style, onClick: onClick },
|
|
21
|
+
inner,
|
|
22
|
+
React.createElement("div", { className: "cfgExpandableHeadingRow__icon" }, symbol === ExpandableHeadingRowSymbol.Chevron ? (React.createElement(Chevron, { active: active })) : (React.createElement(CheckmarkWithBorder, { active: active }))))));
|
|
21
23
|
};
|
|
@@ -1,26 +1,13 @@
|
|
|
1
1
|
import { CfgHistoryManager } from "@configura/web-api";
|
|
2
2
|
import React, { useState } from "react";
|
|
3
|
-
import { ErrorIcon } from "./icons/ErrorIcon.js";
|
|
4
3
|
const shareLabel = "Share";
|
|
5
4
|
export const ShareView = (props) => {
|
|
6
5
|
var _a;
|
|
7
6
|
const [value, setValue] = useState(shareLabel);
|
|
8
|
-
const [warningText, setWarningText] = useState();
|
|
9
7
|
// No need for a useMemo, this will always be the same instance
|
|
10
8
|
const historyManager = CfgHistoryManager.instance;
|
|
11
|
-
return (React.createElement("div", { className: `cfgShare ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}
|
|
12
|
-
React.createElement("input", { title:
|
|
13
|
-
? "Click to copy a share-link to the clipboard"
|
|
14
|
-
: warningText, className: "cfgInput", readOnly: true, value: value, onBlur: () => setValue(shareLabel), onFocus: (event) => {
|
|
15
|
-
const ws = historyManager.getWarnings();
|
|
16
|
-
const wsText = ws.length === 0 ? undefined : ws.join("\n");
|
|
17
|
-
setWarningText(wsText);
|
|
18
|
-
if (ws.length !== 0) {
|
|
19
|
-
for (const w of ws) {
|
|
20
|
-
console.warn(w);
|
|
21
|
-
}
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
9
|
+
return (React.createElement("div", { className: `cfgShare ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, style: props.style },
|
|
10
|
+
React.createElement("input", { title: "Click to copy a share-link to the clipboard", className: "cfgInput", readOnly: true, value: value, onBlur: () => setValue(shareLabel), onFocus: (event) => {
|
|
24
11
|
const url = historyManager.getUrl();
|
|
25
12
|
setValue(url);
|
|
26
13
|
event.target.value = url;
|
|
@@ -30,7 +17,5 @@ export const ShareView = (props) => {
|
|
|
30
17
|
// tab between windows, because the focus event triggers but is not user initiated. We just swallow any error.
|
|
31
18
|
console.error("Error", err);
|
|
32
19
|
});
|
|
33
|
-
} })
|
|
34
|
-
warningText !== undefined && (React.createElement("div", { className: "cfgShare__error", title: warningText },
|
|
35
|
-
React.createElement(ErrorIcon, null)))));
|
|
20
|
+
} })));
|
|
36
21
|
};
|
|
@@ -4,6 +4,7 @@ import { ExpandableHeadingRow, ExpandableHeadingRowSymbol } from "../ExpandableH
|
|
|
4
4
|
import { forwardProps, } from "./CfgFeatureView.js";
|
|
5
5
|
import { CfgProductConfigurationView } from "./CfgProductConfigurationView.js";
|
|
6
6
|
export const CfgAdditionalProductView = React.memo((props) => {
|
|
7
|
+
var _a;
|
|
7
8
|
const { product, permanentlyExpandedLevels, startOpen } = props;
|
|
8
9
|
const { partNumber, optional, selected, configuration, additionalProducts, preview, description, visible: configurationVisible, } = product;
|
|
9
10
|
const setError = useContext(ErrorContext);
|
|
@@ -14,8 +15,11 @@ export const CfgAdditionalProductView = React.memo((props) => {
|
|
|
14
15
|
return (React.createElement(AdditionalProductsView, Object.assign({}, forwardProps(props), { additionalProducts: additionalProducts, permanentlyExpandedLevels: permanentlyExpandedLevels })));
|
|
15
16
|
}
|
|
16
17
|
const openOrSelected = optional ? selected : open;
|
|
17
|
-
const hasChildren = configuration.features.length !== 0 ||
|
|
18
|
-
|
|
18
|
+
const hasChildren = configuration.features.length !== 0 ||
|
|
19
|
+
additionalProducts.length !== 0 ||
|
|
20
|
+
product.notes.length !== 0 ||
|
|
21
|
+
product.miscFiles.length !== 0;
|
|
22
|
+
return (React.createElement("li", { className: `cfgFeatureItem cfgAdditionalProduct ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, style: props.style },
|
|
19
23
|
React.createElement(ExpandableHeadingRow, { heading: description || partNumber, expandable: optional || (hasChildren && permanentlyExpandedLevels <= 0), open: openOrSelected, onClick: () => {
|
|
20
24
|
if (optional) {
|
|
21
25
|
product.setSelected(!selected).catch((e) => {
|
|
@@ -38,5 +42,5 @@ export const CfgAdditionalProductView = React.memo((props) => {
|
|
|
38
42
|
});
|
|
39
43
|
const AdditionalProductsView = (props) => {
|
|
40
44
|
const { additionalProducts, permanentlyExpandedLevels, additionalProductComponent: AdditionalProductComponent, } = props;
|
|
41
|
-
return (React.createElement(React.Fragment, null, additionalProducts.map((additionalProduct) => (React.createElement(AdditionalProductComponent, Object.assign({
|
|
45
|
+
return (React.createElement(React.Fragment, null, additionalProducts.map((additionalProduct) => (React.createElement(AdditionalProductComponent, Object.assign({}, forwardProps(props), { key: additionalProduct.key, product: additionalProduct, permanentlyExpandedLevels: permanentlyExpandedLevels - 1 }))))));
|
|
42
46
|
};
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { CssProps } from "../../utilities.js";
|
|
3
2
|
import { CfgOptionViewProps } from "./CfgFeatureView.js";
|
|
4
|
-
export declare const CfgCheckboxView: React.FC<CfgOptionViewProps
|
|
5
|
-
export declare const CfgCheckboxViewMemo: React.NamedExoticComponent<
|
|
6
|
-
option: import("@configura/web-api").CfgOption;
|
|
7
|
-
} & CssProps>;
|
|
3
|
+
export declare const CfgCheckboxView: React.FC<CfgOptionViewProps>;
|
|
4
|
+
export declare const CfgCheckboxViewMemo: React.NamedExoticComponent<CfgOptionViewProps>;
|
|
8
5
|
//# sourceMappingURL=CfgCheckboxView.d.ts.map
|
|
@@ -1,29 +1,7 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import {
|
|
3
|
-
import { ErrorContext } from "../ErrorContext.js";
|
|
4
|
-
import { Checkmark } from "../icons/Checkmark.js";
|
|
5
|
-
import { forwardProps } from "./CfgFeatureView.js";
|
|
6
|
-
import { CfgOptionFeaturesView } from "./CfgOptionFeaturesView.js";
|
|
7
|
-
import { CfgOptionPriceView } from "./CfgOptionPriceView.js";
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { CfgOptionCommonView } from "./CfgOptionCommonView.js";
|
|
8
3
|
export const CfgCheckboxView = (props) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const { thumbnail, description, selected, code, selectedChangeInProgress } = option;
|
|
12
|
-
const uniqueId = useUuid();
|
|
13
|
-
return (React.createElement("li", { className: props.className, style: props.style },
|
|
14
|
-
React.createElement("label", { className: "cfgFeatureItemOptional", htmlFor: uniqueId },
|
|
15
|
-
React.createElement("input", { checked: selected, className: "cfgFeatureItem__hiddenInput", id: uniqueId, name: uniqueId, onChange: () => {
|
|
16
|
-
option.setSelected(!selected).catch((e) => {
|
|
17
|
-
setError(e);
|
|
18
|
-
throw e;
|
|
19
|
-
});
|
|
20
|
-
}, type: "checkbox" }),
|
|
21
|
-
React.createElement("div", { className: "cfgFeatureItem__checkbox" }, selected === !selectedChangeInProgress && React.createElement(Checkmark, null)),
|
|
22
|
-
thumbnail && (React.createElement("img", { alt: `Thumbnail for ${description}`, className: "cfgThumbnailImage cfgMl1", src: thumbnail })),
|
|
23
|
-
React.createElement("div", { className: "cfgFeatureItemOptional__titleWrapper" },
|
|
24
|
-
React.createElement("div", { className: "cfgFeatureItemOptional__title" },
|
|
25
|
-
description || code,
|
|
26
|
-
React.createElement(CfgOptionPriceView, { option: option, upchargeDisplayMode: upchargeDisplayMode })))),
|
|
27
|
-
React.createElement(CfgOptionFeaturesView, Object.assign({ option: option }, forwardProps(props)))));
|
|
4
|
+
var _a;
|
|
5
|
+
return (React.createElement(CfgOptionCommonView, Object.assign({}, props, { className: `cfgFeatureItem ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}` })));
|
|
28
6
|
};
|
|
29
7
|
export const CfgCheckboxViewMemo = React.memo(CfgCheckboxView);
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { CssProps } from "../../utilities.js";
|
|
3
2
|
import { CfgFeatureViewProps } from "./CfgFeatureView.js";
|
|
4
|
-
export declare const CfgCheckboxesView: React.FC<CfgFeatureViewProps
|
|
5
|
-
export declare const CfgCheckboxesViewMemo: React.NamedExoticComponent<
|
|
6
|
-
feature: import("@configura/web-api").CfgFeature;
|
|
7
|
-
} & CssProps>;
|
|
3
|
+
export declare const CfgCheckboxesView: React.FC<CfgFeatureViewProps>;
|
|
4
|
+
export declare const CfgCheckboxesViewMemo: React.NamedExoticComponent<CfgFeatureViewProps>;
|
|
8
5
|
//# sourceMappingURL=CfgCheckboxesView.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SelectionType } from "@configura/web-api";
|
|
2
2
|
import React from "react";
|
|
3
|
+
import { CfgConfigurationCommonView } from "./CfgConfigurationCommonView.js";
|
|
3
4
|
import { forwardProps } from "./CfgFeatureView.js";
|
|
4
5
|
export const CfgCheckboxesView = (props) => {
|
|
5
6
|
var _a;
|
|
@@ -7,12 +8,13 @@ export const CfgCheckboxesView = (props) => {
|
|
|
7
8
|
if (feature.selectionType !== SelectionType.SelectMany) {
|
|
8
9
|
throw Error(`Unsupported selection type expected: ${SelectionType.SelectMany}, got: ${feature.selectionType}`);
|
|
9
10
|
}
|
|
10
|
-
const { options, description } = feature;
|
|
11
|
+
const { options, description, code, notes } = feature;
|
|
11
12
|
if (options.length === 0) {
|
|
12
13
|
return null;
|
|
13
14
|
}
|
|
14
15
|
return (React.createElement("li", { className: `cfgFeatureItem cfgFeatureItem--optional ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, style: props.style },
|
|
15
|
-
React.createElement("h3", { className: "cfgFeatureItemOptional__header" }, description),
|
|
16
|
+
React.createElement("h3", { className: "cfgFeatureItemOptional__header" }, description || code),
|
|
17
|
+
React.createElement(CfgConfigurationCommonView, Object.assign({}, forwardProps(props), { notes: notes })),
|
|
16
18
|
React.createElement("ul", { className: "cfgOptionTree" }, options.map((option) => (React.createElement(OptionComponent, Object.assign({ option: option, key: option.key }, forwardProps(props))))))));
|
|
17
19
|
};
|
|
18
20
|
export const CfgCheckboxesViewMemo = React.memo(CfgCheckboxesView);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DtoMiscFile, DtoNote } from "@configura/web-api";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { CfgProductConfigurationComponentAndPassthroughProps } from "./CfgFeatureView.js";
|
|
4
|
+
export declare const CfgConfigurationCommonView: React.FC<CfgProductConfigurationComponentAndPassthroughProps & {
|
|
5
|
+
notes?: DtoNote[];
|
|
6
|
+
miscFiles?: DtoMiscFile[];
|
|
7
|
+
}>;
|
|
8
|
+
//# sourceMappingURL=CfgConfigurationCommonView.d.ts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { forwardProps, } from "./CfgFeatureView.js";
|
|
3
|
+
export const CfgConfigurationCommonView = (props) => {
|
|
4
|
+
const { notesComponent: NotesComponent, miscFilesComponent: MiscFilesComponent, notes, miscFiles, } = props;
|
|
5
|
+
return (React.createElement(React.Fragment, null,
|
|
6
|
+
notes && notes.length !== 0 && (React.createElement(NotesComponent, Object.assign({}, forwardProps(props), { notes: notes }))),
|
|
7
|
+
miscFiles && miscFiles.length !== 0 && (React.createElement(MiscFilesComponent, Object.assign({}, forwardProps(props), { miscFiles: miscFiles })))));
|
|
8
|
+
};
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { CssProps } from "../../utilities.js";
|
|
3
2
|
import { CfgOptionViewProps } from "./CfgFeatureView.js";
|
|
4
|
-
export declare const CfgDropdownOptionView: React.FC<CfgOptionViewProps
|
|
5
|
-
export declare const CfgDropdownOptionViewMemo: React.NamedExoticComponent<
|
|
6
|
-
option: import("@configura/web-api").CfgOption;
|
|
7
|
-
} & CssProps>;
|
|
3
|
+
export declare const CfgDropdownOptionView: React.FC<CfgOptionViewProps>;
|
|
4
|
+
export declare const CfgDropdownOptionViewMemo: React.NamedExoticComponent<CfgOptionViewProps>;
|
|
8
5
|
//# sourceMappingURL=CfgDropdownOptionView.d.ts.map
|
|
@@ -1,44 +1,23 @@
|
|
|
1
1
|
import React, { useContext } from "react";
|
|
2
|
-
import { useUuid } from "../../useUniqueId.js";
|
|
3
2
|
import { ErrorContext } from "../ErrorContext.js";
|
|
4
|
-
import {
|
|
5
|
-
import { forwardProps } from "./CfgFeatureView.js";
|
|
6
|
-
import { CfgOptionFeaturesView } from "./CfgOptionFeaturesView.js";
|
|
7
|
-
import { CfgOptionNumericView } from "./CfgOptionNumericView.js";
|
|
8
|
-
import { CfgOptionPriceView } from "./CfgOptionPriceView.js";
|
|
3
|
+
import { CfgOptionCommonView } from "./CfgOptionCommonView.js";
|
|
9
4
|
export const CfgDropdownOptionView = (props) => {
|
|
10
5
|
var _a;
|
|
11
|
-
const { option
|
|
12
|
-
const {
|
|
6
|
+
const { option } = props;
|
|
7
|
+
const { selected } = option;
|
|
13
8
|
const setError = useContext(ErrorContext);
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// a change.
|
|
28
|
-
if (selected) {
|
|
29
|
-
option.setSelected(true).catch((e) => {
|
|
30
|
-
setError(e);
|
|
31
|
-
throw e;
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
}, type: "radio", value: code }),
|
|
35
|
-
React.createElement("div", { className: "cfgFeatureItem__radio" }, selected === !selectedChangeInProgress && React.createElement(Checkmark, null)),
|
|
36
|
-
thumbnail && (React.createElement("img", { alt: `Thumbnail for ${description}`, className: "cfgThumbnailImage cfgMl1", src: thumbnail })),
|
|
37
|
-
React.createElement("div", { className: "cfgFeatureItemOption__titleWrapper" },
|
|
38
|
-
React.createElement("div", { className: "cfgFeatureItemOption__title" },
|
|
39
|
-
description || code,
|
|
40
|
-
React.createElement(CfgOptionPriceView, { option: option, upchargeDisplayMode: upchargeDisplayMode })))),
|
|
41
|
-
selected && React.createElement(CfgOptionNumericView, { option: option }),
|
|
42
|
-
React.createElement(CfgOptionFeaturesView, Object.assign({ option: option }, forwardProps(props)))));
|
|
9
|
+
const onClick = () => {
|
|
10
|
+
// As a convenience for when wanting to re-select something already
|
|
11
|
+
// selected to use the propagation side effects we have added this
|
|
12
|
+
// which will trigger a setSelected even though this is strictly not
|
|
13
|
+
// a change.
|
|
14
|
+
if (selected) {
|
|
15
|
+
option.setSelected(true).catch((e) => {
|
|
16
|
+
setError(e);
|
|
17
|
+
throw e;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
return (React.createElement(CfgOptionCommonView, Object.assign({}, props, { className: `cfgFeatureItem cfgMb1 ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, labelClassName: selected ? "cfgFeatureItemOption--checked" : "", onClick: onClick })));
|
|
43
22
|
};
|
|
44
23
|
export const CfgDropdownOptionViewMemo = React.memo(CfgDropdownOptionView);
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { CssProps } from "../../utilities.js";
|
|
3
2
|
import { CfgFeatureViewProps } from "./CfgFeatureView.js";
|
|
4
|
-
export declare const CfgDropdownView: React.FC<CfgFeatureViewProps
|
|
5
|
-
export declare const CfgDropdownViewMemo: React.NamedExoticComponent<
|
|
6
|
-
feature: import("@configura/web-api").CfgFeature;
|
|
7
|
-
} & CssProps>;
|
|
3
|
+
export declare const CfgDropdownView: React.FC<CfgFeatureViewProps>;
|
|
4
|
+
export declare const CfgDropdownViewMemo: React.NamedExoticComponent<CfgFeatureViewProps>;
|
|
8
5
|
//# sourceMappingURL=CfgDropdownView.d.ts.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SelectionType } from "@configura/web-api";
|
|
2
2
|
import React, { useState } from "react";
|
|
3
3
|
import { ExpandableHeadingRow } from "../ExpandableHeadingRow.js";
|
|
4
|
+
import { CfgConfigurationCommonView } from "./CfgConfigurationCommonView.js";
|
|
4
5
|
import { forwardProps } from "./CfgFeatureView.js";
|
|
5
6
|
export const CfgDropdownView = (props) => {
|
|
6
7
|
var _a;
|
|
@@ -8,13 +9,15 @@ export const CfgDropdownView = (props) => {
|
|
|
8
9
|
if (feature.selectionType !== SelectionType.SelectOne) {
|
|
9
10
|
throw Error(`Unsupported selection type expected: ${SelectionType.SelectOne}, got: ${feature.selectionType}`);
|
|
10
11
|
}
|
|
11
|
-
const { description, preview, options } = feature;
|
|
12
|
+
const { description, preview, options, code, notes } = feature;
|
|
12
13
|
const [open, setOpen] = useState(startOpen === true);
|
|
13
14
|
return (React.createElement("li", { className: `cfgFeatureItem ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, style: props.style },
|
|
14
|
-
React.createElement(ExpandableHeadingRow, { heading: description, open: open, onClick: () => setOpen((prev) => !prev) }, preview && (React.createElement("div", { className: "cfgThumbnailPlaceholder" },
|
|
15
|
+
React.createElement(ExpandableHeadingRow, { heading: description || code, open: open, onClick: () => setOpen((prev) => !prev) }, preview && (React.createElement("div", { className: "cfgThumbnailPlaceholder" },
|
|
15
16
|
React.createElement("img", { alt: `Preview for ${description}`, className: "cfgThumbnailImage", src: preview })))),
|
|
16
|
-
React.createElement("div", { className: "cfgFeatureItem__subTree" },
|
|
17
|
-
open && (React.createElement(
|
|
18
|
-
|
|
17
|
+
(options || notes.length !== 0) && (React.createElement("div", { className: "cfgFeatureItem__subTree" },
|
|
18
|
+
open && (React.createElement(React.Fragment, null,
|
|
19
|
+
React.createElement(CfgConfigurationCommonView, Object.assign({}, forwardProps(props), { notes: notes })),
|
|
20
|
+
React.createElement("ul", { className: `cfgOptionTree cfgOptionTree--subLevel ${preview ? "cfgOptionTree--compThumb" : ""}` }, options.map((option) => (React.createElement(OptionComponent, Object.assign({}, forwardProps(props), { key: option.key, option: option }))))))),
|
|
21
|
+
React.createElement("hr", { className: "cfgFeatureItem__hr cfgHr" })))));
|
|
19
22
|
};
|
|
20
23
|
export const CfgDropdownViewMemo = React.memo(CfgDropdownView);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CfgFeature, CfgOption, CfgProduct } from "@configura/web-api";
|
|
1
|
+
import { CfgFeature, CfgOption, CfgProduct, DtoMiscFile, DtoNote } from "@configura/web-api";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { CssProps } from "../../utilities.js";
|
|
4
4
|
import { PassthroughProps } from "./CfgProductConfigurationView.js";
|
|
@@ -12,6 +12,24 @@ export declare type CfgAdditionalProductViewProps = CfgProductConfigurationCompo
|
|
|
12
12
|
product: CfgProduct;
|
|
13
13
|
permanentlyExpandedLevels: number;
|
|
14
14
|
};
|
|
15
|
+
export declare type CfgNoteViewProps = CssProps & {
|
|
16
|
+
note: DtoNote;
|
|
17
|
+
};
|
|
18
|
+
declare type CfgNoteComponent = {
|
|
19
|
+
noteComponent: React.ComponentType<CfgNoteViewProps>;
|
|
20
|
+
};
|
|
21
|
+
export declare type CfgNotesViewProps = CssProps & CfgNoteComponent & {
|
|
22
|
+
notes: DtoNote[];
|
|
23
|
+
};
|
|
24
|
+
export declare type CfgMiscFileViewProps = CssProps & {
|
|
25
|
+
miscFile: DtoMiscFile;
|
|
26
|
+
};
|
|
27
|
+
declare type CfgMiscFileComponent = {
|
|
28
|
+
miscFileComponent: React.ComponentType<CfgMiscFileViewProps>;
|
|
29
|
+
};
|
|
30
|
+
export declare type CfgMiscFilesViewProps = CssProps & CfgMiscFileComponent & {
|
|
31
|
+
miscFiles: DtoMiscFile[];
|
|
32
|
+
};
|
|
15
33
|
export declare type CfgProductConfigurationComponent = {
|
|
16
34
|
additionalProductComponent: React.ComponentType<CfgAdditionalProductViewProps>;
|
|
17
35
|
featureFlattenComponent: React.ComponentType<CfgFeatureViewProps>;
|
|
@@ -20,13 +38,36 @@ export declare type CfgProductConfigurationComponent = {
|
|
|
20
38
|
optionSelectManyComponent: React.ComponentType<CfgOptionViewProps>;
|
|
21
39
|
featureSelectOneComponent: React.ComponentType<CfgFeatureViewProps>;
|
|
22
40
|
optionSelectOneComponent: React.ComponentType<CfgOptionViewProps>;
|
|
23
|
-
|
|
24
|
-
|
|
41
|
+
notesComponent: React.ComponentType<CfgNotesViewProps>;
|
|
42
|
+
miscFilesComponent: React.ComponentType<CfgMiscFilesViewProps>;
|
|
43
|
+
} & CfgMiscFileComponent & CfgNoteComponent;
|
|
44
|
+
export declare const completeWithDefaultProductConfigurationComponents: <T>(incomplete: T & Partial<CfgProductConfigurationComponent>) => T & {
|
|
45
|
+
additionalProductComponent: React.ComponentType<CfgAdditionalProductViewProps>;
|
|
46
|
+
featureFlattenComponent: React.ComponentType<CfgFeatureViewProps>;
|
|
47
|
+
featureGroupComponent: React.ComponentType<CfgFeatureViewProps>;
|
|
48
|
+
featureSelectManyComponent: React.ComponentType<CfgFeatureViewProps>;
|
|
49
|
+
optionSelectManyComponent: React.ComponentType<CfgOptionViewProps>;
|
|
50
|
+
featureSelectOneComponent: React.ComponentType<CfgFeatureViewProps>;
|
|
51
|
+
optionSelectOneComponent: React.ComponentType<CfgOptionViewProps>;
|
|
52
|
+
notesComponent: React.ComponentType<CfgNotesViewProps>;
|
|
53
|
+
miscFilesComponent: React.ComponentType<CfgMiscFilesViewProps>;
|
|
54
|
+
} & CfgMiscFileComponent & CfgNoteComponent;
|
|
25
55
|
export declare const useCompleteWithDefaultProductConfigurationComponents: (incomplete: Partial<CfgProductConfigurationComponent>) => CfgProductConfigurationComponent;
|
|
26
|
-
export declare type CfgProductConfigurationComponentAndPassthroughProps = PassthroughProps & CfgProductConfigurationComponent;
|
|
56
|
+
export declare type CfgProductConfigurationComponentAndPassthroughProps = PassthroughProps & CssProps & CfgProductConfigurationComponent;
|
|
27
57
|
export declare const forwardProps: (props: CfgProductConfigurationComponentAndPassthroughProps) => CfgProductConfigurationComponentAndPassthroughProps;
|
|
28
58
|
export declare const CfgFeatureView: React.FC<CfgFeatureViewProps & CssProps>;
|
|
29
|
-
export declare const CfgFeatureViewMemo: React.NamedExoticComponent<PassthroughProps &
|
|
59
|
+
export declare const CfgFeatureViewMemo: React.NamedExoticComponent<PassthroughProps & CssProps & {
|
|
60
|
+
additionalProductComponent: React.ComponentType<CfgAdditionalProductViewProps>;
|
|
61
|
+
featureFlattenComponent: React.ComponentType<CfgFeatureViewProps>;
|
|
62
|
+
featureGroupComponent: React.ComponentType<CfgFeatureViewProps>;
|
|
63
|
+
featureSelectManyComponent: React.ComponentType<CfgFeatureViewProps>;
|
|
64
|
+
optionSelectManyComponent: React.ComponentType<CfgOptionViewProps>;
|
|
65
|
+
featureSelectOneComponent: React.ComponentType<CfgFeatureViewProps>;
|
|
66
|
+
optionSelectOneComponent: React.ComponentType<CfgOptionViewProps>;
|
|
67
|
+
notesComponent: React.ComponentType<CfgNotesViewProps>;
|
|
68
|
+
miscFilesComponent: React.ComponentType<CfgMiscFilesViewProps>;
|
|
69
|
+
} & CfgMiscFileComponent & CfgNoteComponent & {
|
|
30
70
|
feature: CfgFeature;
|
|
31
|
-
}
|
|
71
|
+
}>;
|
|
72
|
+
export {};
|
|
32
73
|
//# sourceMappingURL=CfgFeatureView.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SelectionType } from "@configura/web-api";
|
|
1
|
+
import { SelectionType, } from "@configura/web-api";
|
|
2
2
|
import React, { useMemo } from "react";
|
|
3
3
|
import { CfgAdditionalProductView } from "./CfgAdditionalProductView.js";
|
|
4
4
|
import { CfgCheckboxesViewMemo } from "./CfgCheckboxesView.js";
|
|
@@ -6,12 +6,16 @@ import { CfgCheckboxViewMemo } from "./CfgCheckboxView.js";
|
|
|
6
6
|
import { CfgDropdownOptionViewMemo } from "./CfgDropdownOptionView.js";
|
|
7
7
|
import { CfgDropdownViewMemo } from "./CfgDropdownView.js";
|
|
8
8
|
import { CfgGroupViewMemo } from "./CfgGroupView.js";
|
|
9
|
+
import { CfgMiscFile } from "./CfgMiscFile.js";
|
|
10
|
+
import { CfgMiscFiles } from "./CfgMiscFiles.js";
|
|
11
|
+
import { CfgNote } from "./CfgNote.js";
|
|
12
|
+
import { CfgNotes } from "./CfgNotes.js";
|
|
9
13
|
export const completeWithDefaultProductConfigurationComponents = (incomplete) => {
|
|
10
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
11
|
-
return (Object.assign(Object.assign({}, incomplete), { additionalProductComponent: (_a = incomplete.additionalProductComponent) !== null && _a !== void 0 ? _a : CfgAdditionalProductView, featureFlattenComponent: (_b = incomplete.featureFlattenComponent) !== null && _b !== void 0 ? _b : CfgGroupViewMemo, featureGroupComponent: (_c = incomplete.featureGroupComponent) !== null && _c !== void 0 ? _c : CfgGroupViewMemo, featureSelectManyComponent: (_d = incomplete.featureSelectManyComponent) !== null && _d !== void 0 ? _d : CfgCheckboxesViewMemo, optionSelectManyComponent: (_e = incomplete.optionSelectManyComponent) !== null && _e !== void 0 ? _e : CfgCheckboxViewMemo, featureSelectOneComponent: (_f = incomplete.featureSelectOneComponent) !== null && _f !== void 0 ? _f : CfgDropdownViewMemo, optionSelectOneComponent: (_g = incomplete.optionSelectOneComponent) !== null && _g !== void 0 ? _g : CfgDropdownOptionViewMemo }));
|
|
14
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
15
|
+
return (Object.assign(Object.assign({}, incomplete), { additionalProductComponent: (_a = incomplete.additionalProductComponent) !== null && _a !== void 0 ? _a : CfgAdditionalProductView, featureFlattenComponent: (_b = incomplete.featureFlattenComponent) !== null && _b !== void 0 ? _b : CfgGroupViewMemo, featureGroupComponent: (_c = incomplete.featureGroupComponent) !== null && _c !== void 0 ? _c : CfgGroupViewMemo, featureSelectManyComponent: (_d = incomplete.featureSelectManyComponent) !== null && _d !== void 0 ? _d : CfgCheckboxesViewMemo, optionSelectManyComponent: (_e = incomplete.optionSelectManyComponent) !== null && _e !== void 0 ? _e : CfgCheckboxViewMemo, featureSelectOneComponent: (_f = incomplete.featureSelectOneComponent) !== null && _f !== void 0 ? _f : CfgDropdownViewMemo, optionSelectOneComponent: (_g = incomplete.optionSelectOneComponent) !== null && _g !== void 0 ? _g : CfgDropdownOptionViewMemo, noteComponent: (_h = incomplete.noteComponent) !== null && _h !== void 0 ? _h : CfgNote, notesComponent: (_j = incomplete.notesComponent) !== null && _j !== void 0 ? _j : CfgNotes, miscFileComponent: (_k = incomplete.miscFileComponent) !== null && _k !== void 0 ? _k : CfgMiscFile, miscFilesComponent: (_l = incomplete.miscFilesComponent) !== null && _l !== void 0 ? _l : CfgMiscFiles }));
|
|
12
16
|
};
|
|
13
17
|
export const useCompleteWithDefaultProductConfigurationComponents = (incomplete) => {
|
|
14
|
-
const { additionalProductComponent, featureFlattenComponent, featureGroupComponent, featureSelectManyComponent, featureSelectOneComponent, optionSelectManyComponent, optionSelectOneComponent, } = incomplete;
|
|
18
|
+
const { additionalProductComponent, featureFlattenComponent, featureGroupComponent, featureSelectManyComponent, featureSelectOneComponent, optionSelectManyComponent, optionSelectOneComponent, noteComponent, notesComponent, miscFileComponent, miscFilesComponent, } = incomplete;
|
|
15
19
|
return useMemo(() => completeWithDefaultProductConfigurationComponents({
|
|
16
20
|
additionalProductComponent,
|
|
17
21
|
featureFlattenComponent,
|
|
@@ -20,6 +24,10 @@ export const useCompleteWithDefaultProductConfigurationComponents = (incomplete)
|
|
|
20
24
|
featureSelectOneComponent,
|
|
21
25
|
optionSelectManyComponent,
|
|
22
26
|
optionSelectOneComponent,
|
|
27
|
+
noteComponent,
|
|
28
|
+
notesComponent,
|
|
29
|
+
miscFileComponent,
|
|
30
|
+
miscFilesComponent,
|
|
23
31
|
}), [
|
|
24
32
|
additionalProductComponent,
|
|
25
33
|
featureFlattenComponent,
|
|
@@ -28,6 +36,10 @@ export const useCompleteWithDefaultProductConfigurationComponents = (incomplete)
|
|
|
28
36
|
featureSelectOneComponent,
|
|
29
37
|
optionSelectManyComponent,
|
|
30
38
|
optionSelectOneComponent,
|
|
39
|
+
noteComponent,
|
|
40
|
+
notesComponent,
|
|
41
|
+
miscFileComponent,
|
|
42
|
+
miscFilesComponent,
|
|
31
43
|
]);
|
|
32
44
|
};
|
|
33
45
|
export const forwardProps = (props) => ({
|
|
@@ -40,6 +52,10 @@ export const forwardProps = (props) => ({
|
|
|
40
52
|
optionSelectManyComponent: props.optionSelectManyComponent,
|
|
41
53
|
featureSelectOneComponent: props.featureSelectOneComponent,
|
|
42
54
|
optionSelectOneComponent: props.optionSelectOneComponent,
|
|
55
|
+
noteComponent: props.noteComponent,
|
|
56
|
+
notesComponent: props.notesComponent,
|
|
57
|
+
miscFileComponent: props.miscFileComponent,
|
|
58
|
+
miscFilesComponent: props.miscFilesComponent,
|
|
43
59
|
});
|
|
44
60
|
export const CfgFeatureView = (props) => {
|
|
45
61
|
const { feature, featureFlattenComponent: FlattenComponent, featureGroupComponent: GroupComponent, featureSelectManyComponent: SelectManyComponent, featureSelectOneComponent: SelectOneComponent, } = props;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export const CfgMiscFile = (props) => {
|
|
3
|
+
const { url, preview } = props.miscFile;
|
|
4
|
+
const split = url.lastIndexOf("/");
|
|
5
|
+
const name = split ? decodeURI(url.substring(split + 1)) : url;
|
|
6
|
+
return (React.createElement("li", { className: `cfgMiscFiles__item ${props.className || ""}`, style: props.style },
|
|
7
|
+
preview !== undefined && (React.createElement("img", { className: "cfgMiscFiles__thumbnail cfgThumbnailImage", src: preview, alt: "Preview for file URL." })),
|
|
8
|
+
React.createElement("a", { href: url, className: "cfgMiscFiles__link cfgTextOverflow", target: "_blank", rel: "noopener noreferrer" }, name)));
|
|
9
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export const CfgMiscFiles = (props) => {
|
|
3
|
+
const { miscFileComponent: MiscFileComponent } = props;
|
|
4
|
+
return (React.createElement("ul", { className: `cfgMiscFiles ${props.className || ""}`, style: props.style }, props.miscFiles.map((f) => (React.createElement(MiscFileComponent, { key: f.key + f.url + f.preview, miscFile: f })))));
|
|
5
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import { ExpandableHeadingRow } from "../ExpandableHeadingRow.js";
|
|
3
|
+
export const CfgNote = (props) => {
|
|
4
|
+
const { code, body, key, title } = props.note;
|
|
5
|
+
const [open, setOpen] = useState(false);
|
|
6
|
+
const hasNoTitle = !title;
|
|
7
|
+
const hasNoBody = !body;
|
|
8
|
+
if (hasNoBody && hasNoTitle) {
|
|
9
|
+
console.info(`Note has neither title nor body and will not be visible. (${code})`);
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
return (React.createElement("li", { className: "cfgNotes__item" },
|
|
13
|
+
React.createElement(ExpandableHeadingRow, { heading: title || key || code, open: open, onClick: () => setOpen((prev) => !prev), expandable: !hasNoBody, className: "cfgNotes__title" }),
|
|
14
|
+
open && React.createElement("div", { className: "cfgNotes__body" }, body)));
|
|
15
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export const CfgNotes = (props) => {
|
|
3
|
+
const { noteComponent: NoteComponent } = props;
|
|
4
|
+
return (React.createElement("ul", { className: "cfgNotes", style: props.style }, props.notes.map((n) => (React.createElement(NoteComponent, { note: n, key: n.code })))));
|
|
5
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { CfgOptionViewProps } from "./CfgFeatureView.js";
|
|
3
|
+
export declare const CfgOptionCommonView: React.FC<CfgOptionViewProps & {
|
|
4
|
+
labelClassName?: string;
|
|
5
|
+
onClick?: () => void;
|
|
6
|
+
}>;
|
|
7
|
+
//# sourceMappingURL=CfgOptionCommonView.d.ts.map
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { SelectionType } from "@configura/web-api";
|
|
2
|
+
import React, { useContext } from "react";
|
|
3
|
+
import { useUuid } from "../../useUniqueId.js";
|
|
4
|
+
import { ErrorContext } from "../ErrorContext.js";
|
|
5
|
+
import { Checkmark } from "../icons/Checkmark.js";
|
|
6
|
+
import { CfgConfigurationCommonView } from "./CfgConfigurationCommonView.js";
|
|
7
|
+
import { CfgFeatureView, forwardProps } from "./CfgFeatureView.js";
|
|
8
|
+
import { CfgOptionNumericView } from "./CfgOptionNumericView.js";
|
|
9
|
+
import { CfgOptionPriceView } from "./CfgOptionPriceView.js";
|
|
10
|
+
export const CfgOptionCommonView = (props) => {
|
|
11
|
+
const { option, upchargeDisplayMode, onClick, labelClassName } = props;
|
|
12
|
+
const { features, thumbnail, description, selected, code, selectedChangeInProgress, miscFiles, notes, } = option;
|
|
13
|
+
const setError = useContext(ErrorContext);
|
|
14
|
+
const uniqueId = useUuid();
|
|
15
|
+
const selectionType = option.parent.selectionType;
|
|
16
|
+
let inputType;
|
|
17
|
+
let typeClassNameFragment;
|
|
18
|
+
switch (selectionType) {
|
|
19
|
+
case SelectionType.SelectMany:
|
|
20
|
+
inputType = "checkbox";
|
|
21
|
+
typeClassNameFragment = "Optional";
|
|
22
|
+
break;
|
|
23
|
+
case SelectionType.SelectOne:
|
|
24
|
+
inputType = "radio";
|
|
25
|
+
typeClassNameFragment = "Option";
|
|
26
|
+
break;
|
|
27
|
+
default:
|
|
28
|
+
throw new Error(`Unsupported selectionType ${selectionType}`);
|
|
29
|
+
}
|
|
30
|
+
return (React.createElement("li", { className: props.className, style: props.style },
|
|
31
|
+
React.createElement("label", { className: `cfgFeatureItem${typeClassNameFragment} ${labelClassName !== null && labelClassName !== void 0 ? labelClassName : ""}`, htmlFor: uniqueId },
|
|
32
|
+
React.createElement("input", { checked: selected, className: "cfgFeatureItem__hiddenInput", id: uniqueId, name: uniqueId, onChange: () => {
|
|
33
|
+
option.setSelected(!selected).catch((e) => {
|
|
34
|
+
setError(e);
|
|
35
|
+
throw e;
|
|
36
|
+
});
|
|
37
|
+
}, onClick: onClick, type: inputType }),
|
|
38
|
+
React.createElement("div", { className: `cfgFeatureItem__${inputType}` }, selected === !selectedChangeInProgress && React.createElement(Checkmark, null)),
|
|
39
|
+
thumbnail && (React.createElement("img", { alt: `Thumbnail for ${description}`, className: "cfgThumbnailImage cfgMl1", src: thumbnail })),
|
|
40
|
+
React.createElement("div", { className: `cfgFeatureItem${typeClassNameFragment}__titleWrapper` },
|
|
41
|
+
React.createElement("div", { className: `cfgFeatureItem${typeClassNameFragment}__title` },
|
|
42
|
+
description || code,
|
|
43
|
+
React.createElement(CfgOptionPriceView, { option: option, upchargeDisplayMode: upchargeDisplayMode })))),
|
|
44
|
+
selected && (React.createElement(React.Fragment, null,
|
|
45
|
+
React.createElement(CfgOptionNumericView, { option: option }),
|
|
46
|
+
React.createElement(CfgConfigurationCommonView, Object.assign({}, forwardProps(props), { notes: notes, miscFiles: miscFiles })),
|
|
47
|
+
features.length !== 0 && (React.createElement("ul", { className: "cfgOptionTree cfgOptionTree--subLevel cfgOptionTree--indent" }, features.map((f) => (React.createElement(CfgFeatureView, Object.assign({}, forwardProps(props), { feature: f, key: f.key }))))))))));
|
|
48
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CfgProduct, CfgProductConfiguration } from "@configura/web-api";
|
|
2
2
|
import React, { useEffect } from "react";
|
|
3
3
|
import { useRerender } from "../../useRerender.js";
|
|
4
|
+
import { CfgConfigurationCommonView } from "./CfgConfigurationCommonView.js";
|
|
4
5
|
import { CfgFeatureViewMemo, forwardProps, useCompleteWithDefaultProductConfigurationComponents, } from "./CfgFeatureView.js";
|
|
5
6
|
export var UpchargeDisplayMode;
|
|
6
7
|
(function (UpchargeDisplayMode) {
|
|
@@ -42,6 +43,8 @@ export const CfgProductConfigurationView = React.memo((props) => {
|
|
|
42
43
|
};
|
|
43
44
|
}, [configuration, rerender]);
|
|
44
45
|
return (React.createElement(React.Fragment, null,
|
|
45
|
-
configurationVisible && (React.createElement(
|
|
46
|
+
configurationVisible && (React.createElement(React.Fragment, null,
|
|
47
|
+
React.createElement(CfgConfigurationCommonView, Object.assign({}, forwardProps(completedProps), { notes: configuration.parentProduct.notes, miscFiles: configuration.parentProduct.miscFiles })),
|
|
48
|
+
React.createElement("ul", { className: `cfgOptionTree cfgOptionTree--topLevel ${props.className || ""}`, style: props.style }, features.map((f) => (React.createElement(CfgFeatureViewMemo, Object.assign({ feature: f, key: f.key }, forwardProps(completedProps)))))))),
|
|
46
49
|
additionalProducts !== undefined && (React.createElement("ul", { className: `cfgOptionTree cfgOptionTree--topLevel` }, additionalProducts.map((additionalProduct) => (React.createElement(AdditionalProductComponent, Object.assign({ key: additionalProduct.key }, forwardProps(completedProps), { product: additionalProduct, permanentlyExpandedLevels: permanentlyExpandedAdditionalProductLevels !== null && permanentlyExpandedAdditionalProductLevels !== void 0 ? permanentlyExpandedAdditionalProductLevels : 0 }))))))));
|
|
47
50
|
});
|
package/dist/css/web-ui.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.cfgMl1{margin-left:1em}.cfgMt1{margin-top:1em}.cfgMb1{margin-bottom:1em}.cfgTextOverflow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a{color:#005cb3}.cfgButton{box-sizing:border-box;display:inline-block;background-color:transparent;color:#333;border-radius:.3em;border:.1em solid #bababa;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgButton:after,.cfgButton:before{box-sizing:inherit}.cfgButton *{box-sizing:border-box}.cfgButton :after,.cfgButton :before{box-sizing:inherit}.cfgButton:focus{box-shadow:0 0 0 .075em #fff,0 0 0 .2em #333}.cfgButton[disabled]{box-sizing:border-box;display:inline-block;background-color:transparent;color:grey;border-radius:.3em;border:.1em solid #c8c7cc;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgButton[disabled]:after,.cfgButton[disabled]:before{box-sizing:inherit}.cfgButton[disabled] *{box-sizing:border-box}.cfgButton[disabled] :after,.cfgButton[disabled] :before{box-sizing:inherit}.cfgButton[disabled]:focus{box-shadow:0 0 0 .075em #fff,0 0 0 .2em #333}.cfgButtonRow{box-sizing:border-box}.cfgButtonRow:after,.cfgButtonRow:before{box-sizing:inherit}.cfgButtonRow *{box-sizing:border-box}.cfgButtonRow :after,.cfgButtonRow :before{box-sizing:inherit}.cfgButtonRow__button:nth-child(n+2){margin-left:1em}.cfgCheckmark{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgCheckmark:after,.cfgCheckmark:before{box-sizing:inherit}.cfgCheckmark *{box-sizing:border-box}.cfgCheckmark :after,.cfgCheckmark :before{box-sizing:inherit}.cfgCheckmark__container{transition:transform .4s;transform:translateY(17px)}.cfgCheckmark__line{stroke:#000;stroke-linecap:round;stroke-width:12;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgCheckmark__lineLeft{stroke:#000;transform:rotate(40deg) translateY(24px) translateX(18px)}.cfgCheckmark__lineRight{stroke:#000;transform:rotate(-50deg) translateY(-2px) translateX(-3px)}.cfgCheckmark__border{border:.2em solid #c8c7cc;border-radius:.3em}.cfgCheckmark__border,.cfgCheckmark__border--active{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgCheckmark__border--active{border:.2em solid #000;border-radius:.3em}.cfgChevron{box-sizing:border-box;display:inline-block;width:100%}.cfgChevron:after,.cfgChevron:before{box-sizing:inherit}.cfgChevron *{box-sizing:border-box}.cfgChevron :after,.cfgChevron :before{box-sizing:inherit}.cfgChevron__container{transition:transform .4s}.cfgChevron__container--down{transform:translateY(13px)}.cfgChevron__container--up{transform:translateY(-13px)}.cfgChevron__line{stroke-linecap:round;stroke-width:10;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgChevron__lineLeft--active,.cfgChevron__lineRight--active{stroke:#000}.cfgChevron__lineLeft--passive,.cfgChevron__lineRight--passive{stroke:#bababa}.cfgChevron__lineLeft--down{transform:rotate(40deg)}.cfgChevron__lineLeft--up,.cfgChevron__lineRight--down{transform:rotate(-40deg)}.cfgChevron__lineRight--up{transform:rotate(40deg)}.cfgCircleXmarkIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgCircleXmarkIcon:after,.cfgCircleXmarkIcon:before{box-sizing:inherit}.cfgCircleXmarkIcon *{box-sizing:border-box}.cfgCircleXmarkIcon :after,.cfgCircleXmarkIcon :before{box-sizing:inherit}.cfgCircleXmarkIcon circle,.cfgCircleXmarkIcon path{stroke:#7c7986;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgConfiguratorWrapper{box-sizing:border-box;color:#333;display:flex;height:85vh;flex-direction:column}.cfgConfiguratorWrapper:after,.cfgConfiguratorWrapper:before{box-sizing:inherit}.cfgConfiguratorWrapper *{box-sizing:border-box}.cfgConfiguratorWrapper :after,.cfgConfiguratorWrapper :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgConfiguratorWrapper{flex-direction:row}}.cfgConfiguratorWrapper .cfgReset,.cfgConfiguratorWrapper .cfgShare,.cfgConfiguratorWrapper .cfgTaskStart{margin-top:.5em;font-size:1.2em;font-weight:500}.cfgConfiguratorWrapper .cfgReset .cfgFormSelect,.cfgConfiguratorWrapper .cfgReset .cfgInput,.cfgConfiguratorWrapper .cfgReset button,.cfgConfiguratorWrapper .cfgShare .cfgFormSelect,.cfgConfiguratorWrapper .cfgShare .cfgInput,.cfgConfiguratorWrapper .cfgShare button,.cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect,.cfgConfiguratorWrapper .cfgTaskStart .cfgInput,.cfgConfiguratorWrapper .cfgTaskStart button{padding:.5em}.cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect:after{right:.5em}.cfgConfiguratorWrapper .cfgReset button,.cfgConfiguratorWrapper .cfgShare .cfgInput{-webkit-appearance:none;appearance:none;margin:0;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;cursor:inherit;line-height:inherit;outline:none}.cfgConfiguratorWrapper .cfgShare__error{display:inline-block}.cfgConfiguratorWrapper .cfgShare__error .cfgErrorIcon{padding-left:.25em;margin-right:.75em;width:1.25em;height:1em}.cfgConfiguratorWrapper .cfgShare__grayed{color:grey}.cfgCanvasWrapper{box-sizing:border-box;position:relative;height:50rem;-webkit-user-select:none;user-select:none;flex:1 1 auto;overflow:hidden}.cfgCanvasWrapper:after,.cfgCanvasWrapper:before{box-sizing:inherit}.cfgCanvasWrapper *{box-sizing:border-box}.cfgCanvasWrapper :after,.cfgCanvasWrapper :before{box-sizing:inherit}.cfgCanvasWrapper canvas{outline:none}@media screen and (orientation:landscape){.cfgCanvasWrapper{height:100%;flex:0 1 60%}}.cfgConfigurator{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:10px;color:#333;min-width:0;height:100%;display:flex;flex-direction:column;flex:0 0 50%;overflow:auto}.cfgConfigurator:after,.cfgConfigurator:before{box-sizing:inherit}.cfgConfigurator *{box-sizing:border-box}.cfgConfigurator :after,.cfgConfigurator :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgConfigurator{height:100%;flex:0 1 40%}}.cfgConfiguratorHeader{border-bottom:.1em solid #c8c7cc;padding:1.7em 1.7em 1.9em;position:relative}.cfgConfiguratorHeader__actions{margin-top:1em}.cfgConfiguratorTree{padding-top:.5em;overflow-y:auto;-webkit-overflow-scrolling:touch}.cfgDownloadIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDownloadIcon:after,.cfgDownloadIcon:before{box-sizing:inherit}.cfgDownloadIcon *{box-sizing:border-box}.cfgDownloadIcon :after,.cfgDownloadIcon :before{box-sizing:inherit}.cfgDownloadIcon circle,.cfgDownloadIcon path{stroke:#005cb3;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgExpandableHeadingRow{box-sizing:border-box;-webkit-appearance:none;appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;align-items:stretch;display:flex;height:3.9em;outline:0;position:relative;width:100%}.cfgExpandableHeadingRow:after,.cfgExpandableHeadingRow:before{box-sizing:inherit}.cfgExpandableHeadingRow *{box-sizing:border-box}.cfgExpandableHeadingRow :after,.cfgExpandableHeadingRow :before{box-sizing:inherit}.cfgExpandableHeadingRow--expandable{cursor:pointer}.cfgExpandableHeadingRow__title{align-items:center;display:flex;flex:1 1 auto;font-size:1.5em;font-weight:500;justify-content:flex-start}.cfgExpandableHeadingRow__icon{align-items:center;display:flex;flex:0 0 5em;justify-content:center;padding:0 1.5em}.cfgErrorIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgErrorIcon:after,.cfgErrorIcon:before{box-sizing:inherit}.cfgErrorIcon *{box-sizing:border-box}.cfgErrorIcon :after,.cfgErrorIcon :before{box-sizing:inherit}.cfgErrorIcon circle,.cfgErrorIcon path{stroke:#b4361d;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgThumbnailImage{border-radius:.7em;display:inline-block;height:3em;width:3em}.cfgThumbnailPlaceholder{align-items:center;display:flex;flex:0 0 4.2em;justify-content:flex-start}.cfgFeatureItem{box-sizing:border-box;color:#333}.cfgFeatureItem:after,.cfgFeatureItem:before{box-sizing:inherit}.cfgFeatureItem *{box-sizing:border-box}.cfgFeatureItem :after,.cfgFeatureItem :before{box-sizing:inherit}.cfgFeatureItem__dropdown{-webkit-appearance:none;appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;align-items:stretch;display:flex;height:3.9em;outline:0;position:relative;width:100%;cursor:pointer}.cfgFeatureItem--optional{margin-top:1em}.cfgFeatureItem__hiddenInput{left:-99999px;opacity:0;position:absolute;z-index:-1}.cfgFeatureItem__radio{border:.2em solid #c8c7cc;border-radius:50%}.cfgFeatureItem__checkbox,.cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgFeatureItem__checkbox{border:.2em solid #c8c7cc;border-radius:.3em}.cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__checkbox,.cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__radio{box-shadow:0 0 0 .075em #fff,0 0 0 .2em #333}.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{border:.2em solid #000;border-radius:50%}.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox,.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox{border:.2em solid #000;border-radius:.3em}.cfgFeatureItem.cfgAdditionalProduct>.cfgExpandableHeadingRow>.cfgExpandableHeadingRow__title{font-weight:600}.cfgFeatureItem.cfgAdditionalProduct>.cfgFeatureItem__hr{border-bottom-color:#bababa}.cfgFeatureItem.cfgAdditionalProduct .cfgFeatureItem:last-child .cfgFeatureItem__hr{margin-bottom:-.1em}.cfgFeatureItemOption__titleWrapper,.cfgFeatureItemOptional__titleWrapper{flex:1 1 auto;margin-left:1em}.cfgFeatureItemOption__title,.cfgFeatureItemOptional__title{font-size:1.5em}.cfgFeatureItemOption__price{font-weight:600;font-size:.75em;color:grey}.cfgOptionTree--subLevel .cfgFeatureItem__hr{display:none}.cfgFeatureItemOption,.cfgFeatureItemOptional{align-items:center;display:flex}.cfgFeatureItemOptional{justify-content:center;margin-top:.5em}.cfgFeatureItemOptional__header{font-size:1.2em;font-weight:600;margin:0 0 .3em;padding:0;text-transform:uppercase}.cfgFormSelect,.cfgInput{border:.1em solid #bababa;padding:.3em .4em;border-radius:.3em;color:inherit}.cfgFormSelect{cursor:pointer;position:relative}.cfgFormSelect select{-webkit-appearance:none;appearance:none;padding:0 1em 0 0;margin:0;width:100%;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;cursor:inherit;line-height:inherit;outline:none;border:none}.cfgFormSelect:after{position:absolute;right:.35em;top:50%;margin-top:-.55em;content:"";width:1em;height:1em;background-color:#bababa;-webkit-clip-path:polygon(50% 80%,90% 40%,100% 50%,50% 100%,0 50%,10% 40%);clip-path:polygon(50% 80%,90% 40%,100% 50%,50% 100%,0 50%,10% 40%);justify-self:end}.cfgHr{box-sizing:border-box;border:0;border-bottom:.1em solid #c8c7cc;padding:0;margin:0}.cfgHr:after,.cfgHr:before{box-sizing:inherit}.cfgHr *{box-sizing:border-box}.cfgHr :after,.cfgHr :before{box-sizing:inherit}.cfgCenteredLoading{box-sizing:border-box;align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.cfgCenteredLoading:after,.cfgCenteredLoading:before{box-sizing:inherit}.cfgCenteredLoading *{box-sizing:border-box}.cfgCenteredLoading :after,.cfgCenteredLoading :before{box-sizing:inherit}.cfgOverlayLoading{box-sizing:border-box;align-items:center;background-color:#fff;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}.cfgOverlayLoading:after,.cfgOverlayLoading:before{box-sizing:inherit}.cfgOverlayLoading *{box-sizing:border-box}.cfgOverlayLoading :after,.cfgOverlayLoading :before{box-sizing:inherit}.cfgOverlayLoading--clickThrough{background-color:transparent;pointer-events:none}.cfgOverlayLoading--clickThrough .cfgLoadingWithText{padding:2em 2em 1.8em;border-radius:.8em;background-color:#fff;opacity:.8;border:.1em solid rgba(0,0,0,.15)}.cfgOverlayLoading--fullWindow{position:fixed;z-index:1001}.cfgLoadingWithText{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;text-align:center}.cfgLoadingWithText:after,.cfgLoadingWithText:before{box-sizing:inherit}.cfgLoadingWithText *{box-sizing:border-box}.cfgLoadingWithText :after,.cfgLoadingWithText :before{box-sizing:inherit}.cfgLoadingWithText__text{color:#000;font-weight:600;margin-top:.5em;font-size:1.6em}.cfgLoading{box-sizing:border-box;animation:rotate 1.1s linear 0s infinite;border-radius:100%;border:.5em solid rgba(0,0,0,.15);border-bottom-color:#000;display:inline-block;height:3em;width:3em}.cfgLoading:after,.cfgLoading:before{box-sizing:inherit}.cfgLoading *{box-sizing:border-box}.cfgLoading :after,.cfgLoading :before{box-sizing:inherit}.cfgLoading--small{border-width:.4em;height:2em;width:2em}.cfgOptionTree{box-sizing:border-box;list-style:none;margin:0;padding:0}.cfgOptionTree:after,.cfgOptionTree:before{box-sizing:inherit}.cfgOptionTree *{box-sizing:border-box}.cfgOptionTree :after,.cfgOptionTree :before{box-sizing:inherit}.cfgOptionTree--topLevel{padding-left:1.7em}.cfgOptionTree--indent{margin-left:3.2em}.cfgOptionTree--compThumb{margin-left:4.2em}.cfgProductInfo{box-sizing:border-box;color:#333;display:flex}.cfgProductInfo:after,.cfgProductInfo:before{box-sizing:inherit}.cfgProductInfo *{box-sizing:border-box}.cfgProductInfo :after,.cfgProductInfo :before{box-sizing:inherit}.cfgProductInfo__left{flex:1 1 auto;min-width:0;overflow:hidden}.cfgProductInfo__right{align-items:flex-end;display:flex;flex-direction:column;flex:1 0 auto;margin-left:1em;max-width:.333333333;min-width:0}.cfgProductInfo__name{display:block;font-size:1.6em;font-weight:600;line-height:1.33;margin:0}.cfgProductInfo__number{font-size:1.3em;font-weight:400;line-height:1.38;margin:0}.cfgProductInfo__taskbar{display:flex}.cfgRangeView__inputs{display:flex;align-items:center}.cfgRangeView__number-input{font-size:1.5em;flex-grow:1;text-align:right}.cfgRangeView__unit-label{font-size:1.5em;margin-left:.3em}.cfgRangeView__slider-input.cfgSlider{margin-left:1em;flex-grow:3}.cfgRangeView__error{display:flex;align-items:center;margin-top:1em;font-size:1.5em;color:#b4361d}.cfgRangeView__error .cfgErrorIcon{padding-right:.25em;width:1.25em;height:1em}.cfgSlider{box-sizing:border-box;flex:1;margin:0;padding:0;min-height:2.8em;background:transparent;font:inherit}.cfgSlider:after,.cfgSlider:before{box-sizing:inherit}.cfgSlider *{box-sizing:border-box}.cfgSlider :after,.cfgSlider :before{box-sizing:inherit}.cfgSlider,.cfgSlider::-webkit-slider-thumb{-webkit-appearance:none}.cfgSlider::-webkit-slider-runnable-track{box-sizing:border-box;border:none;height:.2em;background:#666}.cfgSlider::-moz-range-track{box-sizing:border-box;border:none;height:.2em;background:#666}.cfgSlider::-ms-track{box-sizing:border-box;border:none;height:.2em;background:#666}.cfgSlider::-webkit-slider-thumb{margin-top:-1.3em;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#fff;box-shadow:0 .15em .45em .05em #666}.cfgSlider::-moz-range-thumb{box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#fff;box-shadow:0 .15em .45em .05em #666}.cfgSlider::-ms-thumb{margin-top:0;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#fff;box-shadow:0 .15em .45em .05em #666}.cfgSlider::-ms-tooltip{display:none}.cfgTaskList ul{list-style-type:none;padding:0;margin:1em 0 0;border-bottom:.1em solid #c8c7cc}.cfgTaskList__item{padding:0 1.5em 0 1.7em;margin-bottom:1em;display:flex;align-items:center}.cfgTaskList__preview{border:.1em solid #c8c7cc;border-radius:10%;width:4.8em;height:4.8em;flex-shrink:0}.cfgTaskList__preview img{object-fit:cover;position:relative;left:.38em;top:.38em;width:3.84em;height:3.84em}.cfgTaskList__icon{flex-shrink:0;width:4em;height:2em;padding-left:1em;padding-right:1em}.cfgTaskList__icon .cfgLoadingSizer{font-size:.75em}.cfgTaskList__status{flex-grow:1;font-size:1.5em}.cfgTaskList__abort{color:inherit;width:2em;height:2em;flex-shrink:0}.cfgTaskList__abort,.cfgTaskList__restart{-webkit-appearance:none;appearance:none;font-family:inherit;font-size:inherit;background:none;border:none;padding:0;cursor:pointer}.cfgTaskList__restart{color:inherit;text-decoration:underline;color:#005cb3}.cfgDarkTheme a{color:#70baff}.cfgDarkTheme .cfgButton{box-sizing:border-box;display:inline-block;background-color:transparent;color:#d6d6d6;border-radius:.3em;border:.1em solid #6a6a6a;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgDarkTheme .cfgButton:after,.cfgDarkTheme .cfgButton:before{box-sizing:inherit}.cfgDarkTheme .cfgButton *{box-sizing:border-box}.cfgDarkTheme .cfgButton :after,.cfgDarkTheme .cfgButton :before{box-sizing:inherit}.cfgDarkTheme .cfgButton:focus{box-shadow:0 0 0 .075em #333,0 0 0 .2em #d6d6d6}.cfgDarkTheme .cfgButton[disabled]{box-sizing:border-box;display:inline-block;background-color:transparent;color:#999;border-radius:.3em;border:.1em solid #5b5963;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgDarkTheme .cfgButton[disabled]:after,.cfgDarkTheme .cfgButton[disabled]:before{box-sizing:inherit}.cfgDarkTheme .cfgButton[disabled] *{box-sizing:border-box}.cfgDarkTheme .cfgButton[disabled] :after,.cfgDarkTheme .cfgButton[disabled] :before{box-sizing:inherit}.cfgDarkTheme .cfgButton[disabled]:focus{box-shadow:0 0 0 .075em #333,0 0 0 .2em #d6d6d6}.cfgDarkTheme .cfgButtonRow{box-sizing:border-box}.cfgDarkTheme .cfgButtonRow:after,.cfgDarkTheme .cfgButtonRow:before{box-sizing:inherit}.cfgDarkTheme .cfgButtonRow *{box-sizing:border-box}.cfgDarkTheme .cfgButtonRow :after,.cfgDarkTheme .cfgButtonRow :before{box-sizing:inherit}.cfgDarkTheme .cfgButtonRow__button:nth-child(n+2){margin-left:1em}.cfgDarkTheme .cfgCheckmark{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgCheckmark:after,.cfgDarkTheme .cfgCheckmark:before{box-sizing:inherit}.cfgDarkTheme .cfgCheckmark *{box-sizing:border-box}.cfgDarkTheme .cfgCheckmark :after,.cfgDarkTheme .cfgCheckmark :before{box-sizing:inherit}.cfgDarkTheme .cfgCheckmark__container{transition:transform .4s;transform:translateY(17px)}.cfgDarkTheme .cfgCheckmark__line{stroke:#fff;stroke-linecap:round;stroke-width:12;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgDarkTheme .cfgCheckmark__lineLeft{stroke:#fff;transform:rotate(40deg) translateY(24px) translateX(18px)}.cfgDarkTheme .cfgCheckmark__lineRight{stroke:#fff;transform:rotate(-50deg) translateY(-2px) translateX(-3px)}.cfgDarkTheme .cfgCheckmark__border{border:.2em solid #5b5963;border-radius:.3em}.cfgDarkTheme .cfgCheckmark__border,.cfgDarkTheme .cfgCheckmark__border--active{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgDarkTheme .cfgCheckmark__border--active{border:.2em solid #fff;border-radius:.3em}.cfgDarkTheme .cfgChevron{box-sizing:border-box;display:inline-block;width:100%}.cfgDarkTheme .cfgChevron:after,.cfgDarkTheme .cfgChevron:before{box-sizing:inherit}.cfgDarkTheme .cfgChevron *{box-sizing:border-box}.cfgDarkTheme .cfgChevron :after,.cfgDarkTheme .cfgChevron :before{box-sizing:inherit}.cfgDarkTheme .cfgChevron__container{transition:transform .4s}.cfgDarkTheme .cfgChevron__container--down{transform:translateY(13px)}.cfgDarkTheme .cfgChevron__container--up{transform:translateY(-13px)}.cfgDarkTheme .cfgChevron__line{stroke-linecap:round;stroke-width:10;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgDarkTheme .cfgChevron__lineLeft--active,.cfgDarkTheme .cfgChevron__lineRight--active{stroke:#fff}.cfgDarkTheme .cfgChevron__lineLeft--passive,.cfgDarkTheme .cfgChevron__lineRight--passive{stroke:#6a6a6a}.cfgDarkTheme .cfgChevron__lineLeft--down{transform:rotate(40deg)}.cfgDarkTheme .cfgChevron__lineLeft--up,.cfgDarkTheme .cfgChevron__lineRight--down{transform:rotate(-40deg)}.cfgDarkTheme .cfgChevron__lineRight--up{transform:rotate(40deg)}.cfgDarkTheme .cfgCircleXmarkIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgCircleXmarkIcon:after,.cfgDarkTheme .cfgCircleXmarkIcon:before{box-sizing:inherit}.cfgDarkTheme .cfgCircleXmarkIcon *{box-sizing:border-box}.cfgDarkTheme .cfgCircleXmarkIcon :after,.cfgDarkTheme .cfgCircleXmarkIcon :before{box-sizing:inherit}.cfgDarkTheme .cfgCircleXmarkIcon circle,.cfgDarkTheme .cfgCircleXmarkIcon path{stroke:#96949e;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgDarkTheme .cfgConfiguratorWrapper{box-sizing:border-box;color:#d6d6d6;display:flex;height:85vh;flex-direction:column}.cfgDarkTheme .cfgConfiguratorWrapper:after,.cfgDarkTheme .cfgConfiguratorWrapper:before{box-sizing:inherit}.cfgDarkTheme .cfgConfiguratorWrapper *{box-sizing:border-box}.cfgDarkTheme .cfgConfiguratorWrapper :after,.cfgDarkTheme .cfgConfiguratorWrapper :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgDarkTheme .cfgConfiguratorWrapper{flex-direction:row}}.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart{margin-top:.5em;font-size:1.2em;font-weight:500}.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset .cfgFormSelect,.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset .cfgInput,.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset button,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare .cfgFormSelect,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare .cfgInput,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare button,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart .cfgInput,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart button{padding:.5em}.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect:after{right:.5em}.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset button,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare .cfgInput{-webkit-appearance:none;appearance:none;margin:0;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;cursor:inherit;line-height:inherit;outline:none}.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare__error{display:inline-block}.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare__error .cfgErrorIcon{padding-left:.25em;margin-right:.75em;width:1.25em;height:1em}.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare__grayed{color:#999}.cfgDarkTheme .cfgCanvasWrapper{box-sizing:border-box;position:relative;height:50rem;-webkit-user-select:none;user-select:none;flex:1 1 auto;overflow:hidden}.cfgDarkTheme .cfgCanvasWrapper:after,.cfgDarkTheme .cfgCanvasWrapper:before{box-sizing:inherit}.cfgDarkTheme .cfgCanvasWrapper *{box-sizing:border-box}.cfgDarkTheme .cfgCanvasWrapper :after,.cfgDarkTheme .cfgCanvasWrapper :before{box-sizing:inherit}.cfgDarkTheme .cfgCanvasWrapper canvas{outline:none}@media screen and (orientation:landscape){.cfgDarkTheme .cfgCanvasWrapper{height:100%;flex:0 1 60%}}.cfgDarkTheme .cfgConfigurator{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:10px;color:#d6d6d6;min-width:0;height:100%;display:flex;flex-direction:column;flex:0 0 50%;overflow:auto}.cfgDarkTheme .cfgConfigurator:after,.cfgDarkTheme .cfgConfigurator:before{box-sizing:inherit}.cfgDarkTheme .cfgConfigurator *{box-sizing:border-box}.cfgDarkTheme .cfgConfigurator :after,.cfgDarkTheme .cfgConfigurator :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgDarkTheme .cfgConfigurator{height:100%;flex:0 1 40%}}.cfgDarkTheme .cfgConfiguratorHeader{border-bottom:.1em solid #5b5963;padding:1.7em 1.7em 1.9em;position:relative}.cfgDarkTheme .cfgConfiguratorHeader__actions{margin-top:1em}.cfgDarkTheme .cfgConfiguratorTree{padding-top:.5em;overflow-y:auto;-webkit-overflow-scrolling:touch}.cfgDarkTheme .cfgDownloadIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgDownloadIcon:after,.cfgDarkTheme .cfgDownloadIcon:before{box-sizing:inherit}.cfgDarkTheme .cfgDownloadIcon *{box-sizing:border-box}.cfgDarkTheme .cfgDownloadIcon :after,.cfgDarkTheme .cfgDownloadIcon :before{box-sizing:inherit}.cfgDarkTheme .cfgDownloadIcon circle,.cfgDarkTheme .cfgDownloadIcon path{stroke:#70baff;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgDarkTheme .cfgExpandableHeadingRow{box-sizing:border-box;-webkit-appearance:none;appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;align-items:stretch;display:flex;height:3.9em;outline:0;position:relative;width:100%}.cfgDarkTheme .cfgExpandableHeadingRow:after,.cfgDarkTheme .cfgExpandableHeadingRow:before{box-sizing:inherit}.cfgDarkTheme .cfgExpandableHeadingRow *{box-sizing:border-box}.cfgDarkTheme .cfgExpandableHeadingRow :after,.cfgDarkTheme .cfgExpandableHeadingRow :before{box-sizing:inherit}.cfgDarkTheme .cfgExpandableHeadingRow--expandable{cursor:pointer}.cfgDarkTheme .cfgExpandableHeadingRow__title{align-items:center;display:flex;flex:1 1 auto;font-size:1.5em;font-weight:500;justify-content:flex-start}.cfgDarkTheme .cfgExpandableHeadingRow__icon{align-items:center;display:flex;flex:0 0 5em;justify-content:center;padding:0 1.5em}.cfgDarkTheme .cfgErrorIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgErrorIcon:after,.cfgDarkTheme .cfgErrorIcon:before{box-sizing:inherit}.cfgDarkTheme .cfgErrorIcon *{box-sizing:border-box}.cfgDarkTheme .cfgErrorIcon :after,.cfgDarkTheme .cfgErrorIcon :before{box-sizing:inherit}.cfgDarkTheme .cfgErrorIcon circle,.cfgDarkTheme .cfgErrorIcon path{stroke:#e8836f;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgDarkTheme .cfgThumbnailImage{border-radius:.7em;display:inline-block;height:3em;width:3em}.cfgDarkTheme .cfgThumbnailPlaceholder{align-items:center;display:flex;flex:0 0 4.2em;justify-content:flex-start}.cfgDarkTheme .cfgFeatureItem{box-sizing:border-box;color:#d6d6d6}.cfgDarkTheme .cfgFeatureItem:after,.cfgDarkTheme .cfgFeatureItem:before{box-sizing:inherit}.cfgDarkTheme .cfgFeatureItem *{box-sizing:border-box}.cfgDarkTheme .cfgFeatureItem :after,.cfgDarkTheme .cfgFeatureItem :before{box-sizing:inherit}.cfgDarkTheme .cfgFeatureItem__dropdown{-webkit-appearance:none;appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;align-items:stretch;display:flex;height:3.9em;outline:0;position:relative;width:100%;cursor:pointer}.cfgDarkTheme .cfgFeatureItem--optional{margin-top:1em}.cfgDarkTheme .cfgFeatureItem__hiddenInput{left:-99999px;opacity:0;position:absolute;z-index:-1}.cfgDarkTheme .cfgFeatureItem__radio{border:.2em solid #5b5963;border-radius:50%}.cfgDarkTheme .cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgDarkTheme .cfgFeatureItem__checkbox{border:.2em solid #5b5963;border-radius:.3em}.cfgDarkTheme .cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__radio{box-shadow:0 0 0 .075em #333,0 0 0 .2em #d6d6d6}.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{border:.2em solid #fff;border-radius:50%}.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox{border:.2em solid #fff;border-radius:.3em}.cfgDarkTheme .cfgFeatureItem.cfgAdditionalProduct>.cfgExpandableHeadingRow>.cfgExpandableHeadingRow__title{font-weight:600}.cfgDarkTheme .cfgFeatureItem.cfgAdditionalProduct>.cfgFeatureItem__hr{border-bottom-color:#6a6a6a}.cfgDarkTheme .cfgFeatureItem.cfgAdditionalProduct .cfgFeatureItem:last-child .cfgFeatureItem__hr{margin-bottom:-.1em}.cfgDarkTheme .cfgFeatureItemOption__titleWrapper,.cfgDarkTheme .cfgFeatureItemOptional__titleWrapper{flex:1 1 auto;margin-left:1em}.cfgDarkTheme .cfgFeatureItemOption__title,.cfgDarkTheme .cfgFeatureItemOptional__title{font-size:1.5em}.cfgDarkTheme .cfgFeatureItemOption__price{font-weight:600;font-size:.75em;color:#999}.cfgDarkTheme .cfgOptionTree--subLevel .cfgFeatureItem__hr{display:none}.cfgDarkTheme .cfgFeatureItemOption{align-items:center;display:flex}.cfgDarkTheme .cfgFeatureItemOptional{align-items:center;display:flex;justify-content:center;margin-top:.5em}.cfgDarkTheme .cfgFeatureItemOptional__header{font-size:1.2em;font-weight:600;margin:0 0 .3em;padding:0;text-transform:uppercase}.cfgDarkTheme .cfgFormSelect,.cfgDarkTheme .cfgInput{border:.1em solid #6a6a6a;padding:.3em .4em;border-radius:.3em;color:inherit}.cfgDarkTheme .cfgFormSelect{cursor:pointer;position:relative}.cfgDarkTheme .cfgFormSelect select{-webkit-appearance:none;appearance:none;padding:0 1em 0 0;margin:0;width:100%;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;cursor:inherit;line-height:inherit;outline:none;border:none}.cfgDarkTheme .cfgFormSelect:after{position:absolute;right:.35em;top:50%;margin-top:-.55em;content:"";width:1em;height:1em;background-color:#6a6a6a;-webkit-clip-path:polygon(50% 80%,90% 40%,100% 50%,50% 100%,0 50%,10% 40%);clip-path:polygon(50% 80%,90% 40%,100% 50%,50% 100%,0 50%,10% 40%);justify-self:end}.cfgDarkTheme .cfgHr{box-sizing:border-box;border:0;border-bottom:.1em solid #5b5963;padding:0;margin:0}.cfgDarkTheme .cfgHr:after,.cfgDarkTheme .cfgHr:before{box-sizing:inherit}.cfgDarkTheme .cfgHr *{box-sizing:border-box}.cfgDarkTheme .cfgHr :after,.cfgDarkTheme .cfgHr :before{box-sizing:inherit}.cfgDarkTheme .cfgCenteredLoading{box-sizing:border-box;align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.cfgDarkTheme .cfgCenteredLoading:after,.cfgDarkTheme .cfgCenteredLoading:before{box-sizing:inherit}.cfgDarkTheme .cfgCenteredLoading *{box-sizing:border-box}.cfgDarkTheme .cfgCenteredLoading :after,.cfgDarkTheme .cfgCenteredLoading :before{box-sizing:inherit}.cfgDarkTheme .cfgOverlayLoading{box-sizing:border-box;align-items:center;background-color:#333;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}.cfgDarkTheme .cfgOverlayLoading:after,.cfgDarkTheme .cfgOverlayLoading:before{box-sizing:inherit}.cfgDarkTheme .cfgOverlayLoading *{box-sizing:border-box}.cfgDarkTheme .cfgOverlayLoading :after,.cfgDarkTheme .cfgOverlayLoading :before{box-sizing:inherit}.cfgDarkTheme .cfgOverlayLoading--clickThrough{background-color:transparent;pointer-events:none}.cfgDarkTheme .cfgOverlayLoading--clickThrough .cfgLoadingWithText{padding:2em 2em 1.8em;border-radius:.8em;background-color:#333;opacity:.8;border:.1em solid hsla(0,0%,100%,.15)}.cfgDarkTheme .cfgOverlayLoading--fullWindow{position:fixed;z-index:1001}.cfgDarkTheme .cfgLoadingWithText{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;text-align:center}.cfgDarkTheme .cfgLoadingWithText:after,.cfgDarkTheme .cfgLoadingWithText:before{box-sizing:inherit}.cfgDarkTheme .cfgLoadingWithText *{box-sizing:border-box}.cfgDarkTheme .cfgLoadingWithText :after,.cfgDarkTheme .cfgLoadingWithText :before{box-sizing:inherit}.cfgDarkTheme .cfgLoadingWithText__text{color:#fff;font-weight:600;margin-top:.5em;font-size:1.6em}.cfgDarkTheme .cfgLoading{box-sizing:border-box;animation:rotate 1.1s linear 0s infinite;border-radius:100%;border:.5em solid hsla(0,0%,100%,.15);border-bottom-color:#fff;display:inline-block;height:3em;width:3em}.cfgDarkTheme .cfgLoading:after,.cfgDarkTheme .cfgLoading:before{box-sizing:inherit}.cfgDarkTheme .cfgLoading *{box-sizing:border-box}.cfgDarkTheme .cfgLoading :after,.cfgDarkTheme .cfgLoading :before{box-sizing:inherit}.cfgDarkTheme .cfgLoading--small{border-width:.4em;height:2em;width:2em}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.cfgDarkTheme .cfgOptionTree{box-sizing:border-box;list-style:none;margin:0;padding:0}.cfgDarkTheme .cfgOptionTree:after,.cfgDarkTheme .cfgOptionTree:before{box-sizing:inherit}.cfgDarkTheme .cfgOptionTree *{box-sizing:border-box}.cfgDarkTheme .cfgOptionTree :after,.cfgDarkTheme .cfgOptionTree :before{box-sizing:inherit}.cfgDarkTheme .cfgOptionTree--topLevel{padding-left:1.7em}.cfgDarkTheme .cfgOptionTree--indent{margin-left:3.2em}.cfgDarkTheme .cfgOptionTree--compThumb{margin-left:4.2em}.cfgDarkTheme .cfgProductInfo{box-sizing:border-box;color:#d6d6d6;display:flex}.cfgDarkTheme .cfgProductInfo:after,.cfgDarkTheme .cfgProductInfo:before{box-sizing:inherit}.cfgDarkTheme .cfgProductInfo *{box-sizing:border-box}.cfgDarkTheme .cfgProductInfo :after,.cfgDarkTheme .cfgProductInfo :before{box-sizing:inherit}.cfgDarkTheme .cfgProductInfo__left{flex:1 1 auto;min-width:0;overflow:hidden}.cfgDarkTheme .cfgProductInfo__right{align-items:flex-end;display:flex;flex-direction:column;flex:1 0 auto;margin-left:1em;max-width:.333333333;min-width:0}.cfgDarkTheme .cfgProductInfo__name{display:block;font-size:1.6em;font-weight:600;line-height:1.33;margin:0}.cfgDarkTheme .cfgProductInfo__number{font-size:1.3em;font-weight:400;line-height:1.38;margin:0}.cfgDarkTheme .cfgProductInfo__taskbar{display:flex}.cfgDarkTheme .cfgRangeView__inputs{display:flex;align-items:center}.cfgDarkTheme .cfgRangeView__number-input{font-size:1.5em;flex-grow:1;text-align:right}.cfgDarkTheme .cfgRangeView__unit-label{font-size:1.5em;margin-left:.3em}.cfgDarkTheme .cfgRangeView__slider-input.cfgSlider{margin-left:1em;flex-grow:3}.cfgDarkTheme .cfgRangeView__error{display:flex;align-items:center;margin-top:1em;font-size:1.5em;color:#e8836f}.cfgDarkTheme .cfgRangeView__error .cfgErrorIcon{padding-right:.25em;width:1.25em;height:1em}.cfgDarkTheme .cfgSlider{box-sizing:border-box;flex:1;margin:0;padding:0;min-height:2.8em;background:transparent;font:inherit}.cfgDarkTheme .cfgSlider:after,.cfgDarkTheme .cfgSlider:before{box-sizing:inherit}.cfgDarkTheme .cfgSlider *{box-sizing:border-box}.cfgDarkTheme .cfgSlider :after,.cfgDarkTheme .cfgSlider :before{box-sizing:inherit}.cfgDarkTheme .cfgSlider,.cfgDarkTheme .cfgSlider::-webkit-slider-thumb{-webkit-appearance:none}.cfgDarkTheme .cfgSlider::-webkit-slider-runnable-track{box-sizing:border-box;border:none;height:.2em;background:#adadad}.cfgDarkTheme .cfgSlider::-moz-range-track{box-sizing:border-box;border:none;height:.2em;background:#adadad}.cfgDarkTheme .cfgSlider::-ms-track{box-sizing:border-box;border:none;height:.2em;background:#adadad}.cfgDarkTheme .cfgSlider::-webkit-slider-thumb{margin-top:-1.3em;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#333;box-shadow:0 .15em .45em .05em #adadad}.cfgDarkTheme .cfgSlider::-moz-range-thumb{box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#333;box-shadow:0 .15em .45em .05em #adadad}.cfgDarkTheme .cfgSlider::-ms-thumb{margin-top:0;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#333;box-shadow:0 .15em .45em .05em #adadad}.cfgDarkTheme .cfgSlider::-ms-tooltip{display:none}.cfgDarkTheme .cfgTaskList ul{list-style-type:none;padding:0;margin:1em 0 0;border-bottom:.1em solid #5b5963}.cfgDarkTheme .cfgTaskList__item{padding:0 1.5em 0 1.7em;margin-bottom:1em;display:flex;align-items:center}.cfgDarkTheme .cfgTaskList__preview{border:.1em solid #5b5963;border-radius:10%;width:4.8em;height:4.8em;flex-shrink:0}.cfgDarkTheme .cfgTaskList__preview img{object-fit:cover;position:relative;left:.38em;top:.38em;width:3.84em;height:3.84em}.cfgDarkTheme .cfgTaskList__icon{flex-shrink:0;width:4em;height:2em;padding-left:1em;padding-right:1em}.cfgDarkTheme .cfgTaskList__icon .cfgLoadingSizer{font-size:.75em}.cfgDarkTheme .cfgTaskList__status{flex-grow:1;font-size:1.5em}.cfgDarkTheme .cfgTaskList__abort{color:inherit;width:2em;height:2em;flex-shrink:0}.cfgDarkTheme .cfgTaskList__abort,.cfgDarkTheme .cfgTaskList__restart{-webkit-appearance:none;appearance:none;font-family:inherit;font-size:inherit;background:none;border:none;padding:0;cursor:pointer}.cfgDarkTheme .cfgTaskList__restart{color:inherit;text-decoration:underline;color:#70baff}
|
|
1
|
+
.cfgMl1{margin-left:1em}.cfgMt1{margin-top:1em}.cfgMb1{margin-bottom:1em}.cfgTextOverflow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a{color:#005cb3}.cfgButton{box-sizing:border-box;display:inline-block;background-color:transparent;color:#333;border-radius:.3em;border:.1em solid #bababa;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgButton:after,.cfgButton:before{box-sizing:inherit}.cfgButton *{box-sizing:border-box}.cfgButton :after,.cfgButton :before{box-sizing:inherit}.cfgButton:focus{box-shadow:0 0 0 .075em #fff,0 0 0 .2em #333}.cfgButton[disabled]{box-sizing:border-box;display:inline-block;background-color:transparent;color:grey;border-radius:.3em;border:.1em solid #c8c7cc;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgButton[disabled]:after,.cfgButton[disabled]:before{box-sizing:inherit}.cfgButton[disabled] *{box-sizing:border-box}.cfgButton[disabled] :after,.cfgButton[disabled] :before{box-sizing:inherit}.cfgButton[disabled]:focus{box-shadow:0 0 0 .075em #fff,0 0 0 .2em #333}.cfgButtonRow{box-sizing:border-box}.cfgButtonRow:after,.cfgButtonRow:before{box-sizing:inherit}.cfgButtonRow *{box-sizing:border-box}.cfgButtonRow :after,.cfgButtonRow :before{box-sizing:inherit}.cfgButtonRow__button:nth-child(n+2){margin-left:1em}.cfgCheckmark{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgCheckmark:after,.cfgCheckmark:before{box-sizing:inherit}.cfgCheckmark *{box-sizing:border-box}.cfgCheckmark :after,.cfgCheckmark :before{box-sizing:inherit}.cfgCheckmark__container{transition:transform .4s;transform:translateY(17px)}.cfgCheckmark__line{stroke:#000;stroke-linecap:round;stroke-width:12;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgCheckmark__lineLeft{stroke:#000;transform:rotate(40deg) translateY(24px) translateX(18px)}.cfgCheckmark__lineRight{stroke:#000;transform:rotate(-50deg) translateY(-2px) translateX(-3px)}.cfgCheckmark__border{border:.2em solid #c8c7cc;border-radius:.3em}.cfgCheckmark__border,.cfgCheckmark__border--active{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgCheckmark__border--active{border:.2em solid #000;border-radius:.3em}.cfgChevron{box-sizing:border-box;display:inline-block;width:100%}.cfgChevron:after,.cfgChevron:before{box-sizing:inherit}.cfgChevron *{box-sizing:border-box}.cfgChevron :after,.cfgChevron :before{box-sizing:inherit}.cfgChevron__container{transition:transform .4s}.cfgChevron__container--down{transform:translateY(13px)}.cfgChevron__container--up{transform:translateY(-13px)}.cfgChevron__line{stroke-linecap:round;stroke-width:10;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgChevron__lineLeft--active,.cfgChevron__lineRight--active{stroke:#000}.cfgChevron__lineLeft--passive,.cfgChevron__lineRight--passive{stroke:#bababa}.cfgChevron__lineLeft--down{transform:rotate(40deg)}.cfgChevron__lineLeft--up,.cfgChevron__lineRight--down{transform:rotate(-40deg)}.cfgChevron__lineRight--up{transform:rotate(40deg)}.cfgCircleXmarkIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgCircleXmarkIcon:after,.cfgCircleXmarkIcon:before{box-sizing:inherit}.cfgCircleXmarkIcon *{box-sizing:border-box}.cfgCircleXmarkIcon :after,.cfgCircleXmarkIcon :before{box-sizing:inherit}.cfgCircleXmarkIcon circle,.cfgCircleXmarkIcon path{stroke:#7c7986;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgConfiguratorWrapper{box-sizing:border-box;color:#333;display:flex;height:85vh;flex-direction:column}.cfgConfiguratorWrapper:after,.cfgConfiguratorWrapper:before{box-sizing:inherit}.cfgConfiguratorWrapper *{box-sizing:border-box}.cfgConfiguratorWrapper :after,.cfgConfiguratorWrapper :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgConfiguratorWrapper{flex-direction:row}}.cfgConfiguratorWrapper .cfgReset,.cfgConfiguratorWrapper .cfgShare,.cfgConfiguratorWrapper .cfgTaskStart{margin-top:.5em;font-size:1.2em;font-weight:500}.cfgConfiguratorWrapper .cfgReset .cfgFormSelect,.cfgConfiguratorWrapper .cfgReset .cfgInput,.cfgConfiguratorWrapper .cfgReset button,.cfgConfiguratorWrapper .cfgShare .cfgFormSelect,.cfgConfiguratorWrapper .cfgShare .cfgInput,.cfgConfiguratorWrapper .cfgShare button,.cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect,.cfgConfiguratorWrapper .cfgTaskStart .cfgInput,.cfgConfiguratorWrapper .cfgTaskStart button{padding:.5em}.cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect:after{right:.5em}.cfgConfiguratorWrapper .cfgReset button,.cfgConfiguratorWrapper .cfgShare .cfgInput{-webkit-appearance:none;appearance:none;margin:0;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;cursor:inherit;line-height:inherit;outline:none}.cfgConfiguratorWrapper .cfgShare__error{display:inline-block}.cfgConfiguratorWrapper .cfgShare__error .cfgErrorIcon{padding-left:.25em;margin-right:.75em;width:1.25em;height:1em}.cfgConfiguratorWrapper .cfgShare__grayed{color:grey}.cfgCanvasWrapper{box-sizing:border-box;position:relative;height:50rem;-webkit-user-select:none;user-select:none;flex:1 1 auto;overflow:hidden}.cfgCanvasWrapper:after,.cfgCanvasWrapper:before{box-sizing:inherit}.cfgCanvasWrapper *{box-sizing:border-box}.cfgCanvasWrapper :after,.cfgCanvasWrapper :before{box-sizing:inherit}.cfgCanvasWrapper canvas{outline:none}@media screen and (orientation:landscape){.cfgCanvasWrapper{height:100%;flex:0 1 60%}}.cfgConfigurator{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:10px;color:#333;min-width:0;height:100%;display:flex;flex-direction:column;flex:0 0 50%;overflow:auto}.cfgConfigurator:after,.cfgConfigurator:before{box-sizing:inherit}.cfgConfigurator *{box-sizing:border-box}.cfgConfigurator :after,.cfgConfigurator :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgConfigurator{height:100%;flex:0 1 40%}}.cfgConfigurator>.cfgConfiguratorTree>.cfgMiscFiles,.cfgConfigurator>.cfgConfiguratorTree>.cfgNotes{padding-left:1.7em}.cfgConfiguratorHeader{border-bottom:.1em solid #c8c7cc;padding:1.7em 1.7em 1.9em;position:relative}.cfgConfiguratorHeader__actions{margin-top:1em}.cfgConfiguratorTree{padding-top:.5em;overflow-y:auto;-webkit-overflow-scrolling:touch}.cfgDownloadIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDownloadIcon:after,.cfgDownloadIcon:before{box-sizing:inherit}.cfgDownloadIcon *{box-sizing:border-box}.cfgDownloadIcon :after,.cfgDownloadIcon :before{box-sizing:inherit}.cfgDownloadIcon circle,.cfgDownloadIcon path{stroke:#005cb3;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgExpandableHeadingRow{box-sizing:border-box;-webkit-appearance:none;appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;align-items:stretch;display:flex;height:3.9em;outline:0;position:relative;width:100%}.cfgExpandableHeadingRow:after,.cfgExpandableHeadingRow:before{box-sizing:inherit}.cfgExpandableHeadingRow *{box-sizing:border-box}.cfgExpandableHeadingRow :after,.cfgExpandableHeadingRow :before{box-sizing:inherit}.cfgExpandableHeadingRow--expandable{cursor:pointer}.cfgExpandableHeadingRow__title{align-items:center;display:flex;flex:1 1 auto;font-size:1.5em;font-weight:500;justify-content:flex-start;overflow:hidden}.cfgExpandableHeadingRow__icon{align-items:center;display:flex;flex:0 0 5em;justify-content:center;padding:0 1.5em}.cfgErrorIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgErrorIcon:after,.cfgErrorIcon:before{box-sizing:inherit}.cfgErrorIcon *{box-sizing:border-box}.cfgErrorIcon :after,.cfgErrorIcon :before{box-sizing:inherit}.cfgErrorIcon circle,.cfgErrorIcon path{stroke:#b4361d;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgThumbnailImage{border-radius:.7em;display:inline-block;height:3em;width:3em}.cfgThumbnailPlaceholder{align-items:center;display:flex;flex:0 0 4.2em;justify-content:flex-start}.cfgFeatureItem{box-sizing:border-box;color:#333}.cfgFeatureItem:after,.cfgFeatureItem:before{box-sizing:inherit}.cfgFeatureItem *{box-sizing:border-box}.cfgFeatureItem :after,.cfgFeatureItem :before{box-sizing:inherit}.cfgFeatureItem__dropdown{-webkit-appearance:none;appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;align-items:stretch;display:flex;height:3.9em;outline:0;position:relative;width:100%;cursor:pointer}.cfgFeatureItem--optional{margin-top:1em}.cfgFeatureItem__hiddenInput{left:-99999px;opacity:0;position:absolute;z-index:-1}.cfgFeatureItem__radio{border:.2em solid #c8c7cc;border-radius:50%}.cfgFeatureItem__checkbox,.cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgFeatureItem__checkbox{border:.2em solid #c8c7cc;border-radius:.3em}.cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__checkbox,.cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__radio{box-shadow:0 0 0 .075em #fff,0 0 0 .2em #333}.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{border:.2em solid #000;border-radius:50%}.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox,.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox{border:.2em solid #000;border-radius:.3em}.cfgFeatureItem.cfgAdditionalProduct>.cfgExpandableHeadingRow>.cfgExpandableHeadingRow__title{font-weight:600}.cfgFeatureItem.cfgAdditionalProduct>.cfgFeatureItem__hr{border-bottom-color:#bababa}.cfgFeatureItem.cfgAdditionalProduct .cfgFeatureItem:last-child .cfgFeatureItem__hr{margin-bottom:-.1em}.cfgFeatureItem>.cfgMiscFiles,.cfgFeatureItem>.cfgNotes{margin-left:3.2em}.cfgFeatureItemOption__titleWrapper,.cfgFeatureItemOptional__titleWrapper{flex:1 1 auto;margin-left:1em}.cfgFeatureItemOption__title,.cfgFeatureItemOptional__title{font-size:1.5em}.cfgFeatureItemOption__price{font-weight:600;font-size:.75em;color:grey}.cfgOptionTree--subLevel .cfgFeatureItem__hr{display:none}.cfgFeatureItemOption,.cfgFeatureItemOptional{align-items:center;display:flex}.cfgFeatureItemOptional{justify-content:center;margin-top:.5em}.cfgFeatureItemOptional__header{font-size:1.2em;font-weight:600;margin:0 0 .3em;padding:0;text-transform:uppercase}.cfgFormSelect,.cfgInput{border:.1em solid #bababa;padding:.3em .4em;border-radius:.3em;color:inherit}.cfgFormSelect{cursor:pointer;position:relative}.cfgFormSelect select{-webkit-appearance:none;appearance:none;padding:0 1em 0 0;margin:0;width:100%;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;cursor:inherit;line-height:inherit;outline:none;border:none}.cfgFormSelect:after{position:absolute;right:.35em;top:50%;margin-top:-.55em;content:"";width:1em;height:1em;background-color:#bababa;-webkit-clip-path:polygon(50% 80%,90% 40%,100% 50%,50% 100%,0 50%,10% 40%);clip-path:polygon(50% 80%,90% 40%,100% 50%,50% 100%,0 50%,10% 40%);justify-self:end}.cfgHr{box-sizing:border-box;border:0;border-bottom:.1em solid #c8c7cc;padding:0;margin:0}.cfgHr:after,.cfgHr:before{box-sizing:inherit}.cfgHr *{box-sizing:border-box}.cfgHr :after,.cfgHr :before{box-sizing:inherit}.cfgCenteredLoading{box-sizing:border-box;align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.cfgCenteredLoading:after,.cfgCenteredLoading:before{box-sizing:inherit}.cfgCenteredLoading *{box-sizing:border-box}.cfgCenteredLoading :after,.cfgCenteredLoading :before{box-sizing:inherit}.cfgOverlayLoading{box-sizing:border-box;align-items:center;background-color:#fff;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}.cfgOverlayLoading:after,.cfgOverlayLoading:before{box-sizing:inherit}.cfgOverlayLoading *{box-sizing:border-box}.cfgOverlayLoading :after,.cfgOverlayLoading :before{box-sizing:inherit}.cfgOverlayLoading--clickThrough{background-color:transparent;pointer-events:none}.cfgOverlayLoading--clickThrough .cfgLoadingWithText{padding:2em 2em 1.8em;border-radius:.8em;background-color:#fff;opacity:.8;border:.1em solid rgba(0,0,0,.15)}.cfgOverlayLoading--fullWindow{position:fixed;z-index:1001}.cfgLoadingWithText{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;text-align:center}.cfgLoadingWithText:after,.cfgLoadingWithText:before{box-sizing:inherit}.cfgLoadingWithText *{box-sizing:border-box}.cfgLoadingWithText :after,.cfgLoadingWithText :before{box-sizing:inherit}.cfgLoadingWithText__text{color:#000;font-weight:600;margin-top:.5em;font-size:1.6em}.cfgLoading{box-sizing:border-box;animation:rotate 1.1s linear 0s infinite;border-radius:100%;border:.5em solid rgba(0,0,0,.15);border-bottom-color:#000;display:inline-block;height:3em;width:3em}.cfgLoading:after,.cfgLoading:before{box-sizing:inherit}.cfgLoading *{box-sizing:border-box}.cfgLoading :after,.cfgLoading :before{box-sizing:inherit}.cfgLoading--small{border-width:.4em;height:2em;width:2em}.cfgMiscFiles,.cfgNotes{list-style:none;margin:0;padding:0}.cfgMiscFiles__item{display:flex;align-items:center;margin-top:1em;margin-bottom:1em}.cfgMiscFiles__link{display:block;color:#005cb3;font-size:1.4em;font-weight:600}.cfgNotes__item:not(:last-child){margin-bottom:-.5em}.cfgNotes__body{white-space:pre-wrap;overflow:hidden;color:grey;font-size:1.5em;margin-bottom:1em;margin-right:3em}.cfgOptionTree{box-sizing:border-box;list-style:none;margin:0;padding:0}.cfgOptionTree:after,.cfgOptionTree:before{box-sizing:inherit}.cfgOptionTree *{box-sizing:border-box}.cfgOptionTree :after,.cfgOptionTree :before{box-sizing:inherit}.cfgOptionTree--topLevel{padding-left:1.7em}.cfgOptionTree--indent{margin-left:3.2em}.cfgOptionTree--compThumb{margin-left:4.2em}.cfgProductInfo{box-sizing:border-box;color:#333;display:flex}.cfgProductInfo:after,.cfgProductInfo:before{box-sizing:inherit}.cfgProductInfo *{box-sizing:border-box}.cfgProductInfo :after,.cfgProductInfo :before{box-sizing:inherit}.cfgProductInfo__left{flex:1 1 auto;min-width:0;overflow:hidden}.cfgProductInfo__right{align-items:flex-end;display:flex;flex-direction:column;flex:1 0 auto;margin-left:1em;max-width:.333333333;min-width:0}.cfgProductInfo__name{display:block;font-size:1.6em;font-weight:600;line-height:1.33;margin:0}.cfgProductInfo__number{font-size:1.3em;font-weight:400;line-height:1.38;margin:0}.cfgProductInfo__taskbar{display:flex}.cfgRangeView__inputs{display:flex;align-items:center}.cfgRangeView__number-input{font-size:1.5em;flex-grow:1;text-align:right}.cfgRangeView__unit-label{font-size:1.5em;margin-left:.3em}.cfgRangeView__slider-input.cfgSlider{margin-left:1em;flex-grow:3}.cfgRangeView__error{display:flex;align-items:center;margin-top:1em;font-size:1.5em;color:#b4361d}.cfgRangeView__error .cfgErrorIcon{padding-right:.25em;width:1.25em;height:1em}.cfgSlider{box-sizing:border-box;flex:1;margin:0;padding:0;min-height:2.8em;background:transparent;font:inherit}.cfgSlider:after,.cfgSlider:before{box-sizing:inherit}.cfgSlider *{box-sizing:border-box}.cfgSlider :after,.cfgSlider :before{box-sizing:inherit}.cfgSlider,.cfgSlider::-webkit-slider-thumb{-webkit-appearance:none}.cfgSlider::-webkit-slider-runnable-track{box-sizing:border-box;border:none;height:.2em;background:#666}.cfgSlider::-moz-range-track{box-sizing:border-box;border:none;height:.2em;background:#666}.cfgSlider::-ms-track{box-sizing:border-box;border:none;height:.2em;background:#666}.cfgSlider::-webkit-slider-thumb{margin-top:-1.3em;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#fff;box-shadow:0 .15em .45em .05em #666}.cfgSlider::-moz-range-thumb{box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#fff;box-shadow:0 .15em .45em .05em #666}.cfgSlider::-ms-thumb{margin-top:0;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#fff;box-shadow:0 .15em .45em .05em #666}.cfgSlider::-ms-tooltip{display:none}.cfgTaskList ul{list-style-type:none;padding:0;margin:1em 0 0;border-bottom:.1em solid #c8c7cc}.cfgTaskList__item{padding:0 1.5em 0 1.7em;margin-bottom:1em;display:flex;align-items:center}.cfgTaskList__preview{border:.1em solid #c8c7cc;border-radius:10%;width:4.8em;height:4.8em;flex-shrink:0}.cfgTaskList__preview img{object-fit:cover;position:relative;left:.38em;top:.38em;width:3.84em;height:3.84em}.cfgTaskList__icon{flex-shrink:0;width:4em;height:2em;padding-left:1em;padding-right:1em}.cfgTaskList__icon .cfgLoadingSizer{font-size:.75em}.cfgTaskList__status{flex-grow:1;font-size:1.5em}.cfgTaskList__abort{color:inherit;width:2em;height:2em;flex-shrink:0}.cfgTaskList__abort,.cfgTaskList__restart{-webkit-appearance:none;appearance:none;font-family:inherit;font-size:inherit;background:none;border:none;padding:0;cursor:pointer}.cfgTaskList__restart{color:inherit;text-decoration:underline;color:#005cb3}.cfgDarkTheme a{color:#70baff}.cfgDarkTheme .cfgButton{box-sizing:border-box;display:inline-block;background-color:transparent;color:#d6d6d6;border-radius:.3em;border:.1em solid #6a6a6a;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgDarkTheme .cfgButton:after,.cfgDarkTheme .cfgButton:before{box-sizing:inherit}.cfgDarkTheme .cfgButton *{box-sizing:border-box}.cfgDarkTheme .cfgButton :after,.cfgDarkTheme .cfgButton :before{box-sizing:inherit}.cfgDarkTheme .cfgButton:focus{box-shadow:0 0 0 .075em #333,0 0 0 .2em #d6d6d6}.cfgDarkTheme .cfgButton[disabled]{box-sizing:border-box;display:inline-block;background-color:transparent;color:#999;border-radius:.3em;border:.1em solid #5b5963;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgDarkTheme .cfgButton[disabled]:after,.cfgDarkTheme .cfgButton[disabled]:before{box-sizing:inherit}.cfgDarkTheme .cfgButton[disabled] *{box-sizing:border-box}.cfgDarkTheme .cfgButton[disabled] :after,.cfgDarkTheme .cfgButton[disabled] :before{box-sizing:inherit}.cfgDarkTheme .cfgButton[disabled]:focus{box-shadow:0 0 0 .075em #333,0 0 0 .2em #d6d6d6}.cfgDarkTheme .cfgButtonRow{box-sizing:border-box}.cfgDarkTheme .cfgButtonRow:after,.cfgDarkTheme .cfgButtonRow:before{box-sizing:inherit}.cfgDarkTheme .cfgButtonRow *{box-sizing:border-box}.cfgDarkTheme .cfgButtonRow :after,.cfgDarkTheme .cfgButtonRow :before{box-sizing:inherit}.cfgDarkTheme .cfgButtonRow__button:nth-child(n+2){margin-left:1em}.cfgDarkTheme .cfgCheckmark{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgCheckmark:after,.cfgDarkTheme .cfgCheckmark:before{box-sizing:inherit}.cfgDarkTheme .cfgCheckmark *{box-sizing:border-box}.cfgDarkTheme .cfgCheckmark :after,.cfgDarkTheme .cfgCheckmark :before{box-sizing:inherit}.cfgDarkTheme .cfgCheckmark__container{transition:transform .4s;transform:translateY(17px)}.cfgDarkTheme .cfgCheckmark__line{stroke:#fff;stroke-linecap:round;stroke-width:12;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgDarkTheme .cfgCheckmark__lineLeft{stroke:#fff;transform:rotate(40deg) translateY(24px) translateX(18px)}.cfgDarkTheme .cfgCheckmark__lineRight{stroke:#fff;transform:rotate(-50deg) translateY(-2px) translateX(-3px)}.cfgDarkTheme .cfgCheckmark__border{border:.2em solid #5b5963;border-radius:.3em}.cfgDarkTheme .cfgCheckmark__border,.cfgDarkTheme .cfgCheckmark__border--active{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgDarkTheme .cfgCheckmark__border--active{border:.2em solid #fff;border-radius:.3em}.cfgDarkTheme .cfgChevron{box-sizing:border-box;display:inline-block;width:100%}.cfgDarkTheme .cfgChevron:after,.cfgDarkTheme .cfgChevron:before{box-sizing:inherit}.cfgDarkTheme .cfgChevron *{box-sizing:border-box}.cfgDarkTheme .cfgChevron :after,.cfgDarkTheme .cfgChevron :before{box-sizing:inherit}.cfgDarkTheme .cfgChevron__container{transition:transform .4s}.cfgDarkTheme .cfgChevron__container--down{transform:translateY(13px)}.cfgDarkTheme .cfgChevron__container--up{transform:translateY(-13px)}.cfgDarkTheme .cfgChevron__line{stroke-linecap:round;stroke-width:10;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgDarkTheme .cfgChevron__lineLeft--active,.cfgDarkTheme .cfgChevron__lineRight--active{stroke:#fff}.cfgDarkTheme .cfgChevron__lineLeft--passive,.cfgDarkTheme .cfgChevron__lineRight--passive{stroke:#6a6a6a}.cfgDarkTheme .cfgChevron__lineLeft--down{transform:rotate(40deg)}.cfgDarkTheme .cfgChevron__lineLeft--up,.cfgDarkTheme .cfgChevron__lineRight--down{transform:rotate(-40deg)}.cfgDarkTheme .cfgChevron__lineRight--up{transform:rotate(40deg)}.cfgDarkTheme .cfgCircleXmarkIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgCircleXmarkIcon:after,.cfgDarkTheme .cfgCircleXmarkIcon:before{box-sizing:inherit}.cfgDarkTheme .cfgCircleXmarkIcon *{box-sizing:border-box}.cfgDarkTheme .cfgCircleXmarkIcon :after,.cfgDarkTheme .cfgCircleXmarkIcon :before{box-sizing:inherit}.cfgDarkTheme .cfgCircleXmarkIcon circle,.cfgDarkTheme .cfgCircleXmarkIcon path{stroke:#96949e;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgDarkTheme .cfgConfiguratorWrapper{box-sizing:border-box;color:#d6d6d6;display:flex;height:85vh;flex-direction:column}.cfgDarkTheme .cfgConfiguratorWrapper:after,.cfgDarkTheme .cfgConfiguratorWrapper:before{box-sizing:inherit}.cfgDarkTheme .cfgConfiguratorWrapper *{box-sizing:border-box}.cfgDarkTheme .cfgConfiguratorWrapper :after,.cfgDarkTheme .cfgConfiguratorWrapper :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgDarkTheme .cfgConfiguratorWrapper{flex-direction:row}}.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart{margin-top:.5em;font-size:1.2em;font-weight:500}.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset .cfgFormSelect,.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset .cfgInput,.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset button,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare .cfgFormSelect,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare .cfgInput,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare button,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart .cfgInput,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart button{padding:.5em}.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect:after{right:.5em}.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset button,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare .cfgInput{-webkit-appearance:none;appearance:none;margin:0;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;cursor:inherit;line-height:inherit;outline:none}.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare__error{display:inline-block}.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare__error .cfgErrorIcon{padding-left:.25em;margin-right:.75em;width:1.25em;height:1em}.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare__grayed{color:#999}.cfgDarkTheme .cfgCanvasWrapper{box-sizing:border-box;position:relative;height:50rem;-webkit-user-select:none;user-select:none;flex:1 1 auto;overflow:hidden}.cfgDarkTheme .cfgCanvasWrapper:after,.cfgDarkTheme .cfgCanvasWrapper:before{box-sizing:inherit}.cfgDarkTheme .cfgCanvasWrapper *{box-sizing:border-box}.cfgDarkTheme .cfgCanvasWrapper :after,.cfgDarkTheme .cfgCanvasWrapper :before{box-sizing:inherit}.cfgDarkTheme .cfgCanvasWrapper canvas{outline:none}@media screen and (orientation:landscape){.cfgDarkTheme .cfgCanvasWrapper{height:100%;flex:0 1 60%}}.cfgDarkTheme .cfgConfigurator{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:10px;color:#d6d6d6;min-width:0;height:100%;display:flex;flex-direction:column;flex:0 0 50%;overflow:auto}.cfgDarkTheme .cfgConfigurator:after,.cfgDarkTheme .cfgConfigurator:before{box-sizing:inherit}.cfgDarkTheme .cfgConfigurator *{box-sizing:border-box}.cfgDarkTheme .cfgConfigurator :after,.cfgDarkTheme .cfgConfigurator :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgDarkTheme .cfgConfigurator{height:100%;flex:0 1 40%}}.cfgDarkTheme .cfgConfigurator>.cfgConfiguratorTree>.cfgMiscFiles,.cfgDarkTheme .cfgConfigurator>.cfgConfiguratorTree>.cfgNotes{padding-left:1.7em}.cfgDarkTheme .cfgConfiguratorHeader{border-bottom:.1em solid #5b5963;padding:1.7em 1.7em 1.9em;position:relative}.cfgDarkTheme .cfgConfiguratorHeader__actions{margin-top:1em}.cfgDarkTheme .cfgConfiguratorTree{padding-top:.5em;overflow-y:auto;-webkit-overflow-scrolling:touch}.cfgDarkTheme .cfgDownloadIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgDownloadIcon:after,.cfgDarkTheme .cfgDownloadIcon:before{box-sizing:inherit}.cfgDarkTheme .cfgDownloadIcon *{box-sizing:border-box}.cfgDarkTheme .cfgDownloadIcon :after,.cfgDarkTheme .cfgDownloadIcon :before{box-sizing:inherit}.cfgDarkTheme .cfgDownloadIcon circle,.cfgDarkTheme .cfgDownloadIcon path{stroke:#70baff;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgDarkTheme .cfgExpandableHeadingRow{box-sizing:border-box;-webkit-appearance:none;appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;align-items:stretch;display:flex;height:3.9em;outline:0;position:relative;width:100%}.cfgDarkTheme .cfgExpandableHeadingRow:after,.cfgDarkTheme .cfgExpandableHeadingRow:before{box-sizing:inherit}.cfgDarkTheme .cfgExpandableHeadingRow *{box-sizing:border-box}.cfgDarkTheme .cfgExpandableHeadingRow :after,.cfgDarkTheme .cfgExpandableHeadingRow :before{box-sizing:inherit}.cfgDarkTheme .cfgExpandableHeadingRow--expandable{cursor:pointer}.cfgDarkTheme .cfgExpandableHeadingRow__title{align-items:center;display:flex;flex:1 1 auto;font-size:1.5em;font-weight:500;justify-content:flex-start;overflow:hidden}.cfgDarkTheme .cfgExpandableHeadingRow__icon{align-items:center;display:flex;flex:0 0 5em;justify-content:center;padding:0 1.5em}.cfgDarkTheme .cfgErrorIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgErrorIcon:after,.cfgDarkTheme .cfgErrorIcon:before{box-sizing:inherit}.cfgDarkTheme .cfgErrorIcon *{box-sizing:border-box}.cfgDarkTheme .cfgErrorIcon :after,.cfgDarkTheme .cfgErrorIcon :before{box-sizing:inherit}.cfgDarkTheme .cfgErrorIcon circle,.cfgDarkTheme .cfgErrorIcon path{stroke:#e8836f;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgDarkTheme .cfgThumbnailImage{border-radius:.7em;display:inline-block;height:3em;width:3em}.cfgDarkTheme .cfgThumbnailPlaceholder{align-items:center;display:flex;flex:0 0 4.2em;justify-content:flex-start}.cfgDarkTheme .cfgFeatureItem{box-sizing:border-box;color:#d6d6d6}.cfgDarkTheme .cfgFeatureItem:after,.cfgDarkTheme .cfgFeatureItem:before{box-sizing:inherit}.cfgDarkTheme .cfgFeatureItem *{box-sizing:border-box}.cfgDarkTheme .cfgFeatureItem :after,.cfgDarkTheme .cfgFeatureItem :before{box-sizing:inherit}.cfgDarkTheme .cfgFeatureItem__dropdown{-webkit-appearance:none;appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;align-items:stretch;display:flex;height:3.9em;outline:0;position:relative;width:100%;cursor:pointer}.cfgDarkTheme .cfgFeatureItem--optional{margin-top:1em}.cfgDarkTheme .cfgFeatureItem__hiddenInput{left:-99999px;opacity:0;position:absolute;z-index:-1}.cfgDarkTheme .cfgFeatureItem__radio{border:.2em solid #5b5963;border-radius:50%}.cfgDarkTheme .cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgDarkTheme .cfgFeatureItem__checkbox{border:.2em solid #5b5963;border-radius:.3em}.cfgDarkTheme .cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__radio{box-shadow:0 0 0 .075em #333,0 0 0 .2em #d6d6d6}.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{border:.2em solid #fff;border-radius:50%}.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox{border:.2em solid #fff;border-radius:.3em}.cfgDarkTheme .cfgFeatureItem.cfgAdditionalProduct>.cfgExpandableHeadingRow>.cfgExpandableHeadingRow__title{font-weight:600}.cfgDarkTheme .cfgFeatureItem.cfgAdditionalProduct>.cfgFeatureItem__hr{border-bottom-color:#6a6a6a}.cfgDarkTheme .cfgFeatureItem.cfgAdditionalProduct .cfgFeatureItem:last-child .cfgFeatureItem__hr{margin-bottom:-.1em}.cfgDarkTheme .cfgFeatureItem>.cfgMiscFiles,.cfgDarkTheme .cfgFeatureItem>.cfgNotes{margin-left:3.2em}.cfgDarkTheme .cfgFeatureItemOption__titleWrapper,.cfgDarkTheme .cfgFeatureItemOptional__titleWrapper{flex:1 1 auto;margin-left:1em}.cfgDarkTheme .cfgFeatureItemOption__title,.cfgDarkTheme .cfgFeatureItemOptional__title{font-size:1.5em}.cfgDarkTheme .cfgFeatureItemOption__price{font-weight:600;font-size:.75em;color:#999}.cfgDarkTheme .cfgOptionTree--subLevel .cfgFeatureItem__hr{display:none}.cfgDarkTheme .cfgFeatureItemOption{align-items:center;display:flex}.cfgDarkTheme .cfgFeatureItemOptional{align-items:center;display:flex;justify-content:center;margin-top:.5em}.cfgDarkTheme .cfgFeatureItemOptional__header{font-size:1.2em;font-weight:600;margin:0 0 .3em;padding:0;text-transform:uppercase}.cfgDarkTheme .cfgFormSelect,.cfgDarkTheme .cfgInput{border:.1em solid #6a6a6a;padding:.3em .4em;border-radius:.3em;color:inherit}.cfgDarkTheme .cfgFormSelect{cursor:pointer;position:relative}.cfgDarkTheme .cfgFormSelect select{-webkit-appearance:none;appearance:none;padding:0 1em 0 0;margin:0;width:100%;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;cursor:inherit;line-height:inherit;outline:none;border:none}.cfgDarkTheme .cfgFormSelect:after{position:absolute;right:.35em;top:50%;margin-top:-.55em;content:"";width:1em;height:1em;background-color:#6a6a6a;-webkit-clip-path:polygon(50% 80%,90% 40%,100% 50%,50% 100%,0 50%,10% 40%);clip-path:polygon(50% 80%,90% 40%,100% 50%,50% 100%,0 50%,10% 40%);justify-self:end}.cfgDarkTheme .cfgHr{box-sizing:border-box;border:0;border-bottom:.1em solid #5b5963;padding:0;margin:0}.cfgDarkTheme .cfgHr:after,.cfgDarkTheme .cfgHr:before{box-sizing:inherit}.cfgDarkTheme .cfgHr *{box-sizing:border-box}.cfgDarkTheme .cfgHr :after,.cfgDarkTheme .cfgHr :before{box-sizing:inherit}.cfgDarkTheme .cfgCenteredLoading{box-sizing:border-box;align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.cfgDarkTheme .cfgCenteredLoading:after,.cfgDarkTheme .cfgCenteredLoading:before{box-sizing:inherit}.cfgDarkTheme .cfgCenteredLoading *{box-sizing:border-box}.cfgDarkTheme .cfgCenteredLoading :after,.cfgDarkTheme .cfgCenteredLoading :before{box-sizing:inherit}.cfgDarkTheme .cfgOverlayLoading{box-sizing:border-box;align-items:center;background-color:#333;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}.cfgDarkTheme .cfgOverlayLoading:after,.cfgDarkTheme .cfgOverlayLoading:before{box-sizing:inherit}.cfgDarkTheme .cfgOverlayLoading *{box-sizing:border-box}.cfgDarkTheme .cfgOverlayLoading :after,.cfgDarkTheme .cfgOverlayLoading :before{box-sizing:inherit}.cfgDarkTheme .cfgOverlayLoading--clickThrough{background-color:transparent;pointer-events:none}.cfgDarkTheme .cfgOverlayLoading--clickThrough .cfgLoadingWithText{padding:2em 2em 1.8em;border-radius:.8em;background-color:#333;opacity:.8;border:.1em solid hsla(0,0%,100%,.15)}.cfgDarkTheme .cfgOverlayLoading--fullWindow{position:fixed;z-index:1001}.cfgDarkTheme .cfgLoadingWithText{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;text-align:center}.cfgDarkTheme .cfgLoadingWithText:after,.cfgDarkTheme .cfgLoadingWithText:before{box-sizing:inherit}.cfgDarkTheme .cfgLoadingWithText *{box-sizing:border-box}.cfgDarkTheme .cfgLoadingWithText :after,.cfgDarkTheme .cfgLoadingWithText :before{box-sizing:inherit}.cfgDarkTheme .cfgLoadingWithText__text{color:#fff;font-weight:600;margin-top:.5em;font-size:1.6em}.cfgDarkTheme .cfgLoading{box-sizing:border-box;animation:rotate 1.1s linear 0s infinite;border-radius:100%;border:.5em solid hsla(0,0%,100%,.15);border-bottom-color:#fff;display:inline-block;height:3em;width:3em}.cfgDarkTheme .cfgLoading:after,.cfgDarkTheme .cfgLoading:before{box-sizing:inherit}.cfgDarkTheme .cfgLoading *{box-sizing:border-box}.cfgDarkTheme .cfgLoading :after,.cfgDarkTheme .cfgLoading :before{box-sizing:inherit}.cfgDarkTheme .cfgLoading--small{border-width:.4em;height:2em;width:2em}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.cfgDarkTheme .cfgMiscFiles,.cfgDarkTheme .cfgNotes{list-style:none;margin:0;padding:0}.cfgDarkTheme .cfgMiscFiles__item{display:flex;align-items:center;margin-top:1em;margin-bottom:1em}.cfgDarkTheme .cfgMiscFiles__link{display:block;color:#70baff;font-size:1.4em;font-weight:600}.cfgDarkTheme .cfgNotes__item:not(:last-child){margin-bottom:-.5em}.cfgDarkTheme .cfgNotes__body{white-space:pre-wrap;overflow:hidden;color:#999;font-size:1.5em;margin-bottom:1em;margin-right:3em}.cfgDarkTheme .cfgOptionTree{box-sizing:border-box;list-style:none;margin:0;padding:0}.cfgDarkTheme .cfgOptionTree:after,.cfgDarkTheme .cfgOptionTree:before{box-sizing:inherit}.cfgDarkTheme .cfgOptionTree *{box-sizing:border-box}.cfgDarkTheme .cfgOptionTree :after,.cfgDarkTheme .cfgOptionTree :before{box-sizing:inherit}.cfgDarkTheme .cfgOptionTree--topLevel{padding-left:1.7em}.cfgDarkTheme .cfgOptionTree--indent{margin-left:3.2em}.cfgDarkTheme .cfgOptionTree--compThumb{margin-left:4.2em}.cfgDarkTheme .cfgProductInfo{box-sizing:border-box;color:#d6d6d6;display:flex}.cfgDarkTheme .cfgProductInfo:after,.cfgDarkTheme .cfgProductInfo:before{box-sizing:inherit}.cfgDarkTheme .cfgProductInfo *{box-sizing:border-box}.cfgDarkTheme .cfgProductInfo :after,.cfgDarkTheme .cfgProductInfo :before{box-sizing:inherit}.cfgDarkTheme .cfgProductInfo__left{flex:1 1 auto;min-width:0;overflow:hidden}.cfgDarkTheme .cfgProductInfo__right{align-items:flex-end;display:flex;flex-direction:column;flex:1 0 auto;margin-left:1em;max-width:.333333333;min-width:0}.cfgDarkTheme .cfgProductInfo__name{display:block;font-size:1.6em;font-weight:600;line-height:1.33;margin:0}.cfgDarkTheme .cfgProductInfo__number{font-size:1.3em;font-weight:400;line-height:1.38;margin:0}.cfgDarkTheme .cfgProductInfo__taskbar{display:flex}.cfgDarkTheme .cfgRangeView__inputs{display:flex;align-items:center}.cfgDarkTheme .cfgRangeView__number-input{font-size:1.5em;flex-grow:1;text-align:right}.cfgDarkTheme .cfgRangeView__unit-label{font-size:1.5em;margin-left:.3em}.cfgDarkTheme .cfgRangeView__slider-input.cfgSlider{margin-left:1em;flex-grow:3}.cfgDarkTheme .cfgRangeView__error{display:flex;align-items:center;margin-top:1em;font-size:1.5em;color:#e8836f}.cfgDarkTheme .cfgRangeView__error .cfgErrorIcon{padding-right:.25em;width:1.25em;height:1em}.cfgDarkTheme .cfgSlider{box-sizing:border-box;flex:1;margin:0;padding:0;min-height:2.8em;background:transparent;font:inherit}.cfgDarkTheme .cfgSlider:after,.cfgDarkTheme .cfgSlider:before{box-sizing:inherit}.cfgDarkTheme .cfgSlider *{box-sizing:border-box}.cfgDarkTheme .cfgSlider :after,.cfgDarkTheme .cfgSlider :before{box-sizing:inherit}.cfgDarkTheme .cfgSlider,.cfgDarkTheme .cfgSlider::-webkit-slider-thumb{-webkit-appearance:none}.cfgDarkTheme .cfgSlider::-webkit-slider-runnable-track{box-sizing:border-box;border:none;height:.2em;background:#adadad}.cfgDarkTheme .cfgSlider::-moz-range-track{box-sizing:border-box;border:none;height:.2em;background:#adadad}.cfgDarkTheme .cfgSlider::-ms-track{box-sizing:border-box;border:none;height:.2em;background:#adadad}.cfgDarkTheme .cfgSlider::-webkit-slider-thumb{margin-top:-1.3em;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#333;box-shadow:0 .15em .45em .05em #adadad}.cfgDarkTheme .cfgSlider::-moz-range-thumb{box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#333;box-shadow:0 .15em .45em .05em #adadad}.cfgDarkTheme .cfgSlider::-ms-thumb{margin-top:0;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#333;box-shadow:0 .15em .45em .05em #adadad}.cfgDarkTheme .cfgSlider::-ms-tooltip{display:none}.cfgDarkTheme .cfgTaskList ul{list-style-type:none;padding:0;margin:1em 0 0;border-bottom:.1em solid #5b5963}.cfgDarkTheme .cfgTaskList__item{padding:0 1.5em 0 1.7em;margin-bottom:1em;display:flex;align-items:center}.cfgDarkTheme .cfgTaskList__preview{border:.1em solid #5b5963;border-radius:10%;width:4.8em;height:4.8em;flex-shrink:0}.cfgDarkTheme .cfgTaskList__preview img{object-fit:cover;position:relative;left:.38em;top:.38em;width:3.84em;height:3.84em}.cfgDarkTheme .cfgTaskList__icon{flex-shrink:0;width:4em;height:2em;padding-left:1em;padding-right:1em}.cfgDarkTheme .cfgTaskList__icon .cfgLoadingSizer{font-size:.75em}.cfgDarkTheme .cfgTaskList__status{flex-grow:1;font-size:1.5em}.cfgDarkTheme .cfgTaskList__abort{color:inherit;width:2em;height:2em;flex-shrink:0}.cfgDarkTheme .cfgTaskList__abort,.cfgDarkTheme .cfgTaskList__restart{-webkit-appearance:none;appearance:none;font-family:inherit;font-size:inherit;background:none;border:none;padding:0;cursor:pointer}.cfgDarkTheme .cfgTaskList__restart{color:inherit;text-decoration:underline;color:#70baff}
|
package/dist/css/web-ui.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/scss/_utilities.scss","../../src/scss/web-ui.scss","../../src/scss/_themed.scss","../../src/scss/_button.scss","../../src/scss/_mixins.scss","../../src/scss/icons/_checkmark.scss","../../src/scss/icons/_chevron.scss","../../src/scss/icons/_circle-xmark-icon.scss","../../src/scss/_configurator.scss","../../src/scss/_variables.scss","../../src/scss/icons/_download-icon.scss","../../src/scss/_expandable.scss","../../src/scss/icons/_error-icon.scss","../../src/scss/_feature-item.scss","../../src/scss/_forms.scss","../../src/scss/_hr.scss","../../src/scss/_loading.scss","../../src/scss/_option-tree.scss","../../src/scss/_product-information.scss","../../src/scss/_range-view.scss","../../src/scss/_slider.scss","../../src/scss/_tasks.scss"],"names":[],"mappings":"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","file":"web-ui.css","sourcesContent":["/**\n * Web UI Utilities\n */\n\n.cfgMl1 {\n\tmargin-left: 1em;\n}\n\n.cfgMt1 {\n\tmargin-top: 1em;\n}\n\n.cfgMb1 {\n\tmargin-bottom: 1em;\n}\n\n.cfgTextOverflow {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n","/**\n* Web UI Styling\n*/\n\n@use \"themed\";\n\n@include themed.themed(themed.$lightTheme);\n\n.cfgDarkTheme {\n\t@include themed.themed(themed.$darkTheme);\n}\n","@use \"sass:map\";\n@use \"sass:color\";\n\n@use \"variables\" as v;\n\n// Components\n@use \"button\";\n@use \"forms\";\n\n@use \"configurator\";\n@use \"expandable\";\n@use \"feature-item\";\n@use \"hr\";\n@use \"loading\";\n@use \"option-tree\";\n@use \"product-information\";\n@use \"range-view\";\n@use \"slider\";\n@use \"tasks\";\n\n// Icons\n@use \"icons/checkmark\";\n@use \"icons/chevron\";\n@use \"icons/circle-xmark-icon\";\n@use \"icons/download-icon\";\n@use \"icons/error-icon\";\n\n// Utilities\n@use \"utilities\";\n\n/* Colors */\n\n$black: hsl(0, 0%, 0%) !default;\n$white: hsl(0, 0%, 100%) !default;\n$darkGrey: hsl(0, 0%, 15%) !default;\n\n/* Specific colors */\n\n$border: hsl(252, 5%, 79%) !default;\n$borderDark: hsl(0, 0%, 73%) !default;\n$icon: hsl(252, 5%, 50%) !default;\n$focusOutlineOuter: hsl(0, 0%, 13%) !default;\n$sliderTrack: #666 !default;\n$spinner2: hsla(0, 0%, 0%, 0.15);\n$grayText: hsl(0, 0%, 50%) !default;\n$text: hsl(0, 0%, 20%) !default;\n$link: hsl(209, 100%, 35%) !default;\n$error: hsl(10, 72%, 41%) !default;\n\n/* As convention we assume the default theme when naming colors,\n as attempts at generic naming often leads to confusion */\n$lightTheme: (\n\t\"black\": $black,\n\t\"border\": $border,\n\t\"borderDark\": $borderDark,\n\t\"checkButtonChecked\": $black,\n\t\"checkButtonUnchecked\": $border,\n\t\"chevronActive\": $black,\n\t\"chevronPassive\": $borderDark,\n\t\"divider\": $border,\n\t\"dividerDark\": $borderDark,\n\t\"error\": $error,\n\t\"focusOutlineInner\": $white,\n\t\"focusOutlineOuter\": $text,\n\t\"grayText\": $grayText,\n\t\"icon\": $icon,\n\t\"link\": $link,\n\t\"overlayBackground\": $white,\n\t\"sliderThumb\": $white,\n\t\"sliderThumbShadow\": $sliderTrack,\n\t\"sliderTrack\": $sliderTrack,\n\t\"spinner1\": $black,\n\t\"spinner2\": $spinner2,\n\t\"text\": $text,\n\t\"white\": $white,\n) !default;\n\n@function invertLightness($color) {\n\t@return color.change(\n\t\t$color,\n\t\t$lightness: 100 - color.lightness($color) * 0.8\n\t); // We scale with 80% to have a bit more contrast\n}\n\n@function invertLightnessList($list) {\n\t@each $key, $color in $list {\n\t\t$list: map.set($list, $key, invertLightness($color));\n\t}\n\t@return $list;\n}\n\n$darkTheme: invertLightnessList($lightTheme);\n\n$themes: (\n\t\"light\": $lightTheme,\n\t\"dark\": $darkTheme,\n);\n\n@mixin themed($ct, $baseFontSize: v.$baseFontSize, $overlayingZIndex: v.$overlayingZIndex) {\n\ta {\n\t\tcolor: map.get($ct, \"link\");\n\t}\n\n\t@include button.classes(\n\t\tmap.get($ct, \"text\"),\n\t\tmap.get($ct, \"borderDark\"),\n\t\tmap.get($ct, \"focusOutlineInner\"),\n\t\tmap.get($ct, \"focusOutlineOuter\"),\n\t\tmap.get($ct, \"grayText\"),\n\t\tmap.get($ct, \"border\")\n\t);\n\t@include checkmark.classes(\n\t\tmap.get($ct, \"checkButtonChecked\"),\n\t\tmap.get($ct, \"checkButtonUnchecked\")\n\t);\n\t@include chevron.classes(map.get($ct, \"chevronActive\"), map.get($ct, \"chevronPassive\"));\n\t@include circle-xmark-icon.classes(map.get($ct, \"icon\"));\n\t@include configurator.classes(\n\t\t$baseFontSize,\n\t\tmap.get($ct, \"text\"),\n\t\tmap.get($ct, \"grayText\"),\n\t\tmap.get($ct, \"divider\")\n\t);\n\t@include download-icon.classes(map.get($ct, \"link\"));\n\t@include expandable.classes;\n\t@include error-icon.classes(map.get($ct, \"error\"));\n\t@include feature-item.classes(\n\t\tmap.get($ct, \"text\"),\n\t\tmap.get($ct, \"grayText\"),\n\t\tmap.get($ct, \"checkButtonUnchecked\"),\n\t\tmap.get($ct, \"checkButtonChecked\"),\n\t\tmap.get($ct, \"focusOutlineInner\"),\n\t\tmap.get($ct, \"focusOutlineOuter\"),\n\t\tmap.get($ct, \"dividerDark\")\n\t);\n\t@include forms.classes(map.get($ct, \"borderDark\"));\n\t@include hr.classes(map.get($ct, \"divider\"));\n\t@include loading.classes(\n\t\tmap.get($ct, \"black\"),\n\t\tmap.get($ct, \"spinner1\"),\n\t\tmap.get($ct, \"spinner2\"),\n\t\tmap.get($ct, \"overlayBackground\"),\n\t\t$overlayingZIndex\n\t);\n\t@include option-tree.classes;\n\t@include product-information.classes(map.get($ct, \"text\"));\n\t@include range-view.classes(map.get($ct, \"error\"));\n\t@include slider.classes(\n\t\tmap.get($ct, \"sliderTrack\"),\n\t\tmap.get($ct, \"sliderThumb\"),\n\t\tmap.get($ct, \"sliderThumbShadow\")\n\t);\n\t@include tasks.classes(map.get($ct, \"border\"), map.get($ct, \"link\"));\n}\n","/**\n * Web UI Product information\n */\n@use \"mixins\";\n\n@mixin styles($textColor, $borderColor, $focusOutlineInnerColor, $focusOutlineOuterColor) {\n\t@include mixins.cfgRootStyles;\n\tdisplay: inline-block;\n\tbackground-color: transparent;\n\tcolor: $textColor;\n\tborder-radius: 0.3em;\n\tborder: 0.1em solid $borderColor;\n\tfont-size: 1.3em;\n\tfont-weight: 500;\n\toutline: none;\n\tpadding: 0.4em 0.8em;\n\n\t&:focus {\n\t\t@include mixins.focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor);\n\t}\n}\n\n@mixin classes(\n\t$textColor,\n\t$borderColor,\n\t$focusOutlineInnerColor,\n\t$focusOutlineOuterColor,\n\t$disabledTextColor,\n\t$disabledBorderColor\n) {\n\t.cfgButton {\n\t\t@include styles($textColor, $borderColor, $focusOutlineInnerColor, $focusOutlineOuterColor);\n\n\t\t&[disabled] {\n\t\t\t@include styles(\n\t\t\t\t$disabledTextColor,\n\t\t\t\t$disabledBorderColor,\n\t\t\t\t$focusOutlineInnerColor,\n\t\t\t\t$focusOutlineOuterColor\n\t\t\t);\n\t\t}\n\t}\n\n\t.cfgButtonRow {\n\t\t@include mixins.cfgRootStyles;\n\t\t&__button {\n\t\t\t&:nth-child(n + 2) {\n\t\t\t\tmargin-left: 1em;\n\t\t\t}\n\t\t}\n\t}\n}\n","@mixin noButtonLook {\n\tappearance: none;\n\tfont-family: inherit;\n\tfont-size: inherit;\n\tcolor: inherit;\n\tbackground: none;\n\tborder: none;\n\tpadding: 0;\n}\n\n@mixin focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor) {\n\tbox-shadow: 0 0 0 0.075em $focusOutlineInnerColor, 0 0 0 0.2em $focusOutlineOuterColor;\n}\n\n@mixin borderBox {\n\tbox-sizing: border-box;\n\t&:before,\n\t&:after {\n\t\tbox-sizing: inherit;\n\t}\n}\n\n@mixin cfgRootStyles {\n\t@include borderBox;\n\n\t* {\n\t\t@include borderBox;\n\t}\n}\n\n@mixin cfgDefaultFont {\n\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif,\n\t\t\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n@mixin cfgCheckAndRadio($color) {\n\talign-items: center;\n\tborder: 0.2em solid $color;\n\tdisplay: flex;\n\tflex: 0 0 auto;\n\theight: 2.2em;\n\tjustify-content: center;\n\tpointer-events: none;\n\tuser-select: none;\n\twidth: 2.2em;\n}\n\n@mixin cfgCheckbox($color) {\n\t@include cfgCheckAndRadio($color);\n\tborder-radius: 0.3em;\n}\n\n@mixin cfgRadio($color) {\n\t@include cfgCheckAndRadio($color);\n\tborder-radius: 50%;\n}\n","@use \"../mixins\";\n\n@mixin classes($colorActive, $colorPassive) {\n\t.cfgCheckmark {\n\t\t/* The distance-units inside the checkmark are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\t&__container {\n\t\t\ttransition: transform 0.4s;\n\t\t\ttransform: translateY(17px);\n\t\t}\n\n\t\t&__line {\n\t\t\tstroke: $colorActive;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-width: 12;\n\t\t\ttransform-origin: 50px 50px;\n\t\t\ttransition: transform 0.4s, stroke 0.4s;\n\t\t}\n\n\t\t&__lineLeft {\n\t\t\tstroke: $colorActive;\n\t\t\ttransform: rotate(40deg) translateY(24px) translateX(18px);\n\t\t}\n\n\t\t&__lineRight {\n\t\t\tstroke: $colorActive;\n\t\t\ttransform: rotate(-50deg) translateY(-2px) translateX(-3px);\n\t\t}\n\n\t\t@content;\n\n\t\t&__border {\n\t\t\t@include mixins.cfgCheckbox($colorPassive);\n\t\t\t&--active {\n\t\t\t\t@include mixins.cfgCheckbox($colorActive);\n\t\t\t}\n\t\t}\n\t}\n}\n","@use \"../mixins\";\n\n@mixin classes($activeColor, $passiveColor) {\n\t.cfgChevron {\n\t\t/* The distance-units inside the chevron are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\n\t\t&__container {\n\t\t\ttransition: transform 0.4s;\n\n\t\t\t&--down {\n\t\t\t\ttransform: translateY(13px);\n\t\t\t}\n\n\t\t\t&--up {\n\t\t\t\ttransform: translateY(-13px);\n\t\t\t}\n\t\t}\n\n\t\t&__line {\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-width: 10;\n\t\t\ttransform-origin: 50px 50px;\n\t\t\ttransition: transform 0.4s, stroke 0.4s;\n\t\t}\n\n\t\t&__lineLeft,\n\t\t&__lineRight {\n\t\t\t&--active {\n\t\t\t\tstroke: $activeColor;\n\t\t\t}\n\t\t\t&--passive {\n\t\t\t\tstroke: $passiveColor;\n\t\t\t}\n\t\t}\n\n\t\t&__lineLeft {\n\t\t\t&--down {\n\t\t\t\ttransform: rotate(40deg);\n\t\t\t}\n\t\t\t&--up {\n\t\t\t\ttransform: rotate(-40deg);\n\t\t\t}\n\t\t}\n\t\t&__lineRight {\n\t\t\t&--down {\n\t\t\t\ttransform: rotate(-40deg);\n\t\t\t}\n\n\t\t\t&--up {\n\t\t\t\ttransform: rotate(40deg);\n\t\t\t}\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"../mixins\";\n\n@mixin classes($color) {\n\t.cfgCircleXmarkIcon {\n\t\t/* The distance-units inside the icon are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tpath,\n\t\tcircle {\n\t\t\tstroke: $color;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Configurator\n */\n\n@use \"mixins\";\n\n@mixin classes($fontSize, $textColor, $grayTextColor, $headerUnderlineColor) {\n\t.cfgConfiguratorWrapper {\n\t\t@include mixins.cfgRootStyles;\n\t\tcolor: $textColor;\n\t\tdisplay: flex;\n\t\theight: 85vh;\n\t\tflex-direction: column;\n\n\t\t@media screen and (orientation: landscape) {\n\t\t\tflex-direction: row;\n\t\t}\n\n\t\t.cfgTaskStart,\n\t\t.cfgShare,\n\t\t.cfgReset {\n\t\t\tmargin-top: 0.5em;\n\t\t\tfont-size: 1.2em;\n\t\t\tfont-weight: 500;\n\n\t\t\t.cfgInput,\n\t\t\t.cfgFormSelect,\n\t\t\tbutton {\n\t\t\t\tpadding: 0.5em;\n\t\t\t}\n\t\t}\n\n\t\t.cfgTaskStart {\n\t\t\t.cfgFormSelect {\n\t\t\t\t&::after {\n\t\t\t\t\tright: 0.5em;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.cfgShare .cfgInput,\n\t\t.cfgReset button {\n\t\t\tappearance: none;\n\t\t\tmargin: 0;\n\n\t\t\tbackground-color: transparent;\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tfont-weight: inherit;\n\t\t\tcursor: inherit;\n\t\t\tline-height: inherit;\n\t\t\toutline: none;\n\t\t}\n\n\t\t.cfgShare {\n\t\t\t&__error {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\t.cfgErrorIcon {\n\t\t\t\t\tpadding-left: 0.25em;\n\t\t\t\t\tmargin-right: 0.75em;\n\t\t\t\t\twidth: 1.25em;\n\t\t\t\t\theight: 1em;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&__grayed {\n\t\t\t\tcolor: $grayTextColor;\n\t\t\t}\n\t\t}\n\t}\n\n\t.cfgCanvasWrapper {\n\t\t@include mixins.cfgRootStyles;\n\t\tposition: relative;\n\t\theight: 50rem;\n\t\tuser-select: none;\n\n\t\tflex: 1 1 auto;\n\t\toverflow: hidden;\n\n\t\t& canvas {\n\t\t\toutline: none;\n\t\t}\n\n\t\t@media screen and (orientation: landscape) {\n\t\t\theight: 100%;\n\t\t\tflex: 0 1 60%;\n\t\t}\n\t}\n\n\t.cfgConfigurator {\n\t\t@include mixins.cfgRootStyles;\n\t\t@include mixins.cfgDefaultFont;\n\t\tfont-size: $fontSize;\n\t\tcolor: $textColor;\n\t\tmin-width: 0;\n\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tflex: 0 0 50%;\n\t\toverflow: auto;\n\n\t\t@media screen and (orientation: landscape) {\n\t\t\theight: 100%;\n\t\t\tflex: 0 1 40%;\n\t\t}\n\t}\n\n\t.cfgConfiguratorHeader {\n\t\tborder-bottom: 0.1em solid $headerUnderlineColor;\n\t\tpadding: 1.7em 1.7em 1.9em;\n\t\tposition: relative;\n\n\t\t&__actions {\n\t\t\tmargin-top: 1em;\n\t\t}\n\t}\n\n\t.cfgConfiguratorTree {\n\t\tpadding-top: 1em;\n\t\tpadding-top: 0.5em;\n\t\toverflow-y: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t}\n}\n","/**\n * Web UI Variables\n */\n\t\n$baseFontSize: 10px !default; // We use 10px for easy em conversion\n$overlayingZIndex: 1000 !default;\n","@use \"../mixins\";\n\n@mixin classes($color) {\n\t.cfgDownloadIcon {\n\t\t/* The distance-units inside the icon are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tpath,\n\t\tcircle {\n\t\t\tstroke: $color;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"mixins\";\n\n@mixin classes {\n\t.cfgExpandableHeadingRow {\n\t\t@include mixins.cfgRootStyles;\n\t\t@include mixins.noButtonLook;\n\t\talign-items: stretch;\n\t\tdisplay: flex;\n\t\theight: 3.9em;\n\t\toutline: 0;\n\t\tposition: relative;\n\t\twidth: 100%;\n\n\t\t&--expandable {\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t&__title {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 auto;\n\t\t\tfont-size: 1.5em;\n\t\t\tfont-weight: 500;\n\t\t\tjustify-content: flex-start;\n\t\t}\n\n\t\t&__icon {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tflex: 0 0 5em;\n\t\t\tjustify-content: center;\n\t\t\tpadding: 0 1.5em;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"../mixins\";\n\n@mixin classes($color) {\n\t.cfgErrorIcon {\n\t\t/* The distance-units inside the icon are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tpath,\n\t\tcircle {\n\t\t\tstroke: $color;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Feature item\n */\n\n@use \"mixins\";\n\n@mixin classes(\n\t$textColor,\n\t$grayTextColor,\n\t$checkButtonUncheckedColor,\n\t$checkButtonCheckedColor,\n\t$focusOutlineInnerColor,\n\t$focusOutlineOuterColor,\n\t$dividerDark\n) {\n\t.cfgThumbnailImage {\n\t\tborder-radius: 0.7em;\n\t\tdisplay: inline-block;\n\t\theight: 3em;\n\t\twidth: 3em;\n\t}\n\n\t.cfgThumbnailPlaceholder {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tflex: 0 0 4.2em;\n\t\tjustify-content: flex-start;\n\t}\n\n\t.cfgFeatureItem {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tcolor: $textColor;\n\n\t\t&__dropdown {\n\t\t\t@include mixins.noButtonLook;\n\t\t\talign-items: stretch;\n\t\t\tdisplay: flex;\n\t\t\theight: 3.9em;\n\t\t\toutline: 0;\n\t\t\tposition: relative;\n\t\t\twidth: 100%;\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t&--optional {\n\t\t\tmargin-top: 1em;\n\t\t}\n\n\t\t&__hiddenInput {\n\t\t\tleft: -99999px;\n\t\t\topacity: 0;\n\t\t\tposition: absolute;\n\t\t\tz-index: -1;\n\t\t}\n\n\t\t&__radio {\n\t\t\t@include mixins.cfgRadio($checkButtonUncheckedColor);\n\t\t}\n\n\t\t&__checkbox {\n\t\t\t@include mixins.cfgCheckbox($checkButtonUncheckedColor);\n\t\t}\n\n\t\t/* The &-syntax brings in the entire path, so the second part of this rule must be explicit */\n\n\t\t&__hiddenInput:focus ~ .cfgFeatureItem__radio,\n\t\t&__hiddenInput:focus ~ .cfgFeatureItem__checkbox {\n\t\t\t@include mixins.focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor);\n\t\t}\n\n\t\t&__hiddenInput:checked ~ .cfgFeatureItem__radio {\n\t\t\t@include mixins.cfgRadio($checkButtonCheckedColor);\n\t\t}\n\t\t&__hiddenInput:checked ~ .cfgFeatureItem__checkbox {\n\t\t\t@include mixins.cfgCheckbox($checkButtonCheckedColor);\n\t\t}\n\n\t\t&.cfgAdditionalProduct {\n\t\t\t> .cfgExpandableHeadingRow {\n\t\t\t\t> .cfgExpandableHeadingRow__title {\n\t\t\t\t\tfont-weight: 600;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t> .cfgFeatureItem__hr {\n\t\t\t\tborder-bottom-color: $dividerDark;\n\t\t\t}\n\n\t\t\t/* The last themathic break (hr) we move under the next thematic break so it appears as one */\n\t\t\t.cfgFeatureItem:last-child .cfgFeatureItem__hr {\n\t\t\t\tmargin-bottom: -0.1em;\n\t\t\t}\n\t\t}\n\t}\n\n\t.cfgFeatureItemOptional__titleWrapper,\n\t.cfgFeatureItemOption__titleWrapper {\n\t\tflex: 1 1 auto;\n\t\tmargin-left: 1em;\n\t}\n\n\t.cfgFeatureItemOptional__title,\n\t.cfgFeatureItemOption__title {\n\t\tfont-size: 1.5em;\n\t}\n\n\t.cfgFeatureItemOption__price {\n\t\tfont-weight: 600;\n\t\tfont-size: 0.75em;\n\t\tcolor: $grayTextColor;\n\t}\n\n\t.cfgOptionTree--subLevel .cfgFeatureItem__hr {\n\t\tdisplay: none;\n\t}\n\n\t.cfgFeatureItemOption {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t}\n\n\t.cfgFeatureItemOptional {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tmargin-top: 0.5em;\n\n\t\t&__header {\n\t\t\tfont-size: 1.2em;\n\t\t\tfont-weight: 600;\n\t\t\tmargin: 0 0 0.3em 0;\n\t\t\tpadding: 0;\n\t\t\ttext-transform: uppercase;\n\t\t}\n\t}\n}\n","@mixin classes($borderColor) {\n\t.cfgInput,\n\t.cfgFormSelect {\n\t\tborder: 0.1em solid $borderColor;\n\t\tpadding: 0.3em 0.4em;\n\t\tborder-radius: 0.3em;\n\t\tcolor: inherit;\n\t}\n\n\t.cfgFormSelect {\n\t\tselect {\n\t\t\tappearance: none;\n\t\t\tpadding: 0 1em 0 0;\n\t\t\tmargin: 0;\n\t\t\twidth: 100%;\n\n\t\t\tbackground-color: transparent;\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tfont-weight: inherit;\n\t\t\tcolor: inherit;\n\t\t\tcursor: inherit;\n\t\t\tline-height: inherit;\n\t\t\toutline: none;\n\t\t\tborder: none;\n\t\t}\n\n\t\tcursor: pointer;\n\t\tposition: relative;\n\n\t\t&::after {\n\t\t\tposition: absolute;\n\t\t\tright: 0.35em;\n\t\t\ttop: 50%;\n\t\t\tmargin-top: -0.55em;\n\t\t\tcontent: \"\";\n\t\t\twidth: 1em;\n\t\t\theight: 1em;\n\t\t\tbackground-color: $borderColor;\n\t\t\tclip-path: polygon(50% 80%, 90% 40%, 100% 50%, 50% 100%, 0 50%, 10% 40%);\n\t\t\tjustify-self: end;\n\t\t}\n\t}\n}\n","@use \"mixins\";\n\n@mixin styles($color) {\n\t@include mixins.cfgRootStyles;\n\tborder: 0;\n\tborder-bottom: 0.1em solid $color;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n@mixin classes($color) {\n\t.cfgHr {\n\t\t@include styles($color);\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Loading\n */\n\n@use \"mixins\";\n\n@mixin classes(\n\t$textColor,\n\t$spinnerColor1,\n\t$spinnerColor2,\n\t$overlayBackgroundColor,\n\t$overlayingZIndex\n) {\n\t.cfgCenteredLoading {\n\t\t@include mixins.cfgRootStyles;\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\theight: 100%;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t}\n\n\t.cfgOverlayLoading {\n\t\t@include mixins.cfgRootStyles;\n\n\t\talign-items: center;\n\t\tbackground-color: $overlayBackgroundColor;\n\t\tbottom: 0;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\t\tz-index: $overlayingZIndex;\n\n\t\t&--clickThrough {\n\t\t\tbackground-color: transparent;\n\t\t\tpointer-events: none;\n\n\t\t\t.cfgLoadingWithText {\n\t\t\t\tpadding: 2em 2em 1.8em;\n\t\t\t\tborder-radius: 0.8em;\n\t\t\t\tbackground-color: $overlayBackgroundColor;\n\t\t\t\topacity: 0.8;\n\t\t\t\tborder: 0.1em solid $spinnerColor2;\n\t\t\t}\n\t\t}\n\n\t\t&--fullWindow {\n\t\t\tposition: fixed;\n\t\t\tz-index: #{$overlayingZIndex + 1};\n\t\t}\n\t}\n\n\t.cfgLoadingWithText {\n\t\t@include mixins.cfgRootStyles;\n\t\t@include mixins.cfgDefaultFont;\n\n\t\ttext-align: center;\n\n\t\t&__text {\n\t\t\tcolor: $textColor;\n\t\t\tfont-weight: 600;\n\t\t\tmargin-top: 0.5em;\n\t\t\tfont-size: 1.6em;\n\t\t}\n\t}\n\n\t.cfgLoading {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tanimation: rotate 1.1s linear 0s infinite;\n\t\tborder-radius: 100%;\n\t\tborder: 0.5em solid $spinnerColor2;\n\t\tborder-bottom-color: $spinnerColor1;\n\t\tdisplay: inline-block;\n\t\theight: 3em;\n\t\twidth: 3em;\n\n\t\t&--small {\n\t\t\tborder-width: 0.4em;\n\t\t\theight: 2em;\n\t\t\twidth: 2em;\n\t\t}\n\t}\n\n\t@keyframes rotate {\n\t\tfrom {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\tto {\n\t\t\ttransform: rotate(360deg);\n\t\t}\n\t}\n}\n","/**\n * Web UI Option tree\n */\n\n@use \"mixins\";\n\n@mixin classes {\n\t.cfgOptionTree {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tlist-style: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\t&--topLevel {\n\t\t\tpadding-left: 1.7em;\n\t\t}\n\n\t\t&--indent {\n\t\t\tmargin-left: 3.2em;\n\t\t}\n\n\t\t&--compThumb {\n\t\t\tmargin-left: 4.2em;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Product information\n */\n\n@use \"sass:math\";\n@use \"mixins\";\n\n@mixin classes($textColor) {\n\t.cfgProductInfo {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tcolor: $textColor;\n\n\t\tdisplay: flex;\n\n\t\t&__left {\n\t\t\tflex: 1 1 auto;\n\t\t\tmin-width: 0;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t&__right {\n\t\t\talign-items: flex-end;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tflex: 1 0 auto;\n\t\t\tmargin-left: 1em;\n\t\t\tmax-width: 0.333333333;\n\t\t\tmin-width: 0;\n\t\t}\n\n\t\t&__name {\n\t\t\tdisplay: block;\n\t\t\tfont-size: 1.6em;\n\t\t\tfont-weight: 600;\n\t\t\tline-height: 1.33;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t&__number {\n\t\t\tfont-size: 1.3em;\n\t\t\tfont-weight: 400;\n\t\t\tline-height: 1.38;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t&__taskbar {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@mixin classes($errorColor) {\n\t.cfgRangeView {\n\t\t&__inputs {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t&__number-input {\n\t\t\tfont-size: 1.5em;\n\t\t\tflex-grow: 1;\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t&__unit-label {\n\t\t\tfont-size: 1.5em;\n\t\t\tmargin-left: 0.3em;\n\t\t}\n\n\t\t&__slider-input.cfgSlider {\n\t\t\tmargin-left: 1em;\n\t\t\tflex-grow: 3;\n\t\t}\n\n\t\t&__error {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\tmargin-top: 1em;\n\t\t\tfont-size: 1.5em;\n\t\t\tcolor: $errorColor;\n\n\t\t\t.cfgErrorIcon {\n\t\t\t\tpadding-right: 0.25em;\n\t\t\t\twidth: 1.25em;\n\t\t\t\theight: 1em;\n\t\t\t}\n\t\t}\n\t}\n}\n","@use \"mixins\";\n\n// The origins of this SCSS file is here:\n// https://css-tricks.com/sliding-nightmare-understanding-range-input/\n\n$trackHeight: 0.2em !default;\n$thumbDiameter: 2.8em !default;\n\n@mixin track($trackColor) {\n\tbox-sizing: border-box;\n\tborder: none;\n\theight: $trackHeight;\n\tbackground: $trackColor;\n}\n\n@mixin thumb($thumbColor, $thumbShadowColor) {\n\tbox-sizing: border-box;\n\tborder: none;\n\twidth: $thumbDiameter;\n\theight: $thumbDiameter;\n\tborder-radius: 50%;\n\tbackground: $thumbColor;\n\tbox-shadow: 0 0.15em 0.45em 0.05em $thumbShadowColor;\n}\n\n@mixin classes($trackColor, $thumbColor, $thumbShadowColor) {\n\t.cfgSlider {\n\t\t@include mixins.cfgRootStyles;\n\n\t\t&,\n\t\t&::-webkit-slider-thumb {\n\t\t\t-webkit-appearance: none;\n\t\t}\n\n\t\tflex: 1;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tmin-height: $thumbDiameter;\n\t\tbackground: transparent;\n\t\tfont: inherit;\n\n\t\t&::-webkit-slider-runnable-track {\n\t\t\t@include track($trackColor);\n\t\t}\n\t\t&::-moz-range-track {\n\t\t\t@include track($trackColor);\n\t\t}\n\t\t&::-ms-track {\n\t\t\t@include track($trackColor);\n\t\t}\n\n\t\t&::-webkit-slider-thumb {\n\t\t\tmargin-top: 0.5 * ($trackHeight - $thumbDiameter);\n\t\t\t@include thumb($thumbColor, $thumbShadowColor);\n\t\t}\n\t\t&::-moz-range-thumb {\n\t\t\t@include thumb($thumbColor, $thumbShadowColor);\n\t\t}\n\t\t&::-ms-thumb {\n\t\t\tmargin-top: 0;\n\t\t\t@include thumb($thumbColor, $thumbShadowColor);\n\t\t}\n\n\t\t&::-ms-tooltip {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"mixins\";\n\n@mixin classes($borderColor, $linkColor) {\n\t$preview-size: 4.8em;\n\t$line-width: 0.1em;\n\t$icon-size: 2em;\n\n\t.cfgTaskList {\n\t\tul {\n\t\t\tlist-style-type: none;\n\t\t\tpadding: 0;\n\t\t\tmargin: 1em 0 0 0;\n\t\t\tborder-bottom: 0.1em solid $borderColor;\n\t\t}\n\n\t\t&__item {\n\t\t\tpadding: 0 1.5em 0 1.7em;\n\t\t\tmargin-bottom: 1em;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t&__preview {\n\t\t\tborder: 0.1em solid $borderColor;\n\t\t\tborder-radius: 10%;\n\t\t\twidth: $preview-size;\n\t\t\theight: $preview-size;\n\t\t\tflex-shrink: 0;\n\n\t\t\timg {\n\t\t\t\tobject-fit: cover;\n\t\t\t\tposition: relative;\n\t\t\t\tleft: 0.1 * $preview-size - $line-width;\n\t\t\t\ttop: 0.1 * $preview-size - $line-width;\n\t\t\t\twidth: 0.8 * $preview-size;\n\t\t\t\theight: 0.8 * $preview-size;\n\t\t\t}\n\t\t}\n\n\t\t&__icon {\n\t\t\tflex-shrink: 0;\n\t\t\twidth: $icon-size + 2em;\n\t\t\theight: $icon-size;\n\t\t\tpadding-left: 1em;\n\t\t\tpadding-right: 1em;\n\n\t\t\t.cfgLoadingSizer {\n\t\t\t\tfont-size: 0.75em;\n\t\t\t}\n\t\t}\n\n\t\t&__status {\n\t\t\tflex-grow: 1;\n\t\t\tfont-size: 1.5em;\n\t\t}\n\n\t\t&__abort {\n\t\t\t@include mixins.noButtonLook;\n\t\t\tcursor: pointer;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tflex-shrink: 0;\n\t\t}\n\n\t\t&__restart {\n\t\t\t@include mixins.noButtonLook;\n\t\t\tcursor: pointer;\n\t\t\ttext-decoration: underline;\n\t\t\tcolor: $linkColor;\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/scss/_utilities.scss","../../src/scss/web-ui.scss","../../src/scss/_themed.scss","../../src/scss/_button.scss","../../src/scss/_mixins.scss","../../src/scss/icons/_checkmark.scss","../../src/scss/icons/_chevron.scss","../../src/scss/icons/_circle-xmark-icon.scss","../../src/scss/_configurator.scss","../../src/scss/_variables.scss","../../src/scss/icons/_download-icon.scss","../../src/scss/_expandable.scss","../../src/scss/icons/_error-icon.scss","../../src/scss/_feature-item.scss","../../src/scss/_forms.scss","../../src/scss/_hr.scss","../../src/scss/_loading.scss","../../src/scss/_misc-file-and-note.scss","../../src/scss/_option-tree.scss","../../src/scss/_product-information.scss","../../src/scss/_range-view.scss","../../src/scss/_slider.scss","../../src/scss/_tasks.scss"],"names":[],"mappings":"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","file":"web-ui.css","sourcesContent":["/**\n * Web UI Utilities\n */\n\n.cfgMl1 {\n\tmargin-left: 1em;\n}\n\n.cfgMt1 {\n\tmargin-top: 1em;\n}\n\n.cfgMb1 {\n\tmargin-bottom: 1em;\n}\n\n.cfgTextOverflow {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n","/**\n* Web UI Styling\n*/\n\n@use \"themed\";\n\n@include themed.themed(themed.$lightTheme);\n\n.cfgDarkTheme {\n\t@include themed.themed(themed.$darkTheme);\n}\n","@use \"sass:map\";\n@use \"sass:color\";\n\n@use \"variables\" as v;\n\n// Components\n@use \"button\";\n@use \"forms\";\n\n@use \"configurator\";\n@use \"expandable\";\n@use \"feature-item\";\n@use \"hr\";\n@use \"loading\";\n@use \"misc-file-and-note\";\n@use \"option-tree\";\n@use \"product-information\";\n@use \"range-view\";\n@use \"slider\";\n@use \"tasks\";\n\n// Icons\n@use \"icons/checkmark\";\n@use \"icons/chevron\";\n@use \"icons/circle-xmark-icon\";\n@use \"icons/download-icon\";\n@use \"icons/error-icon\";\n\n// Utilities\n@use \"utilities\";\n\n/* Colors */\n\n$black: hsl(0, 0%, 0%) !default;\n$white: hsl(0, 0%, 100%) !default;\n$darkGrey: hsl(0, 0%, 15%) !default;\n\n/* Specific colors */\n\n$border: hsl(252, 5%, 79%) !default;\n$borderDark: hsl(0, 0%, 73%) !default;\n$icon: hsl(252, 5%, 50%) !default;\n$focusOutlineOuter: hsl(0, 0%, 13%) !default;\n$sliderTrack: #666 !default;\n$spinner2: hsla(0, 0%, 0%, 0.15);\n$grayText: hsl(0, 0%, 50%) !default;\n$text: hsl(0, 0%, 20%) !default;\n$link: hsl(209, 100%, 35%) !default;\n$error: hsl(10, 72%, 41%) !default;\n\n/* As convention we assume the default theme when naming colors,\n as attempts at generic naming often leads to confusion */\n$lightTheme: (\n\t\"black\": $black,\n\t\"border\": $border,\n\t\"borderDark\": $borderDark,\n\t\"checkButtonChecked\": $black,\n\t\"checkButtonUnchecked\": $border,\n\t\"chevronActive\": $black,\n\t\"chevronPassive\": $borderDark,\n\t\"divider\": $border,\n\t\"dividerDark\": $borderDark,\n\t\"error\": $error,\n\t\"focusOutlineInner\": $white,\n\t\"focusOutlineOuter\": $text,\n\t\"grayText\": $grayText,\n\t\"icon\": $icon,\n\t\"link\": $link,\n\t\"overlayBackground\": $white,\n\t\"sliderThumb\": $white,\n\t\"sliderThumbShadow\": $sliderTrack,\n\t\"sliderTrack\": $sliderTrack,\n\t\"spinner1\": $black,\n\t\"spinner2\": $spinner2,\n\t\"text\": $text,\n\t\"white\": $white,\n) !default;\n\n@function invertLightness($color) {\n\t@return color.change(\n\t\t$color,\n\t\t$lightness: 100 - color.lightness($color) * 0.8\n\t); // We scale with 80% to have a bit more contrast\n}\n\n@function invertLightnessList($list) {\n\t@each $key, $color in $list {\n\t\t$list: map.set($list, $key, invertLightness($color));\n\t}\n\t@return $list;\n}\n\n$darkTheme: invertLightnessList($lightTheme);\n\n$themes: (\n\t\"light\": $lightTheme,\n\t\"dark\": $darkTheme,\n);\n\n@mixin themed($ct, $baseFontSize: v.$baseFontSize, $overlayingZIndex: v.$overlayingZIndex) {\n\ta {\n\t\tcolor: map.get($ct, \"link\");\n\t}\n\n\t@include button.classes(\n\t\tmap.get($ct, \"text\"),\n\t\tmap.get($ct, \"borderDark\"),\n\t\tmap.get($ct, \"focusOutlineInner\"),\n\t\tmap.get($ct, \"focusOutlineOuter\"),\n\t\tmap.get($ct, \"grayText\"),\n\t\tmap.get($ct, \"border\")\n\t);\n\t@include checkmark.classes(\n\t\tmap.get($ct, \"checkButtonChecked\"),\n\t\tmap.get($ct, \"checkButtonUnchecked\")\n\t);\n\t@include chevron.classes(map.get($ct, \"chevronActive\"), map.get($ct, \"chevronPassive\"));\n\t@include circle-xmark-icon.classes(map.get($ct, \"icon\"));\n\t@include configurator.classes(\n\t\t$baseFontSize,\n\t\tmap.get($ct, \"text\"),\n\t\tmap.get($ct, \"grayText\"),\n\t\tmap.get($ct, \"divider\")\n\t);\n\t@include download-icon.classes(map.get($ct, \"link\"));\n\t@include expandable.classes;\n\t@include error-icon.classes(map.get($ct, \"error\"));\n\t@include feature-item.classes(\n\t\tmap.get($ct, \"text\"),\n\t\tmap.get($ct, \"grayText\"),\n\t\tmap.get($ct, \"checkButtonUnchecked\"),\n\t\tmap.get($ct, \"checkButtonChecked\"),\n\t\tmap.get($ct, \"focusOutlineInner\"),\n\t\tmap.get($ct, \"focusOutlineOuter\"),\n\t\tmap.get($ct, \"dividerDark\")\n\t);\n\t@include forms.classes(map.get($ct, \"borderDark\"));\n\t@include hr.classes(map.get($ct, \"divider\"));\n\t@include loading.classes(\n\t\tmap.get($ct, \"black\"),\n\t\tmap.get($ct, \"spinner1\"),\n\t\tmap.get($ct, \"spinner2\"),\n\t\tmap.get($ct, \"overlayBackground\"),\n\t\t$overlayingZIndex\n\t);\n\t@include misc-file-and-note.classes(map.get($ct, \"grayText\"), map.get($ct, \"link\"));\n\t@include option-tree.classes;\n\t@include product-information.classes(map.get($ct, \"text\"));\n\t@include range-view.classes(map.get($ct, \"error\"));\n\t@include slider.classes(\n\t\tmap.get($ct, \"sliderTrack\"),\n\t\tmap.get($ct, \"sliderThumb\"),\n\t\tmap.get($ct, \"sliderThumbShadow\")\n\t);\n\t@include tasks.classes(map.get($ct, \"border\"), map.get($ct, \"link\"));\n}\n","/**\n * Web UI Product information\n */\n@use \"mixins\";\n\n@mixin styles($textColor, $borderColor, $focusOutlineInnerColor, $focusOutlineOuterColor) {\n\t@include mixins.cfgRootStyles;\n\tdisplay: inline-block;\n\tbackground-color: transparent;\n\tcolor: $textColor;\n\tborder-radius: 0.3em;\n\tborder: 0.1em solid $borderColor;\n\tfont-size: 1.3em;\n\tfont-weight: 500;\n\toutline: none;\n\tpadding: 0.4em 0.8em;\n\n\t&:focus {\n\t\t@include mixins.focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor);\n\t}\n}\n\n@mixin classes(\n\t$textColor,\n\t$borderColor,\n\t$focusOutlineInnerColor,\n\t$focusOutlineOuterColor,\n\t$disabledTextColor,\n\t$disabledBorderColor\n) {\n\t.cfgButton {\n\t\t@include styles($textColor, $borderColor, $focusOutlineInnerColor, $focusOutlineOuterColor);\n\n\t\t&[disabled] {\n\t\t\t@include styles(\n\t\t\t\t$disabledTextColor,\n\t\t\t\t$disabledBorderColor,\n\t\t\t\t$focusOutlineInnerColor,\n\t\t\t\t$focusOutlineOuterColor\n\t\t\t);\n\t\t}\n\t}\n\n\t.cfgButtonRow {\n\t\t@include mixins.cfgRootStyles;\n\t\t&__button {\n\t\t\t&:nth-child(n + 2) {\n\t\t\t\tmargin-left: 1em;\n\t\t\t}\n\t\t}\n\t}\n}\n","@mixin noButtonLook {\n\tappearance: none;\n\tfont-family: inherit;\n\tfont-size: inherit;\n\tcolor: inherit;\n\tbackground: none;\n\tborder: none;\n\tpadding: 0;\n}\n\n@mixin focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor) {\n\tbox-shadow: 0 0 0 0.075em $focusOutlineInnerColor, 0 0 0 0.2em $focusOutlineOuterColor;\n}\n\n@mixin borderBox {\n\tbox-sizing: border-box;\n\t&:before,\n\t&:after {\n\t\tbox-sizing: inherit;\n\t}\n}\n\n@mixin cfgRootStyles {\n\t@include borderBox;\n\n\t* {\n\t\t@include borderBox;\n\t}\n}\n\n@mixin cfgDefaultFont {\n\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif,\n\t\t\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n@mixin cfgCheckAndRadio($color) {\n\talign-items: center;\n\tborder: 0.2em solid $color;\n\tdisplay: flex;\n\tflex: 0 0 auto;\n\theight: 2.2em;\n\tjustify-content: center;\n\tpointer-events: none;\n\tuser-select: none;\n\twidth: 2.2em;\n}\n\n@mixin cfgCheckbox($color) {\n\t@include cfgCheckAndRadio($color);\n\tborder-radius: 0.3em;\n}\n\n@mixin cfgRadio($color) {\n\t@include cfgCheckAndRadio($color);\n\tborder-radius: 50%;\n}\n","@use \"../mixins\";\n\n@mixin classes($colorActive, $colorPassive) {\n\t.cfgCheckmark {\n\t\t/* The distance-units inside the checkmark are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\t&__container {\n\t\t\ttransition: transform 0.4s;\n\t\t\ttransform: translateY(17px);\n\t\t}\n\n\t\t&__line {\n\t\t\tstroke: $colorActive;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-width: 12;\n\t\t\ttransform-origin: 50px 50px;\n\t\t\ttransition: transform 0.4s, stroke 0.4s;\n\t\t}\n\n\t\t&__lineLeft {\n\t\t\tstroke: $colorActive;\n\t\t\ttransform: rotate(40deg) translateY(24px) translateX(18px);\n\t\t}\n\n\t\t&__lineRight {\n\t\t\tstroke: $colorActive;\n\t\t\ttransform: rotate(-50deg) translateY(-2px) translateX(-3px);\n\t\t}\n\n\t\t@content;\n\n\t\t&__border {\n\t\t\t@include mixins.cfgCheckbox($colorPassive);\n\t\t\t&--active {\n\t\t\t\t@include mixins.cfgCheckbox($colorActive);\n\t\t\t}\n\t\t}\n\t}\n}\n","@use \"../mixins\";\n\n@mixin classes($activeColor, $passiveColor) {\n\t.cfgChevron {\n\t\t/* The distance-units inside the chevron are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\n\t\t&__container {\n\t\t\ttransition: transform 0.4s;\n\n\t\t\t&--down {\n\t\t\t\ttransform: translateY(13px);\n\t\t\t}\n\n\t\t\t&--up {\n\t\t\t\ttransform: translateY(-13px);\n\t\t\t}\n\t\t}\n\n\t\t&__line {\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-width: 10;\n\t\t\ttransform-origin: 50px 50px;\n\t\t\ttransition: transform 0.4s, stroke 0.4s;\n\t\t}\n\n\t\t&__lineLeft,\n\t\t&__lineRight {\n\t\t\t&--active {\n\t\t\t\tstroke: $activeColor;\n\t\t\t}\n\t\t\t&--passive {\n\t\t\t\tstroke: $passiveColor;\n\t\t\t}\n\t\t}\n\n\t\t&__lineLeft {\n\t\t\t&--down {\n\t\t\t\ttransform: rotate(40deg);\n\t\t\t}\n\t\t\t&--up {\n\t\t\t\ttransform: rotate(-40deg);\n\t\t\t}\n\t\t}\n\t\t&__lineRight {\n\t\t\t&--down {\n\t\t\t\ttransform: rotate(-40deg);\n\t\t\t}\n\n\t\t\t&--up {\n\t\t\t\ttransform: rotate(40deg);\n\t\t\t}\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"../mixins\";\n\n@mixin classes($color) {\n\t.cfgCircleXmarkIcon {\n\t\t/* The distance-units inside the icon are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tpath,\n\t\tcircle {\n\t\t\tstroke: $color;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Configurator\n */\n\n@use \"mixins\";\n\n@mixin classes($fontSize, $textColor, $grayTextColor, $headerUnderlineColor) {\n\t.cfgConfiguratorWrapper {\n\t\t@include mixins.cfgRootStyles;\n\t\tcolor: $textColor;\n\t\tdisplay: flex;\n\t\theight: 85vh;\n\t\tflex-direction: column;\n\n\t\t@media screen and (orientation: landscape) {\n\t\t\tflex-direction: row;\n\t\t}\n\n\t\t.cfgTaskStart,\n\t\t.cfgShare,\n\t\t.cfgReset {\n\t\t\tmargin-top: 0.5em;\n\t\t\tfont-size: 1.2em;\n\t\t\tfont-weight: 500;\n\n\t\t\t.cfgInput,\n\t\t\t.cfgFormSelect,\n\t\t\tbutton {\n\t\t\t\tpadding: 0.5em;\n\t\t\t}\n\t\t}\n\n\t\t.cfgTaskStart {\n\t\t\t.cfgFormSelect {\n\t\t\t\t&::after {\n\t\t\t\t\tright: 0.5em;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.cfgShare .cfgInput,\n\t\t.cfgReset button {\n\t\t\tappearance: none;\n\t\t\tmargin: 0;\n\n\t\t\tbackground-color: transparent;\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tfont-weight: inherit;\n\t\t\tcursor: inherit;\n\t\t\tline-height: inherit;\n\t\t\toutline: none;\n\t\t}\n\n\t\t.cfgShare {\n\t\t\t&__error {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\t.cfgErrorIcon {\n\t\t\t\t\tpadding-left: 0.25em;\n\t\t\t\t\tmargin-right: 0.75em;\n\t\t\t\t\twidth: 1.25em;\n\t\t\t\t\theight: 1em;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&__grayed {\n\t\t\t\tcolor: $grayTextColor;\n\t\t\t}\n\t\t}\n\t}\n\n\t.cfgCanvasWrapper {\n\t\t@include mixins.cfgRootStyles;\n\t\tposition: relative;\n\t\theight: 50rem;\n\t\tuser-select: none;\n\n\t\tflex: 1 1 auto;\n\t\toverflow: hidden;\n\n\t\t& canvas {\n\t\t\toutline: none;\n\t\t}\n\n\t\t@media screen and (orientation: landscape) {\n\t\t\theight: 100%;\n\t\t\tflex: 0 1 60%;\n\t\t}\n\t}\n\n\t.cfgConfigurator {\n\t\t@include mixins.cfgRootStyles;\n\t\t@include mixins.cfgDefaultFont;\n\t\tfont-size: $fontSize;\n\t\tcolor: $textColor;\n\t\tmin-width: 0;\n\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tflex: 0 0 50%;\n\t\toverflow: auto;\n\n\t\t@media screen and (orientation: landscape) {\n\t\t\theight: 100%;\n\t\t\tflex: 0 1 40%;\n\t\t}\n\n\t\t& > .cfgConfiguratorTree {\n\t\t\t& > .cfgMiscFiles,\n\t\t\t& > .cfgNotes {\n\t\t\t\tpadding-left: 1.7em;\n\t\t\t}\n\t\t}\n\t}\n\n\t.cfgConfiguratorHeader {\n\t\tborder-bottom: 0.1em solid $headerUnderlineColor;\n\t\tpadding: 1.7em 1.7em 1.9em;\n\t\tposition: relative;\n\n\t\t&__actions {\n\t\t\tmargin-top: 1em;\n\t\t}\n\t}\n\n\t.cfgConfiguratorTree {\n\t\tpadding-top: 1em;\n\t\tpadding-top: 0.5em;\n\t\toverflow-y: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t}\n}\n","/**\n * Web UI Variables\n */\n\t\n$baseFontSize: 10px !default; // We use 10px for easy em conversion\n$overlayingZIndex: 1000 !default;\n","@use \"../mixins\";\n\n@mixin classes($color) {\n\t.cfgDownloadIcon {\n\t\t/* The distance-units inside the icon are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tpath,\n\t\tcircle {\n\t\t\tstroke: $color;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"mixins\";\n\n@mixin classes {\n\t.cfgExpandableHeadingRow {\n\t\t@include mixins.cfgRootStyles;\n\t\t@include mixins.noButtonLook;\n\t\talign-items: stretch;\n\t\tdisplay: flex;\n\t\theight: 3.9em;\n\t\toutline: 0;\n\t\tposition: relative;\n\t\twidth: 100%;\n\n\t\t&--expandable {\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t&__title {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 auto;\n\t\t\tfont-size: 1.5em;\n\t\t\tfont-weight: 500;\n\t\t\tjustify-content: flex-start;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t&__icon {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tflex: 0 0 5em;\n\t\t\tjustify-content: center;\n\t\t\tpadding: 0 1.5em;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"../mixins\";\n\n@mixin classes($color) {\n\t.cfgErrorIcon {\n\t\t/* The distance-units inside the icon are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tpath,\n\t\tcircle {\n\t\t\tstroke: $color;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Feature item\n */\n\n@use \"mixins\";\n\n@mixin classes(\n\t$textColor,\n\t$grayTextColor,\n\t$checkButtonUncheckedColor,\n\t$checkButtonCheckedColor,\n\t$focusOutlineInnerColor,\n\t$focusOutlineOuterColor,\n\t$dividerDark\n) {\n\t.cfgThumbnailImage {\n\t\tborder-radius: 0.7em;\n\t\tdisplay: inline-block;\n\t\theight: 3em;\n\t\twidth: 3em;\n\t}\n\n\t.cfgThumbnailPlaceholder {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tflex: 0 0 4.2em;\n\t\tjustify-content: flex-start;\n\t}\n\n\t.cfgFeatureItem {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tcolor: $textColor;\n\n\t\t&__dropdown {\n\t\t\t@include mixins.noButtonLook;\n\t\t\talign-items: stretch;\n\t\t\tdisplay: flex;\n\t\t\theight: 3.9em;\n\t\t\toutline: 0;\n\t\t\tposition: relative;\n\t\t\twidth: 100%;\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t&--optional {\n\t\t\tmargin-top: 1em;\n\t\t}\n\n\t\t&__hiddenInput {\n\t\t\tleft: -99999px;\n\t\t\topacity: 0;\n\t\t\tposition: absolute;\n\t\t\tz-index: -1;\n\t\t}\n\n\t\t&__radio {\n\t\t\t@include mixins.cfgRadio($checkButtonUncheckedColor);\n\t\t}\n\n\t\t&__checkbox {\n\t\t\t@include mixins.cfgCheckbox($checkButtonUncheckedColor);\n\t\t}\n\n\t\t/* The &-syntax brings in the entire path, so the second part of this rule must be explicit */\n\n\t\t&__hiddenInput:focus ~ .cfgFeatureItem__radio,\n\t\t&__hiddenInput:focus ~ .cfgFeatureItem__checkbox {\n\t\t\t@include mixins.focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor);\n\t\t}\n\n\t\t&__hiddenInput:checked ~ .cfgFeatureItem__radio {\n\t\t\t@include mixins.cfgRadio($checkButtonCheckedColor);\n\t\t}\n\t\t&__hiddenInput:checked ~ .cfgFeatureItem__checkbox {\n\t\t\t@include mixins.cfgCheckbox($checkButtonCheckedColor);\n\t\t}\n\n\t\t&.cfgAdditionalProduct {\n\t\t\t> .cfgExpandableHeadingRow {\n\t\t\t\t> .cfgExpandableHeadingRow__title {\n\t\t\t\t\tfont-weight: 600;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t> .cfgFeatureItem__hr {\n\t\t\t\tborder-bottom-color: $dividerDark;\n\t\t\t}\n\n\t\t\t/* The last themathic break (hr) we move under the next thematic break so it appears as one */\n\t\t\t.cfgFeatureItem:last-child .cfgFeatureItem__hr {\n\t\t\t\tmargin-bottom: -0.1em;\n\t\t\t}\n\t\t}\n\n\t\t& > .cfgNotes,\n\t\t& > .cfgMiscFiles {\n\t\t\tmargin-left: 3.2em;\n\t\t}\n\t}\n\n\t.cfgFeatureItemOptional__titleWrapper,\n\t.cfgFeatureItemOption__titleWrapper {\n\t\tflex: 1 1 auto;\n\t\tmargin-left: 1em;\n\t}\n\n\t.cfgFeatureItemOptional__title,\n\t.cfgFeatureItemOption__title {\n\t\tfont-size: 1.5em;\n\t}\n\n\t.cfgFeatureItemOption__price {\n\t\tfont-weight: 600;\n\t\tfont-size: 0.75em;\n\t\tcolor: $grayTextColor;\n\t}\n\n\t.cfgOptionTree--subLevel .cfgFeatureItem__hr {\n\t\tdisplay: none;\n\t}\n\n\t.cfgFeatureItemOption {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t}\n\n\t.cfgFeatureItemOptional {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tmargin-top: 0.5em;\n\n\t\t&__header {\n\t\t\tfont-size: 1.2em;\n\t\t\tfont-weight: 600;\n\t\t\tmargin: 0 0 0.3em 0;\n\t\t\tpadding: 0;\n\t\t\ttext-transform: uppercase;\n\t\t}\n\t}\n}\n","@mixin classes($borderColor) {\n\t.cfgInput,\n\t.cfgFormSelect {\n\t\tborder: 0.1em solid $borderColor;\n\t\tpadding: 0.3em 0.4em;\n\t\tborder-radius: 0.3em;\n\t\tcolor: inherit;\n\t}\n\n\t.cfgFormSelect {\n\t\tselect {\n\t\t\tappearance: none;\n\t\t\tpadding: 0 1em 0 0;\n\t\t\tmargin: 0;\n\t\t\twidth: 100%;\n\n\t\t\tbackground-color: transparent;\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tfont-weight: inherit;\n\t\t\tcolor: inherit;\n\t\t\tcursor: inherit;\n\t\t\tline-height: inherit;\n\t\t\toutline: none;\n\t\t\tborder: none;\n\t\t}\n\n\t\tcursor: pointer;\n\t\tposition: relative;\n\n\t\t&::after {\n\t\t\tposition: absolute;\n\t\t\tright: 0.35em;\n\t\t\ttop: 50%;\n\t\t\tmargin-top: -0.55em;\n\t\t\tcontent: \"\";\n\t\t\twidth: 1em;\n\t\t\theight: 1em;\n\t\t\tbackground-color: $borderColor;\n\t\t\tclip-path: polygon(50% 80%, 90% 40%, 100% 50%, 50% 100%, 0 50%, 10% 40%);\n\t\t\tjustify-self: end;\n\t\t}\n\t}\n}\n","@use \"mixins\";\n\n@mixin styles($color) {\n\t@include mixins.cfgRootStyles;\n\tborder: 0;\n\tborder-bottom: 0.1em solid $color;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n@mixin classes($color) {\n\t.cfgHr {\n\t\t@include styles($color);\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Loading\n */\n\n@use \"mixins\";\n\n@mixin classes(\n\t$textColor,\n\t$spinnerColor1,\n\t$spinnerColor2,\n\t$overlayBackgroundColor,\n\t$overlayingZIndex\n) {\n\t.cfgCenteredLoading {\n\t\t@include mixins.cfgRootStyles;\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\theight: 100%;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t}\n\n\t.cfgOverlayLoading {\n\t\t@include mixins.cfgRootStyles;\n\n\t\talign-items: center;\n\t\tbackground-color: $overlayBackgroundColor;\n\t\tbottom: 0;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\t\tz-index: $overlayingZIndex;\n\n\t\t&--clickThrough {\n\t\t\tbackground-color: transparent;\n\t\t\tpointer-events: none;\n\n\t\t\t.cfgLoadingWithText {\n\t\t\t\tpadding: 2em 2em 1.8em;\n\t\t\t\tborder-radius: 0.8em;\n\t\t\t\tbackground-color: $overlayBackgroundColor;\n\t\t\t\topacity: 0.8;\n\t\t\t\tborder: 0.1em solid $spinnerColor2;\n\t\t\t}\n\t\t}\n\n\t\t&--fullWindow {\n\t\t\tposition: fixed;\n\t\t\tz-index: #{$overlayingZIndex + 1};\n\t\t}\n\t}\n\n\t.cfgLoadingWithText {\n\t\t@include mixins.cfgRootStyles;\n\t\t@include mixins.cfgDefaultFont;\n\n\t\ttext-align: center;\n\n\t\t&__text {\n\t\t\tcolor: $textColor;\n\t\t\tfont-weight: 600;\n\t\t\tmargin-top: 0.5em;\n\t\t\tfont-size: 1.6em;\n\t\t}\n\t}\n\n\t.cfgLoading {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tanimation: rotate 1.1s linear 0s infinite;\n\t\tborder-radius: 100%;\n\t\tborder: 0.5em solid $spinnerColor2;\n\t\tborder-bottom-color: $spinnerColor1;\n\t\tdisplay: inline-block;\n\t\theight: 3em;\n\t\twidth: 3em;\n\n\t\t&--small {\n\t\t\tborder-width: 0.4em;\n\t\t\theight: 2em;\n\t\t\twidth: 2em;\n\t\t}\n\t}\n\n\t@keyframes rotate {\n\t\tfrom {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\tto {\n\t\t\ttransform: rotate(360deg);\n\t\t}\n\t}\n}\n","@use \"mixins\";\n\n@mixin classes($grayTextColor, $linkColor) {\n\t.cfgMiscFiles,\n\t.cfgNotes {\n\t\tlist-style: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.cfgMiscFiles {\n\t\t&__item {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin-top: 1em;\n\t\t\tmargin-bottom: 1em;\n\t\t}\n\n\t\t&__link {\n\t\t\tdisplay: block;\n\n\t\t\tcolor: $linkColor;\n\t\t\tfont-size: 1.4em;\n\t\t\tfont-weight: 600;\n\t\t}\n\t}\n\n\t.cfgNotes {\n\t\t&__item:not(:last-child) {\n\t\t\tmargin-bottom: -0.5em;\n\t\t}\n\n\t\t&__body {\n\t\t\twhite-space: pre-wrap;\n\t\t\toverflow: hidden;\n\n\t\t\tcolor: $grayTextColor;\n\t\t\tfont-size: 1.5em;\n\n\t\t\tmargin-bottom: 1em;\n\t\t\tmargin-right: 3em;\n\t\t}\n\t}\n}\n","/**\n * Web UI Option tree\n */\n\n@use \"mixins\";\n\n@mixin classes {\n\t.cfgOptionTree {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tlist-style: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\t&--topLevel {\n\t\t\tpadding-left: 1.7em;\n\t\t}\n\n\t\t&--indent {\n\t\t\tmargin-left: 3.2em;\n\t\t}\n\n\t\t&--compThumb {\n\t\t\tmargin-left: 4.2em;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Product information\n */\n\n@use \"sass:math\";\n@use \"mixins\";\n\n@mixin classes($textColor) {\n\t.cfgProductInfo {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tcolor: $textColor;\n\n\t\tdisplay: flex;\n\n\t\t&__left {\n\t\t\tflex: 1 1 auto;\n\t\t\tmin-width: 0;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t&__right {\n\t\t\talign-items: flex-end;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tflex: 1 0 auto;\n\t\t\tmargin-left: 1em;\n\t\t\tmax-width: 0.333333333;\n\t\t\tmin-width: 0;\n\t\t}\n\n\t\t&__name {\n\t\t\tdisplay: block;\n\t\t\tfont-size: 1.6em;\n\t\t\tfont-weight: 600;\n\t\t\tline-height: 1.33;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t&__number {\n\t\t\tfont-size: 1.3em;\n\t\t\tfont-weight: 400;\n\t\t\tline-height: 1.38;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t&__taskbar {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@mixin classes($errorColor) {\n\t.cfgRangeView {\n\t\t&__inputs {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t&__number-input {\n\t\t\tfont-size: 1.5em;\n\t\t\tflex-grow: 1;\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t&__unit-label {\n\t\t\tfont-size: 1.5em;\n\t\t\tmargin-left: 0.3em;\n\t\t}\n\n\t\t&__slider-input.cfgSlider {\n\t\t\tmargin-left: 1em;\n\t\t\tflex-grow: 3;\n\t\t}\n\n\t\t&__error {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\tmargin-top: 1em;\n\t\t\tfont-size: 1.5em;\n\t\t\tcolor: $errorColor;\n\n\t\t\t.cfgErrorIcon {\n\t\t\t\tpadding-right: 0.25em;\n\t\t\t\twidth: 1.25em;\n\t\t\t\theight: 1em;\n\t\t\t}\n\t\t}\n\t}\n}\n","@use \"mixins\";\n\n// The origins of this SCSS file is here:\n// https://css-tricks.com/sliding-nightmare-understanding-range-input/\n\n$trackHeight: 0.2em !default;\n$thumbDiameter: 2.8em !default;\n\n@mixin track($trackColor) {\n\tbox-sizing: border-box;\n\tborder: none;\n\theight: $trackHeight;\n\tbackground: $trackColor;\n}\n\n@mixin thumb($thumbColor, $thumbShadowColor) {\n\tbox-sizing: border-box;\n\tborder: none;\n\twidth: $thumbDiameter;\n\theight: $thumbDiameter;\n\tborder-radius: 50%;\n\tbackground: $thumbColor;\n\tbox-shadow: 0 0.15em 0.45em 0.05em $thumbShadowColor;\n}\n\n@mixin classes($trackColor, $thumbColor, $thumbShadowColor) {\n\t.cfgSlider {\n\t\t@include mixins.cfgRootStyles;\n\n\t\t&,\n\t\t&::-webkit-slider-thumb {\n\t\t\t-webkit-appearance: none;\n\t\t}\n\n\t\tflex: 1;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tmin-height: $thumbDiameter;\n\t\tbackground: transparent;\n\t\tfont: inherit;\n\n\t\t&::-webkit-slider-runnable-track {\n\t\t\t@include track($trackColor);\n\t\t}\n\t\t&::-moz-range-track {\n\t\t\t@include track($trackColor);\n\t\t}\n\t\t&::-ms-track {\n\t\t\t@include track($trackColor);\n\t\t}\n\n\t\t&::-webkit-slider-thumb {\n\t\t\tmargin-top: 0.5 * ($trackHeight - $thumbDiameter);\n\t\t\t@include thumb($thumbColor, $thumbShadowColor);\n\t\t}\n\t\t&::-moz-range-thumb {\n\t\t\t@include thumb($thumbColor, $thumbShadowColor);\n\t\t}\n\t\t&::-ms-thumb {\n\t\t\tmargin-top: 0;\n\t\t\t@include thumb($thumbColor, $thumbShadowColor);\n\t\t}\n\n\t\t&::-ms-tooltip {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"mixins\";\n\n@mixin classes($borderColor, $linkColor) {\n\t$preview-size: 4.8em;\n\t$line-width: 0.1em;\n\t$icon-size: 2em;\n\n\t.cfgTaskList {\n\t\tul {\n\t\t\tlist-style-type: none;\n\t\t\tpadding: 0;\n\t\t\tmargin: 1em 0 0 0;\n\t\t\tborder-bottom: 0.1em solid $borderColor;\n\t\t}\n\n\t\t&__item {\n\t\t\tpadding: 0 1.5em 0 1.7em;\n\t\t\tmargin-bottom: 1em;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t&__preview {\n\t\t\tborder: 0.1em solid $borderColor;\n\t\t\tborder-radius: 10%;\n\t\t\twidth: $preview-size;\n\t\t\theight: $preview-size;\n\t\t\tflex-shrink: 0;\n\n\t\t\timg {\n\t\t\t\tobject-fit: cover;\n\t\t\t\tposition: relative;\n\t\t\t\tleft: 0.1 * $preview-size - $line-width;\n\t\t\t\ttop: 0.1 * $preview-size - $line-width;\n\t\t\t\twidth: 0.8 * $preview-size;\n\t\t\t\theight: 0.8 * $preview-size;\n\t\t\t}\n\t\t}\n\n\t\t&__icon {\n\t\t\tflex-shrink: 0;\n\t\t\twidth: $icon-size + 2em;\n\t\t\theight: $icon-size;\n\t\t\tpadding-left: 1em;\n\t\t\tpadding-right: 1em;\n\n\t\t\t.cfgLoadingSizer {\n\t\t\t\tfont-size: 0.75em;\n\t\t\t}\n\t\t}\n\n\t\t&__status {\n\t\t\tflex-grow: 1;\n\t\t\tfont-size: 1.5em;\n\t\t}\n\n\t\t&__abort {\n\t\t\t@include mixins.noButtonLook;\n\t\t\tcursor: pointer;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tflex-shrink: 0;\n\t\t}\n\n\t\t&__restart {\n\t\t\t@include mixins.noButtonLook;\n\t\t\tcursor: pointer;\n\t\t\ttext-decoration: underline;\n\t\t\tcolor: $linkColor;\n\t\t}\n\t}\n}\n"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
@use "mixins";
|
|
2
|
+
|
|
3
|
+
@mixin classes($grayTextColor, $linkColor) {
|
|
4
|
+
.cfgMiscFiles,
|
|
5
|
+
.cfgNotes {
|
|
6
|
+
list-style: none;
|
|
7
|
+
margin: 0;
|
|
8
|
+
padding: 0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.cfgMiscFiles {
|
|
12
|
+
&__item {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
margin-top: 1em;
|
|
16
|
+
margin-bottom: 1em;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&__link {
|
|
20
|
+
display: block;
|
|
21
|
+
|
|
22
|
+
color: $linkColor;
|
|
23
|
+
font-size: 1.4em;
|
|
24
|
+
font-weight: 600;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.cfgNotes {
|
|
29
|
+
&__item:not(:last-child) {
|
|
30
|
+
margin-bottom: -0.5em;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&__body {
|
|
34
|
+
white-space: pre-wrap;
|
|
35
|
+
overflow: hidden;
|
|
36
|
+
|
|
37
|
+
color: $grayTextColor;
|
|
38
|
+
font-size: 1.5em;
|
|
39
|
+
|
|
40
|
+
margin-bottom: 1em;
|
|
41
|
+
margin-right: 3em;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
package/dist/scss/_themed.scss
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
@use "feature-item";
|
|
13
13
|
@use "hr";
|
|
14
14
|
@use "loading";
|
|
15
|
+
@use "misc-file-and-note";
|
|
15
16
|
@use "option-tree";
|
|
16
17
|
@use "product-information";
|
|
17
18
|
@use "range-view";
|
|
@@ -142,6 +143,7 @@ $themes: (
|
|
|
142
143
|
map.get($ct, "overlayBackground"),
|
|
143
144
|
$overlayingZIndex
|
|
144
145
|
);
|
|
146
|
+
@include misc-file-and-note.classes(map.get($ct, "grayText"), map.get($ct, "link"));
|
|
145
147
|
@include option-tree.classes;
|
|
146
148
|
@include product-information.classes(map.get($ct, "text"));
|
|
147
149
|
@include range-view.classes(map.get($ct, "error"));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@configura/web-ui",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.22",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
]
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@configura/web-api": "2.0.0-alpha.
|
|
35
|
+
"@configura/web-api": "2.0.0-alpha.22"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@babel/preset-env": "^7.14.4",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"publishConfig": {
|
|
65
65
|
"access": "public"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "cfa2ea1601ad133a4caa98fcfccc6666b9cd8638"
|
|
68
68
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { CfgFeatureView, forwardProps } from "./CfgFeatureView.js";
|
|
3
|
-
export const CfgOptionFeaturesView = (props) => {
|
|
4
|
-
const { option } = props;
|
|
5
|
-
const { features, selected } = option;
|
|
6
|
-
if (!selected) {
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
if (features.length === 0) {
|
|
10
|
-
return null;
|
|
11
|
-
}
|
|
12
|
-
return (React.createElement("ul", { className: "cfgOptionTree cfgOptionTree--subLevel cfgOptionTree--indent" }, features.map((f) => (React.createElement(CfgFeatureView, Object.assign({ feature: f, key: f.key }, forwardProps(props)))))));
|
|
13
|
-
};
|