@magmonium/one 0.4.17 → 0.4.18

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.
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { input, inject, viewChild, signal, computed, effect, DestroyRef, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import { M as MODAL_REF, a as MIN_ZOOM, I as InputType, b as MAX_ZOOM, p as parseRatio, o as outputSize, c as cropRect, i as initialFraming, e as encodeFramed, d as drawFramed, r as renameForType, f as clampFraming, B as ButtonComponent, H as HeaderComponent, R as RangeInputComponent } from './magmonium-one-magmonium-one-BRKZkOoZ.mjs';
3
+ import { M as MODAL_REF, a as MIN_ZOOM, I as InputType, b as MAX_ZOOM, p as parseRatio, o as outputSize, c as cropRect, i as initialFraming, e as encodeFramed, d as drawFramed, r as renameForType, f as clampFraming, B as ButtonComponent, H as HeaderComponent, R as RangeInputComponent } from './magmonium-one-magmonium-one-xCRWlG4J.mjs';
4
4
 
5
5
  const WHEEL_ZOOM_RATE = 0.0015;
6
6
  const distance = (a, b) => Math.hypot(a.x - b.x, a.y - b.y);
@@ -287,4 +287,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
287
287
  }], propDecorators: { file: [{ type: i0.Input, args: [{ isSignal: true, alias: "file", required: true }] }], ratio: [{ type: i0.Input, args: [{ isSignal: true, alias: "ratio", required: true }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: true }] }], stage: [{ type: i0.ViewChild, args: ['stage', { isSignal: true }] }] } });
288
288
 
289
289
  export { ImageEditorComponent };
290
- //# sourceMappingURL=magmonium-one-image-editor-Ji-EUYE2.mjs.map
290
+ //# sourceMappingURL=magmonium-one-image-editor-BbFlj-1H.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"magmonium-one-image-editor-Ji-EUYE2.mjs","sources":["../../../../libs/one/src/lib/shared/ui/input/ui/file-upload-input/image-editor.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ButtonComponent } from '../../../button/ui/button';\nimport { HeaderComponent } from '../../../header';\nimport { RangeInputComponent } from '../range/range';\nimport { InputType, RangeInput } from '../../model/input';\nimport { MODAL_REF, ModalRef } from '../../../../config/modal-ref';\nimport {\n clampFraming,\n cropRect,\n drawFramed,\n encodeFramed,\n Framing,\n FrameSize,\n initialFraming,\n MAX_ZOOM,\n MIN_ZOOM,\n outputSize,\n parseRatio,\n renameForType,\n} from './image-frame';\n\n/**\n * What an ImageEditor closes with. The framed file on an apply, `unreadable`\n * when the picture never decoded, and neither for a dismissal — a flat object\n * rather than a union, so the web-component build (no `strict`) reads it too.\n */\nexport type ImageEditorResult = { file?: File; unreadable?: boolean };\n\ntype Point = { x: number; y: number };\n\nconst WHEEL_ZOOM_RATE = 0.0015;\n\nconst distance = (a: Point, b: Point): number =>\n Math.hypot(a.x - b.x, a.y - b.y);\n\n@Component({\n selector: 'm-image-editor',\n template: `\n <div class=\"image-editor\">\n <m-header\n [level]=\"3\"\n label=\"edit-image-size\"\n [params]=\"sizeParams()\"\n />\n <div\n #stage\n class=\"image-editor__stage\"\n [style.aspect-ratio]=\"aspect()\"\n [style.--m-image-editor-aspect]=\"aspect()\"\n [class.image-editor__stage--panning]=\"isPanning()\"\n (pointerdown)=\"onPointerDown($event)\"\n (pointermove)=\"onPointerMove($event)\"\n (pointerup)=\"onPointerUp($event)\"\n (pointercancel)=\"onPointerUp($event)\"\n (wheel)=\"onWheel($event)\"\n >\n @if (sourceUrl(); as url) {\n <img\n class=\"image-editor__image\"\n [src]=\"url\"\n alt=\"\"\n draggable=\"false\"\n [style.width.px]=\"imageBox().width\"\n [style.height.px]=\"imageBox().height\"\n [style.transform]=\"imageBox().transform\"\n />\n }\n </div>\n <m-range\n [config]=\"zoomConfig()\"\n [value]=\"zoomPercent()\"\n (valueChange)=\"onZoom($event)\"\n />\n <!-- asset: buttons/okay.yml. No cancel beside it: the Modal's own close\n is the cancel, and it drops the image the same way. -->\n <m-one-button\n name=\"okay\"\n label=\"apply\"\n [disabled]=\"!source() || isApplying()\"\n (clicked)=\"apply()\"\n />\n </div>\n `,\n imports: [ButtonComponent, HeaderComponent, RangeInputComponent],\n styleUrl: './image-editor.sass',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ImageEditorComponent {\n readonly file = input.required<File>();\n readonly ratio = input.required<string>();\n readonly width = input.required<number>();\n\n readonly #modalRef = inject<ModalRef<ImageEditorResult | undefined>>(MODAL_REF);\n private readonly stage = viewChild<ElementRef<HTMLDivElement>>('stage');\n\n protected readonly source = signal<ImageBitmap | undefined>(undefined);\n protected readonly sourceUrl = signal<string | undefined>(undefined);\n protected readonly isApplying = signal(false);\n private readonly framing = signal<Framing>({ cx: 0, cy: 0, zoom: MIN_ZOOM });\n private readonly stageWidth = signal(0);\n private readonly pointers = new Map<number, Point>();\n protected readonly isPanning = signal(false);\n #settled = false;\n\n protected readonly zoomConfig = computed<RangeInput>(() => ({\n name: 'zoom',\n label: 'zoom',\n type: InputType.RANGE,\n min: MIN_ZOOM * 100,\n max: MAX_ZOOM * 100,\n }));\n\n protected readonly aspect = computed(() => parseRatio(this.ratio()) ?? 1);\n\n private readonly output = computed<FrameSize | undefined>(() =>\n outputSize(this.ratio(), this.width())\n );\n\n protected readonly sizeParams = computed(() => {\n const size = this.output();\n return {\n width: String(size?.width ?? ''),\n height: String(size?.height ?? ''),\n };\n });\n\n private readonly imageSize = computed<FrameSize | undefined>(() => {\n const bitmap = this.source();\n return bitmap ? { width: bitmap.width, height: bitmap.height } : undefined;\n });\n\n protected readonly zoomPercent = computed(() =>\n String(Math.round(this.framing().zoom * 100))\n );\n\n /** The whole picture laid out so the box shows exactly the crop. */\n protected readonly imageBox = computed(() => {\n const image = this.imageSize();\n const stage = this.stageWidth();\n if (!image || !stage) return { width: 0, height: 0, transform: 'none' };\n const rect = cropRect(image, this.aspect(), this.framing());\n const scale = stage / rect.width;\n return {\n width: image.width * scale,\n height: image.height * scale,\n transform: `translate(${-rect.x * scale}px, ${-rect.y * scale}px)`,\n };\n });\n\n private readonly load = effect((onCleanup) => {\n const file = this.file();\n let cancelled = false;\n const url = URL.createObjectURL(file);\n this.sourceUrl.set(url);\n // EXIF orientation applied here, so the geometry below and the <img> the\n // stage draws agree on which way is up.\n createImageBitmap(file, { imageOrientation: 'from-image' })\n .then((bitmap) => {\n if (cancelled) {\n bitmap.close();\n return;\n }\n this.framing.set(\n initialFraming({ width: bitmap.width, height: bitmap.height })\n );\n this.source.set(bitmap);\n })\n .catch(() => {\n if (!cancelled) this.settle({ unreadable: true });\n });\n onCleanup(() => {\n cancelled = true;\n URL.revokeObjectURL(url);\n this.source()?.close();\n });\n });\n\n private readonly measure = effect((onCleanup) => {\n const stage = this.stage()?.nativeElement;\n if (!stage) return;\n this.stageWidth.set(stage.clientWidth);\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(([entry]) =>\n this.stageWidth.set(entry.contentRect.width)\n );\n observer.observe(stage);\n onCleanup(() => observer.disconnect());\n });\n\n // The Modal's own close affordance destroys the body without a word, and a\n // dismissal is a cancel: whoever opened the editor is still waiting.\n private readonly reportDismissal = inject(DestroyRef).onDestroy(() =>\n this.settle(undefined)\n );\n\n protected onPointerDown = (event: PointerEvent): void => {\n if (!this.source()) return;\n (event.currentTarget as HTMLElement).setPointerCapture?.(event.pointerId);\n this.pointers.set(event.pointerId, { x: event.clientX, y: event.clientY });\n this.isPanning.set(true);\n };\n\n protected onPointerMove = (event: PointerEvent): void => {\n const previous = this.pointers.get(event.pointerId);\n if (!previous) return;\n const next = { x: event.clientX, y: event.clientY };\n const others = [...this.pointers.entries()].filter(\n ([id]) => id !== event.pointerId\n );\n if (others.length === 1) {\n // Pinch: the gap between two fingers is the zoom.\n const anchor = others[0][1];\n const before = distance(previous, anchor);\n if (before > 0) this.zoomBy(distance(next, anchor) / before);\n } else if (others.length === 0) {\n this.panBy(next.x - previous.x, next.y - previous.y);\n }\n this.pointers.set(event.pointerId, next);\n };\n\n protected onPointerUp = (event: PointerEvent): void => {\n this.pointers.delete(event.pointerId);\n this.isPanning.set(this.pointers.size > 0);\n };\n\n protected onWheel = (event: WheelEvent): void => {\n if (!this.source()) return;\n event.preventDefault();\n this.zoomBy(Math.exp(-event.deltaY * WHEEL_ZOOM_RATE));\n };\n\n protected onZoom = (percent: string): void => {\n const zoom = Number(percent) / 100;\n if (!Number.isFinite(zoom)) return;\n this.updateFraming((framing) => ({ ...framing, zoom }));\n };\n\n protected apply = async (): Promise<void> => {\n const bitmap = this.source();\n const image = this.imageSize();\n const output = this.output();\n if (!bitmap || !image || !output || this.isApplying()) return;\n this.isApplying.set(true);\n try {\n const rect = cropRect(image, this.aspect(), this.framing());\n const blob = await encodeFramed(drawFramed(bitmap, rect, output));\n const original = this.file();\n this.settle({\n file: new File([blob], renameForType(original.name, blob.type), {\n type: blob.type,\n lastModified: Date.now(),\n }),\n });\n } catch {\n this.settle({ unreadable: true });\n }\n };\n\n /** Screen pixels dragged, moved into source pixels at the current scale. */\n private panBy = (dx: number, dy: number): void => {\n const image = this.imageSize();\n const stage = this.stageWidth();\n if (!image || !stage) return;\n const rect = cropRect(image, this.aspect(), this.framing());\n const perPixel = rect.width / stage;\n this.updateFraming((framing) => ({\n ...framing,\n cx: framing.cx - dx * perPixel,\n cy: framing.cy - dy * perPixel,\n }));\n };\n\n private zoomBy = (factor: number): void => {\n this.updateFraming((framing) => ({\n ...framing,\n zoom: framing.zoom * factor,\n }));\n };\n\n private updateFraming = (change: (framing: Framing) => Framing): void => {\n const image = this.imageSize();\n if (!image) return;\n this.framing.update((framing) =>\n clampFraming(image, this.aspect(), change(framing))\n );\n };\n\n private settle = (result: ImageEditorResult | undefined): void => {\n if (this.#settled) return;\n this.#settled = true;\n this.#modalRef.close(result);\n };\n}\n"],"names":[],"mappings":";;;;AAyCA,MAAM,eAAe,GAAG,MAAM;AAE9B,MAAM,QAAQ,GAAG,CAAC,CAAQ,EAAE,CAAQ,KAClC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MAsDrB,oBAAoB,CAAA;AACtB,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,0EAAQ;AAC7B,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,2EAAU;AAChC,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,2EAAU;AAEhC,IAAA,SAAS,GAAG,MAAM,CAA0C,SAAS,CAAC;AAC9D,IAAA,KAAK,GAAG,SAAS,CAA6B,OAAO,4EAAC;AAEpD,IAAA,MAAM,GAAG,MAAM,CAA0B,SAAS,6EAAC;AACnD,IAAA,SAAS,GAAG,MAAM,CAAqB,SAAS,gFAAC;AACjD,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,iFAAC;AAC5B,IAAA,OAAO,GAAG,MAAM,CAAU,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,8EAAC;AAC3D,IAAA,UAAU,GAAG,MAAM,CAAC,CAAC,iFAAC;AACtB,IAAA,QAAQ,GAAG,IAAI,GAAG,EAAiB;AACjC,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;IAC5C,QAAQ,GAAG,KAAK;AAEG,IAAA,UAAU,GAAG,QAAQ,CAAa,OAAO;AAC1D,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,SAAS,CAAC,KAAK;QACrB,GAAG,EAAE,QAAQ,GAAG,GAAG;QACnB,GAAG,EAAE,QAAQ,GAAG,GAAG;AACpB,KAAA,CAAC,iFAAC;AAEgB,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,6EAAC;AAExD,IAAA,MAAM,GAAG,QAAQ,CAAwB,MACxD,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,6EACvC;AAEkB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;QAC1B,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;SACnC;AACH,IAAA,CAAC,iFAAC;AAEe,IAAA,SAAS,GAAG,QAAQ,CAAwB,MAAK;AAChE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,OAAO,MAAM,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,SAAS;AAC5E,IAAA,CAAC,gFAAC;IAEiB,WAAW,GAAG,QAAQ,CAAC,MACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAC9C;;AAGkB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/B,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE;AACvE,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3D,QAAA,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK;QAChC,OAAO;AACL,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK;AAC1B,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK;AAC5B,YAAA,SAAS,EAAE,CAAA,UAAA,EAAa,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAA,IAAA,EAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAA,GAAA,CAAK;SACnE;AACH,IAAA,CAAC,+EAAC;AAEe,IAAA,IAAI,GAAG,MAAM,CAAC,CAAC,SAAS,KAAI;AAC3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;QACxB,IAAI,SAAS,GAAG,KAAK;QACrB,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;;;QAGvB,iBAAiB,CAAC,IAAI,EAAE,EAAE,gBAAgB,EAAE,YAAY,EAAE;AACvD,aAAA,IAAI,CAAC,CAAC,MAAM,KAAI;YACf,IAAI,SAAS,EAAE;gBACb,MAAM,CAAC,KAAK,EAAE;gBACd;YACF;YACA,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAC/D;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AACzB,QAAA,CAAC;aACA,KAAK,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACnD,QAAA,CAAC,CAAC;QACJ,SAAS,CAAC,MAAK;YACb,SAAS,GAAG,IAAI;AAChB,YAAA,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;AACxB,YAAA,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE;AACxB,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,2EAAC;AAEe,IAAA,OAAO,GAAG,MAAM,CAAC,CAAC,SAAS,KAAI;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,aAAa;AACzC,QAAA,IAAI,CAAC,KAAK;YAAE;QACZ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;QACtC,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE;QAC3C,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,KAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAC7C;AACD,QAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;QACvB,SAAS,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;AACxC,IAAA,CAAC,8EAAC;;;AAIe,IAAA,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAC9D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CACvB;AAES,IAAA,aAAa,GAAG,CAAC,KAAmB,KAAU;AACtD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE;QACnB,KAAK,CAAC,aAA6B,CAAC,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC;QACzE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;AAC1E,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,IAAA,CAAC;AAES,IAAA,aAAa,GAAG,CAAC,KAAmB,KAAU;AACtD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;AACnD,QAAA,IAAI,CAAC,QAAQ;YAAE;AACf,QAAA,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE;QACnD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAChD,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS,CACjC;AACD,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;;YAEvB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;YACzC,IAAI,MAAM,GAAG,CAAC;AAAE,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;QAC9D;AAAO,aAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QACtD;QACA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;AAC1C,IAAA,CAAC;AAES,IAAA,WAAW,GAAG,CAAC,KAAmB,KAAU;QACpD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;AAC5C,IAAA,CAAC;AAES,IAAA,OAAO,GAAG,CAAC,KAAiB,KAAU;AAC9C,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE;QACpB,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;AACxD,IAAA,CAAC;AAES,IAAA,MAAM,GAAG,CAAC,OAAe,KAAU;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG;AAClC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,MAAM,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,IAAA,CAAC;IAES,KAAK,GAAG,YAA0B;AAC1C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;YAAE;AACvD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3D,YAAA,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACjE,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC;AACV,gBAAA,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC9D,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,oBAAA,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;iBACzB,CAAC;AACH,aAAA,CAAC;QACJ;AAAE,QAAA,MAAM;YACN,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACnC;AACF,IAAA,CAAC;;AAGO,IAAA,KAAK,GAAG,CAAC,EAAU,EAAE,EAAU,KAAU;AAC/C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/B,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK;YAAE;AACtB,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3D,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK;QACnC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,MAAM;AAC/B,YAAA,GAAG,OAAO;AACV,YAAA,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,QAAQ;AAC9B,YAAA,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,QAAQ;AAC/B,SAAA,CAAC,CAAC;AACL,IAAA,CAAC;AAEO,IAAA,MAAM,GAAG,CAAC,MAAc,KAAU;QACxC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,MAAM;AAC/B,YAAA,GAAG,OAAO;AACV,YAAA,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,MAAM;AAC5B,SAAA,CAAC,CAAC;AACL,IAAA,CAAC;AAEO,IAAA,aAAa,GAAG,CAAC,MAAqC,KAAU;AACtE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,QAAA,IAAI,CAAC,KAAK;YAAE;QACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,KAC1B,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CACpD;AACH,IAAA,CAAC;AAEO,IAAA,MAAM,GAAG,CAAC,MAAqC,KAAU;QAC/D,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9B,IAAA,CAAC;uGA5MU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlDrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,eAAe,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,KAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,QAAA,EAAA,SAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAIpD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBApDhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,QAAA,EAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CT,EAAA,OAAA,EACQ,CAAC,eAAe,EAAE,eAAe,EAAE,mBAAmB,CAAC,EAAA,eAAA,EAE/C,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,0wBAAA,CAAA,EAAA;4UAQgB,OAAO,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;;;"}
1
+ {"version":3,"file":"magmonium-one-image-editor-BbFlj-1H.mjs","sources":["../../../../libs/one/src/lib/shared/ui/input/ui/file-upload-input/image-editor.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ButtonComponent } from '../../../button/ui/button';\nimport { HeaderComponent } from '../../../header';\nimport { RangeInputComponent } from '../range/range';\nimport { InputType, RangeInput } from '../../model/input';\nimport { MODAL_REF, ModalRef } from '../../../../config/modal-ref';\nimport {\n clampFraming,\n cropRect,\n drawFramed,\n encodeFramed,\n Framing,\n FrameSize,\n initialFraming,\n MAX_ZOOM,\n MIN_ZOOM,\n outputSize,\n parseRatio,\n renameForType,\n} from './image-frame';\n\n/**\n * What an ImageEditor closes with. The framed file on an apply, `unreadable`\n * when the picture never decoded, and neither for a dismissal — a flat object\n * rather than a union, so the web-component build (no `strict`) reads it too.\n */\nexport type ImageEditorResult = { file?: File; unreadable?: boolean };\n\ntype Point = { x: number; y: number };\n\nconst WHEEL_ZOOM_RATE = 0.0015;\n\nconst distance = (a: Point, b: Point): number =>\n Math.hypot(a.x - b.x, a.y - b.y);\n\n@Component({\n selector: 'm-image-editor',\n template: `\n <div class=\"image-editor\">\n <m-header\n [level]=\"3\"\n label=\"edit-image-size\"\n [params]=\"sizeParams()\"\n />\n <div\n #stage\n class=\"image-editor__stage\"\n [style.aspect-ratio]=\"aspect()\"\n [style.--m-image-editor-aspect]=\"aspect()\"\n [class.image-editor__stage--panning]=\"isPanning()\"\n (pointerdown)=\"onPointerDown($event)\"\n (pointermove)=\"onPointerMove($event)\"\n (pointerup)=\"onPointerUp($event)\"\n (pointercancel)=\"onPointerUp($event)\"\n (wheel)=\"onWheel($event)\"\n >\n @if (sourceUrl(); as url) {\n <img\n class=\"image-editor__image\"\n [src]=\"url\"\n alt=\"\"\n draggable=\"false\"\n [style.width.px]=\"imageBox().width\"\n [style.height.px]=\"imageBox().height\"\n [style.transform]=\"imageBox().transform\"\n />\n }\n </div>\n <m-range\n [config]=\"zoomConfig()\"\n [value]=\"zoomPercent()\"\n (valueChange)=\"onZoom($event)\"\n />\n <!-- asset: buttons/okay.yml. No cancel beside it: the Modal's own close\n is the cancel, and it drops the image the same way. -->\n <m-one-button\n name=\"okay\"\n label=\"apply\"\n [disabled]=\"!source() || isApplying()\"\n (clicked)=\"apply()\"\n />\n </div>\n `,\n imports: [ButtonComponent, HeaderComponent, RangeInputComponent],\n styleUrl: './image-editor.sass',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ImageEditorComponent {\n readonly file = input.required<File>();\n readonly ratio = input.required<string>();\n readonly width = input.required<number>();\n\n readonly #modalRef = inject<ModalRef<ImageEditorResult | undefined>>(MODAL_REF);\n private readonly stage = viewChild<ElementRef<HTMLDivElement>>('stage');\n\n protected readonly source = signal<ImageBitmap | undefined>(undefined);\n protected readonly sourceUrl = signal<string | undefined>(undefined);\n protected readonly isApplying = signal(false);\n private readonly framing = signal<Framing>({ cx: 0, cy: 0, zoom: MIN_ZOOM });\n private readonly stageWidth = signal(0);\n private readonly pointers = new Map<number, Point>();\n protected readonly isPanning = signal(false);\n #settled = false;\n\n protected readonly zoomConfig = computed<RangeInput>(() => ({\n name: 'zoom',\n label: 'zoom',\n type: InputType.RANGE,\n min: MIN_ZOOM * 100,\n max: MAX_ZOOM * 100,\n }));\n\n protected readonly aspect = computed(() => parseRatio(this.ratio()) ?? 1);\n\n private readonly output = computed<FrameSize | undefined>(() =>\n outputSize(this.ratio(), this.width())\n );\n\n protected readonly sizeParams = computed(() => {\n const size = this.output();\n return {\n width: String(size?.width ?? ''),\n height: String(size?.height ?? ''),\n };\n });\n\n private readonly imageSize = computed<FrameSize | undefined>(() => {\n const bitmap = this.source();\n return bitmap ? { width: bitmap.width, height: bitmap.height } : undefined;\n });\n\n protected readonly zoomPercent = computed(() =>\n String(Math.round(this.framing().zoom * 100))\n );\n\n /** The whole picture laid out so the box shows exactly the crop. */\n protected readonly imageBox = computed(() => {\n const image = this.imageSize();\n const stage = this.stageWidth();\n if (!image || !stage) return { width: 0, height: 0, transform: 'none' };\n const rect = cropRect(image, this.aspect(), this.framing());\n const scale = stage / rect.width;\n return {\n width: image.width * scale,\n height: image.height * scale,\n transform: `translate(${-rect.x * scale}px, ${-rect.y * scale}px)`,\n };\n });\n\n private readonly load = effect((onCleanup) => {\n const file = this.file();\n let cancelled = false;\n const url = URL.createObjectURL(file);\n this.sourceUrl.set(url);\n // EXIF orientation applied here, so the geometry below and the <img> the\n // stage draws agree on which way is up.\n createImageBitmap(file, { imageOrientation: 'from-image' })\n .then((bitmap) => {\n if (cancelled) {\n bitmap.close();\n return;\n }\n this.framing.set(\n initialFraming({ width: bitmap.width, height: bitmap.height })\n );\n this.source.set(bitmap);\n })\n .catch(() => {\n if (!cancelled) this.settle({ unreadable: true });\n });\n onCleanup(() => {\n cancelled = true;\n URL.revokeObjectURL(url);\n this.source()?.close();\n });\n });\n\n private readonly measure = effect((onCleanup) => {\n const stage = this.stage()?.nativeElement;\n if (!stage) return;\n this.stageWidth.set(stage.clientWidth);\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(([entry]) =>\n this.stageWidth.set(entry.contentRect.width)\n );\n observer.observe(stage);\n onCleanup(() => observer.disconnect());\n });\n\n // The Modal's own close affordance destroys the body without a word, and a\n // dismissal is a cancel: whoever opened the editor is still waiting.\n private readonly reportDismissal = inject(DestroyRef).onDestroy(() =>\n this.settle(undefined)\n );\n\n protected onPointerDown = (event: PointerEvent): void => {\n if (!this.source()) return;\n (event.currentTarget as HTMLElement).setPointerCapture?.(event.pointerId);\n this.pointers.set(event.pointerId, { x: event.clientX, y: event.clientY });\n this.isPanning.set(true);\n };\n\n protected onPointerMove = (event: PointerEvent): void => {\n const previous = this.pointers.get(event.pointerId);\n if (!previous) return;\n const next = { x: event.clientX, y: event.clientY };\n const others = [...this.pointers.entries()].filter(\n ([id]) => id !== event.pointerId\n );\n if (others.length === 1) {\n // Pinch: the gap between two fingers is the zoom.\n const anchor = others[0][1];\n const before = distance(previous, anchor);\n if (before > 0) this.zoomBy(distance(next, anchor) / before);\n } else if (others.length === 0) {\n this.panBy(next.x - previous.x, next.y - previous.y);\n }\n this.pointers.set(event.pointerId, next);\n };\n\n protected onPointerUp = (event: PointerEvent): void => {\n this.pointers.delete(event.pointerId);\n this.isPanning.set(this.pointers.size > 0);\n };\n\n protected onWheel = (event: WheelEvent): void => {\n if (!this.source()) return;\n event.preventDefault();\n this.zoomBy(Math.exp(-event.deltaY * WHEEL_ZOOM_RATE));\n };\n\n protected onZoom = (percent: string): void => {\n const zoom = Number(percent) / 100;\n if (!Number.isFinite(zoom)) return;\n this.updateFraming((framing) => ({ ...framing, zoom }));\n };\n\n protected apply = async (): Promise<void> => {\n const bitmap = this.source();\n const image = this.imageSize();\n const output = this.output();\n if (!bitmap || !image || !output || this.isApplying()) return;\n this.isApplying.set(true);\n try {\n const rect = cropRect(image, this.aspect(), this.framing());\n const blob = await encodeFramed(drawFramed(bitmap, rect, output));\n const original = this.file();\n this.settle({\n file: new File([blob], renameForType(original.name, blob.type), {\n type: blob.type,\n lastModified: Date.now(),\n }),\n });\n } catch {\n this.settle({ unreadable: true });\n }\n };\n\n /** Screen pixels dragged, moved into source pixels at the current scale. */\n private panBy = (dx: number, dy: number): void => {\n const image = this.imageSize();\n const stage = this.stageWidth();\n if (!image || !stage) return;\n const rect = cropRect(image, this.aspect(), this.framing());\n const perPixel = rect.width / stage;\n this.updateFraming((framing) => ({\n ...framing,\n cx: framing.cx - dx * perPixel,\n cy: framing.cy - dy * perPixel,\n }));\n };\n\n private zoomBy = (factor: number): void => {\n this.updateFraming((framing) => ({\n ...framing,\n zoom: framing.zoom * factor,\n }));\n };\n\n private updateFraming = (change: (framing: Framing) => Framing): void => {\n const image = this.imageSize();\n if (!image) return;\n this.framing.update((framing) =>\n clampFraming(image, this.aspect(), change(framing))\n );\n };\n\n private settle = (result: ImageEditorResult | undefined): void => {\n if (this.#settled) return;\n this.#settled = true;\n this.#modalRef.close(result);\n };\n}\n"],"names":[],"mappings":"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"}
@@ -8029,13 +8029,13 @@ class TextOutputComponent extends ConfigComponent {
8029
8029
  : this.translateService.toSafeHtml(label);
8030
8030
  }, ...(ngDevMode ? [{ debugName: "html" }] : /* istanbul ignore next */ []));
8031
8031
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TextOutputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
8032
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: TextOutputComponent, isStandalone: true, selector: "m-text-output", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, fontWeight: { classPropertyName: "fontWeight", publicName: "fontWeight", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, noTranslate: { classPropertyName: "noTranslate", publicName: "noTranslate", isSignal: true, isRequired: false, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { config: "configChange", clicked: "clicked" }, host: { listeners: { "click": "onClick()", "keydown.enter": "onClick()" }, properties: { "class.is-design-mode": "isDesignMode", "class.align-left": "resolvedAlign() === \"left\"", "class.align-right": "resolvedAlign() === \"right\"", "class.align-center": "resolvedAlign() === \"center\"", "class.variant-lead": "resolvedVariant() === \"lead\"", "class.variant-big": "resolvedVariant() === \"big\"", "class.variant-bold": "resolvedVariant() === \"bold\"", "class.variant-footer": "resolvedVariant() === \"footer\"", "class.variant-footnote": "resolvedVariant() === \"footnote\"", "class.variant-link": "resolvedVariant() === \"link\"", "class.variant-link-small": "resolvedVariant() === \"link-small\"", "class.weight-light": "resolvedFontWeight() === \"light\"", "class.weight-normal": "resolvedFontWeight() === \"normal\"", "class.weight-medium": "resolvedFontWeight() === \"medium\"", "class.weight-semibold": "resolvedFontWeight() === \"semibold\"", "class.weight-bold": "resolvedFontWeight() === \"bold\"", "attr.role": "isLink() ? \"link\" : null", "attr.tabindex": "isLink() ? 0 : null", "style.--m-text-output-color": "resolvedColorPallet().color", "style.--m-text-output-color-contrast": "resolvedColorPallet().contrastColor", "style.--m-text-output-color-opposite": "resolvedColorPallet().oppositeColor" }, classAttribute: "m-text-output-host" }, usesInheritance: true, ngImport: i0, template: `
8032
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: TextOutputComponent, isStandalone: true, selector: "m-text-output", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, fontWeight: { classPropertyName: "fontWeight", publicName: "fontWeight", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, noTranslate: { classPropertyName: "noTranslate", publicName: "noTranslate", isSignal: true, isRequired: false, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { config: "configChange", clicked: "clicked" }, host: { listeners: { "click": "onClick()", "keydown.enter": "onClick()" }, properties: { "class.is-design-mode": "isDesignMode", "class.align-left": "resolvedAlign() === \"left\"", "class.align-right": "resolvedAlign() === \"right\"", "class.align-center": "resolvedAlign() === \"center\"", "class.variant-lead": "resolvedVariant() === \"lead\"", "class.variant-big": "resolvedVariant() === \"big\"", "class.variant-bold": "resolvedVariant() === \"bold\"", "class.variant-footer": "resolvedVariant() === \"footer\"", "class.variant-footnote": "resolvedVariant() === \"footnote\"", "class.variant-link": "resolvedVariant() === \"link\"", "class.variant-link-small": "resolvedVariant() === \"link-small\"", "class.weight-light": "resolvedFontWeight() === \"light\"", "class.weight-normal": "resolvedFontWeight() === \"normal\"", "class.weight-medium": "resolvedFontWeight() === \"medium\"", "class.weight-semibold": "resolvedFontWeight() === \"semibold\"", "class.weight-bold": "resolvedFontWeight() === \"bold\"", "class.has-color": "!!(color() ?? config()?.color)", "attr.role": "isLink() ? \"link\" : null", "attr.tabindex": "isLink() ? 0 : null", "style.--m-text-output-color": "resolvedColorPallet().color", "style.--m-text-output-color-contrast": "resolvedColorPallet().contrastColor", "style.--m-text-output-color-opposite": "resolvedColorPallet().oppositeColor" }, classAttribute: "m-text-output-host" }, usesInheritance: true, ngImport: i0, template: `
8033
8033
  <div
8034
8034
  class="m-text-output"
8035
8035
  [style.color]="resolvedColorPallet().color"
8036
8036
  [innerHTML]="html()"
8037
8037
  ></div>
8038
- `, isInline: true, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host(.is-design-mode){display:block;min-width:1em;min-height:1em}:host(.align-left) .m-text-output{text-align:left}:host(.align-center) .m-text-output{text-align:center}:host(.align-right) .m-text-output{text-align:right}:host{font-size:inherit}:host(.variant-lead){display:block;font-size:1.15em;font-weight:300}:host(.variant-lead) .m-text-output{line-height:1.6}:host(.variant-big){display:block;font-size:1.5em;font-weight:600}:host(.variant-big) .m-text-output{line-height:1.25}:host(.variant-bold){display:block;font-weight:700}:host(.variant-footer){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-footer) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-footer){font-size:calc(var(--m-text-output-body-font-size, 1em) * .75);display:block;margin-top:.25rem}m-flex.align-items-center.direction-row>:host(.variant-footer),m-flex.align-items-center.direction-row-reverse>:host(.variant-footer){margin-top:0}:host(.variant-footnote){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-footnote) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-footnote){font-size:calc(var(--m-text-output-body-font-size, 1em) * .6);display:block;margin-top:.25rem}:host(.variant-link){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-link) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-link){text-decoration:none;cursor:pointer;transition:color .2s ease-in-out,text-decoration .2s ease-in-out;outline:none}:host(.variant-link):focus{outline:2px solid var(--m-focus);outline-offset:2px}:host(.variant-link){display:inline;border-radius:.25rem}:host(.variant-link) .m-text-output{display:inline;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:max(1px,.06em);text-underline-offset:.18em;transition:text-decoration-color .15s ease-in-out,text-decoration-thickness .15s ease-in-out}:host(.variant-link) .m-text-output:hover{text-decoration-color:currentColor;text-decoration-thickness:max(2px,.1em)}:host(.variant-link) .m-text-output>p{display:inline;margin:0}:host(.variant-link-small){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-link-small) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-link-small){text-decoration:none;cursor:pointer;transition:color .2s ease-in-out,text-decoration .2s ease-in-out;outline:none}:host(.variant-link-small):focus{outline:2px solid var(--m-focus);outline-offset:2px}:host(.variant-link-small){display:inline;border-radius:.25rem}:host(.variant-link-small) .m-text-output{display:inline;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:max(1px,.06em);text-underline-offset:.18em;transition:text-decoration-color .15s ease-in-out,text-decoration-thickness .15s ease-in-out}:host(.variant-link-small) .m-text-output:hover{text-decoration-color:currentColor;text-decoration-thickness:max(2px,.1em)}:host(.variant-link-small) .m-text-output>p{display:inline;margin:0}:host(.weight-light){font-weight:300}:host(.weight-normal){font-weight:400}:host(.weight-medium){font-weight:500}:host(.weight-semibold){font-weight:600}:host(.weight-bold){font-weight:700}.m-text-output{color:var(--m-text-output-color, var(--m-text));font-size:inherit;line-height:1.5}.m-text-output>:first-child{margin-top:0}.m-text-output>:last-child{margin-bottom:0}.m-text-output p,.m-text-output ul,.m-text-output blockquote,.m-text-output h1,.m-text-output h2,.m-text-output h3,.m-text-output h4,.m-text-output h5,.m-text-output h6{margin:0 0 1rem}.m-text-output ul{padding-left:1.5rem;list-style-type:disc;list-style-position:outside}.m-text-output li{margin-bottom:.25rem}.m-text-output li:last-child{margin-bottom:0}.m-text-output a{color:var(--m-text-output-link-color, var(--m-mm));text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:max(1px,.06em);text-underline-offset:.18em;transition:text-decoration-color .15s ease-in-out,text-decoration-thickness .15s ease-in-out}.m-text-output a:hover{text-decoration-color:currentColor;text-decoration-thickness:max(2px,.1em)}.m-text-output blockquote{padding-left:1rem;border-left:1px solid var(--m-border);color:var(--m-text-output-color, var(--m-text-secondary))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8038
+ `, isInline: true, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host(.is-design-mode){display:block;min-width:1em;min-height:1em}:host(.align-left) .m-text-output{text-align:left}:host(.align-center) .m-text-output{text-align:center}:host(.align-right) .m-text-output{text-align:right}:host{font-size:inherit}:host(.variant-lead){display:block;font-size:1.15em;font-weight:300}:host(.variant-lead) .m-text-output{line-height:1.6}:host(.variant-big){display:block;font-size:1.5em;font-weight:600}:host(.variant-big) .m-text-output{line-height:1.25}:host(.variant-bold){display:block;font-weight:700}:host(.variant-footer){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-footer) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-footer){font-size:calc(var(--m-text-output-body-font-size, 1em) * .75);display:block;margin-top:.25rem}m-flex.align-items-center.direction-row>:host(.variant-footer),m-flex.align-items-center.direction-row-reverse>:host(.variant-footer){margin-top:0}:host(.variant-footnote){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-footnote) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-footnote){font-size:calc(var(--m-text-output-body-font-size, 1em) * .6);display:block;margin-top:.25rem}:host(.variant-link){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-link) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-link){text-decoration:none;cursor:pointer;transition:color .2s ease-in-out,text-decoration .2s ease-in-out;outline:none}:host(.variant-link):focus{outline:2px solid var(--m-focus);outline-offset:2px}:host(.variant-link){display:inline;border-radius:.25rem}:host(.variant-link) .m-text-output{display:inline;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:max(1px,.06em);text-underline-offset:.18em;transition:text-decoration-color .15s ease-in-out,text-decoration-thickness .15s ease-in-out}:host(.variant-link) .m-text-output:hover{text-decoration-color:currentColor;text-decoration-thickness:max(2px,.1em)}:host(.variant-link) .m-text-output>p{display:inline;margin:0}:host(.variant-link-small){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-link-small) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-link-small){text-decoration:none;cursor:pointer;transition:color .2s ease-in-out,text-decoration .2s ease-in-out;outline:none}:host(.variant-link-small):focus{outline:2px solid var(--m-focus);outline-offset:2px}:host(.variant-link-small){display:inline;border-radius:.25rem}:host(.variant-link-small) .m-text-output{display:inline;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:max(1px,.06em);text-underline-offset:.18em;transition:text-decoration-color .15s ease-in-out,text-decoration-thickness .15s ease-in-out}:host(.variant-link-small) .m-text-output:hover{text-decoration-color:currentColor;text-decoration-thickness:max(2px,.1em)}:host(.variant-link-small) .m-text-output>p{display:inline;margin:0}:host(.weight-light){font-weight:300}:host(.weight-normal){font-weight:400}:host(.weight-medium){font-weight:500}:host(.weight-semibold){font-weight:600}:host(.weight-bold){font-weight:700}:host(.has-color) .m-text-output{-webkit-text-fill-color:currentColor}.m-text-output{color:var(--m-text-output-color, var(--m-text));font-size:inherit;line-height:1.5}.m-text-output>:first-child{margin-top:0}.m-text-output>:last-child{margin-bottom:0}.m-text-output p,.m-text-output ul,.m-text-output blockquote,.m-text-output h1,.m-text-output h2,.m-text-output h3,.m-text-output h4,.m-text-output h5,.m-text-output h6{margin:0 0 1rem}.m-text-output ul{padding-left:1.5rem;list-style-type:disc;list-style-position:outside}.m-text-output li{margin-bottom:.25rem}.m-text-output li:last-child{margin-bottom:0}.m-text-output a{color:var(--m-text-output-link-color, var(--m-mm));text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:max(1px,.06em);text-underline-offset:.18em;transition:text-decoration-color .15s ease-in-out,text-decoration-thickness .15s ease-in-out}.m-text-output a:hover{text-decoration-color:currentColor;text-decoration-thickness:max(2px,.1em)}.m-text-output blockquote{padding-left:1rem;border-left:1px solid var(--m-border);color:var(--m-text-output-color, var(--m-text-secondary))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8039
8039
  }
8040
8040
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TextOutputComponent, decorators: [{
8041
8041
  type: Component,
@@ -8063,6 +8063,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
8063
8063
  '[class.weight-medium]': 'resolvedFontWeight() === "medium"',
8064
8064
  '[class.weight-semibold]': 'resolvedFontWeight() === "semibold"',
8065
8065
  '[class.weight-bold]': 'resolvedFontWeight() === "bold"',
8066
+ '[class.has-color]': '!!(color() ?? config()?.color)',
8066
8067
  // Only a link is reachable and announced as one. Every other variant is a
8067
8068
  // size, and a focus stop on plain text is a tab stop that does nothing.
8068
8069
  '[attr.role]': 'isLink() ? "link" : null',
@@ -8072,7 +8073,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
8072
8073
  '[style.--m-text-output-color]': 'resolvedColorPallet().color',
8073
8074
  '[style.--m-text-output-color-contrast]': 'resolvedColorPallet().contrastColor',
8074
8075
  '[style.--m-text-output-color-opposite]': 'resolvedColorPallet().oppositeColor',
8075
- }, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host(.is-design-mode){display:block;min-width:1em;min-height:1em}:host(.align-left) .m-text-output{text-align:left}:host(.align-center) .m-text-output{text-align:center}:host(.align-right) .m-text-output{text-align:right}:host{font-size:inherit}:host(.variant-lead){display:block;font-size:1.15em;font-weight:300}:host(.variant-lead) .m-text-output{line-height:1.6}:host(.variant-big){display:block;font-size:1.5em;font-weight:600}:host(.variant-big) .m-text-output{line-height:1.25}:host(.variant-bold){display:block;font-weight:700}:host(.variant-footer){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-footer) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-footer){font-size:calc(var(--m-text-output-body-font-size, 1em) * .75);display:block;margin-top:.25rem}m-flex.align-items-center.direction-row>:host(.variant-footer),m-flex.align-items-center.direction-row-reverse>:host(.variant-footer){margin-top:0}:host(.variant-footnote){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-footnote) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-footnote){font-size:calc(var(--m-text-output-body-font-size, 1em) * .6);display:block;margin-top:.25rem}:host(.variant-link){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-link) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-link){text-decoration:none;cursor:pointer;transition:color .2s ease-in-out,text-decoration .2s ease-in-out;outline:none}:host(.variant-link):focus{outline:2px solid var(--m-focus);outline-offset:2px}:host(.variant-link){display:inline;border-radius:.25rem}:host(.variant-link) .m-text-output{display:inline;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:max(1px,.06em);text-underline-offset:.18em;transition:text-decoration-color .15s ease-in-out,text-decoration-thickness .15s ease-in-out}:host(.variant-link) .m-text-output:hover{text-decoration-color:currentColor;text-decoration-thickness:max(2px,.1em)}:host(.variant-link) .m-text-output>p{display:inline;margin:0}:host(.variant-link-small){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-link-small) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-link-small){text-decoration:none;cursor:pointer;transition:color .2s ease-in-out,text-decoration .2s ease-in-out;outline:none}:host(.variant-link-small):focus{outline:2px solid var(--m-focus);outline-offset:2px}:host(.variant-link-small){display:inline;border-radius:.25rem}:host(.variant-link-small) .m-text-output{display:inline;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:max(1px,.06em);text-underline-offset:.18em;transition:text-decoration-color .15s ease-in-out,text-decoration-thickness .15s ease-in-out}:host(.variant-link-small) .m-text-output:hover{text-decoration-color:currentColor;text-decoration-thickness:max(2px,.1em)}:host(.variant-link-small) .m-text-output>p{display:inline;margin:0}:host(.weight-light){font-weight:300}:host(.weight-normal){font-weight:400}:host(.weight-medium){font-weight:500}:host(.weight-semibold){font-weight:600}:host(.weight-bold){font-weight:700}.m-text-output{color:var(--m-text-output-color, var(--m-text));font-size:inherit;line-height:1.5}.m-text-output>:first-child{margin-top:0}.m-text-output>:last-child{margin-bottom:0}.m-text-output p,.m-text-output ul,.m-text-output blockquote,.m-text-output h1,.m-text-output h2,.m-text-output h3,.m-text-output h4,.m-text-output h5,.m-text-output h6{margin:0 0 1rem}.m-text-output ul{padding-left:1.5rem;list-style-type:disc;list-style-position:outside}.m-text-output li{margin-bottom:.25rem}.m-text-output li:last-child{margin-bottom:0}.m-text-output a{color:var(--m-text-output-link-color, var(--m-mm));text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:max(1px,.06em);text-underline-offset:.18em;transition:text-decoration-color .15s ease-in-out,text-decoration-thickness .15s ease-in-out}.m-text-output a:hover{text-decoration-color:currentColor;text-decoration-thickness:max(2px,.1em)}.m-text-output blockquote{padding-left:1rem;border-left:1px solid var(--m-border);color:var(--m-text-output-color, var(--m-text-secondary))}\n"] }]
8076
+ }, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host(.is-design-mode){display:block;min-width:1em;min-height:1em}:host(.align-left) .m-text-output{text-align:left}:host(.align-center) .m-text-output{text-align:center}:host(.align-right) .m-text-output{text-align:right}:host{font-size:inherit}:host(.variant-lead){display:block;font-size:1.15em;font-weight:300}:host(.variant-lead) .m-text-output{line-height:1.6}:host(.variant-big){display:block;font-size:1.5em;font-weight:600}:host(.variant-big) .m-text-output{line-height:1.25}:host(.variant-bold){display:block;font-weight:700}:host(.variant-footer){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-footer) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-footer){font-size:calc(var(--m-text-output-body-font-size, 1em) * .75);display:block;margin-top:.25rem}m-flex.align-items-center.direction-row>:host(.variant-footer),m-flex.align-items-center.direction-row-reverse>:host(.variant-footer){margin-top:0}:host(.variant-footnote){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-footnote) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-footnote){font-size:calc(var(--m-text-output-body-font-size, 1em) * .6);display:block;margin-top:.25rem}:host(.variant-link){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-link) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-link){text-decoration:none;cursor:pointer;transition:color .2s ease-in-out,text-decoration .2s ease-in-out;outline:none}:host(.variant-link):focus{outline:2px solid var(--m-focus);outline-offset:2px}:host(.variant-link){display:inline;border-radius:.25rem}:host(.variant-link) .m-text-output{display:inline;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:max(1px,.06em);text-underline-offset:.18em;transition:text-decoration-color .15s ease-in-out,text-decoration-thickness .15s ease-in-out}:host(.variant-link) .m-text-output:hover{text-decoration-color:currentColor;text-decoration-thickness:max(2px,.1em)}:host(.variant-link) .m-text-output>p{display:inline;margin:0}:host(.variant-link-small){font-size:var(--m-text-output-body-font-size, inherit);font-weight:400;letter-spacing:normal}:host(.variant-link-small) .m-text-output{-webkit-text-fill-color:currentColor}:host(.variant-link-small){text-decoration:none;cursor:pointer;transition:color .2s ease-in-out,text-decoration .2s ease-in-out;outline:none}:host(.variant-link-small):focus{outline:2px solid var(--m-focus);outline-offset:2px}:host(.variant-link-small){display:inline;border-radius:.25rem}:host(.variant-link-small) .m-text-output{display:inline;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:max(1px,.06em);text-underline-offset:.18em;transition:text-decoration-color .15s ease-in-out,text-decoration-thickness .15s ease-in-out}:host(.variant-link-small) .m-text-output:hover{text-decoration-color:currentColor;text-decoration-thickness:max(2px,.1em)}:host(.variant-link-small) .m-text-output>p{display:inline;margin:0}:host(.weight-light){font-weight:300}:host(.weight-normal){font-weight:400}:host(.weight-medium){font-weight:500}:host(.weight-semibold){font-weight:600}:host(.weight-bold){font-weight:700}:host(.has-color) .m-text-output{-webkit-text-fill-color:currentColor}.m-text-output{color:var(--m-text-output-color, var(--m-text));font-size:inherit;line-height:1.5}.m-text-output>:first-child{margin-top:0}.m-text-output>:last-child{margin-bottom:0}.m-text-output p,.m-text-output ul,.m-text-output blockquote,.m-text-output h1,.m-text-output h2,.m-text-output h3,.m-text-output h4,.m-text-output h5,.m-text-output h6{margin:0 0 1rem}.m-text-output ul{padding-left:1.5rem;list-style-type:disc;list-style-position:outside}.m-text-output li{margin-bottom:.25rem}.m-text-output li:last-child{margin-bottom:0}.m-text-output a{color:var(--m-text-output-link-color, var(--m-mm));text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:max(1px,.06em);text-underline-offset:.18em;transition:text-decoration-color .15s ease-in-out,text-decoration-thickness .15s ease-in-out}.m-text-output a:hover{text-decoration-color:currentColor;text-decoration-thickness:max(2px,.1em)}.m-text-output blockquote{padding-left:1rem;border-left:1px solid var(--m-border);color:var(--m-text-output-color, var(--m-text-secondary))}\n"] }]
8076
8077
  }], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }, { type: i0.Output, args: ["configChange"] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], fontWeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "fontWeight", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], noTranslate: [{ type: i0.Input, args: [{ isSignal: true, alias: "noTranslate", required: false }] }], params: [{ type: i0.Input, args: [{ isSignal: true, alias: "params", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
8077
8078
 
8078
8079
  class BaseInputComponent {
@@ -11369,7 +11370,7 @@ class SectionFormItemComponent extends ConfigComponent {
11369
11370
  break;
11370
11371
  }
11371
11372
  case InputType.TOGGLE: {
11372
- const { ToggleInputComponent } = await import('./magmonium-one-toggle-BD2dKXSi.mjs');
11373
+ const { ToggleInputComponent } = await import('./magmonium-one-toggle-BcNgKeU8.mjs');
11373
11374
  this.createDynamicComponent(seq, ToggleInputComponent, [], true);
11374
11375
  break;
11375
11376
  }
@@ -11381,12 +11382,12 @@ class SectionFormItemComponent extends ConfigComponent {
11381
11382
  break;
11382
11383
  }
11383
11384
  case InputType.PASSWORD: {
11384
- const { PasswordInputComponent } = await import('./magmonium-one-password-7PE_7BpB.mjs');
11385
+ const { PasswordInputComponent } = await import('./magmonium-one-password-C-4aA16X.mjs');
11385
11386
  this.createDynamicComponent(seq, PasswordInputComponent);
11386
11387
  break;
11387
11388
  }
11388
11389
  case InputType.OTP: {
11389
- const { OtpInputComponent } = await import('./magmonium-one-otp-DfznSzqp.mjs');
11390
+ const { OtpInputComponent } = await import('./magmonium-one-otp-BDzRVFz5.mjs');
11390
11391
  this.createDynamicComponent(seq, OtpInputComponent);
11391
11392
  break;
11392
11393
  }
@@ -23638,7 +23639,7 @@ class WrapperInputComponent extends ConfigComponent {
23638
23639
  break;
23639
23640
  }
23640
23641
  case InputType.TOGGLE: {
23641
- const { ToggleInputComponent } = await import('./magmonium-one-toggle-BD2dKXSi.mjs');
23642
+ const { ToggleInputComponent } = await import('./magmonium-one-toggle-BcNgKeU8.mjs');
23642
23643
  this.createDynamicComponent(seq, ToggleInputComponent, [], true);
23643
23644
  break;
23644
23645
  }
@@ -23650,12 +23651,12 @@ class WrapperInputComponent extends ConfigComponent {
23650
23651
  break;
23651
23652
  }
23652
23653
  case InputType.PASSWORD: {
23653
- const { PasswordInputComponent } = await import('./magmonium-one-password-7PE_7BpB.mjs');
23654
+ const { PasswordInputComponent } = await import('./magmonium-one-password-C-4aA16X.mjs');
23654
23655
  this.createDynamicComponent(seq, PasswordInputComponent);
23655
23656
  break;
23656
23657
  }
23657
23658
  case InputType.OTP: {
23658
- const { OtpInputComponent } = await import('./magmonium-one-otp-DfznSzqp.mjs');
23659
+ const { OtpInputComponent } = await import('./magmonium-one-otp-BDzRVFz5.mjs');
23659
23660
  this.createDynamicComponent(seq, OtpInputComponent);
23660
23661
  break;
23661
23662
  }
@@ -25384,7 +25385,7 @@ class FileUploadInputComponent extends BaseInputComponent {
25384
25385
  const modalStore = this.modalStore;
25385
25386
  if (!modalStore)
25386
25387
  return undefined;
25387
- const { ImageEditorComponent } = await import('./magmonium-one-image-editor-Ji-EUYE2.mjs');
25388
+ const { ImageEditorComponent } = await import('./magmonium-one-image-editor-BbFlj-1H.mjs');
25388
25389
  const ratio = String(this.config()?.ratio ?? '');
25389
25390
  return new Promise((resolve) => {
25390
25391
  const modalRef = new ModalRef();
@@ -25755,6 +25756,9 @@ class ListComponent extends ConfigComponent {
25755
25756
  // what is true — this List has not been filled in yet.
25756
25757
  return this.isDesignMode && this.hasRowBody() ? [DESIGN_STUB] : [];
25757
25758
  }, ...(ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []));
25759
+ // How many digits the widest counter has. Every counter is boxed to that
25760
+ // width, so row 1's text starts where row 10's does.
25761
+ counterDigits = computed(() => String(Math.max(this.rows().length, 1)).length, ...(ngDevMode ? [{ debugName: "counterDigits" }] : /* istanbul ignore next */ []));
25758
25762
  /** Whether a row has anything to render beyond its own `label`. */
25759
25763
  hasRowBody = computed(() => !!this.element() || !!this.rowTemplate(), ...(ngDevMode ? [{ debugName: "hasRowBody" }] : /* istanbul ignore next */ []));
25760
25764
  classNames = computed(() => getClassList$2(this.resolvedVariant(), this.resolvedOrientation(), this.config()), ...(ngDevMode ? [{ debugName: "classNames" }] : /* istanbul ignore next */ []));
@@ -25779,12 +25783,17 @@ class ListComponent extends ConfigComponent {
25779
25783
  last,
25780
25784
  });
25781
25785
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
25782
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ListComponent, isStandalone: true, selector: "m-list, m-one-list", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, startIcon: { classPropertyName: "startIcon", publicName: "startIcon", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, noTranslate: { classPropertyName: "noTranslate", publicName: "noTranslate", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-design-mode": "isDesignMode", "style.--m-list-gap": "resolvedGap()" }, classAttribute: "m-list" }, queries: [{ propertyName: "projectedTemplate", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
25786
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ListComponent, isStandalone: true, selector: "m-list, m-one-list", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, startIcon: { classPropertyName: "startIcon", publicName: "startIcon", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, noTranslate: { classPropertyName: "noTranslate", publicName: "noTranslate", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-design-mode": "isDesignMode", "style.--m-list-gap": "resolvedGap()", "style.--m-list-counter-digits": "counterDigits()" }, classAttribute: "m-list" }, queries: [{ propertyName: "projectedTemplate", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
25783
25787
  <ng-template #rowList>
25784
25788
  @for (item of rows(); track item.id; let i = $index) {
25785
25789
  <li class="m-list__item">
25786
25790
  @if (marker(); as kind) {
25787
- <span class="m-list__marker" aria-hidden="true">
25791
+ <span
25792
+ class="m-list__marker"
25793
+ [class.m-list__marker--icon]="kind === 'icon'"
25794
+ [class.m-list__marker--counter]="kind === 'counter'"
25795
+ aria-hidden="true"
25796
+ >
25788
25797
  @if (kind === 'icon') {
25789
25798
  <m-icon [name]="resolvedStartIcon()!" [baseUrl]="baseUrl()" />
25790
25799
  } @else if (kind === 'counter') {
@@ -25823,7 +25832,7 @@ class ListComponent extends ConfigComponent {
25823
25832
  <ng-container *ngTemplateOutlet="rowList" />
25824
25833
  </ul>
25825
25834
  }
25826
- `, isInline: true, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;width:100%}:host(.is-design-mode){min-height:4em}.m-list__list{display:flex;gap:var(--m-list-gap, 0);margin:0;padding:0;list-style:none}.m-list__list--vertical{flex-direction:column}.m-list__list--horizontal{flex-direction:row;flex-wrap:wrap}.m-list__list.align-center{align-items:center}.m-list__list.align-right{align-items:flex-end}.m-list__item{display:flex;align-items:flex-start;gap:.5em;min-width:0}.m-list__marker{flex:0 0 auto;display:flex;align-items:center;color:var(--m-text-tertiary);line-height:inherit}.m-list__body{flex:1 1 auto;min-width:0}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25835
+ `, isInline: true, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;width:100%}:host(.is-design-mode){min-height:4em}.m-list__list{display:flex;gap:var(--m-list-gap, 0);margin:0;padding:0;list-style:none}.m-list__list--vertical{flex-direction:column}.m-list__list--horizontal{flex-direction:row;flex-wrap:wrap}.m-list__list.align-center{align-items:center}.m-list__list.align-right{align-items:flex-end}.m-list__item{display:flex;align-items:baseline;gap:.5em;min-width:0}.m-list__item:has(>.m-list__marker--icon){align-items:flex-start}.m-list__marker{flex:0 0 auto;display:flex;align-items:center;color:var(--m-text-tertiary);line-height:inherit}.m-list__marker--counter{justify-content:flex-end;min-width:calc(var(--m-list-counter-digits, 1) * 1ch + .5ch);font-variant-numeric:tabular-nums}.m-list__body{flex:1 1 auto;min-width:0}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25827
25836
  }
25828
25837
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ListComponent, decorators: [{
25829
25838
  type: Component,
@@ -25832,7 +25841,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
25832
25841
  @for (item of rows(); track item.id; let i = $index) {
25833
25842
  <li class="m-list__item">
25834
25843
  @if (marker(); as kind) {
25835
- <span class="m-list__marker" aria-hidden="true">
25844
+ <span
25845
+ class="m-list__marker"
25846
+ [class.m-list__marker--icon]="kind === 'icon'"
25847
+ [class.m-list__marker--counter]="kind === 'counter'"
25848
+ aria-hidden="true"
25849
+ >
25836
25850
  @if (kind === 'icon') {
25837
25851
  <m-icon [name]="resolvedStartIcon()!" [baseUrl]="baseUrl()" />
25838
25852
  } @else if (kind === 'counter') {
@@ -25875,7 +25889,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
25875
25889
  class: 'm-list',
25876
25890
  '[class.is-design-mode]': 'isDesignMode',
25877
25891
  '[style.--m-list-gap]': 'resolvedGap()',
25878
- }, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;width:100%}:host(.is-design-mode){min-height:4em}.m-list__list{display:flex;gap:var(--m-list-gap, 0);margin:0;padding:0;list-style:none}.m-list__list--vertical{flex-direction:column}.m-list__list--horizontal{flex-direction:row;flex-wrap:wrap}.m-list__list.align-center{align-items:center}.m-list__list.align-right{align-items:flex-end}.m-list__item{display:flex;align-items:flex-start;gap:.5em;min-width:0}.m-list__marker{flex:0 0 auto;display:flex;align-items:center;color:var(--m-text-tertiary);line-height:inherit}.m-list__body{flex:1 1 auto;min-width:0}\n"] }]
25892
+ '[style.--m-list-counter-digits]': 'counterDigits()',
25893
+ }, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;width:100%}:host(.is-design-mode){min-height:4em}.m-list__list{display:flex;gap:var(--m-list-gap, 0);margin:0;padding:0;list-style:none}.m-list__list--vertical{flex-direction:column}.m-list__list--horizontal{flex-direction:row;flex-wrap:wrap}.m-list__list.align-center{align-items:center}.m-list__list.align-right{align-items:flex-end}.m-list__item{display:flex;align-items:baseline;gap:.5em;min-width:0}.m-list__item:has(>.m-list__marker--icon){align-items:flex-start}.m-list__marker{flex:0 0 auto;display:flex;align-items:center;color:var(--m-text-tertiary);line-height:inherit}.m-list__marker--counter{justify-content:flex-end;min-width:calc(var(--m-list-counter-digits, 1) * 1ch + .5ch);font-variant-numeric:tabular-nums}.m-list__body{flex:1 1 auto;min-width:0}\n"] }]
25879
25894
  }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: false }] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], startIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "startIcon", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], noTranslate: [{ type: i0.Input, args: [{ isSignal: true, alias: "noTranslate", required: false }] }], projectedTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
25880
25895
 
25881
25896
  const TOTAL_COLUMNS = 12;
@@ -33782,7 +33797,7 @@ class StatComponent {
33782
33797
  return resolvePallet(color, this.themeStore.color()).color;
33783
33798
  }
33784
33799
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33785
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: StatComponent, isStandalone: true, selector: "m-stat", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, noTranslate: { classPropertyName: "noTranslate", publicName: "noTranslate", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, cornerPosition: { classPropertyName: "cornerPosition", publicName: "cornerPosition", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, surface: { classPropertyName: "surface", publicName: "surface", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, cornerColor: { classPropertyName: "cornerColor", publicName: "cornerColor", isSignal: true, isRequired: false, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-design-mode": "isDesignMode", "class.corner-left": "side() === \"left\"", "class.corner-bottom": "edge() === \"bottom\"", "class.align-left": "align() === \"left\"", "class.align-center": "align() === \"center\"", "class.align-right": "align() === \"right\"", "class.has-color": "!!resolvedColor()", "class.has-corner-color": "!!resolvedCornerColor()", "attr.data-variant": "variant()", "attr.data-surface": "surface()", "style.--m-stat-color": "resolvedColor()", "style.--m-stat-corner-color": "resolvedCornerColor()" }, classAttribute: "m-stat-host" }, ngImport: i0, template: "<div class=\"m-stat\">\n <m-key-value variant=\"bento\">\n <span key class=\"m-stat__label\" [class.m-stat__ghost]=\"labelGhost()\">{{\n labelDisplay()\n }}</span>\n <span value class=\"m-stat__value\">\n <!-- Both slots are wrappers this component owns rather than bare\n `ng-content`: what a caller projects carries the *caller's*\n encapsulation attribute, so `.m-stat__figure` and `.m-stat__corner`\n could not be put on it from here. The wrappers hold the ordering,\n the tone colour and the corner's superscript size; whatever lands\n inside them is the caller's own markup (ADR 0021). -->\n <span class=\"m-stat__figure\"><ng-content select=\"[value]\" /></span>\n <!-- One corner, ordered and aligned by CSS rather than written twice:\n `cornerPosition` is four values and the slot is one node. -->\n <span class=\"m-stat__corner\"><ng-content select=\"[corner]\" /></span>\n </span>\n </m-key-value>\n</div>\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;width:100%;line-height:1.4;--_tone: var(--m-mm);--_pad-y: .85em;--_pad-x: 1em;--_kv-pad: 0}:host(.is-design-mode){min-width:8em;min-height:4em}.m-stat{display:flex;flex-direction:column;min-width:0;padding:var(--_pad-y) var(--_pad-x);border-radius:.75em}.m-stat__value{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.35em;min-width:0}.m-stat__figure{order:0;min-width:0;display:inline-flex;align-items:center;gap:.35em;font-size:.6060606061em}.m-stat__corner{order:1;align-self:flex-start;display:inline-flex;align-items:center;gap:.25em}.m-stat__corner:empty{display:none}.m-stat__corner{font-size:.5em;font-weight:300;white-space:nowrap;letter-spacing:.01em;color:var(--m-text-tertiary);background:none;-webkit-text-fill-color:currentColor}.m-stat__ghost{color:var(--m-text-tertiary);opacity:.6;-webkit-text-fill-color:currentColor}:host(.corner-left) .m-stat__corner{order:-1}:host(.corner-bottom) .m-stat__corner{align-self:flex-end}:host(.is-design-mode) .m-stat__value{flex-direction:column;align-items:flex-start}:host(.is-design-mode) .m-stat__corner{align-self:flex-start}:host(.align-left) .m-stat{text-align:left;--_kv-align: flex-start}:host(.align-center) .m-stat{text-align:center;--_kv-align: center}:host(.align-right) .m-stat{text-align:right;--_kv-align: flex-end}:host(.m-stat-host) .m-stat:has(m-section,m-section-form){--_kv-align: stretch}:host(.m-stat-host) .m-stat:has(m-section,m-section-form) .m-stat__value{display:flex}:host(.m-stat-host) .m-stat:has(m-section,m-section-form) .m-stat__figure{flex:1 1 auto;align-self:stretch;display:grid;-webkit-text-fill-color:currentColor}:host([data-variant=compact]){--_pad-y: .45em;--_pad-x: .6em}:host([data-variant=no-padding]){--_pad-y: 0;--_pad-x: 0}:host([data-variant=no-x-padding]){--_pad-x: 0}:host(.has-color) .m-stat__figure{color:var(--m-stat-color);-webkit-text-fill-color:var(--m-stat-color)}:host(.has-corner-color) .m-stat__corner{color:var(--m-stat-corner-color)}:host([data-surface=card]) .m-stat{background:color-mix(in srgb,var(--m-background-lite) 70%,transparent);border:1px solid color-mix(in srgb,var(--m-border) 70%,transparent)}:host([data-surface=shadow]) .m-stat{background:var(--m-background-lite);border:1px solid color-mix(in srgb,var(--m-border) 45%,transparent);box-shadow:0 10px 30px #0000000f;transition:box-shadow .2s ease,transform .2s ease}:host([data-surface=shadow]) .m-stat:hover{box-shadow:0 18px 44px #0000001a;transform:translateY(-2px)}:host([data-surface=glow]) .m-stat{background:color-mix(in srgb,var(--_tone) 10%,transparent);border:1px solid color-mix(in srgb,var(--_tone) 28%,transparent);box-shadow:0 12px 34px color-mix(in srgb,var(--_tone) 18%,transparent)}:host([data-surface=glow]) .m-stat__figure{text-shadow:0 2px 14px color-mix(in srgb,var(--_tone) 40%,transparent)}:host([data-surface=gradient]) .m-stat{background:linear-gradient(135deg,color-mix(in srgb,var(--_tone) 18%,transparent),color-mix(in srgb,var(--m-background-lite) 85%,transparent));border:1px solid color-mix(in srgb,var(--_tone) 20%,transparent);box-shadow:0 8px 24px #0000000d}:host([data-surface=gradient]) .m-stat__figure{text-shadow:0 1px 0 color-mix(in srgb,var(--m-background) 70%,transparent)}\n"], dependencies: [{ kind: "component", type: KeyValueComponent, selector: "m-key-value", inputs: ["variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33800
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: StatComponent, isStandalone: true, selector: "m-stat", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, noTranslate: { classPropertyName: "noTranslate", publicName: "noTranslate", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, cornerPosition: { classPropertyName: "cornerPosition", publicName: "cornerPosition", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, surface: { classPropertyName: "surface", publicName: "surface", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, cornerColor: { classPropertyName: "cornerColor", publicName: "cornerColor", isSignal: true, isRequired: false, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-design-mode": "isDesignMode", "class.corner-left": "side() === \"left\"", "class.corner-bottom": "edge() === \"bottom\"", "class.align-left": "align() === \"left\"", "class.align-center": "align() === \"center\"", "class.align-right": "align() === \"right\"", "class.has-color": "!!resolvedColor()", "class.has-corner-color": "!!resolvedCornerColor()", "attr.data-variant": "variant()", "attr.data-surface": "surface()", "style.--m-stat-color": "resolvedColor()", "style.--m-stat-corner-color": "resolvedCornerColor()" }, classAttribute: "m-stat-host" }, ngImport: i0, template: "<div class=\"m-stat\">\n <m-key-value variant=\"bento\">\n <span key class=\"m-stat__label\" [class.m-stat__ghost]=\"labelGhost()\">{{\n labelDisplay()\n }}</span>\n <span value class=\"m-stat__value\">\n <!-- Both slots are wrappers this component owns rather than bare\n `ng-content`: what a caller projects carries the *caller's*\n encapsulation attribute, so `.m-stat__figure` and `.m-stat__corner`\n could not be put on it from here. The wrappers hold the ordering,\n the tone colour and the corner's superscript size; whatever lands\n inside them is the caller's own markup (ADR 0021). -->\n <span class=\"m-stat__figure\"><ng-content select=\"[value]\" /></span>\n <!-- One corner, ordered and aligned by CSS rather than written twice:\n `cornerPosition` is four values and the slot is one node. -->\n <span class=\"m-stat__corner\"><ng-content select=\"[corner]\" /></span>\n </span>\n </m-key-value>\n</div>\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;width:100%;line-height:1.4;--_tone: var(--m-mm);--_pad-y: .85em;--_pad-x: 1em;--_kv-pad: 0}:host(.is-design-mode){min-width:8em;min-height:4em}.m-stat{display:flex;flex-direction:column;min-width:0;padding:var(--_pad-y) var(--_pad-x);border-radius:.75em}.m-stat__value{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.35em;min-width:0}.m-stat__figure{order:0;min-width:0;display:inline-flex;align-items:center;gap:.35em;font-size:.6060606061em}.m-stat__corner{order:1;align-self:flex-start;display:inline-flex;align-items:center;gap:.25em}.m-stat__corner:empty{display:none}.m-stat__corner{font-size:.5em;font-weight:300;white-space:nowrap;letter-spacing:.01em;color:var(--m-text-tertiary);background:none;-webkit-text-fill-color:currentColor}.m-stat__ghost{color:var(--m-text-tertiary);opacity:.6;-webkit-text-fill-color:currentColor}:host(.corner-left) .m-stat__corner{order:-1}:host(.corner-bottom) .m-stat__corner{align-self:flex-end}:host(.is-design-mode) .m-stat__value{flex-direction:column;align-items:flex-start}:host(.is-design-mode) .m-stat__corner{align-self:flex-start}:host(.align-left) .m-stat{text-align:left;--_kv-align: flex-start}:host(.align-center) .m-stat{text-align:center;--_kv-align: center}:host(.align-right) .m-stat{text-align:right;--_kv-align: flex-end}:host(.m-stat-host) .m-stat:has(m-section,m-section-form){--_kv-align: stretch}:host(.m-stat-host) .m-stat:has(m-section,m-section-form) .m-stat__value{display:flex}:host(.m-stat-host) .m-stat:has(m-section,m-section-form) .m-stat__figure{flex:1 1 auto;align-self:stretch;display:grid;-webkit-text-fill-color:currentColor}:host .m-stat__figure:has(m-list,m-one-list){font-weight:400;line-height:1.5;letter-spacing:normal;-webkit-text-fill-color:currentColor}:host([data-variant=compact]){--_pad-y: .45em;--_pad-x: .6em}:host([data-variant=no-padding]){--_pad-y: 0;--_pad-x: 0}:host([data-variant=no-x-padding]){--_pad-x: 0}:host(.has-color) .m-stat__figure{color:var(--m-stat-color);-webkit-text-fill-color:var(--m-stat-color)}:host(.has-corner-color) .m-stat__corner{color:var(--m-stat-corner-color)}:host([data-surface=card]) .m-stat{background:color-mix(in srgb,var(--m-background-lite) 70%,transparent);border:1px solid color-mix(in srgb,var(--m-border) 70%,transparent)}:host([data-surface=shadow]) .m-stat{background:var(--m-background-lite);border:1px solid color-mix(in srgb,var(--m-border) 45%,transparent);box-shadow:0 10px 30px #0000000f;transition:box-shadow .2s ease,transform .2s ease}:host([data-surface=shadow]) .m-stat:hover{box-shadow:0 18px 44px #0000001a;transform:translateY(-2px)}:host([data-surface=glow]) .m-stat{background:color-mix(in srgb,var(--_tone) 10%,transparent);border:1px solid color-mix(in srgb,var(--_tone) 28%,transparent);box-shadow:0 12px 34px color-mix(in srgb,var(--_tone) 18%,transparent)}:host([data-surface=glow]) .m-stat__figure{text-shadow:0 2px 14px color-mix(in srgb,var(--_tone) 40%,transparent)}:host([data-surface=gradient]) .m-stat{background:linear-gradient(135deg,color-mix(in srgb,var(--_tone) 18%,transparent),color-mix(in srgb,var(--m-background-lite) 85%,transparent));border:1px solid color-mix(in srgb,var(--_tone) 20%,transparent);box-shadow:0 8px 24px #0000000d}:host([data-surface=gradient]) .m-stat__figure{text-shadow:0 1px 0 color-mix(in srgb,var(--m-background) 70%,transparent)}\n"], dependencies: [{ kind: "component", type: KeyValueComponent, selector: "m-key-value", inputs: ["variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33786
33801
  }
33787
33802
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: StatComponent, decorators: [{
33788
33803
  type: Component,
@@ -33800,7 +33815,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
33800
33815
  '[attr.data-surface]': 'surface()',
33801
33816
  '[style.--m-stat-color]': 'resolvedColor()',
33802
33817
  '[style.--m-stat-corner-color]': 'resolvedCornerColor()',
33803
- }, template: "<div class=\"m-stat\">\n <m-key-value variant=\"bento\">\n <span key class=\"m-stat__label\" [class.m-stat__ghost]=\"labelGhost()\">{{\n labelDisplay()\n }}</span>\n <span value class=\"m-stat__value\">\n <!-- Both slots are wrappers this component owns rather than bare\n `ng-content`: what a caller projects carries the *caller's*\n encapsulation attribute, so `.m-stat__figure` and `.m-stat__corner`\n could not be put on it from here. The wrappers hold the ordering,\n the tone colour and the corner's superscript size; whatever lands\n inside them is the caller's own markup (ADR 0021). -->\n <span class=\"m-stat__figure\"><ng-content select=\"[value]\" /></span>\n <!-- One corner, ordered and aligned by CSS rather than written twice:\n `cornerPosition` is four values and the slot is one node. -->\n <span class=\"m-stat__corner\"><ng-content select=\"[corner]\" /></span>\n </span>\n </m-key-value>\n</div>\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;width:100%;line-height:1.4;--_tone: var(--m-mm);--_pad-y: .85em;--_pad-x: 1em;--_kv-pad: 0}:host(.is-design-mode){min-width:8em;min-height:4em}.m-stat{display:flex;flex-direction:column;min-width:0;padding:var(--_pad-y) var(--_pad-x);border-radius:.75em}.m-stat__value{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.35em;min-width:0}.m-stat__figure{order:0;min-width:0;display:inline-flex;align-items:center;gap:.35em;font-size:.6060606061em}.m-stat__corner{order:1;align-self:flex-start;display:inline-flex;align-items:center;gap:.25em}.m-stat__corner:empty{display:none}.m-stat__corner{font-size:.5em;font-weight:300;white-space:nowrap;letter-spacing:.01em;color:var(--m-text-tertiary);background:none;-webkit-text-fill-color:currentColor}.m-stat__ghost{color:var(--m-text-tertiary);opacity:.6;-webkit-text-fill-color:currentColor}:host(.corner-left) .m-stat__corner{order:-1}:host(.corner-bottom) .m-stat__corner{align-self:flex-end}:host(.is-design-mode) .m-stat__value{flex-direction:column;align-items:flex-start}:host(.is-design-mode) .m-stat__corner{align-self:flex-start}:host(.align-left) .m-stat{text-align:left;--_kv-align: flex-start}:host(.align-center) .m-stat{text-align:center;--_kv-align: center}:host(.align-right) .m-stat{text-align:right;--_kv-align: flex-end}:host(.m-stat-host) .m-stat:has(m-section,m-section-form){--_kv-align: stretch}:host(.m-stat-host) .m-stat:has(m-section,m-section-form) .m-stat__value{display:flex}:host(.m-stat-host) .m-stat:has(m-section,m-section-form) .m-stat__figure{flex:1 1 auto;align-self:stretch;display:grid;-webkit-text-fill-color:currentColor}:host([data-variant=compact]){--_pad-y: .45em;--_pad-x: .6em}:host([data-variant=no-padding]){--_pad-y: 0;--_pad-x: 0}:host([data-variant=no-x-padding]){--_pad-x: 0}:host(.has-color) .m-stat__figure{color:var(--m-stat-color);-webkit-text-fill-color:var(--m-stat-color)}:host(.has-corner-color) .m-stat__corner{color:var(--m-stat-corner-color)}:host([data-surface=card]) .m-stat{background:color-mix(in srgb,var(--m-background-lite) 70%,transparent);border:1px solid color-mix(in srgb,var(--m-border) 70%,transparent)}:host([data-surface=shadow]) .m-stat{background:var(--m-background-lite);border:1px solid color-mix(in srgb,var(--m-border) 45%,transparent);box-shadow:0 10px 30px #0000000f;transition:box-shadow .2s ease,transform .2s ease}:host([data-surface=shadow]) .m-stat:hover{box-shadow:0 18px 44px #0000001a;transform:translateY(-2px)}:host([data-surface=glow]) .m-stat{background:color-mix(in srgb,var(--_tone) 10%,transparent);border:1px solid color-mix(in srgb,var(--_tone) 28%,transparent);box-shadow:0 12px 34px color-mix(in srgb,var(--_tone) 18%,transparent)}:host([data-surface=glow]) .m-stat__figure{text-shadow:0 2px 14px color-mix(in srgb,var(--_tone) 40%,transparent)}:host([data-surface=gradient]) .m-stat{background:linear-gradient(135deg,color-mix(in srgb,var(--_tone) 18%,transparent),color-mix(in srgb,var(--m-background-lite) 85%,transparent));border:1px solid color-mix(in srgb,var(--_tone) 20%,transparent);box-shadow:0 8px 24px #0000000d}:host([data-surface=gradient]) .m-stat__figure{text-shadow:0 1px 0 color-mix(in srgb,var(--m-background) 70%,transparent)}\n"] }]
33818
+ }, template: "<div class=\"m-stat\">\n <m-key-value variant=\"bento\">\n <span key class=\"m-stat__label\" [class.m-stat__ghost]=\"labelGhost()\">{{\n labelDisplay()\n }}</span>\n <span value class=\"m-stat__value\">\n <!-- Both slots are wrappers this component owns rather than bare\n `ng-content`: what a caller projects carries the *caller's*\n encapsulation attribute, so `.m-stat__figure` and `.m-stat__corner`\n could not be put on it from here. The wrappers hold the ordering,\n the tone colour and the corner's superscript size; whatever lands\n inside them is the caller's own markup (ADR 0021). -->\n <span class=\"m-stat__figure\"><ng-content select=\"[value]\" /></span>\n <!-- One corner, ordered and aligned by CSS rather than written twice:\n `cornerPosition` is four values and the slot is one node. -->\n <span class=\"m-stat__corner\"><ng-content select=\"[corner]\" /></span>\n </span>\n </m-key-value>\n</div>\n", styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;width:100%;line-height:1.4;--_tone: var(--m-mm);--_pad-y: .85em;--_pad-x: 1em;--_kv-pad: 0}:host(.is-design-mode){min-width:8em;min-height:4em}.m-stat{display:flex;flex-direction:column;min-width:0;padding:var(--_pad-y) var(--_pad-x);border-radius:.75em}.m-stat__value{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.35em;min-width:0}.m-stat__figure{order:0;min-width:0;display:inline-flex;align-items:center;gap:.35em;font-size:.6060606061em}.m-stat__corner{order:1;align-self:flex-start;display:inline-flex;align-items:center;gap:.25em}.m-stat__corner:empty{display:none}.m-stat__corner{font-size:.5em;font-weight:300;white-space:nowrap;letter-spacing:.01em;color:var(--m-text-tertiary);background:none;-webkit-text-fill-color:currentColor}.m-stat__ghost{color:var(--m-text-tertiary);opacity:.6;-webkit-text-fill-color:currentColor}:host(.corner-left) .m-stat__corner{order:-1}:host(.corner-bottom) .m-stat__corner{align-self:flex-end}:host(.is-design-mode) .m-stat__value{flex-direction:column;align-items:flex-start}:host(.is-design-mode) .m-stat__corner{align-self:flex-start}:host(.align-left) .m-stat{text-align:left;--_kv-align: flex-start}:host(.align-center) .m-stat{text-align:center;--_kv-align: center}:host(.align-right) .m-stat{text-align:right;--_kv-align: flex-end}:host(.m-stat-host) .m-stat:has(m-section,m-section-form){--_kv-align: stretch}:host(.m-stat-host) .m-stat:has(m-section,m-section-form) .m-stat__value{display:flex}:host(.m-stat-host) .m-stat:has(m-section,m-section-form) .m-stat__figure{flex:1 1 auto;align-self:stretch;display:grid;-webkit-text-fill-color:currentColor}:host .m-stat__figure:has(m-list,m-one-list){font-weight:400;line-height:1.5;letter-spacing:normal;-webkit-text-fill-color:currentColor}:host([data-variant=compact]){--_pad-y: .45em;--_pad-x: .6em}:host([data-variant=no-padding]){--_pad-y: 0;--_pad-x: 0}:host([data-variant=no-x-padding]){--_pad-x: 0}:host(.has-color) .m-stat__figure{color:var(--m-stat-color);-webkit-text-fill-color:var(--m-stat-color)}:host(.has-corner-color) .m-stat__corner{color:var(--m-stat-corner-color)}:host([data-surface=card]) .m-stat{background:color-mix(in srgb,var(--m-background-lite) 70%,transparent);border:1px solid color-mix(in srgb,var(--m-border) 70%,transparent)}:host([data-surface=shadow]) .m-stat{background:var(--m-background-lite);border:1px solid color-mix(in srgb,var(--m-border) 45%,transparent);box-shadow:0 10px 30px #0000000f;transition:box-shadow .2s ease,transform .2s ease}:host([data-surface=shadow]) .m-stat:hover{box-shadow:0 18px 44px #0000001a;transform:translateY(-2px)}:host([data-surface=glow]) .m-stat{background:color-mix(in srgb,var(--_tone) 10%,transparent);border:1px solid color-mix(in srgb,var(--_tone) 28%,transparent);box-shadow:0 12px 34px color-mix(in srgb,var(--_tone) 18%,transparent)}:host([data-surface=glow]) .m-stat__figure{text-shadow:0 2px 14px color-mix(in srgb,var(--_tone) 40%,transparent)}:host([data-surface=gradient]) .m-stat{background:linear-gradient(135deg,color-mix(in srgb,var(--_tone) 18%,transparent),color-mix(in srgb,var(--m-background-lite) 85%,transparent));border:1px solid color-mix(in srgb,var(--_tone) 20%,transparent);box-shadow:0 8px 24px #0000000d}:host([data-surface=gradient]) .m-stat__figure{text-shadow:0 1px 0 color-mix(in srgb,var(--m-background) 70%,transparent)}\n"] }]
33804
33819
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], noTranslate: [{ type: i0.Input, args: [{ isSignal: true, alias: "noTranslate", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], cornerPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "cornerPosition", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], surface: [{ type: i0.Input, args: [{ isSignal: true, alias: "surface", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], cornerColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "cornerColor", required: false }] }], params: [{ type: i0.Input, args: [{ isSignal: true, alias: "params", required: false }] }] } });
33805
33820
 
33806
33821
  class PwaInstallComponent {
@@ -41016,4 +41031,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
41016
41031
  */
41017
41032
 
41018
41033
  export { ChatBubbleComponent as $, ACCESS_DOMAINS as A, ButtonComponent as B, AssetUrlPipe as C, Assets as D, AuthActivityPageComponent as E, AuthApiService as F, AuthStore as G, HeaderComponent$1 as H, InputType as I, AutosizeDirective as J, BadgeComponent as K, LabelComponent as L, MODAL_REF as M, BandingComponent as N, BaseArrayInputComponent as O, BaseRootWebComponent as P, BaseWebComponent as Q, RangeInputComponent as R, BrowserLocaleService as S, TranslatePipe as T, ButtonGroupComponent as U, CALLING_APP_HEADER as V, COMPONENT_INPUT_REGISTRY as W, CardComponent as X, CardWrapperComponent as Y, CarouselComponent as Z, ChartComponent as _, MIN_ZOOM as a, HttpService as a$, CheckboxGroupComponent as a0, CheckboxInputComponent as a1, ClearableInputComponent as a2, ClipboardService as a3, ColComponent as a4, ColorPickerInputComponent as a5, CommentItemComponent as a6, CommentsApiService as a7, CommentsComponent as a8, CommentsStore as a9, DeviceService as aA, DocComponent as aB, DocEditorComponent as aC, DomService as aD, Domain as aE, DotGridComponent as aF, DragListDirective as aG, DragListItemDirective as aH, DraggableDirective as aI, DropdownInputComponent as aJ, FILTER_GROUP_CONTEXT as aK, FILTER_RANGE_MODES as aL, FILTER_VARIANTS as aM, FLEX_VARIANTS as aN, FOLDER_PICK_LISTENER as aO, FORM_ASSET_FOLDER as aP, FileService as aQ, FileUploadDirective as aR, FileUploadInputComponent as aS, FlexComponent as aT, FlexItemComponent as aU, FormGroupComponent as aV, FrameComponent as aW, FreezeService as aX, GRID_BREAKPOINTS as aY, GetNavService as aZ, HighlightDirective as a_, CompactNumberPipe as aa, ComponentInputComponent as ab, ComponentStepperComponent as ac, ConfigComponent as ad, ConfirmComponent as ae, ContextMenuComponent as af, CustomIconClass as ag, CustomIconEditComponent as ah, DEFAULT_DENIAL as ai, DEFAULT_DOC_DENSITY as aj, DEFAULT_DOC_VARIANT as ak, DEFAULT_FILTER_RANGE_MODE as al, DEFAULT_FILTER_VARIANT as am, DEFAULT_NAV_PARAM as an, DEFAULT_NAV_SEGMENT as ao, DEFAULT_SIZE as ap, DOCK_MIN_PAGE_REMAINDER as aq, DOCS_FOLDER as ar, DOC_ACTION_ICONS as as, DOC_DENSITIES as at, DOC_EDIT_ACTIONS as au, DOC_TOOLBAR_GROUPS as av, DOC_VARIANTS as aw, DashboardCardComponent as ax, DateInputComponent as ay, DatePickerComponent as az, MAX_ZOOM as b, PLATFORM_BUTTON_NAV_IDS as b$, ICON_SOURCE as b0, IS_SIDE_PANEL as b1, IconComponent as b2, ImgComponent as b3, InstrumentScoreComponent as b4, InterceptorObservables as b5, JumbotronComponent as b6, KeyValueComponent as b7, LAYOUT_ASSET_FOLDER as b8, LOGIN_COMPONENT as b9, NAV_MAIN_BUTTONS as bA, NAV_SEGMENT_RE as bB, NAV_STORE_REF as bC, NAV_WC_COMPONENTS as bD, NAV_WIDGET_MAP as bE, NavComponent as bF, NavDetailsComponent as bG, NavHeaderComponent as bH, NavMenuComponent as bI, NavStore as bJ, NavTrailComponent as bK, NothingComponent as bL, NotificationElementComponent as bM, NotificationGroupComponent as bN, NotificationPopupComponent as bO, NotificationService as bP, NotificationStore as bQ, NotificationType as bR, NotificationWidgetComponent as bS, ONE_ASSET_BASE_URL as bT, OPTIONS_SOURCE as bU, OVERLAY_WIDGETS as bV, OneApp as bW, OptionsSourceDirective as bX, OverlayBodyComponent as bY, OverlayRef as bZ, OverlayService as b_, LOGIN_STORE as ba, LanguageComponent as bb, ListComponent as bc, LogoComponent as bd, MAG_SOCKET_EVENT as be, MHeroColorDirective as bf, MHeroComponent as bg, MODAL_STORE_REF as bh, MOUNT_STATIC_SEGMENT as bi, MOUNT_TOKEN as bj, MRefDirective as bk, MStepComponent as bl, MURL_PARAM as bm, MURL_SEP as bn, ManifestEnrichmentService as bo, MarginDirective as bp, MenuComponent as bq, ModalDirective as br, ModalRef as bs, ModalStore as bt, MoneyPipe as bu, MultiRangeInputComponent as bv, MultiselectInputComponent as bw, MurlUrlSerializer as bx, NAV_DEFAULT_MURL as by, NAV_ID_SEP as bz, cropRect as c, SectionToggleItemDirective as c$, PLATFORM_EXTENSIBLE_NAV_IDS as c0, PLATFORM_NAV_MAP as c1, PLATFORM_ROOT_CHILDREN as c2, PaddingDirective as c3, PaginationComponent as c4, PanelComponent as c5, PercentagePipe as c6, PlaygroundComponent as c7, PositionDirective as c8, PwaInstallComponent as c9, SectionAccordionDirective as cA, SectionAccordionGroupDirective as cB, SectionBackComponent as cC, SectionBadgesComponent as cD, SectionButtonGroupComponent as cE, SectionCardComponent as cF, SectionCarouselComponent as cG, SectionComponent as cH, SectionFilterComponent as cI, SectionFilterGroupComponent as cJ, SectionFilterMenuComponent as cK, SectionFilterPanelComponent as cL, SectionFilterRangePanelComponent as cM, SectionFooterComponent as cN, SectionFormComponent as cO, SectionFormItemComponent as cP, SectionHeaderComponent as cQ, SectionHeroComponent as cR, SectionPaginationComponent as cS, SectionSearchComponent as cT, SectionStepperComponent as cU, SectionTableCellComponent as cV, SectionTableComponent as cW, SectionTableRowComponent as cX, SectionTableSortPipe as cY, SectionTabsComponent as cZ, SectionToggleComponent as c_, RECENT_SEARCH_LIMIT as ca, REMOTE_PAGE_RELOAD as cb, ROOT_NAV$1 as cc, RadioGroupComponent as cd, RadioInputComponent as ce, RatingInputComponent as cf, ReactiveElementComponent as cg, RemoteComponent as ch, RemoteLoaderService as ci, ResizeElementComponent as cj, RouteContainer as ck, RowComponent as cl, SEARCH_QUERY as cm, SEARCH_RESULTS_EVENT as cn, SECTION_ACCORDION_GROUP as co, SECTION_FORM_CONTEXT as cp, SECTION_TABLE_VARIANTS as cq, SHARED_ICONS as cr, SIZE_CONTEXT as cs, SPACING_INWARD as ct, ScoreComponent as cu, ScrollComponent as cv, ScrollService as cw, SearchPanelComponent as cx, SearchStore as cy, SearchUserPanelComponent as cz, drawFramed as d, applyDocEdit as d$, SelectableCardInputComponent as d0, SelectorDirective as d1, SettingsSearchBarComponent as d2, SettingsSearchService as d3, ShapeComponent as d4, SharedStoreRegistry as d5, SidePanelDirective as d6, Size as d7, SocketStore as d8, SortComponent as d9, ToggleRadioInputComponent as dA, ToolTipDirective as dB, TooltipComponent as dC, TranslateService as dD, TreeGridComponent as dE, URL_SEP as dF, USER_STORE_REF as dG, USER_TAB_MAP as dH, UniverseComponent as dI, UserApiService as dJ, UserAvatarComponent as dK, UserComponent as dL, UserNavComponent as dM, UserSettingsComponent as dN, UserStore as dO, WC_BUNDLE as dP, WC_NAVIGATE_EVENT as dQ, WC_ROUTE_CHANGED_EVENT as dR, WC_SEARCH_GROUPS as dS, WIN_USER_TAB_HOOK as dT, WIN_USER_TAB_KEY as dU, WatermarkComponent as dV, WcRouterStore as dW, WrapperInputComponent as dX, allowedCodes as dY, anchorNavId as dZ, applyColorsToElement as d_, StatComponent as da, StepComponent as db, StepperComponent as dc, StepsComponent as dd, StorageService as de, StrokeLinecap as df, StrokeLinejoin as dg, SummaryComponent as dh, SvgGeneratorComponent as di, SvgGeneratorService as dj, SvgService as dk, TOTAL_COLUMNS as dl, TRANSLATION_SOURCE as dm, TableComponent as dn, TechnicalMeterComponent as dp, TextInputComponent as dq, TextareaInputComponent as dr, ThemeComponent as ds, ThemeDataService as dt, ThemeService as du, ThemeStore as dv, TimeAgoPipe as dw, TimelineComponent as dx, ToggleButtonComponent as dy, ToggleInputComponent as dz, encodeFramed as e, initialNotificationState as e$, assetOptions as e0, bootstrapMagApp as e1, bootstrapPwaInstall as e2, browserLocale as e3, buildWcBaseUrl as e4, calculateLuminance as e5, calculateRanks as e6, cellText as e7, checkDoc as e8, checkFilterCondition as e9, filterHoldsRange as eA, filterList as eB, filterNumber as eC, filterNumberList as eD, filterOne as eE, filterPanelOf as eF, filterPanelWidth as eG, filterRange as eH, filterTreeGridRows as eI, filterValueList as eJ, filterValues as eK, flattenTreeGridRows as eL, formatBadgeCount as eM, fullName as eN, generateClipPath as eO, generateTransform as eP, getClassList as eQ, getProperty as eR, getScrollParent as eS, getTierFromPreviewPath as eT, getTreeGridRow as eU, getUniqueId as eV, getValue as eW, hasErrorComputed as eX, hexToRgb as eY, hslToRgb$1 as eZ, initMagmoniumApp as e_, childNavId as ea, claimDenial as eb, classListSignal as ec, coerceSize as ed, cornerEdge as ee, cornerSide as ef, createMap as eg, createPlatformNavMap as eh, definedWcTierOf as ei, deriveAvatarGradient as ej, deriveContrastColor as ek, deriveOppositeColor as el, derivePropertyName as em, docActionKey as en, docAssetCandidates as eo, docProblemKey as ep, docRemotePath as eq, emailValidation as er, evaluate as es, evaluateBool as et, fieldBoolean as eu, fieldNumber as ev, fieldString as ew, filterHoldsList as ex, filterHoldsOneBound as ey, filterHoldsOptions as ez, clampFraming as f, parsePatternNames as f$, initialState$2 as f0, initials as f1, injectAuthenticate as f2, injectDefaultDenial as f3, injectInstallApp as f4, injectParentSize as f5, injectScrollSticky as f6, isBootRedirect as f7, isButtonName as f8, isCancelledComputed as f9, mergeUniqueBy as fA, mergeUniqueWith as fB, minAgeValidation as fC, minLengthValidation as fD, minValidation as fE, miniMarkToHtml as fF, mountFor as fG, mountPatternProblem as fH, mountPatternText as fI, mountSegmentOf as fJ, mountTokenOf as fK, navIdChain as fL, navIdFor as fM, navIdSegment as fN, navIdToRoutePath as fO, navIdToSegments as fP, navParamOf as fQ, navTailMatcher as fR, navToId as fS, navVisibilityGuard as fT, nextSectionTableSort as fU, normalizeAssetOptions as fV, offsetOfLine as fW, parentNavId as fX, parseAddress as fY, parseColor as fZ, parseMountPattern as f_, isExtensiblePlatformNavId as fa, isJson as fb, isLoadingComputed as fc, isLocalhost as fd, isNavInstanceConfig as fe, isNavMenuConfig as ff, isNavRowsConfig as fg, isNavVisibilityConfig as fh, isPlatformNavId as fi, isSize as fj, isTierPreview as fk, isUrlLocalhost as fl, isValidNavId as fm, isValidNavSegment as fn, isWebComponent as fo, linkToId as fp, linkToNav as fq, loadingActions as fr, mInterceptor as fs, manualValidation as ft, matchFieldValidation as fu, matchMount as fv, maxLengthValidation as fw, maxValidation as fx, mergePlatformNav as fy, mergeUnique as fz, BaseInputComponent as g, patternValidation as g0, patternsValidation as g1, permissionRefusal as g2, pickSupportedLanguage as g3, platformNavWidgets as g4, presetDefaultOption as g5, privateGuard as g6, processImageToSvg as g7, provideAppContext as g8, provideMagAppConfig as g9, samePatterns as gA, sectionTableColumnId as gB, sectionTableColumnWidths as gC, sectionTableFrozenCount as gD, segmentsToNavId as gE, setProperty as gF, setTreeGridChildren as gG, setWcTier as gH, settingsWidgets as gI, shouldShowBadge as gJ, sortSectionTableRows as gK, splitNavId as gL, splitOnMatch as gM, stringToColor as gN, tailRouteOf as gO, toAttrBool as gP, toAttrNumber as gQ, toCssLength as gR, toHostNavId as gS, toLength$1 as gT, toLocalNavId as gU, toggleTreeGridRow as gV, unfetchedPlatformNav as gW, ungroupedDocActions as gX, urlValidation as gY, wcTierOf as gZ, provideMagWcConfig as ga, provideMagWcRoutes as gb, provideModalComponents as gc, provideMurlUrlSerializer as gd, provideNavWidgets as ge, provideOverlayWidgets as gf, providePlatformNavWidgets as gg, provideSearch as gh, provideSizeContext as gi, provideUserTabs as gj, publicGuard as gk, readFieldPatterns as gl, recordDefinedWcTier as gm, remoteOutletRoute as gn, renderAddress as go, renderDocument as gp, requiredValidation as gq, resolveConfigAsset as gr, resolveIconSize as gs, resolvePallet as gt, resolvePatternRules as gu, resolveSize as gv, resolveSpacing as gw, rgbToHex as gx, rgbToHsl as gy, rowHasChildren as gz, BaseTextInputComponent as h, initialFraming as i, TextOutputComponent as j, IS_DESIGN_MODE as k, APP_CONTEXT_REF as l, APP_LINK as m, ASSET_BASE_URL as n, outputSize as o, parseRatio as p, AccordionBodyDirective as q, renameForType as r, AccordionComponent as s, AccordionGroupComponent as t, ActionComponent as u, AnimatedGraphsComponent as v, AppCardComponent as w, AppRelationType as x, AppTileComponent as y, AssetStore as z };
41019
- //# sourceMappingURL=magmonium-one-magmonium-one-BRKZkOoZ.mjs.map
41034
+ //# sourceMappingURL=magmonium-one-magmonium-one-xCRWlG4J.mjs.map