@m3e/web 2.1.1 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.js +605 -1296
- package/dist/all.js.map +1 -1
- package/dist/all.min.js +54 -114
- package/dist/all.min.js.map +1 -1
- package/dist/app-bar.js +2 -34
- package/dist/app-bar.js.map +1 -1
- package/dist/app-bar.min.js +1 -1
- package/dist/app-bar.min.js.map +1 -1
- package/dist/autocomplete.js +17 -40
- package/dist/autocomplete.js.map +1 -1
- package/dist/autocomplete.min.js +1 -1
- package/dist/autocomplete.min.js.map +1 -1
- package/dist/avatar.js +1 -28
- package/dist/avatar.js.map +1 -1
- package/dist/avatar.min.js +1 -1
- package/dist/avatar.min.js.map +1 -1
- package/dist/badge.js +1 -39
- package/dist/badge.js.map +1 -1
- package/dist/badge.min.js +1 -1
- package/dist/badge.min.js.map +1 -1
- package/dist/bottom-sheet.js +22 -58
- package/dist/bottom-sheet.js.map +1 -1
- package/dist/bottom-sheet.min.js +1 -1
- package/dist/bottom-sheet.min.js.map +1 -1
- package/dist/button-group.js +2 -34
- package/dist/button-group.js.map +1 -1
- package/dist/button-group.min.js +1 -1
- package/dist/button-group.min.js.map +1 -1
- package/dist/button.js +2 -34
- package/dist/button.js.map +1 -1
- package/dist/button.min.js +1 -1
- package/dist/button.min.js.map +1 -1
- package/dist/card.js +4 -34
- package/dist/card.js.map +1 -1
- package/dist/card.min.js +1 -1
- package/dist/card.min.js.map +1 -1
- package/dist/checkbox.js +2 -34
- package/dist/checkbox.js.map +1 -1
- package/dist/checkbox.min.js +1 -1
- package/dist/checkbox.min.js.map +1 -1
- package/dist/chips.js +2 -40
- package/dist/chips.js.map +1 -1
- package/dist/chips.min.js +1 -1
- package/dist/chips.min.js.map +1 -1
- package/dist/core-a11y.js +1 -39
- package/dist/core-a11y.js.map +1 -1
- package/dist/core-a11y.min.js +4 -4
- package/dist/core-a11y.min.js.map +1 -1
- package/dist/core-anchoring.js +164 -177
- package/dist/core-anchoring.js.map +1 -1
- package/dist/core-anchoring.min.js +1 -1
- package/dist/core-anchoring.min.js.map +1 -1
- package/dist/core-bidi.js +1 -31
- package/dist/core-bidi.js.map +1 -1
- package/dist/core-bidi.min.js +2 -3
- package/dist/core-bidi.min.js.map +1 -1
- package/dist/core.js +53 -40
- package/dist/core.js.map +1 -1
- package/dist/core.min.js +1 -1
- package/dist/core.min.js.map +1 -1
- package/dist/css-custom-data.json +517 -512
- package/dist/custom-elements.json +5201 -4336
- package/dist/dialog.js +3 -41
- package/dist/dialog.js.map +1 -1
- package/dist/dialog.min.js +1 -1
- package/dist/dialog.min.js.map +1 -1
- package/dist/divider.js +1 -28
- package/dist/divider.js.map +1 -1
- package/dist/divider.min.js +1 -1
- package/dist/divider.min.js.map +1 -1
- package/dist/drawer-container.js +18 -48
- package/dist/drawer-container.js.map +1 -1
- package/dist/drawer-container.min.js +1 -1
- package/dist/drawer-container.min.js.map +1 -1
- package/dist/expansion-panel.js +8 -41
- package/dist/expansion-panel.js.map +1 -1
- package/dist/expansion-panel.min.js +1 -1
- package/dist/expansion-panel.min.js.map +1 -1
- package/dist/fab-menu.js +3 -47
- package/dist/fab-menu.js.map +1 -1
- package/dist/fab-menu.min.js +1 -1
- package/dist/fab-menu.min.js.map +1 -1
- package/dist/fab.js +1 -33
- package/dist/fab.js.map +1 -1
- package/dist/fab.min.js +1 -1
- package/dist/fab.min.js.map +1 -1
- package/dist/form-field.js +19 -49
- package/dist/form-field.js.map +1 -1
- package/dist/form-field.min.js +3 -4
- package/dist/form-field.min.js.map +1 -1
- package/dist/heading.js +1 -28
- package/dist/heading.js.map +1 -1
- package/dist/heading.min.js +1 -1
- package/dist/heading.min.js.map +1 -1
- package/dist/html-custom-data.json +192 -171
- package/dist/icon-button.js +2 -34
- package/dist/icon-button.js.map +1 -1
- package/dist/icon-button.min.js +1 -1
- package/dist/icon-button.min.js.map +1 -1
- package/dist/icon.js +1 -28
- package/dist/icon.js.map +1 -1
- package/dist/icon.min.js +1 -1
- package/dist/icon.min.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +7 -0
- package/dist/index.min.js.map +1 -0
- package/dist/list.js +17 -46
- package/dist/list.js.map +1 -1
- package/dist/list.min.js +1 -1
- package/dist/list.min.js.map +1 -1
- package/dist/loading-indicator.js +8 -31
- package/dist/loading-indicator.js.map +1 -1
- package/dist/loading-indicator.min.js +1 -1
- package/dist/loading-indicator.min.js.map +1 -1
- package/dist/menu.js +3 -47
- package/dist/menu.js.map +1 -1
- package/dist/menu.min.js +1 -1
- package/dist/menu.min.js.map +1 -1
- package/dist/nav-bar.js +3 -41
- package/dist/nav-bar.js.map +1 -1
- package/dist/nav-bar.min.js +1 -1
- package/dist/nav-bar.min.js.map +1 -1
- package/dist/nav-menu.js +2 -40
- package/dist/nav-menu.js.map +1 -1
- package/dist/nav-menu.min.js +1 -1
- package/dist/nav-menu.min.js.map +1 -1
- package/dist/nav-rail.js +1 -33
- package/dist/nav-rail.js.map +1 -1
- package/dist/nav-rail.min.js +1 -1
- package/dist/nav-rail.min.js.map +1 -1
- package/dist/option.js +3 -59
- package/dist/option.js.map +1 -1
- package/dist/option.min.js +1 -1
- package/dist/option.min.js.map +1 -1
- package/dist/paginator.js +2 -34
- package/dist/paginator.js.map +1 -1
- package/dist/paginator.min.js +2 -3
- package/dist/paginator.min.js.map +1 -1
- package/dist/progress-indicator.js +41 -63
- package/dist/progress-indicator.js.map +1 -1
- package/dist/progress-indicator.min.js +32 -32
- package/dist/progress-indicator.min.js.map +1 -1
- package/dist/radio-group.js +1 -39
- package/dist/radio-group.js.map +1 -1
- package/dist/radio-group.min.js +1 -1
- package/dist/radio-group.min.js.map +1 -1
- package/dist/segmented-button.js +2 -40
- package/dist/segmented-button.js.map +1 -1
- package/dist/segmented-button.min.js +1 -1
- package/dist/segmented-button.min.js.map +1 -1
- package/dist/select.js +16 -40
- package/dist/select.js.map +1 -1
- package/dist/select.min.js +1 -1
- package/dist/select.min.js.map +1 -1
- package/dist/shape.js +1 -28
- package/dist/shape.js.map +1 -1
- package/dist/shape.min.js +1 -1
- package/dist/shape.min.js.map +1 -1
- package/dist/slide-group.js +9 -42
- package/dist/slide-group.js.map +1 -1
- package/dist/slide-group.min.js +1 -1
- package/dist/slide-group.min.js.map +1 -1
- package/dist/slider.js +1 -39
- package/dist/slider.js.map +1 -1
- package/dist/slider.min.js +1 -1
- package/dist/slider.min.js.map +1 -1
- package/dist/snackbar.js +2 -40
- package/dist/snackbar.js.map +1 -1
- package/dist/snackbar.min.js +1 -1
- package/dist/snackbar.min.js.map +1 -1
- package/dist/split-button.js +1 -39
- package/dist/split-button.js.map +1 -1
- package/dist/split-button.min.js +1 -1
- package/dist/split-button.min.js.map +1 -1
- package/dist/src/autocomplete/AutocompleteElement.d.ts +6 -0
- package/dist/src/autocomplete/AutocompleteElement.d.ts.map +1 -1
- package/dist/src/bottom-sheet/BottomSheetElement.d.ts +3 -3
- package/dist/src/bottom-sheet/BottomSheetElement.d.ts.map +1 -1
- package/dist/src/card/CardElement.d.ts +1 -0
- package/dist/src/card/CardElement.d.ts.map +1 -1
- package/dist/src/card/styles/CardVariantToken.d.ts +1 -1
- package/dist/src/card/styles/CardVariantToken.d.ts.map +1 -1
- package/dist/src/core/anchoring/FloatingPanelElement.d.ts +6 -3
- package/dist/src/core/anchoring/FloatingPanelElement.d.ts.map +1 -1
- package/dist/src/core/anchoring/FloatingPanelScrollStrategy.d.ts +3 -0
- package/dist/src/core/anchoring/FloatingPanelScrollStrategy.d.ts.map +1 -0
- package/dist/src/core/anchoring/index.d.ts +1 -0
- package/dist/src/core/anchoring/index.d.ts.map +1 -1
- package/dist/src/core/shared/mixins/ReconnectedCallback.d.ts +15 -0
- package/dist/src/core/shared/mixins/ReconnectedCallback.d.ts.map +1 -0
- package/dist/src/core/shared/mixins/SuppressInitialAnimation.d.ts +11 -0
- package/dist/src/core/shared/mixins/SuppressInitialAnimation.d.ts.map +1 -0
- package/dist/src/core/shared/mixins/index.d.ts +2 -0
- package/dist/src/core/shared/mixins/index.d.ts.map +1 -1
- package/dist/src/drawer-container/DrawerContainerElement.d.ts +4 -2
- package/dist/src/drawer-container/DrawerContainerElement.d.ts.map +1 -1
- package/dist/src/expansion-panel/ExpansionPanelElement.d.ts +3 -1
- package/dist/src/expansion-panel/ExpansionPanelElement.d.ts.map +1 -1
- package/dist/src/fab-menu/FabMenuElement.d.ts +1 -3
- package/dist/src/fab-menu/FabMenuElement.d.ts.map +1 -1
- package/dist/src/form-field/FormFieldElement.d.ts +4 -2
- package/dist/src/form-field/FormFieldElement.d.ts.map +1 -1
- package/dist/src/list/ActionListElement.d.ts.map +1 -1
- package/dist/src/list/ListItemElement.d.ts +3 -1
- package/dist/src/list/ListItemElement.d.ts.map +1 -1
- package/dist/src/loading-indicator/LoadingIndicatorElement.d.ts +3 -1
- package/dist/src/loading-indicator/LoadingIndicatorElement.d.ts.map +1 -1
- package/dist/src/menu/MenuElement.d.ts +1 -3
- package/dist/src/menu/MenuElement.d.ts.map +1 -1
- package/dist/src/nav-bar/NavBarElement.d.ts +1 -1
- package/dist/src/nav-bar/NavBarElement.d.ts.map +1 -1
- package/dist/src/option/OptionPanelElement.d.ts +0 -4
- package/dist/src/option/OptionPanelElement.d.ts.map +1 -1
- package/dist/src/progress-indicator/CircularProgressIndicatorElement.d.ts +2 -0
- package/dist/src/progress-indicator/CircularProgressIndicatorElement.d.ts.map +1 -1
- package/dist/src/progress-indicator/LinearProgressIndicatorElement.d.ts +2 -0
- package/dist/src/progress-indicator/LinearProgressIndicatorElement.d.ts.map +1 -1
- package/dist/src/progress-indicator/ProgressElementIndicatorBase.d.ts +1 -1
- package/dist/src/progress-indicator/ProgressElementIndicatorBase.d.ts.map +1 -1
- package/dist/src/select/SelectElement.d.ts +6 -0
- package/dist/src/select/SelectElement.d.ts.map +1 -1
- package/dist/src/slide-group/SlideGroupElement.d.ts +5 -1
- package/dist/src/slide-group/SlideGroupElement.d.ts.map +1 -1
- package/dist/src/stepper/StepperElement.d.ts +1 -1
- package/dist/src/stepper/StepperElement.d.ts.map +1 -1
- package/dist/src/toc/TocElement.d.ts +1 -1
- package/dist/src/toc/TocElement.d.ts.map +1 -1
- package/dist/src/tooltip/TooltipElementBase.d.ts +3 -1
- package/dist/src/tooltip/TooltipElementBase.d.ts.map +1 -1
- package/dist/stepper.js +3 -41
- package/dist/stepper.js.map +1 -1
- package/dist/stepper.min.js +1 -1
- package/dist/stepper.min.js.map +1 -1
- package/dist/switch.js +1 -33
- package/dist/switch.js.map +1 -1
- package/dist/switch.min.js +1 -1
- package/dist/switch.min.js.map +1 -1
- package/dist/tabs.js +1 -39
- package/dist/tabs.js.map +1 -1
- package/dist/tabs.min.js +1 -1
- package/dist/tabs.min.js.map +1 -1
- package/dist/textarea-autosize.js +1 -39
- package/dist/textarea-autosize.js.map +1 -1
- package/dist/textarea-autosize.min.js +2 -3
- package/dist/textarea-autosize.min.js.map +1 -1
- package/dist/theme.js +1 -39
- package/dist/theme.js.map +1 -1
- package/dist/theme.min.js +19 -19
- package/dist/theme.min.js.map +1 -1
- package/dist/toc.js +4 -42
- package/dist/toc.js.map +1 -1
- package/dist/toc.min.js +1 -1
- package/dist/toc.min.js.map +1 -1
- package/dist/toolbar.js +1 -39
- package/dist/toolbar.js.map +1 -1
- package/dist/toolbar.min.js +1 -1
- package/dist/toolbar.min.js.map +1 -1
- package/dist/tooltip.js +15 -46
- package/dist/tooltip.js.map +1 -1
- package/dist/tooltip.min.js +1 -1
- package/dist/tooltip.min.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-indicator.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../src/progress-indicator/ProgressElementIndicatorBase.ts","../../src/progress-indicator/CircularProgressIndicatorElement.ts","../../src/progress-indicator/LinearProgressIndicatorElement.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { css, CSSResultGroup, LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { AttachInternals, Role } from \"@m3e/web/core\";\r\n\r\nimport { ProgressIndicatorVariant } from \"./ProgressIndicatorVariant\";\r\n\r\n/** A base implementation for an element used to convey progress. This class must be inherited. */\r\nexport abstract class ProgressElementIndicatorBase extends AttachInternals(Role(LitElement, \"progressbar\"), true) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n @media (forced-colors: active) {\r\n :host {\r\n --m3e-progress-indicator-color: CanvasText;\r\n --m3e-progress-indicator-track-color: Canvas;\r\n }\r\n }\r\n `;\r\n\r\n /**\r\n * A fractional value, between 0 and `max`, indicating progress.\r\n * @default 0\r\n */\r\n @property({ type: Number, reflect: true }) value = 0;\r\n\r\n /**\r\n * The maximum progress value.\r\n * @default 100\r\n */\r\n @property({ type: Number }) max = 100;\r\n\r\n /**\r\n * The appearance of the indicator.\r\n * @default \"flat\"\r\n */\r\n @property({ reflect: true }) variant: ProgressIndicatorVariant = \"flat\";\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.ariaValueMin = \"0\";\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"value\")) {\r\n this.ariaValueNow = `${this.value}`;\r\n }\r\n if (changedProperties.has(\"max\")) {\r\n this.ariaValueMax = `${this.max}`;\r\n }\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, nothing, PropertyValues, svg } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\nimport { classMap } from \"lit/directives/class-map.js\";\r\nimport { ifDefined } from \"lit/directives/if-defined.js\";\r\n\r\nimport {\r\n AnimationLoopController,\r\n customElement,\r\n DesignToken,\r\n ResizeController,\r\n resolveFragmentUrl,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { ProgressElementIndicatorBase } from \"./ProgressElementIndicatorBase\";\r\n\r\nconst WAVY_INDETERMINATE_DURATION = 1.575;\r\n\r\n/**\r\n * A circular indicator of progress and activity.\r\n *\r\n * @description\r\n * The `m3e-circular-progress-indicator` component displays a circular progress spinner for\r\n * tracking the completion of a task or process. It supports determinate and indeterminate\r\n * modes, and can be customized with CSS custom properties for diameter, stroke width, and\r\n * color. The component is accessible, animates smoothly, and adapts to various use cases including\r\n * loading and activity indication.\r\n *\r\n * @example\r\n * The following example illustrates a determinate circular progress indicator.\r\n * ```html\r\n * <m3e-circular-progress-indicator value=\"30\"></m3e-circular-progress-indicator>\r\n * ```\r\n * @example\r\n * The next example illustrates an indeterminate circular progress indicator using the `indeterminate` attribute.\r\n * ```html\r\n * <m3e-circular-progress-indicator indeterminate></m3e-circular-progress-indicator>\r\n * ```\r\n *\r\n * @tag m3e-circular-progress-indicator\r\n *\r\n * @slot - Renders the content inside the progress indicator.\r\n *\r\n * @attr indeterminate - Whether to show something is happening without conveying progress.\r\n * @attr max - The maximum progress value.\r\n * @attr value - A fractional value, between 0 and `max`, indicating progress.\r\n * @attr variant - The appearance of the indicator.\r\n *\r\n * @cssprop --m3e-circular-flat-progress-indicator-diameter - Diameter of the `flat` variant.\r\n * @cssprop --m3e-circular-wavy-progress-indicator-diameter - Diameter of the `wavy` variant.\r\n * @cssprop --m3e-circular-wavy-progress-indicator-amplitude - Amplitude of the `wavy` variant.\r\n * @cssprop --m3e-circular-wavy-progress-indicator-wavelength - Wavelength of the `wavy` variant.\r\n * @cssprop --m3e-circular-progress-indicator-thickness - Thickness of the progress indicator.\r\n * @cssprop --m3e-progress-indicator-track-color - Track color of the progress indicator (background).\r\n * @cssprop --m3e-progress-indicator-color - Color of the progress indicator (foreground).\r\n */\r\n@customElement(\"m3e-circular-progress-indicator\")\r\nexport class M3eCircularProgressIndicatorElement extends ProgressElementIndicatorBase {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = [\r\n ProgressElementIndicatorBase.styles,\r\n css`\r\n :host {\r\n display: inline-flex;\r\n vertical-align: middle;\r\n aspect-ratio: 1;\r\n position: relative;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n .progress {\r\n --_arc-duration: 1333ms;\r\n --_cycle-duration: calc(4 * var(--_arc-duration));\r\n --_linear-rotate-duration: calc(var(--_arc-duration) * 360 / 306);\r\n --_indeterminate-easing: cubic-bezier(0.4, 0, 0.2, 1);\r\n }\r\n .active-track {\r\n transition: stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1);\r\n }\r\n :host([variant=\"flat\"]) .progress {\r\n flex: 1;\r\n align-self: stretch;\r\n pointer-events: none;\r\n }\r\n .progress,\r\n .spinner,\r\n .left,\r\n .right,\r\n .content,\r\n .circle {\r\n position: absolute;\r\n inset: 0;\r\n }\r\n .content {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n .diameter-and-stroke,\r\n .amplitude-and-wavelength {\r\n visibility: hidden;\r\n position: absolute;\r\n }\r\n .diameter-and-stroke {\r\n width: inherit;\r\n height: var(--m3e-circular-progress-indicator-thickness, 0.25rem);\r\n }\r\n .amplitude-and-wavelength {\r\n width: var(--m3e-circular-wavy-progress-indicator-amplitude, 0.1rem);\r\n height: var(--m3e-circular-wavy-progress-indicator-wavelength, 0.9375rem);\r\n }\r\n :host([variant=\"flat\"]) {\r\n width: var(--m3e-circular-flat-progress-indicator-diameter, 2.5rem);\r\n }\r\n :host([variant=\"wavy\"]) {\r\n width: var(--m3e-circular-wavy-progress-indicator-diameter, 3rem);\r\n }\r\n :host([variant=\"flat\"][indeterminate]) .progress {\r\n animation: linear infinite linear-rotate;\r\n animation-duration: var(--_linear-rotate-duration);\r\n }\r\n :host([variant=\"flat\"][indeterminate]) .spinner {\r\n animation: infinite both rotate-arc;\r\n animation-duration: var(--_cycle-duration);\r\n animation-timing-function: var(--_indeterminate-easing);\r\n }\r\n :host([variant=\"wavy\"][indeterminate]) .spinner {\r\n transform-origin: 50% 50%;\r\n animation: wavy-spin ${WAVY_INDETERMINATE_DURATION}s linear infinite;\r\n }\r\n .left {\r\n clip-path: inset(0);\r\n inset: 0 50% 0 0;\r\n }\r\n .right {\r\n clip-path: inset(0);\r\n inset: 0 0 0 50%;\r\n }\r\n .circle {\r\n animation: expand-arc;\r\n animation-iteration-count: infinite;\r\n animation-fill-mode: both;\r\n animation-duration: var(--_arc-duration), var(--_cycle-duration);\r\n animation-timing-function: var(--_indeterminate-easing);\r\n }\r\n .left .circle {\r\n rotate: 135deg;\r\n inset: 0 -100% 0 0;\r\n }\r\n .right .circle {\r\n rotate: 100deg;\r\n inset: 0 0 0 -100%;\r\n animation-delay: calc(-0.5 * var(--_arc-duration)), 0ms;\r\n }\r\n .track {\r\n color: var(--m3e-progress-indicator-track-color, ${DesignToken.color.secondaryContainer});\r\n }\r\n .active-track {\r\n color: var(--m3e-progress-indicator-color, ${DesignToken.color.primary});\r\n }\r\n .wave {\r\n animation: spin-reverse 8s linear infinite;\r\n transform-origin: 50% 50%;\r\n }\r\n @keyframes expand-arc {\r\n 0% {\r\n transform: rotate(265deg);\r\n }\r\n 50% {\r\n transform: rotate(130deg);\r\n }\r\n 100% {\r\n transform: rotate(265deg);\r\n }\r\n }\r\n @keyframes rotate-arc {\r\n 12.5% {\r\n transform: rotate(135deg);\r\n }\r\n 25% {\r\n transform: rotate(270deg);\r\n }\r\n 37.5% {\r\n transform: rotate(405deg);\r\n }\r\n 50% {\r\n transform: rotate(540deg);\r\n }\r\n 62.5% {\r\n transform: rotate(675deg);\r\n }\r\n 75% {\r\n transform: rotate(810deg);\r\n }\r\n 87.5% {\r\n transform: rotate(945deg);\r\n }\r\n 100% {\r\n transform: rotate(1080deg);\r\n }\r\n }\r\n @keyframes linear-rotate {\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n @keyframes spin-reverse {\r\n from {\r\n transform: rotate(360deg);\r\n }\r\n to {\r\n transform: rotate(0deg);\r\n }\r\n }\r\n @keyframes spin {\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n @keyframes wavy-spin {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 10% {\r\n transform: rotate(90deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n :host([variant=\"flat\"]) circle {\r\n fill: Canvas;\r\n }\r\n :host([variant=\"flat\"]) .circle {\r\n border-color: var(--m3e-progress-indicator-color, ${DesignToken.color.primary})\r\n var(--m3e-progress-indicator-color, ${DesignToken.color.primary}) Canvas Canvas;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .progress {\r\n --m3e-progress-indicator-track-color: GrayText;\r\n --m3e-progress-indicator-color: CanvasText;\r\n }\r\n }\r\n `,\r\n ];\r\n\r\n /** @private */ private static __nextMaskId = 0;\r\n /** @private */ #maskId = `m3e-circular-progress-mask-${M3eCircularProgressIndicatorElement.__nextMaskId++}`;\r\n\r\n /** @private */ #diameter = 0;\r\n /** @private */ #strokeWidth = 0;\r\n /** @private */ #amplitude = 0;\r\n /** @private */ #wavelength = 0;\r\n\r\n /** @private */ #spinnerActiveTrack?: SVGPathElement | null;\r\n /** @private */ #spinnerTrack?: SVGPathElement | null;\r\n\r\n /** @private */ readonly #resizeController = new ResizeController(this, {\r\n skipInitial: true,\r\n target: null,\r\n callback: () => {\r\n this.#updateDiameterAndStroke();\r\n this.#updateAmplitudeAndWavelength();\r\n queueMicrotask(() => this.requestUpdate());\r\n },\r\n });\r\n\r\n /** @private */ readonly #indeterminateWavyAnimationLoop = new AnimationLoopController(this, (_, t) =>\r\n this.#updateWavyIndeterminateSpinner(t),\r\n );\r\n\r\n /**\r\n * Whether to show something is happening without conveying progress.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) indeterminate = false;\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"indeterminate\")) {\r\n this.ariaValueNow = this.indeterminate ? null : `${this.value}`;\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n\r\n const diameterAndStroke = this.shadowRoot?.querySelector<HTMLElement>(\".diameter-and-stroke\");\r\n if (diameterAndStroke) {\r\n this.#updateDiameterAndStroke();\r\n this.#resizeController.observe(diameterAndStroke);\r\n }\r\n\r\n const amplitudeAndWavelength = this.shadowRoot?.querySelector<HTMLElement>(\".amplitude-and-wavelength\");\r\n if (amplitudeAndWavelength) {\r\n this.#updateDiameterAndStroke();\r\n this.#resizeController.observe(amplitudeAndWavelength);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override updated(_changedProperties: PropertyValues<this>): void {\r\n super.updated(_changedProperties);\r\n\r\n if (_changedProperties.has(\"indeterminate\")) {\r\n this.#spinnerActiveTrack = this.shadowRoot?.querySelector<SVGPathElement>(\".spinner.active-track\");\r\n this.#spinnerTrack = this.shadowRoot?.querySelector<SVGPathElement>(\".spinner.track\");\r\n\r\n if (this.indeterminate) {\r\n this.#indeterminateWavyAnimationLoop.start();\r\n } else {\r\n this.#indeterminateWavyAnimationLoop.stop();\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return this.variant === \"wavy\" ? this.#renderWavyIndicator() : this.#renderFlatIndicator();\r\n }\r\n\r\n /** @private */\r\n #renderFlatIndicator(): unknown {\r\n if (this.indeterminate) {\r\n const left = this.#drawArc({ startAngle: -45, endAngle: 90 + this.#strokeWidth });\r\n const right = this.#drawArc({ startAngle: -this.#strokeWidth, endAngle: 135 });\r\n\r\n return html`<div class=\"progress\" aria-hidden=\"true\">\r\n <div class=\"spinner\">\r\n <div class=\"left\">\r\n <svg width=\"${this.#diameter}\" height=\"${this.#diameter}\" viewBox=\"${left.viewBox}\" class=\"circle\">\r\n <path\r\n class=\"active-track\"\r\n d=\"${left.path}\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <svg width=\"${this.#diameter}\" height=\"${this.#diameter}\" viewBox=\"${right.viewBox}\" class=\"circle\">\r\n <path\r\n class=\"active-track\"\r\n d=\"${right.path}\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n ${this.#renderResizeObservedElements()}`;\r\n }\r\n\r\n const minDegrees = this.#sizeToDegrees(this.#strokeWidth * 2, this.#diameter);\r\n let degrees = (this.value / this.max) * 360;\r\n if (degrees > 0) {\r\n degrees = Math.max(0, minDegrees, degrees);\r\n }\r\n\r\n const active = this.#drawArc({ gap: degrees < 360 ? this.#strokeWidth : 0, endAngle: degrees });\r\n const inactive = this.#drawArc({ gap: degrees > 0 ? this.#strokeWidth : 0, startAngle: degrees, endAngle: 360 });\r\n\r\n return html`<div class=\"progress\" aria-hidden=\"true\">\r\n <svg width=\"${this.#diameter}\" height=\"${this.#diameter}\" viewBox=\"${active.viewBox}\">\r\n ${degrees > 0\r\n ? svg`<path\r\n class=\"active-track\"\r\n d=\"${active.path}\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />`\r\n : nothing}\r\n ${360 - degrees >= minDegrees\r\n ? svg`<path\r\n class=\"track\"\r\n d=\"${inactive.path}\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />`\r\n : nothing}\r\n </svg>\r\n </div>\r\n ${this.#renderResizeObservedElements()}${this.#renderContent()}`;\r\n }\r\n\r\n /** @private */\r\n #renderWavyIndicator(): unknown {\r\n if (this.indeterminate) {\r\n return html`<div class=\"progress\" aria-hidden=\"true\">\r\n <svg\r\n width=\"${this.#diameter}\"\r\n height=\"${this.#diameter}\"\r\n viewBox=\"${this.#drawWavyArc({ endAngle: 20 }).viewBox}\"\r\n >\r\n <path\r\n class=\"spinner active-track\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"spinner track\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n ${this.#renderResizeObservedElements()}`;\r\n }\r\n\r\n const minDegrees = this.#sizeToDegrees(this.#strokeWidth * 2, this.#diameter);\r\n let degrees = (this.value / this.max) * 360;\r\n if (degrees > 0) {\r\n degrees = Math.max(0, minDegrees, degrees);\r\n }\r\n\r\n const amplitude = degrees <= minDegrees + minDegrees / 2 || degrees == 360 ? 0 : this.#amplitude;\r\n const activeArc = this.#drawArc({ gap: degrees < 360 ? this.#strokeWidth : 0, endAngle: degrees });\r\n const active = amplitude == 0 ? activeArc : this.#drawWavyArc({ endAngle: 360, amplitude });\r\n const inactive = this.#drawArc({ gap: degrees > 0 ? this.#strokeWidth : 0, startAngle: degrees, endAngle: 360 });\r\n const padding = amplitude > 0 ? amplitude + this.#strokeWidth / 2 : this.#strokeWidth;\r\n\r\n return html`\r\n <svg class=\"progress\" viewBox=\"${inactive.viewBox}\" aria-hidden=\"true\">\r\n ${degrees > 0\r\n ? svg`${\r\n amplitude > 0\r\n ? svg`<defs>\r\n <mask id=\"${this.#maskId}\">\r\n <path\r\n d=\"${activeArc.path}\"\r\n stroke=\"white\"\r\n stroke-width=\"${this.#strokeWidth + padding}\"\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />\r\n </mask>\r\n </defs>`\r\n : nothing\r\n }\r\n <g class=\"active-track\" mask=\"${ifDefined(amplitude > 0 ? resolveFragmentUrl(this.#maskId) : undefined)}\">\r\n <path\r\n class=\"${classMap({ wave: amplitude > 0 })}\"\r\n d=\"${active.path}\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n </g>`\r\n : nothing}\r\n ${360 - degrees >= minDegrees\r\n ? svg`<path\r\n class=\"track\"\r\n d=\"${inactive.path}\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />`\r\n : nothing}\r\n </svg>\r\n ${this.#renderResizeObservedElements()}${this.#renderContent()}\r\n `;\r\n }\r\n\r\n /** @private */\r\n #renderResizeObservedElements(): unknown {\r\n return html`<div class=\"diameter-and-stroke\" aria-hidden=\"true\"></div>\r\n <div class=\"amplitude-and-wavelength\" aria-hidden=\"true\"></div>`;\r\n }\r\n\r\n /** @private */\r\n #renderContent(): unknown {\r\n return html`<div class=\"content\" aria-hidden=\"true\"><slot></slot></div>`;\r\n }\r\n\r\n /** @private */\r\n #updateDiameterAndStroke(): void {\r\n const element = this.shadowRoot?.querySelector<HTMLElement>(\".diameter-and-stroke\");\r\n if (element) {\r\n this.#diameter = element.clientWidth;\r\n this.#strokeWidth = element.clientHeight;\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateAmplitudeAndWavelength(): void {\r\n const element = this.shadowRoot?.querySelector<HTMLElement>(\".amplitude-and-wavelength\");\r\n if (element) {\r\n this.#amplitude = element.clientWidth;\r\n this.#wavelength = element.clientHeight;\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateWavyIndeterminateSpinner(t: number): void {\r\n if (this.#amplitude === 0 || this.#wavelength === 0) return;\r\n\r\n const sweep = this.#computeWavyIndeterminateSweep(t);\r\n this.#spinnerActiveTrack?.setAttribute(\"d\", this.#drawWavyArc({ endAngle: sweep }).path);\r\n this.#spinnerTrack?.setAttribute(\r\n \"d\",\r\n this.#drawArc({\r\n gap: this.#sizeToDegrees(this.#strokeWidth, this.#diameter),\r\n startAngle: sweep,\r\n }).path,\r\n );\r\n }\r\n\r\n /** @private */\r\n #computeWavyIndeterminateSweep(t: number): number {\r\n const sweepPadding = this.#sizeToDegrees(this.#strokeWidth) * 2;\r\n const minSweep = 18 + sweepPadding;\r\n const maxSweep = 280 - sweepPadding;\r\n\r\n const duration = WAVY_INDETERMINATE_DURATION;\r\n const holdMin = duration;\r\n const growTime = duration;\r\n const holdMax = duration;\r\n const shrinkTime = duration;\r\n\r\n const cycle = holdMin + growTime + holdMax + shrinkTime;\r\n const u = t % cycle;\r\n\r\n if (u < holdMin) {\r\n return minSweep;\r\n }\r\n\r\n if (u < holdMin + growTime) {\r\n const p = (u - holdMin) / growTime;\r\n return minSweep + (maxSweep - minSweep) * (p * p * (3 - 2 * p));\r\n }\r\n\r\n if (u < holdMin + growTime + holdMax) {\r\n return maxSweep;\r\n }\r\n\r\n const p = (u - (holdMin + growTime + holdMax)) / shrinkTime;\r\n return maxSweep - (maxSweep - minSweep) * (p * p * (3 - 2 * p));\r\n }\r\n\r\n /** @private */\r\n #sizeToDegrees(size: number, padding = this.#amplitude): number {\r\n return size * (360 / (2 * Math.PI * this.#computeCircle(padding).r));\r\n }\r\n\r\n /** @private */\r\n #degreesToRadians(degrees: number) {\r\n return (degrees - 90) * (Math.PI / 180);\r\n }\r\n\r\n /** @private */\r\n #polarToCartesian(circle: { cx: number; cy: number; r: number }, degrees: number) {\r\n const rad = this.#degreesToRadians(degrees);\r\n return {\r\n x: circle.cx + circle.r * Math.cos(rad),\r\n y: circle.cy + circle.r * Math.sin(rad),\r\n };\r\n }\r\n\r\n /** @private */\r\n #computeCircle(padding: number) {\r\n padding = padding + this.#strokeWidth / 2;\r\n const r = this.#diameter / 2;\r\n const cx = r + padding;\r\n const cy = r + padding;\r\n return { cx, cy, r, padding };\r\n }\r\n\r\n /** @private */\r\n #drawArc({\r\n startAngle = 0,\r\n endAngle = 360,\r\n gap = 0,\r\n padding = this.#amplitude,\r\n }: {\r\n startAngle?: number;\r\n endAngle?: number;\r\n gap?: number;\r\n padding?: number;\r\n }) {\r\n if (this.#diameter === 0 || this.#strokeWidth === 0) return { path: \"\", viewBox: \"0 0 0 0\" };\r\n\r\n const circle = this.#computeCircle(padding);\r\n if (gap > 0) {\r\n startAngle += this.#sizeToDegrees(gap, padding);\r\n endAngle -= this.#sizeToDegrees(gap, padding);\r\n }\r\n if (endAngle - startAngle >= 360) {\r\n endAngle = startAngle + 359.999;\r\n }\r\n const start = this.#polarToCartesian(circle, endAngle);\r\n const end = this.#polarToCartesian(circle, startAngle);\r\n\r\n const path = `M ${start.x} ${start.y} A ${circle.r} ${circle.r} 0 ${endAngle - startAngle <= 180 ? \"0\" : \"1\"} 0 ${end.x} ${end.y}`;\r\n const viewBox = `0 0 ${this.#diameter + circle.padding * 2} ${this.#diameter + circle.padding * 2}`;\r\n return { path, viewBox };\r\n }\r\n\r\n /** @private */\r\n #drawWavyArc({\r\n startAngle = 0,\r\n endAngle = 360,\r\n gap = 0,\r\n padding = this.#amplitude,\r\n amplitude = this.#amplitude,\r\n steps = 200,\r\n }: {\r\n startAngle?: number;\r\n endAngle?: number;\r\n gap?: number;\r\n padding?: number;\r\n amplitude?: number;\r\n steps?: number;\r\n }) {\r\n if (this.#diameter === 0 || this.#strokeWidth === 0) return { path: \"\", viewBox: \"0 0 0 0\" };\r\n\r\n const circle = this.#computeCircle(padding);\r\n\r\n if (gap > 0) {\r\n startAngle += this.#sizeToDegrees(gap, padding);\r\n endAngle -= this.#sizeToDegrees(gap, padding);\r\n }\r\n\r\n const startRad = this.#degreesToRadians(startAngle);\r\n let endRad = this.#degreesToRadians(endAngle);\r\n\r\n if (startAngle === endAngle) {\r\n endRad = startRad;\r\n } else if (endRad < startRad) {\r\n endRad += Math.PI * 2;\r\n }\r\n\r\n const totalAngle = endRad - startRad;\r\n const waveCount = (2 * Math.PI * circle.r) / this.#wavelength;\r\n const phase = (Math.PI / 2) * (waveCount - 1);\r\n\r\n const points: [number, number][] = [];\r\n\r\n for (let i = 0; i <= steps; i++) {\r\n const t = steps === 0 ? 0 : i / steps;\r\n const angle = startRad + t * totalAngle;\r\n const wave = Math.sin(angle * waveCount + phase);\r\n const radius = circle.r - amplitude * wave;\r\n const x = radius * Math.cos(angle) + circle.cx;\r\n const y = radius * Math.sin(angle) + circle.cy;\r\n points.push([x, y]);\r\n }\r\n\r\n const path =\r\n points.length === 1\r\n ? `M ${points[0][0]},${points[0][1]}`\r\n : `M ${points[0][0]},${points[0][1]} ` +\r\n points\r\n .slice(1)\r\n .map(([x, y]) => `L ${x},${y}`)\r\n .join(\" \");\r\n\r\n const viewBox = `0 0 ${this.#diameter + circle.padding * 2} ${this.#diameter + circle.padding * 2}`;\r\n return { path, viewBox };\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-circular-progress-indicator\": M3eCircularProgressIndicatorElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, nothing, PropertyValues, svg } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { customElement, DesignToken, ResizeController, resolveFragmentUrl, safeStyleMap } from \"@m3e/web/core\";\r\n\r\nimport { LinearProgressMode } from \"./LinearProgressMode\";\r\nimport { ProgressElementIndicatorBase } from \"./ProgressElementIndicatorBase\";\r\n\r\n/**\r\n * A horizontal bar for indicating progress and activity.\r\n *\r\n * @description\r\n * The `m3e-linear-progress-indicator` component displays a horizontal progress bar for tracking\r\n * the completion of a task or process. It supports `determinate`, `indeterminate`, `buffer`,\r\n * and `query` modes, and can be customized with CSS custom properties for thickness, shape, and color.\r\n * The component is accessible, animates smoothly, and adapts to various use cases including loading,\r\n * buffering, and activity indication.\r\n *\r\n * @example\r\n * The following example illustrates a determinate linear progress indicator.\r\n * ```html\r\n * <m3e-linear-progress-indicator value=\"30\"></m3e-linear-progress-indicator>\r\n * ```\r\n * @example\r\n * The next example illustrates an indeterminate linear progress indicator using the `mode` attribute.\r\n * ```html\r\n * <m3e-linear-progress-indicator mode=\"indeterminate\"></m3e-linear-progress-indicator>\r\n * ```\r\n *\r\n * @tag m3e-linear-progress-indicator\r\n *\r\n * @attr buffer-value - A fractional value, between 0 and `max`, indicating buffer progress.\r\n * @attr max - The maximum progress value.\r\n * @attr mode - The mode of the progress bar.\r\n * @attr value - A fractional value, between 0 and `max`, indicating progress.\r\n * @attr variant - The appearance of the indicator.\r\n *\r\n * @cssprop --m3e-linear-progress-indicator-thickness - Thickness (height) of the progress bar.\r\n * @cssprop --m3e-linear-progress-indicator-shape - Border radius of the progress bar.\r\n * @cssprop --m3e-progress-indicator-track-color - Track color of the progress bar (background/buffer).\r\n * @cssprop --m3e-progress-indicator-color - Color of the progress indicator (foreground).\r\n * @cssprop --m3e-linear-wavy-progress-indicator-amplitude - Amplitude of the `wavy` variant.\r\n * @cssprop --m3e-linear-wavy-progress-indicator-wavelength - Wavelength of the `wavy` variant.\r\n * @cssprop --m3e-linear-wavy-indeterminate-progress-indicator-wavelength - Wavelength of the indeterminate/query `wavy` variant.\r\n */\r\n@customElement(\"m3e-linear-progress-indicator\")\r\nexport class M3eLinearProgressIndicatorElement extends ProgressElementIndicatorBase {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = [\r\n ProgressElementIndicatorBase.styles,\r\n css`\r\n :host {\r\n display: block;\r\n position: relative;\r\n }\r\n .progress {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n align-items: center;\r\n border-radius: var(--m3e-linear-progress-indicator-shape, ${DesignToken.shape.corner.extraSmall});\r\n }\r\n .stroke,\r\n .amplitude-and-wavelength {\r\n visibility: hidden;\r\n position: absolute;\r\n }\r\n .stroke {\r\n width: 100%;\r\n height: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n }\r\n .amplitude-and-wavelength {\r\n height: var(--m3e-linear-wavy-progress-indicator-amplitude, 0.1875rem);\r\n width: var(--m3e-linear-wavy-progress-indicator-wavelength, 2.5rem);\r\n }\r\n :host([mode=\"indeterminate\"]) .amplitude-and-wavelength,\r\n :host([mode=\"query\"]) .amplitude-and-wavelength {\r\n width: var(--m3e-linear-wavy-indeterminate-progress-indicator-wavelength, 1.5rem);\r\n }\r\n .primary,\r\n .secondary,\r\n .stop {\r\n height: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n border-radius: inherit;\r\n }\r\n .stop {\r\n aspect-ratio: 1;\r\n flex: none;\r\n }\r\n :host([variant=\"flat\"]) {\r\n height: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n }\r\n :host([variant=\"wavy\"]) {\r\n height: calc(\r\n var(--m3e-linear-progress-indicator-thickness, 0.25rem) +\r\n calc(var(--m3e-linear-wavy-progress-indicator-amplitude, 0.1875rem) * 2)\r\n );\r\n }\r\n :host([variant=\"wavy\"]) .primary,\r\n :host([variant=\"wavy\"]) .secondary {\r\n position: relative;\r\n height: 100%;\r\n overflow: hidden;\r\n }\r\n :host([variant=\"wavy\"]) .complete {\r\n position: absolute;\r\n margin: auto;\r\n top: calc(50% - calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) / 2));\r\n left: 0;\r\n right: 0;\r\n height: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n border-radius: inherit;\r\n }\r\n :host([variant=\"wavy\"]) .secondary {\r\n height: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n }\r\n .wave {\r\n position: absolute;\r\n display: block;\r\n }\r\n .primary .wave,\r\n .secondary .wave {\r\n margin-inline-start: calc(0px - var(--m3e-linear-wavy-progress-indicator-wavelength, 2.5rem));\r\n }\r\n :host([variant=\"wavy\"][mode=\"determinate\"]) .primary path,\r\n :host([variant=\"wavy\"][mode=\"buffer\"]) .primary path {\r\n animation: wave-slide 1.5s linear infinite;\r\n }\r\n @keyframes wave-slide {\r\n from {\r\n transform: translateX(0);\r\n }\r\n to {\r\n transform: translateX(calc(0px - var(--m3e-linear-wavy-progress-indicator-wavelength, 2.5rem)));\r\n }\r\n }\r\n :host([mode=\"determinate\"]) .progress,\r\n :host([mode=\"buffer\"]) .progress {\r\n display: flex;\r\n overflow: hidden;\r\n }\r\n :host([mode=\"determinate\"]) .primary,\r\n :host([mode=\"buffer\"]) .primary {\r\n width: var(--_value, 0px);\r\n flex: none;\r\n }\r\n :host([mode=\"determinate\"]) .gap,\r\n :host([mode=\"buffer\"]) .gap {\r\n flex-basis: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n flex-shrink: 1;\r\n }\r\n :host([mode=\"determinate\"]) .secondary,\r\n :host([mode=\"buffer\"]) .buffer {\r\n flex: 1 1 auto;\r\n }\r\n :host([mode=\"buffer\"]) .buffer {\r\n flex-shrink: 5;\r\n height: 100%;\r\n width: 100%;\r\n background-color: var(--m3e-progress-indicator-track-color, ${DesignToken.color.secondaryContainer});\r\n mask-image: radial-gradient(\r\n circle,\r\n black 0,\r\n black calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) / 2),\r\n transparent calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) / 2)\r\n );\r\n mask-size: calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) * 2) 100%;\r\n mask-repeat: repeat;\r\n animation: buffer 250ms linear infinite;\r\n }\r\n :host(:dir(rtl)[mode=\"buffer\"]) .buffer {\r\n transform: scaleX(-1);\r\n }\r\n @keyframes buffer {\r\n from {\r\n mask-position: 0 0;\r\n }\r\n to {\r\n mask-position: calc(-1 * calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) * 2)) 0;\r\n }\r\n }\r\n :host([mode=\"buffer\"]) .secondary {\r\n width: var(--_buffer-value, 0px);\r\n flex: none;\r\n }\r\n :host([mode=\"indeterminate\"]) .primary,\r\n :host([mode=\"query\"]) .primary {\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n border-radius: inherit;\r\n animation: indeterminate-primary 2.1s infinite linear;\r\n }\r\n :host([variant=\"wavy\"][mode=\"indeterminate\"]) .primary,\r\n :host([variant=\"wavy\"][mode=\"query\"]) .primary {\r\n animation-name: wavy-indeterminate-primary;\r\n }\r\n :host([mode=\"indeterminate\"]) .secondary,\r\n :host([mode=\"query\"]) .secondary {\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n border-radius: inherit;\r\n animation: indeterminate-secondary 2.1s infinite linear;\r\n animation-delay: 1.15s;\r\n animation-fill-mode: backwards;\r\n }\r\n :host([variant=\"wavy\"][mode=\"indeterminate\"]) .secondary,\r\n :host([variant=\"wavy\"][mode=\"query\"]) .secondary {\r\n animation-name: wavy-indeterminate-secondary;\r\n }\r\n :host([mode=\"indeterminate\"]) .progress,\r\n :host([mode=\"query\"]) .progress {\r\n overflow: hidden;\r\n position: relative;\r\n }\r\n :host(:not(:dir(rtl))[mode=\"query\"]) .progress,\r\n :host(:dir(rtl)[mode=\"indeterminate\"]) .progress {\r\n transform: scaleX(-1);\r\n }\r\n :host([variant=\"flat\"]) .primary,\r\n :host([variant=\"flat\"][mode=\"indeterminate\"]) .secondary,\r\n :host([variant=\"flat\"][mode=\"query\"]) .secondary,\r\n :host([variant=\"wavy\"]) .complete,\r\n .stop {\r\n background-color: var(--m3e-progress-indicator-color, ${DesignToken.color.primary});\r\n }\r\n :host([variant=\"wavy\"]) .progress {\r\n color: var(--m3e-progress-indicator-color, ${DesignToken.color.primary});\r\n }\r\n :host([mode=\"determinate\"]) .secondary,\r\n :host([mode=\"buffer\"]) .secondary,\r\n :host([variant=\"flat\"][mode=\"indeterminate\"]) .track,\r\n :host([variant=\"flat\"][mode=\"query\"]) .track {\r\n background-color: var(--m3e-progress-indicator-track-color, ${DesignToken.color.secondaryContainer});\r\n }\r\n :host([variant=\"wavy\"][mode=\"indeterminate\"]) .track,\r\n :host([variant=\"wavy\"][mode=\"query\"]) .track {\r\n color: var(--m3e-progress-indicator-track-color, ${DesignToken.color.secondaryContainer});\r\n }\r\n :host([variant=\"wavy\"][mode=\"indeterminate\"]) .track,\r\n :host([variant=\"wavy\"][mode=\"query\"]) .track {\r\n y: calc(50% - calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) / 2));\r\n border-radius: inherit;\r\n }\r\n :host([variant=\"flat\"][mode=\"indeterminate\"]) .track,\r\n :host([variant=\"flat\"][mode=\"query\"]) .track {\r\n position: absolute;\r\n margin: auto;\r\n top: calc(50% - calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) / 2));\r\n left: 0;\r\n right: 0;\r\n height: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n border-radius: inherit;\r\n }\r\n @keyframes indeterminate-primary {\r\n 0% {\r\n left: -145.167%;\r\n width: 8%;\r\n }\r\n 20% {\r\n left: -113.333%;\r\n width: 48%;\r\n }\r\n 60% {\r\n left: 56.333%;\r\n width: 78%;\r\n }\r\n 100% {\r\n left: 100%;\r\n width: 8%;\r\n }\r\n }\r\n @keyframes indeterminate-secondary {\r\n 0% {\r\n left: -54.888%;\r\n width: 8%;\r\n }\r\n 20% {\r\n left: -20%;\r\n width: 48%;\r\n }\r\n 60% {\r\n left: 60%;\r\n width: 78%;\r\n }\r\n 100% {\r\n left: 160%;\r\n width: 8%;\r\n }\r\n }\r\n @keyframes wavy-indeterminate-primary {\r\n 0% {\r\n transform: translateX(-145.167%);\r\n width: 8%;\r\n }\r\n 20% {\r\n transform: translateX(-113.333%);\r\n width: 48%;\r\n }\r\n 60% {\r\n transform: translateX(56.333%);\r\n width: 78%;\r\n }\r\n 100% {\r\n transform: translateX(100%);\r\n width: 8%;\r\n }\r\n }\r\n @keyframes wavy-indeterminate-secondary {\r\n 0% {\r\n transform: translateX(-54.888%);\r\n width: 8%;\r\n }\r\n 20% {\r\n transform: translateX(-20%);\r\n width: 48%;\r\n }\r\n 60% {\r\n transform: translateX(60%);\r\n width: 78%;\r\n }\r\n 100% {\r\n transform: translateX(160%);\r\n width: 8%;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .progress {\r\n --m3e-progress-indicator-track-color: GrayText;\r\n --m3e-progress-indicator-color: CanvasText;\r\n }\r\n }\r\n `,\r\n ];\r\n\r\n /** @private */ private static __nextMaskId = 0;\r\n /** @private */ #maskId = `m3e-linear-progress-mask-${M3eLinearProgressIndicatorElement.__nextMaskId++}`;\r\n\r\n /** @private */ #strokeWidth = 0;\r\n /** @private */ #amplitude = 0;\r\n /** @private */ #wavelength = 0;\r\n\r\n /** @private */ readonly #resizeController = new ResizeController(this, {\r\n skipInitial: true,\r\n target: null,\r\n callback: () => {\r\n this.#updateStroke();\r\n this.#updateAmplitudeAndWavelength();\r\n queueMicrotask(() => this.requestUpdate());\r\n },\r\n });\r\n\r\n /**\r\n * The mode of the progress bar.\r\n * @default \"determinate\"\r\n */\r\n @property({ reflect: true }) mode: LinearProgressMode = \"determinate\";\r\n\r\n /**\r\n * A fractional value, between 0 and `max`, indicating buffer progress.\r\n * @default 0\r\n */\r\n @property({ attribute: \"buffer-value\", type: Number, reflect: true }) bufferValue = 0;\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n\r\n this.#updateStroke();\r\n this.#updateAmplitudeAndWavelength();\r\n\r\n const stroke = this.shadowRoot?.querySelector<HTMLElement>(\".stroke\");\r\n if (stroke) {\r\n this.#resizeController.observe(stroke);\r\n }\r\n\r\n const amplitudeAndWavelength = this.shadowRoot?.querySelector<HTMLElement>(\".amplitude-and-wavelength\");\r\n if (amplitudeAndWavelength) {\r\n this.#resizeController.observe(amplitudeAndWavelength);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"mode\")) {\r\n this.ariaValueNow = this.mode === \"indeterminate\" || this.mode === \"query\" ? null : `${this.value}`;\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override updated(_changedProperties: PropertyValues<this>): void {\r\n super.updated(_changedProperties);\r\n\r\n if (_changedProperties.has(\"value\") || _changedProperties.has(\"bufferValue\") || _changedProperties.has(\"max\")) {\r\n const progress = this.shadowRoot?.querySelector<HTMLElement>(\".progress\");\r\n progress?.style.setProperty(\"--_value\", `${(this.value / this.max) * 100}%`);\r\n progress?.style.setProperty(\"--_buffer-value\", `${(this.bufferValue / this.max) * 100}%`);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n const clampedValue = Math.max(0, Math.min(this.value, this.max));\r\n const activeWidth = (clampedValue / this.max) * this.clientWidth;\r\n const waveWidth =\r\n this.mode === \"indeterminate\" || this.mode === \"query\" ? this.clientWidth : activeWidth + this.#wavelength * 3;\r\n\r\n const wave =\r\n this.variant === \"wavy\" && this.#strokeWidth > 0 && this.#amplitude > 0 && this.#wavelength > 0\r\n ? this.#drawWavyPath(waveWidth)\r\n : undefined;\r\n\r\n return html`<div\r\n class=\"progress\"\r\n aria-hidden=\"true\"\r\n style=\"${safeStyleMap({\r\n \"--_translate-x\": `-${activeWidth}px`,\r\n })}\"\r\n >\r\n ${!wave ? html`<div class=\"track\"></div>` : nothing}\r\n ${(this.mode === \"determinate\" || this.mode === \"buffer\") && this.value <= 0\r\n ? nothing\r\n : html`<div class=\"primary\">\r\n ${wave && (this.mode === \"determinate\" || this.mode === \"buffer\")\r\n ? this.#renderWave(waveWidth, wave.height, wave.viewBox, wave.path)\r\n : nothing}\r\n </div>\r\n ${this.mode === \"determinate\" || this.mode === \"buffer\" ? html`<div class=\"gap\"></div>` : nothing}`}\r\n ${this.mode !== \"buffer\" || this.bufferValue > 0 ? html`<div class=\"secondary\"></div>` : nothing}\r\n ${this.mode === \"buffer\" && this.bufferValue > 0 ? html`<div class=\"gap\"></div>` : nothing}\r\n ${this.mode === \"buffer\" ? html`<div class=\"buffer\"></div>` : nothing}\r\n ${(this.mode === \"determinate\" || this.mode === \"buffer\") && this.value > 0\r\n ? html`<div class=\"gap\"></div>\r\n <div class=\"stop\"></div>`\r\n : nothing}\r\n ${wave && !(this.mode === \"determinate\" || this.mode === \"buffer\")\r\n ? this.#renderWave(waveWidth, wave.height, wave.viewBox, wave.path)\r\n : nothing}\r\n </div>\r\n ${this.#renderResizeObservedElements()}`;\r\n }\r\n\r\n /** @private */\r\n #renderWave(width: number, height: number, viewBox: string, path: string): unknown {\r\n const masked = this.mode === \"indeterminate\" || this.mode === \"query\";\r\n if (!masked && this.value / this.max === 1) {\r\n return html`<div class=\"complete\"></div>`;\r\n }\r\n return html`<svg class=\"wave\" width=\"${width}\" height=\"${height}\" viewBox=\"${viewBox}\" preserveAspectRatio=\"none\">\r\n ${masked\r\n ? svg`\r\n <mask id=\"${this.#maskId}\" maskUnits=\"userSpaceOnUse\">\r\n <rect width=\"${width}\" height=\"${height}\" fill=\"black\" />\r\n <rect class=\"primary\" height=\"${height}\" fill=\"white\" />\r\n <rect class=\"secondary\" height=\"${height}\" fill=\"white\" />\r\n </mask>\r\n <mask id=\"${`${this.#maskId}-inverse`}\" maskUnits=\"userSpaceOnUse\">\r\n <rect width=\"${width}\" height=\"${height}\" fill=\"white\" />\r\n <rect class=\"primary\" height=\"${height}\" fill=\"black\" />\r\n <rect class=\"secondary\" height=\"${height}\" fill=\"black\" />\r\n </mask>\r\n <g mask=\"${resolveFragmentUrl(this.#maskId)}\">\r\n <path d=\"${path}\" stroke=\"currentColor\" stroke-width=${this.#strokeWidth} fill=\"none\" stroke-linecap=\"round\" />\r\n </g>\r\n <g mask=\"${resolveFragmentUrl(`${this.#maskId}-inverse`)}\">\r\n <rect class=\"track\" width=\"100%\" height=\"${this.#strokeWidth}\" fill=\"currentColor\" />\r\n </g>`\r\n : svg`<path d=\"${path}\" stroke=\"currentColor\" stroke-width=${this.#strokeWidth} fill=\"none\" stroke-linecap=\"round\" />`}\r\n </svg>`;\r\n }\r\n\r\n /** @private */\r\n #renderResizeObservedElements(): unknown {\r\n return html`<div class=\"stroke\" aria-hidden=\"true\"></div>\r\n <div class=\"amplitude-and-wavelength\" aria-hidden=\"true\"></div>`;\r\n }\r\n\r\n /** @private */\r\n #updateStroke(): void {\r\n const element = this.shadowRoot?.querySelector<HTMLElement>(\".stroke\");\r\n if (element) {\r\n this.#strokeWidth = element.clientHeight;\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateAmplitudeAndWavelength(): void {\r\n const element = this.shadowRoot?.querySelector<HTMLElement>(\".amplitude-and-wavelength\");\r\n if (element) {\r\n this.#amplitude = element.clientHeight;\r\n this.#wavelength = element.clientWidth;\r\n }\r\n }\r\n\r\n /** @private */\r\n #drawWavyPath(width: number, phase: number = 0) {\r\n const amplitude = this.#amplitude + this.#strokeWidth / 2;\r\n const y = amplitude;\r\n\r\n const path: string[] = [];\r\n const step = this.#wavelength / 2;\r\n let x = 0;\r\n\r\n path.push(`M ${x},${y}`);\r\n\r\n while (x <= width) {\r\n const endX = x + step;\r\n const endY = y + amplitude * Math.sin((2 * Math.PI * endX) / this.#wavelength + phase);\r\n const cpX = x + step / 2;\r\n const cpY = y + amplitude * Math.sin((2 * Math.PI * (x + step / 2)) / this.#wavelength + phase);\r\n\r\n path.push(`Q ${cpX},${cpY} ${endX},${endY}`);\r\n x += step;\r\n }\r\n\r\n const padding = 1;\r\n const viewBox = `0 ${-padding} ${width} ${amplitude * 2 + padding * 2}`;\r\n\r\n return { path: path.join(\" \"), viewBox, height: this.#strokeWidth + this.#amplitude * 2, padding };\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-linear-progress-indicator\": M3eLinearProgressIndicatorElement;\r\n }\r\n}\r\n"],"names":["__decorate","decorators","target","key","desc","c","arguments","length","r","Object","getOwnPropertyDescriptor","d","Reflect","decorate","i","defineProperty","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","call","value","get","__classPrivateFieldSet","set","SuppressedError","error","suppressed","message","e","Error","name","ProgressElementIndicatorBase","AttachInternals","Role","LitElement","constructor","max","variant","connectedCallback","ariaValueMin","update","changedProperties","ariaValueNow","ariaValueMax","styles","css","property","type","Number","reflect","prototype","WAVY_INDETERMINATE_DURATION","M3eCircularProgressIndicatorElement","M3eCircularProgressIndicatorElement_1","_M3eCircularProgressIndicatorElement_maskId","__nextMaskId","_M3eCircularProgressIndicatorElement_diameter","_M3eCircularProgressIndicatorElement_strokeWidth","_M3eCircularProgressIndicatorElement_amplitude","_M3eCircularProgressIndicatorElement_wavelength","_M3eCircularProgressIndicatorElement_spinnerActiveTrack","_M3eCircularProgressIndicatorElement_spinnerTrack","_M3eCircularProgressIndicatorElement_resizeController","ResizeController","skipInitial","callback","_M3eCircularProgressIndicatorElement_instances","_M3eCircularProgressIndicatorElement_updateDiameterAndStroke","_M3eCircularProgressIndicatorElement_updateAmplitudeAndWavelength","queueMicrotask","requestUpdate","_M3eCircularProgressIndicatorElement_indeterminateWavyAnimationLoop","AnimationLoopController","_","t","_M3eCircularProgressIndicatorElement_updateWavyIndeterminateSpinner","indeterminate","firstUpdated","_changedProperties","diameterAndStroke","shadowRoot","querySelector","observe","amplitudeAndWavelength","updated","start","stop","render","_M3eCircularProgressIndicatorElement_renderWavyIndicator","_M3eCircularProgressIndicatorElement_renderFlatIndicator","left","startAngle","endAngle","right","html","viewBox","path","_M3eCircularProgressIndicatorElement_renderResizeObservedElements","minDegrees","_M3eCircularProgressIndicatorElement_sizeToDegrees","degrees","Math","active","_M3eCircularProgressIndicatorElement_drawArc","gap","inactive","svg","nothing","_M3eCircularProgressIndicatorElement_renderContent","_M3eCircularProgressIndicatorElement_drawWavyArc","amplitude","activeArc","padding","ifDefined","resolveFragmentUrl","undefined","classMap","wave","element","clientWidth","clientHeight","sweep","_M3eCircularProgressIndicatorElement_computeWavyIndeterminateSweep","setAttribute","sweepPadding","minSweep","maxSweep","duration","holdMin","growTime","holdMax","shrinkTime","cycle","u","p","size","PI","_M3eCircularProgressIndicatorElement_computeCircle","_M3eCircularProgressIndicatorElement_polarToCartesian","circle","rad","_M3eCircularProgressIndicatorElement_degreesToRadians","x","cx","cos","y","cy","sin","end","steps","startRad","endRad","totalAngle","waveCount","phase","points","angle","radius","push","slice","map","join","DesignToken","color","secondaryContainer","primary","Boolean","customElement","M3eLinearProgressIndicatorElement","M3eLinearProgressIndicatorElement_1","_M3eLinearProgressIndicatorElement_maskId","_M3eLinearProgressIndicatorElement_strokeWidth","_M3eLinearProgressIndicatorElement_amplitude","_M3eLinearProgressIndicatorElement_wavelength","_M3eLinearProgressIndicatorElement_resizeController","_M3eLinearProgressIndicatorElement_instances","_M3eLinearProgressIndicatorElement_updateStroke","_M3eLinearProgressIndicatorElement_updateAmplitudeAndWavelength","mode","bufferValue","stroke","progress","style","setProperty","clampedValue","min","activeWidth","waveWidth","_M3eLinearProgressIndicatorElement_drawWavyPath","safeStyleMap","_M3eLinearProgressIndicatorElement_renderWave","height","_M3eLinearProgressIndicatorElement_renderResizeObservedElements","width","masked","step","endX","endY","cpX","cpY","shape","corner","extraSmall","attribute"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"progress-indicator.js","sources":["../../src/progress-indicator/ProgressElementIndicatorBase.ts","../../src/progress-indicator/CircularProgressIndicatorElement.ts","../../src/progress-indicator/LinearProgressIndicatorElement.ts"],"sourcesContent":["import { css, CSSResultGroup, LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { AttachInternals, ReconnectedCallback, Role } from \"@m3e/web/core\";\r\n\r\nimport { ProgressIndicatorVariant } from \"./ProgressIndicatorVariant\";\r\n\r\n/** A base implementation for an element used to convey progress. This class must be inherited. */\r\nexport abstract class ProgressElementIndicatorBase extends ReconnectedCallback(\r\n AttachInternals(Role(LitElement, \"progressbar\"), true),\r\n) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n @media (forced-colors: active) {\r\n :host {\r\n --m3e-progress-indicator-color: CanvasText;\r\n --m3e-progress-indicator-track-color: Canvas;\r\n }\r\n }\r\n `;\r\n\r\n /**\r\n * A fractional value, between 0 and `max`, indicating progress.\r\n * @default 0\r\n */\r\n @property({ type: Number, reflect: true }) value = 0;\r\n\r\n /**\r\n * The maximum progress value.\r\n * @default 100\r\n */\r\n @property({ type: Number }) max = 100;\r\n\r\n /**\r\n * The appearance of the indicator.\r\n * @default \"flat\"\r\n */\r\n @property({ reflect: true }) variant: ProgressIndicatorVariant = \"flat\";\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.ariaValueMin = \"0\";\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"value\")) {\r\n this.ariaValueNow = `${this.value}`;\r\n }\r\n if (changedProperties.has(\"max\")) {\r\n this.ariaValueMax = `${this.max}`;\r\n }\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, nothing, PropertyValues, svg } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\nimport { classMap } from \"lit/directives/class-map.js\";\r\nimport { ifDefined } from \"lit/directives/if-defined.js\";\r\n\r\nimport {\r\n AnimationLoopController,\r\n customElement,\r\n DesignToken,\r\n ResizeController,\r\n resolveFragmentUrl,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { ProgressElementIndicatorBase } from \"./ProgressElementIndicatorBase\";\r\n\r\nconst WAVY_INDETERMINATE_DURATION = 1.575;\r\n\r\n/**\r\n * A circular indicator of progress and activity.\r\n *\r\n * @description\r\n * The `m3e-circular-progress-indicator` component displays a circular progress spinner for\r\n * tracking the completion of a task or process. It supports determinate and indeterminate\r\n * modes, and can be customized with CSS custom properties for diameter, stroke width, and\r\n * color. The component is accessible, animates smoothly, and adapts to various use cases including\r\n * loading and activity indication.\r\n *\r\n * @example\r\n * The following example illustrates a determinate circular progress indicator.\r\n * ```html\r\n * <m3e-circular-progress-indicator value=\"30\"></m3e-circular-progress-indicator>\r\n * ```\r\n * @example\r\n * The next example illustrates an indeterminate circular progress indicator using the `indeterminate` attribute.\r\n * ```html\r\n * <m3e-circular-progress-indicator indeterminate></m3e-circular-progress-indicator>\r\n * ```\r\n *\r\n * @tag m3e-circular-progress-indicator\r\n *\r\n * @slot - Renders the content inside the progress indicator.\r\n *\r\n * @attr indeterminate - Whether to show something is happening without conveying progress.\r\n * @attr max - The maximum progress value.\r\n * @attr value - A fractional value, between 0 and `max`, indicating progress.\r\n * @attr variant - The appearance of the indicator.\r\n *\r\n * @cssprop --m3e-circular-flat-progress-indicator-diameter - Diameter of the `flat` variant.\r\n * @cssprop --m3e-circular-wavy-progress-indicator-diameter - Diameter of the `wavy` variant.\r\n * @cssprop --m3e-circular-wavy-progress-indicator-amplitude - Amplitude of the `wavy` variant.\r\n * @cssprop --m3e-circular-wavy-progress-indicator-wavelength - Wavelength of the `wavy` variant.\r\n * @cssprop --m3e-circular-progress-indicator-thickness - Thickness of the progress indicator.\r\n * @cssprop --m3e-progress-indicator-track-color - Track color of the progress indicator (background).\r\n * @cssprop --m3e-progress-indicator-color - Color of the progress indicator (foreground).\r\n */\r\n@customElement(\"m3e-circular-progress-indicator\")\r\nexport class M3eCircularProgressIndicatorElement extends ProgressElementIndicatorBase {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = [\r\n ProgressElementIndicatorBase.styles,\r\n css`\r\n :host {\r\n display: inline-flex;\r\n vertical-align: middle;\r\n aspect-ratio: 1;\r\n position: relative;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n .progress {\r\n --_arc-duration: 1333ms;\r\n --_cycle-duration: calc(4 * var(--_arc-duration));\r\n --_linear-rotate-duration: calc(var(--_arc-duration) * 360 / 306);\r\n --_indeterminate-easing: cubic-bezier(0.4, 0, 0.2, 1);\r\n }\r\n .active-track {\r\n transition: stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1);\r\n }\r\n :host([variant=\"flat\"]) .progress {\r\n flex: 1;\r\n align-self: stretch;\r\n pointer-events: none;\r\n }\r\n .progress,\r\n .spinner,\r\n .left,\r\n .right,\r\n .content,\r\n .circle {\r\n position: absolute;\r\n inset: 0;\r\n }\r\n .content {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n .diameter-and-stroke,\r\n .amplitude-and-wavelength {\r\n visibility: hidden;\r\n position: absolute;\r\n }\r\n .diameter-and-stroke {\r\n width: inherit;\r\n height: var(--m3e-circular-progress-indicator-thickness, 0.25rem);\r\n }\r\n .amplitude-and-wavelength {\r\n width: var(--m3e-circular-wavy-progress-indicator-amplitude, 0.1rem);\r\n height: var(--m3e-circular-wavy-progress-indicator-wavelength, 0.9375rem);\r\n }\r\n :host([variant=\"flat\"]) {\r\n width: var(--m3e-circular-flat-progress-indicator-diameter, 2.5rem);\r\n }\r\n :host([variant=\"wavy\"]) {\r\n width: var(--m3e-circular-wavy-progress-indicator-diameter, 3rem);\r\n }\r\n :host([variant=\"flat\"][indeterminate]) .progress {\r\n animation: linear infinite linear-rotate;\r\n animation-duration: var(--_linear-rotate-duration);\r\n }\r\n :host([variant=\"flat\"][indeterminate]) .spinner {\r\n animation: infinite both rotate-arc;\r\n animation-duration: var(--_cycle-duration);\r\n animation-timing-function: var(--_indeterminate-easing);\r\n }\r\n :host([variant=\"wavy\"][indeterminate]) .spinner {\r\n transform-origin: 50% 50%;\r\n animation: wavy-spin ${WAVY_INDETERMINATE_DURATION}s linear infinite;\r\n }\r\n .left {\r\n clip-path: inset(0);\r\n inset: 0 50% 0 0;\r\n }\r\n .right {\r\n clip-path: inset(0);\r\n inset: 0 0 0 50%;\r\n }\r\n .circle {\r\n animation: expand-arc;\r\n animation-iteration-count: infinite;\r\n animation-fill-mode: both;\r\n animation-duration: var(--_arc-duration), var(--_cycle-duration);\r\n animation-timing-function: var(--_indeterminate-easing);\r\n }\r\n .left .circle {\r\n rotate: 135deg;\r\n inset: 0 -100% 0 0;\r\n }\r\n .right .circle {\r\n rotate: 100deg;\r\n inset: 0 0 0 -100%;\r\n animation-delay: calc(-0.5 * var(--_arc-duration)), 0ms;\r\n }\r\n .track {\r\n color: var(--m3e-progress-indicator-track-color, ${DesignToken.color.secondaryContainer});\r\n }\r\n .active-track {\r\n color: var(--m3e-progress-indicator-color, ${DesignToken.color.primary});\r\n }\r\n .wave {\r\n animation: spin-reverse 8s linear infinite;\r\n transform-origin: 50% 50%;\r\n }\r\n @keyframes expand-arc {\r\n 0% {\r\n transform: rotate(265deg);\r\n }\r\n 50% {\r\n transform: rotate(130deg);\r\n }\r\n 100% {\r\n transform: rotate(265deg);\r\n }\r\n }\r\n @keyframes rotate-arc {\r\n 12.5% {\r\n transform: rotate(135deg);\r\n }\r\n 25% {\r\n transform: rotate(270deg);\r\n }\r\n 37.5% {\r\n transform: rotate(405deg);\r\n }\r\n 50% {\r\n transform: rotate(540deg);\r\n }\r\n 62.5% {\r\n transform: rotate(675deg);\r\n }\r\n 75% {\r\n transform: rotate(810deg);\r\n }\r\n 87.5% {\r\n transform: rotate(945deg);\r\n }\r\n 100% {\r\n transform: rotate(1080deg);\r\n }\r\n }\r\n @keyframes linear-rotate {\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n @keyframes spin-reverse {\r\n from {\r\n transform: rotate(360deg);\r\n }\r\n to {\r\n transform: rotate(0deg);\r\n }\r\n }\r\n @keyframes spin {\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n @keyframes wavy-spin {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 10% {\r\n transform: rotate(90deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n :host([variant=\"flat\"]) circle {\r\n fill: Canvas;\r\n }\r\n :host([variant=\"flat\"]) .circle {\r\n border-color: var(--m3e-progress-indicator-color, ${DesignToken.color.primary})\r\n var(--m3e-progress-indicator-color, ${DesignToken.color.primary}) Canvas Canvas;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .progress {\r\n --m3e-progress-indicator-track-color: GrayText;\r\n --m3e-progress-indicator-color: CanvasText;\r\n }\r\n }\r\n `,\r\n ];\r\n\r\n /** @private */ private static __nextMaskId = 0;\r\n /** @private */ #maskId = `m3e-circular-progress-mask-${M3eCircularProgressIndicatorElement.__nextMaskId++}`;\r\n\r\n /** @private */ #diameter = 0;\r\n /** @private */ #strokeWidth = 0;\r\n /** @private */ #amplitude = 0;\r\n /** @private */ #wavelength = 0;\r\n\r\n /** @private */ #spinnerActiveTrack?: SVGPathElement | null;\r\n /** @private */ #spinnerTrack?: SVGPathElement | null;\r\n\r\n /** @private */ readonly #resizeController = new ResizeController(this, {\r\n skipInitial: true,\r\n target: null,\r\n callback: () => {\r\n this.#updateDiameterAndStroke();\r\n this.#updateAmplitudeAndWavelength();\r\n queueMicrotask(() => this.requestUpdate());\r\n },\r\n });\r\n\r\n /** @private */ readonly #indeterminateWavyAnimationLoop = new AnimationLoopController(this, (_, t) =>\r\n this.#updateWavyIndeterminateSpinner(t),\r\n );\r\n\r\n /**\r\n * Whether to show something is happening without conveying progress.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) indeterminate = false;\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"indeterminate\")) {\r\n this.ariaValueNow = this.indeterminate ? null : `${this.value}`;\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override reconnectedCallback(): void {\r\n super.reconnectedCallback();\r\n this.#initialize();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n this.#initialize();\r\n }\r\n\r\n /** @private */\r\n #initialize(): void {\r\n const diameterAndStroke = this.shadowRoot?.querySelector<HTMLElement>(\".diameter-and-stroke\");\r\n if (diameterAndStroke) {\r\n this.#updateDiameterAndStroke();\r\n this.#resizeController.observe(diameterAndStroke);\r\n }\r\n\r\n const amplitudeAndWavelength = this.shadowRoot?.querySelector<HTMLElement>(\".amplitude-and-wavelength\");\r\n if (amplitudeAndWavelength) {\r\n this.#updateDiameterAndStroke();\r\n this.#resizeController.observe(amplitudeAndWavelength);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override updated(_changedProperties: PropertyValues<this>): void {\r\n super.updated(_changedProperties);\r\n\r\n if (_changedProperties.has(\"indeterminate\")) {\r\n this.#spinnerActiveTrack = this.shadowRoot?.querySelector<SVGPathElement>(\".spinner.active-track\");\r\n this.#spinnerTrack = this.shadowRoot?.querySelector<SVGPathElement>(\".spinner.track\");\r\n\r\n if (this.indeterminate) {\r\n this.#indeterminateWavyAnimationLoop.start();\r\n } else {\r\n this.#indeterminateWavyAnimationLoop.stop();\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return this.variant === \"wavy\" ? this.#renderWavyIndicator() : this.#renderFlatIndicator();\r\n }\r\n\r\n /** @private */\r\n #renderFlatIndicator(): unknown {\r\n if (this.indeterminate) {\r\n const left = this.#drawArc({ startAngle: -45, endAngle: 90 + this.#strokeWidth });\r\n const right = this.#drawArc({ startAngle: -this.#strokeWidth, endAngle: 135 });\r\n\r\n return html`<div class=\"progress\" aria-hidden=\"true\">\r\n <div class=\"spinner\">\r\n <div class=\"left\">\r\n <svg width=\"${this.#diameter}\" height=\"${this.#diameter}\" viewBox=\"${left.viewBox}\" class=\"circle\">\r\n <path\r\n class=\"active-track\"\r\n d=\"${left.path}\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <svg width=\"${this.#diameter}\" height=\"${this.#diameter}\" viewBox=\"${right.viewBox}\" class=\"circle\">\r\n <path\r\n class=\"active-track\"\r\n d=\"${right.path}\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n ${this.#renderResizeObservedElements()}`;\r\n }\r\n\r\n const minDegrees = this.#sizeToDegrees(this.#strokeWidth * 2, this.#diameter);\r\n let degrees = (this.value / this.max) * 360;\r\n if (degrees > 0) {\r\n degrees = Math.max(0, minDegrees, degrees);\r\n }\r\n\r\n const active = this.#drawArc({ gap: degrees < 360 ? this.#strokeWidth : 0, endAngle: degrees });\r\n const inactive = this.#drawArc({ gap: degrees > 0 ? this.#strokeWidth : 0, startAngle: degrees, endAngle: 360 });\r\n\r\n return html`<div class=\"progress\" aria-hidden=\"true\">\r\n <svg width=\"${this.#diameter}\" height=\"${this.#diameter}\" viewBox=\"${active.viewBox}\">\r\n ${degrees > 0\r\n ? svg`<path\r\n class=\"active-track\"\r\n d=\"${active.path}\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />`\r\n : nothing}\r\n ${360 - degrees >= minDegrees\r\n ? svg`<path\r\n class=\"track\"\r\n d=\"${inactive.path}\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />`\r\n : nothing}\r\n </svg>\r\n </div>\r\n ${this.#renderResizeObservedElements()}${this.#renderContent()}`;\r\n }\r\n\r\n /** @private */\r\n #renderWavyIndicator(): unknown {\r\n if (this.indeterminate) {\r\n return html`<div class=\"progress\" aria-hidden=\"true\">\r\n <svg\r\n width=\"${this.#diameter}\"\r\n height=\"${this.#diameter}\"\r\n viewBox=\"${this.#drawWavyArc({ endAngle: 20 }).viewBox}\"\r\n >\r\n <path\r\n class=\"spinner active-track\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"spinner track\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n ${this.#renderResizeObservedElements()}`;\r\n }\r\n\r\n const minDegrees = this.#sizeToDegrees(this.#strokeWidth * 2, this.#diameter);\r\n let degrees = (this.value / this.max) * 360;\r\n if (degrees > 0) {\r\n degrees = Math.max(0, minDegrees, degrees);\r\n }\r\n\r\n const amplitude = degrees <= minDegrees + minDegrees / 2 || degrees == 360 ? 0 : this.#amplitude;\r\n const activeArc = this.#drawArc({ gap: degrees < 360 ? this.#strokeWidth : 0, endAngle: degrees });\r\n const active = amplitude == 0 ? activeArc : this.#drawWavyArc({ endAngle: 360, amplitude });\r\n const inactive = this.#drawArc({ gap: degrees > 0 ? this.#strokeWidth : 0, startAngle: degrees, endAngle: 360 });\r\n const padding = amplitude > 0 ? amplitude + this.#strokeWidth / 2 : this.#strokeWidth;\r\n\r\n return html`\r\n <svg class=\"progress\" viewBox=\"${inactive.viewBox}\" aria-hidden=\"true\">\r\n ${degrees > 0\r\n ? svg`${\r\n amplitude > 0\r\n ? svg`<defs>\r\n <mask id=\"${this.#maskId}\">\r\n <path\r\n d=\"${activeArc.path}\"\r\n stroke=\"white\"\r\n stroke-width=\"${this.#strokeWidth + padding}\"\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />\r\n </mask>\r\n </defs>`\r\n : nothing\r\n }\r\n <g class=\"active-track\" mask=\"${ifDefined(amplitude > 0 ? resolveFragmentUrl(this.#maskId) : undefined)}\">\r\n <path\r\n class=\"${classMap({ wave: amplitude > 0 })}\"\r\n d=\"${active.path}\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n </g>`\r\n : nothing}\r\n ${360 - degrees >= minDegrees\r\n ? svg`<path\r\n class=\"track\"\r\n d=\"${inactive.path}\"\r\n stroke=\"currentColor\"\r\n stroke-width=${this.#strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n />`\r\n : nothing}\r\n </svg>\r\n ${this.#renderResizeObservedElements()}${this.#renderContent()}\r\n `;\r\n }\r\n\r\n /** @private */\r\n #renderResizeObservedElements(): unknown {\r\n return html`<div class=\"diameter-and-stroke\" aria-hidden=\"true\"></div>\r\n <div class=\"amplitude-and-wavelength\" aria-hidden=\"true\"></div>`;\r\n }\r\n\r\n /** @private */\r\n #renderContent(): unknown {\r\n return html`<div class=\"content\" aria-hidden=\"true\"><slot></slot></div>`;\r\n }\r\n\r\n /** @private */\r\n #updateDiameterAndStroke(): void {\r\n const element = this.shadowRoot?.querySelector<HTMLElement>(\".diameter-and-stroke\");\r\n if (element) {\r\n this.#diameter = element.clientWidth;\r\n this.#strokeWidth = element.clientHeight;\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateAmplitudeAndWavelength(): void {\r\n const element = this.shadowRoot?.querySelector<HTMLElement>(\".amplitude-and-wavelength\");\r\n if (element) {\r\n this.#amplitude = element.clientWidth;\r\n this.#wavelength = element.clientHeight;\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateWavyIndeterminateSpinner(t: number): void {\r\n if (this.#amplitude === 0 || this.#wavelength === 0) return;\r\n\r\n const sweep = this.#computeWavyIndeterminateSweep(t);\r\n this.#spinnerActiveTrack?.setAttribute(\"d\", this.#drawWavyArc({ endAngle: sweep }).path);\r\n this.#spinnerTrack?.setAttribute(\r\n \"d\",\r\n this.#drawArc({\r\n gap: this.#sizeToDegrees(this.#strokeWidth, this.#diameter),\r\n startAngle: sweep,\r\n }).path,\r\n );\r\n }\r\n\r\n /** @private */\r\n #computeWavyIndeterminateSweep(t: number): number {\r\n const sweepPadding = this.#sizeToDegrees(this.#strokeWidth) * 2;\r\n const minSweep = 18 + sweepPadding;\r\n const maxSweep = 280 - sweepPadding;\r\n\r\n const duration = WAVY_INDETERMINATE_DURATION;\r\n const holdMin = duration;\r\n const growTime = duration;\r\n const holdMax = duration;\r\n const shrinkTime = duration;\r\n\r\n const cycle = holdMin + growTime + holdMax + shrinkTime;\r\n const u = t % cycle;\r\n\r\n if (u < holdMin) {\r\n return minSweep;\r\n }\r\n\r\n if (u < holdMin + growTime) {\r\n const p = (u - holdMin) / growTime;\r\n return minSweep + (maxSweep - minSweep) * (p * p * (3 - 2 * p));\r\n }\r\n\r\n if (u < holdMin + growTime + holdMax) {\r\n return maxSweep;\r\n }\r\n\r\n const p = (u - (holdMin + growTime + holdMax)) / shrinkTime;\r\n return maxSweep - (maxSweep - minSweep) * (p * p * (3 - 2 * p));\r\n }\r\n\r\n /** @private */\r\n #sizeToDegrees(size: number, padding = this.#amplitude): number {\r\n return size * (360 / (2 * Math.PI * this.#computeCircle(padding).r));\r\n }\r\n\r\n /** @private */\r\n #degreesToRadians(degrees: number) {\r\n return (degrees - 90) * (Math.PI / 180);\r\n }\r\n\r\n /** @private */\r\n #polarToCartesian(circle: { cx: number; cy: number; r: number }, degrees: number) {\r\n const rad = this.#degreesToRadians(degrees);\r\n return {\r\n x: circle.cx + circle.r * Math.cos(rad),\r\n y: circle.cy + circle.r * Math.sin(rad),\r\n };\r\n }\r\n\r\n /** @private */\r\n #computeCircle(padding: number) {\r\n padding = padding + this.#strokeWidth / 2;\r\n const r = this.#diameter / 2;\r\n const cx = r + padding;\r\n const cy = r + padding;\r\n return { cx, cy, r, padding };\r\n }\r\n\r\n /** @private */\r\n #drawArc({\r\n startAngle = 0,\r\n endAngle = 360,\r\n gap = 0,\r\n padding = this.#amplitude,\r\n }: {\r\n startAngle?: number;\r\n endAngle?: number;\r\n gap?: number;\r\n padding?: number;\r\n }) {\r\n if (this.#diameter === 0 || this.#strokeWidth === 0) return { path: \"\", viewBox: \"0 0 0 0\" };\r\n\r\n const circle = this.#computeCircle(padding);\r\n if (gap > 0) {\r\n startAngle += this.#sizeToDegrees(gap, padding);\r\n endAngle -= this.#sizeToDegrees(gap, padding);\r\n }\r\n if (endAngle - startAngle >= 360) {\r\n endAngle = startAngle + 359.999;\r\n }\r\n const start = this.#polarToCartesian(circle, endAngle);\r\n const end = this.#polarToCartesian(circle, startAngle);\r\n\r\n const path = `M ${start.x} ${start.y} A ${circle.r} ${circle.r} 0 ${endAngle - startAngle <= 180 ? \"0\" : \"1\"} 0 ${end.x} ${end.y}`;\r\n const viewBox = `0 0 ${this.#diameter + circle.padding * 2} ${this.#diameter + circle.padding * 2}`;\r\n return { path, viewBox };\r\n }\r\n\r\n /** @private */\r\n #drawWavyArc({\r\n startAngle = 0,\r\n endAngle = 360,\r\n gap = 0,\r\n padding = this.#amplitude,\r\n amplitude = this.#amplitude,\r\n steps = 200,\r\n }: {\r\n startAngle?: number;\r\n endAngle?: number;\r\n gap?: number;\r\n padding?: number;\r\n amplitude?: number;\r\n steps?: number;\r\n }) {\r\n if (this.#diameter === 0 || this.#strokeWidth === 0) return { path: \"\", viewBox: \"0 0 0 0\" };\r\n\r\n const circle = this.#computeCircle(padding);\r\n\r\n if (gap > 0) {\r\n startAngle += this.#sizeToDegrees(gap, padding);\r\n endAngle -= this.#sizeToDegrees(gap, padding);\r\n }\r\n\r\n const startRad = this.#degreesToRadians(startAngle);\r\n let endRad = this.#degreesToRadians(endAngle);\r\n\r\n if (startAngle === endAngle) {\r\n endRad = startRad;\r\n } else if (endRad < startRad) {\r\n endRad += Math.PI * 2;\r\n }\r\n\r\n const totalAngle = endRad - startRad;\r\n const waveCount = (2 * Math.PI * circle.r) / this.#wavelength;\r\n const phase = (Math.PI / 2) * (waveCount - 1);\r\n\r\n const points: [number, number][] = [];\r\n\r\n for (let i = 0; i <= steps; i++) {\r\n const t = steps === 0 ? 0 : i / steps;\r\n const angle = startRad + t * totalAngle;\r\n const wave = Math.sin(angle * waveCount + phase);\r\n const radius = circle.r - amplitude * wave;\r\n const x = radius * Math.cos(angle) + circle.cx;\r\n const y = radius * Math.sin(angle) + circle.cy;\r\n points.push([x, y]);\r\n }\r\n\r\n const path =\r\n points.length === 1\r\n ? `M ${points[0][0]},${points[0][1]}`\r\n : `M ${points[0][0]},${points[0][1]} ` +\r\n points\r\n .slice(1)\r\n .map(([x, y]) => `L ${x},${y}`)\r\n .join(\" \");\r\n\r\n const viewBox = `0 0 ${this.#diameter + circle.padding * 2} ${this.#diameter + circle.padding * 2}`;\r\n return { path, viewBox };\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-circular-progress-indicator\": M3eCircularProgressIndicatorElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, nothing, PropertyValues, svg } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { customElement, DesignToken, ResizeController, resolveFragmentUrl, safeStyleMap } from \"@m3e/web/core\";\r\n\r\nimport { LinearProgressMode } from \"./LinearProgressMode\";\r\nimport { ProgressElementIndicatorBase } from \"./ProgressElementIndicatorBase\";\r\n\r\n/**\r\n * A horizontal bar for indicating progress and activity.\r\n *\r\n * @description\r\n * The `m3e-linear-progress-indicator` component displays a horizontal progress bar for tracking\r\n * the completion of a task or process. It supports `determinate`, `indeterminate`, `buffer`,\r\n * and `query` modes, and can be customized with CSS custom properties for thickness, shape, and color.\r\n * The component is accessible, animates smoothly, and adapts to various use cases including loading,\r\n * buffering, and activity indication.\r\n *\r\n * @example\r\n * The following example illustrates a determinate linear progress indicator.\r\n * ```html\r\n * <m3e-linear-progress-indicator value=\"30\"></m3e-linear-progress-indicator>\r\n * ```\r\n * @example\r\n * The next example illustrates an indeterminate linear progress indicator using the `mode` attribute.\r\n * ```html\r\n * <m3e-linear-progress-indicator mode=\"indeterminate\"></m3e-linear-progress-indicator>\r\n * ```\r\n *\r\n * @tag m3e-linear-progress-indicator\r\n *\r\n * @attr buffer-value - A fractional value, between 0 and `max`, indicating buffer progress.\r\n * @attr max - The maximum progress value.\r\n * @attr mode - The mode of the progress bar.\r\n * @attr value - A fractional value, between 0 and `max`, indicating progress.\r\n * @attr variant - The appearance of the indicator.\r\n *\r\n * @cssprop --m3e-linear-progress-indicator-thickness - Thickness (height) of the progress bar.\r\n * @cssprop --m3e-linear-progress-indicator-shape - Border radius of the progress bar.\r\n * @cssprop --m3e-progress-indicator-track-color - Track color of the progress bar (background/buffer).\r\n * @cssprop --m3e-progress-indicator-color - Color of the progress indicator (foreground).\r\n * @cssprop --m3e-linear-wavy-progress-indicator-amplitude - Amplitude of the `wavy` variant.\r\n * @cssprop --m3e-linear-wavy-progress-indicator-wavelength - Wavelength of the `wavy` variant.\r\n * @cssprop --m3e-linear-wavy-indeterminate-progress-indicator-wavelength - Wavelength of the indeterminate/query `wavy` variant.\r\n */\r\n@customElement(\"m3e-linear-progress-indicator\")\r\nexport class M3eLinearProgressIndicatorElement extends ProgressElementIndicatorBase {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = [\r\n ProgressElementIndicatorBase.styles,\r\n css`\r\n :host {\r\n display: block;\r\n position: relative;\r\n }\r\n .progress {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n align-items: center;\r\n border-radius: var(--m3e-linear-progress-indicator-shape, ${DesignToken.shape.corner.extraSmall});\r\n }\r\n .stroke,\r\n .amplitude-and-wavelength {\r\n visibility: hidden;\r\n position: absolute;\r\n }\r\n .stroke {\r\n width: 100%;\r\n height: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n }\r\n .amplitude-and-wavelength {\r\n height: var(--m3e-linear-wavy-progress-indicator-amplitude, 0.1875rem);\r\n width: var(--m3e-linear-wavy-progress-indicator-wavelength, 2.5rem);\r\n }\r\n :host([mode=\"indeterminate\"]) .amplitude-and-wavelength,\r\n :host([mode=\"query\"]) .amplitude-and-wavelength {\r\n width: var(--m3e-linear-wavy-indeterminate-progress-indicator-wavelength, 1.5rem);\r\n }\r\n .primary,\r\n .secondary,\r\n .stop {\r\n height: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n border-radius: inherit;\r\n }\r\n .stop {\r\n aspect-ratio: 1;\r\n flex: none;\r\n }\r\n :host([variant=\"flat\"]) {\r\n height: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n }\r\n :host([variant=\"wavy\"]) {\r\n height: calc(\r\n var(--m3e-linear-progress-indicator-thickness, 0.25rem) +\r\n calc(var(--m3e-linear-wavy-progress-indicator-amplitude, 0.1875rem) * 2)\r\n );\r\n }\r\n :host([variant=\"wavy\"]) .primary,\r\n :host([variant=\"wavy\"]) .secondary {\r\n position: relative;\r\n height: 100%;\r\n overflow: hidden;\r\n }\r\n :host([variant=\"wavy\"]) .complete {\r\n position: absolute;\r\n margin: auto;\r\n top: calc(50% - calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) / 2));\r\n left: 0;\r\n right: 0;\r\n height: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n border-radius: inherit;\r\n }\r\n :host([variant=\"wavy\"]) .secondary {\r\n height: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n }\r\n .wave {\r\n position: absolute;\r\n display: block;\r\n }\r\n .primary .wave,\r\n .secondary .wave {\r\n margin-inline-start: calc(0px - var(--m3e-linear-wavy-progress-indicator-wavelength, 2.5rem));\r\n }\r\n :host([variant=\"wavy\"][mode=\"determinate\"]) .primary path,\r\n :host([variant=\"wavy\"][mode=\"buffer\"]) .primary path {\r\n animation: wave-slide 1.5s linear infinite;\r\n }\r\n @keyframes wave-slide {\r\n from {\r\n transform: translateX(0);\r\n }\r\n to {\r\n transform: translateX(calc(0px - var(--m3e-linear-wavy-progress-indicator-wavelength, 2.5rem)));\r\n }\r\n }\r\n :host([mode=\"determinate\"]) .progress,\r\n :host([mode=\"buffer\"]) .progress {\r\n display: flex;\r\n overflow: hidden;\r\n }\r\n :host([mode=\"determinate\"]) .primary,\r\n :host([mode=\"buffer\"]) .primary {\r\n width: var(--_value, 0px);\r\n flex: none;\r\n }\r\n :host([mode=\"determinate\"]) .gap,\r\n :host([mode=\"buffer\"]) .gap {\r\n flex-basis: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n flex-shrink: 1;\r\n }\r\n :host([mode=\"determinate\"]) .secondary,\r\n :host([mode=\"buffer\"]) .buffer {\r\n flex: 1 1 auto;\r\n }\r\n :host([mode=\"buffer\"]) .buffer {\r\n flex-shrink: 5;\r\n height: 100%;\r\n width: 100%;\r\n background-color: var(--m3e-progress-indicator-track-color, ${DesignToken.color.secondaryContainer});\r\n mask-image: radial-gradient(\r\n circle,\r\n black 0,\r\n black calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) / 2),\r\n transparent calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) / 2)\r\n );\r\n mask-size: calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) * 2) 100%;\r\n mask-repeat: repeat;\r\n animation: buffer 250ms linear infinite;\r\n }\r\n :host(:dir(rtl)[mode=\"buffer\"]) .buffer {\r\n transform: scaleX(-1);\r\n }\r\n @keyframes buffer {\r\n from {\r\n mask-position: 0 0;\r\n }\r\n to {\r\n mask-position: calc(-1 * calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) * 2)) 0;\r\n }\r\n }\r\n :host([mode=\"buffer\"]) .secondary {\r\n width: var(--_buffer-value, 0px);\r\n flex: none;\r\n }\r\n :host([mode=\"indeterminate\"]) .primary,\r\n :host([mode=\"query\"]) .primary {\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n border-radius: inherit;\r\n animation: indeterminate-primary 2.1s infinite linear;\r\n }\r\n :host([variant=\"wavy\"][mode=\"indeterminate\"]) .primary,\r\n :host([variant=\"wavy\"][mode=\"query\"]) .primary {\r\n animation-name: wavy-indeterminate-primary;\r\n }\r\n :host([mode=\"indeterminate\"]) .secondary,\r\n :host([mode=\"query\"]) .secondary {\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n border-radius: inherit;\r\n animation: indeterminate-secondary 2.1s infinite linear;\r\n animation-delay: 1.15s;\r\n animation-fill-mode: backwards;\r\n }\r\n :host([variant=\"wavy\"][mode=\"indeterminate\"]) .secondary,\r\n :host([variant=\"wavy\"][mode=\"query\"]) .secondary {\r\n animation-name: wavy-indeterminate-secondary;\r\n }\r\n :host([mode=\"indeterminate\"]) .progress,\r\n :host([mode=\"query\"]) .progress {\r\n overflow: hidden;\r\n position: relative;\r\n }\r\n :host(:not(:dir(rtl))[mode=\"query\"]) .progress,\r\n :host(:dir(rtl)[mode=\"indeterminate\"]) .progress {\r\n transform: scaleX(-1);\r\n }\r\n :host([variant=\"flat\"]) .primary,\r\n :host([variant=\"flat\"][mode=\"indeterminate\"]) .secondary,\r\n :host([variant=\"flat\"][mode=\"query\"]) .secondary,\r\n :host([variant=\"wavy\"]) .complete,\r\n .stop {\r\n background-color: var(--m3e-progress-indicator-color, ${DesignToken.color.primary});\r\n }\r\n :host([variant=\"wavy\"]) .progress {\r\n color: var(--m3e-progress-indicator-color, ${DesignToken.color.primary});\r\n }\r\n :host([mode=\"determinate\"]) .secondary,\r\n :host([mode=\"buffer\"]) .secondary,\r\n :host([variant=\"flat\"][mode=\"indeterminate\"]) .track,\r\n :host([variant=\"flat\"][mode=\"query\"]) .track {\r\n background-color: var(--m3e-progress-indicator-track-color, ${DesignToken.color.secondaryContainer});\r\n }\r\n :host([variant=\"wavy\"][mode=\"indeterminate\"]) .track,\r\n :host([variant=\"wavy\"][mode=\"query\"]) .track {\r\n color: var(--m3e-progress-indicator-track-color, ${DesignToken.color.secondaryContainer});\r\n }\r\n :host([variant=\"wavy\"][mode=\"indeterminate\"]) .track,\r\n :host([variant=\"wavy\"][mode=\"query\"]) .track {\r\n y: calc(50% - calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) / 2));\r\n border-radius: inherit;\r\n }\r\n :host([variant=\"flat\"][mode=\"indeterminate\"]) .track,\r\n :host([variant=\"flat\"][mode=\"query\"]) .track {\r\n position: absolute;\r\n margin: auto;\r\n top: calc(50% - calc(var(--m3e-linear-progress-indicator-thickness, 0.25rem) / 2));\r\n left: 0;\r\n right: 0;\r\n height: var(--m3e-linear-progress-indicator-thickness, 0.25rem);\r\n border-radius: inherit;\r\n }\r\n @keyframes indeterminate-primary {\r\n 0% {\r\n left: -145.167%;\r\n width: 8%;\r\n }\r\n 20% {\r\n left: -113.333%;\r\n width: 48%;\r\n }\r\n 60% {\r\n left: 56.333%;\r\n width: 78%;\r\n }\r\n 100% {\r\n left: 100%;\r\n width: 8%;\r\n }\r\n }\r\n @keyframes indeterminate-secondary {\r\n 0% {\r\n left: -54.888%;\r\n width: 8%;\r\n }\r\n 20% {\r\n left: -20%;\r\n width: 48%;\r\n }\r\n 60% {\r\n left: 60%;\r\n width: 78%;\r\n }\r\n 100% {\r\n left: 160%;\r\n width: 8%;\r\n }\r\n }\r\n @keyframes wavy-indeterminate-primary {\r\n 0% {\r\n transform: translateX(-145.167%);\r\n width: 8%;\r\n }\r\n 20% {\r\n transform: translateX(-113.333%);\r\n width: 48%;\r\n }\r\n 60% {\r\n transform: translateX(56.333%);\r\n width: 78%;\r\n }\r\n 100% {\r\n transform: translateX(100%);\r\n width: 8%;\r\n }\r\n }\r\n @keyframes wavy-indeterminate-secondary {\r\n 0% {\r\n transform: translateX(-54.888%);\r\n width: 8%;\r\n }\r\n 20% {\r\n transform: translateX(-20%);\r\n width: 48%;\r\n }\r\n 60% {\r\n transform: translateX(60%);\r\n width: 78%;\r\n }\r\n 100% {\r\n transform: translateX(160%);\r\n width: 8%;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .progress {\r\n --m3e-progress-indicator-track-color: GrayText;\r\n --m3e-progress-indicator-color: CanvasText;\r\n }\r\n }\r\n `,\r\n ];\r\n\r\n /** @private */ private static __nextMaskId = 0;\r\n /** @private */ #maskId = `m3e-linear-progress-mask-${M3eLinearProgressIndicatorElement.__nextMaskId++}`;\r\n\r\n /** @private */ #strokeWidth = 0;\r\n /** @private */ #amplitude = 0;\r\n /** @private */ #wavelength = 0;\r\n\r\n /** @private */ readonly #resizeController = new ResizeController(this, {\r\n skipInitial: true,\r\n target: null,\r\n callback: () => {\r\n this.#updateStroke();\r\n this.#updateAmplitudeAndWavelength();\r\n queueMicrotask(() => this.requestUpdate());\r\n },\r\n });\r\n\r\n /**\r\n * The mode of the progress bar.\r\n * @default \"determinate\"\r\n */\r\n @property({ reflect: true }) mode: LinearProgressMode = \"determinate\";\r\n\r\n /**\r\n * A fractional value, between 0 and `max`, indicating buffer progress.\r\n * @default 0\r\n */\r\n @property({ attribute: \"buffer-value\", type: Number, reflect: true }) bufferValue = 0;\r\n\r\n /** @inheritdoc */\r\n override reconnectedCallback(): void {\r\n super.reconnectedCallback();\r\n this.#initialize();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n this.#initialize();\r\n }\r\n\r\n /** @private */\r\n #initialize(): void {\r\n this.#updateStroke();\r\n this.#updateAmplitudeAndWavelength();\r\n\r\n const stroke = this.shadowRoot?.querySelector<HTMLElement>(\".stroke\");\r\n if (stroke) {\r\n this.#resizeController.observe(stroke);\r\n }\r\n\r\n const amplitudeAndWavelength = this.shadowRoot?.querySelector<HTMLElement>(\".amplitude-and-wavelength\");\r\n if (amplitudeAndWavelength) {\r\n this.#resizeController.observe(amplitudeAndWavelength);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"mode\")) {\r\n this.ariaValueNow = this.mode === \"indeterminate\" || this.mode === \"query\" ? null : `${this.value}`;\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override updated(_changedProperties: PropertyValues<this>): void {\r\n super.updated(_changedProperties);\r\n\r\n if (_changedProperties.has(\"value\") || _changedProperties.has(\"bufferValue\") || _changedProperties.has(\"max\")) {\r\n const progress = this.shadowRoot?.querySelector<HTMLElement>(\".progress\");\r\n progress?.style.setProperty(\"--_value\", `${(this.value / this.max) * 100}%`);\r\n progress?.style.setProperty(\"--_buffer-value\", `${(this.bufferValue / this.max) * 100}%`);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n const clampedValue = Math.max(0, Math.min(this.value, this.max));\r\n const activeWidth = (clampedValue / this.max) * this.clientWidth;\r\n const waveWidth =\r\n this.mode === \"indeterminate\" || this.mode === \"query\" ? this.clientWidth : activeWidth + this.#wavelength * 3;\r\n\r\n const wave =\r\n this.variant === \"wavy\" && this.#strokeWidth > 0 && this.#amplitude > 0 && this.#wavelength > 0\r\n ? this.#drawWavyPath(waveWidth)\r\n : undefined;\r\n\r\n return html`<div\r\n class=\"progress\"\r\n aria-hidden=\"true\"\r\n style=\"${safeStyleMap({\r\n \"--_translate-x\": `-${activeWidth}px`,\r\n })}\"\r\n >\r\n ${!wave ? html`<div class=\"track\"></div>` : nothing}\r\n ${(this.mode === \"determinate\" || this.mode === \"buffer\") && this.value <= 0\r\n ? nothing\r\n : html`<div class=\"primary\">\r\n ${wave && (this.mode === \"determinate\" || this.mode === \"buffer\")\r\n ? this.#renderWave(waveWidth, wave.height, wave.viewBox, wave.path)\r\n : nothing}\r\n </div>\r\n ${this.mode === \"determinate\" || this.mode === \"buffer\" ? html`<div class=\"gap\"></div>` : nothing}`}\r\n ${this.mode !== \"buffer\" || this.bufferValue > 0 ? html`<div class=\"secondary\"></div>` : nothing}\r\n ${this.mode === \"buffer\" && this.bufferValue > 0 ? html`<div class=\"gap\"></div>` : nothing}\r\n ${this.mode === \"buffer\" ? html`<div class=\"buffer\"></div>` : nothing}\r\n ${(this.mode === \"determinate\" || this.mode === \"buffer\") && this.value > 0\r\n ? html`<div class=\"gap\"></div>\r\n <div class=\"stop\"></div>`\r\n : nothing}\r\n ${wave && !(this.mode === \"determinate\" || this.mode === \"buffer\")\r\n ? this.#renderWave(waveWidth, wave.height, wave.viewBox, wave.path)\r\n : nothing}\r\n </div>\r\n ${this.#renderResizeObservedElements()}`;\r\n }\r\n\r\n /** @private */\r\n #renderWave(width: number, height: number, viewBox: string, path: string): unknown {\r\n const masked = this.mode === \"indeterminate\" || this.mode === \"query\";\r\n if (!masked && this.value / this.max === 1) {\r\n return html`<div class=\"complete\"></div>`;\r\n }\r\n return html`<svg class=\"wave\" width=\"${width}\" height=\"${height}\" viewBox=\"${viewBox}\" preserveAspectRatio=\"none\">\r\n ${masked\r\n ? svg`\r\n <mask id=\"${this.#maskId}\" maskUnits=\"userSpaceOnUse\">\r\n <rect width=\"${width}\" height=\"${height}\" fill=\"black\" />\r\n <rect class=\"primary\" height=\"${height}\" fill=\"white\" />\r\n <rect class=\"secondary\" height=\"${height}\" fill=\"white\" />\r\n </mask>\r\n <mask id=\"${`${this.#maskId}-inverse`}\" maskUnits=\"userSpaceOnUse\">\r\n <rect width=\"${width}\" height=\"${height}\" fill=\"white\" />\r\n <rect class=\"primary\" height=\"${height}\" fill=\"black\" />\r\n <rect class=\"secondary\" height=\"${height}\" fill=\"black\" />\r\n </mask>\r\n <g mask=\"${resolveFragmentUrl(this.#maskId)}\">\r\n <path d=\"${path}\" stroke=\"currentColor\" stroke-width=${this.#strokeWidth} fill=\"none\" stroke-linecap=\"round\" />\r\n </g>\r\n <g mask=\"${resolveFragmentUrl(`${this.#maskId}-inverse`)}\">\r\n <rect class=\"track\" width=\"100%\" height=\"${this.#strokeWidth}\" fill=\"currentColor\" />\r\n </g>`\r\n : svg`<path d=\"${path}\" stroke=\"currentColor\" stroke-width=${this.#strokeWidth} fill=\"none\" stroke-linecap=\"round\" />`}\r\n </svg>`;\r\n }\r\n\r\n /** @private */\r\n #renderResizeObservedElements(): unknown {\r\n return html`<div class=\"stroke\" aria-hidden=\"true\"></div>\r\n <div class=\"amplitude-and-wavelength\" aria-hidden=\"true\"></div>`;\r\n }\r\n\r\n /** @private */\r\n #updateStroke(): void {\r\n const element = this.shadowRoot?.querySelector<HTMLElement>(\".stroke\");\r\n if (element) {\r\n this.#strokeWidth = element.clientHeight;\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateAmplitudeAndWavelength(): void {\r\n const element = this.shadowRoot?.querySelector<HTMLElement>(\".amplitude-and-wavelength\");\r\n if (element) {\r\n this.#amplitude = element.clientHeight;\r\n this.#wavelength = element.clientWidth;\r\n }\r\n }\r\n\r\n /** @private */\r\n #drawWavyPath(width: number, phase: number = 0) {\r\n const amplitude = this.#amplitude + this.#strokeWidth / 2;\r\n const y = amplitude;\r\n\r\n const path: string[] = [];\r\n const step = this.#wavelength / 2;\r\n let x = 0;\r\n\r\n path.push(`M ${x},${y}`);\r\n\r\n while (x <= width) {\r\n const endX = x + step;\r\n const endY = y + amplitude * Math.sin((2 * Math.PI * endX) / this.#wavelength + phase);\r\n const cpX = x + step / 2;\r\n const cpY = y + amplitude * Math.sin((2 * Math.PI * (x + step / 2)) / this.#wavelength + phase);\r\n\r\n path.push(`Q ${cpX},${cpY} ${endX},${endY}`);\r\n x += step;\r\n }\r\n\r\n const padding = 1;\r\n const viewBox = `0 ${-padding} ${width} ${amplitude * 2 + padding * 2}`;\r\n\r\n return { path: path.join(\" \"), viewBox, height: this.#strokeWidth + this.#amplitude * 2, padding };\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-linear-progress-indicator\": M3eLinearProgressIndicatorElement;\r\n }\r\n}\r\n"],"names":["ProgressElementIndicatorBase","ReconnectedCallback","AttachInternals","Role","LitElement","constructor","value","max","variant","connectedCallback","ariaValueMin","update","changedProperties","has","ariaValueNow","ariaValueMax","styles","css","__decorate","property","type","Number","reflect","prototype","WAVY_INDETERMINATE_DURATION","M3eCircularProgressIndicatorElement","M3eCircularProgressIndicatorElement_1","_M3eCircularProgressIndicatorElement_maskId","__nextMaskId","_M3eCircularProgressIndicatorElement_diameter","set","_M3eCircularProgressIndicatorElement_strokeWidth","_M3eCircularProgressIndicatorElement_amplitude","_M3eCircularProgressIndicatorElement_wavelength","_M3eCircularProgressIndicatorElement_spinnerActiveTrack","_M3eCircularProgressIndicatorElement_spinnerTrack","_M3eCircularProgressIndicatorElement_resizeController","ResizeController","skipInitial","target","callback","__classPrivateFieldGet","_M3eCircularProgressIndicatorElement_instances","_M3eCircularProgressIndicatorElement_updateDiameterAndStroke","call","_M3eCircularProgressIndicatorElement_updateAmplitudeAndWavelength","queueMicrotask","requestUpdate","_M3eCircularProgressIndicatorElement_indeterminateWavyAnimationLoop","AnimationLoopController","_","t","_M3eCircularProgressIndicatorElement_updateWavyIndeterminateSpinner","indeterminate","reconnectedCallback","_M3eCircularProgressIndicatorElement_initialize","firstUpdated","_changedProperties","updated","__classPrivateFieldSet","shadowRoot","querySelector","start","stop","render","_M3eCircularProgressIndicatorElement_renderWavyIndicator","_M3eCircularProgressIndicatorElement_renderFlatIndicator","diameterAndStroke","observe","amplitudeAndWavelength","left","startAngle","endAngle","right","html","viewBox","path","_M3eCircularProgressIndicatorElement_renderResizeObservedElements","minDegrees","_M3eCircularProgressIndicatorElement_sizeToDegrees","degrees","Math","active","_M3eCircularProgressIndicatorElement_drawArc","gap","inactive","svg","nothing","_M3eCircularProgressIndicatorElement_renderContent","_M3eCircularProgressIndicatorElement_drawWavyArc","amplitude","activeArc","padding","ifDefined","resolveFragmentUrl","undefined","classMap","wave","element","clientWidth","clientHeight","sweep","_M3eCircularProgressIndicatorElement_computeWavyIndeterminateSweep","setAttribute","sweepPadding","minSweep","maxSweep","duration","holdMin","growTime","holdMax","shrinkTime","cycle","u","p","size","PI","_M3eCircularProgressIndicatorElement_computeCircle","r","_M3eCircularProgressIndicatorElement_polarToCartesian","circle","rad","_M3eCircularProgressIndicatorElement_degreesToRadians","x","cx","cos","y","cy","sin","end","steps","startRad","endRad","totalAngle","waveCount","phase","points","i","angle","radius","push","length","slice","map","join","DesignToken","color","secondaryContainer","primary","Boolean","customElement","M3eLinearProgressIndicatorElement","M3eLinearProgressIndicatorElement_1","_M3eLinearProgressIndicatorElement_maskId","_M3eLinearProgressIndicatorElement_strokeWidth","_M3eLinearProgressIndicatorElement_amplitude","_M3eLinearProgressIndicatorElement_wavelength","_M3eLinearProgressIndicatorElement_resizeController","_M3eLinearProgressIndicatorElement_instances","_M3eLinearProgressIndicatorElement_updateStroke","_M3eLinearProgressIndicatorElement_updateAmplitudeAndWavelength","mode","bufferValue","_M3eLinearProgressIndicatorElement_initialize","progress","style","setProperty","clampedValue","min","activeWidth","waveWidth","_M3eLinearProgressIndicatorElement_drawWavyPath","safeStyleMap","_M3eLinearProgressIndicatorElement_renderWave","height","_M3eLinearProgressIndicatorElement_renderResizeObservedElements","stroke","width","masked","step","endX","endY","cpX","cpY","shape","corner","extraSmall","attribute"],"mappings":"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"}
|