@magmonium/one 0.2.88 → 0.2.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{magmonium-one-image-editor-7YbiR-nh.mjs → magmonium-one-image-editor-CO4maKe0.mjs} +2 -2
- package/fesm2022/{magmonium-one-image-editor-7YbiR-nh.mjs.map → magmonium-one-image-editor-CO4maKe0.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-magmonium-one-CYkVIdZu.mjs → magmonium-one-magmonium-one-DHWHv1xG.mjs} +59 -11
- package/fesm2022/magmonium-one-magmonium-one-DHWHv1xG.mjs.map +1 -0
- package/fesm2022/{magmonium-one-otp-D0nndyeO.mjs → magmonium-one-otp-ClQI3X80.mjs} +2 -2
- package/fesm2022/{magmonium-one-otp-D0nndyeO.mjs.map → magmonium-one-otp-ClQI3X80.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-BQ03_fYb.mjs → magmonium-one-password-wHCuTNqi.mjs} +2 -2
- package/fesm2022/{magmonium-one-password-BQ03_fYb.mjs.map → magmonium-one-password-wHCuTNqi.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-toggle-BMfHzrYh.mjs → magmonium-one-toggle-DAMTKWH2.mjs} +2 -2
- package/fesm2022/{magmonium-one-toggle-BMfHzrYh.mjs.map → magmonium-one-toggle-DAMTKWH2.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +12 -1
- package/fesm2022/magmonium-one-magmonium-one-CYkVIdZu.mjs.map +0 -1
package/fesm2022/{magmonium-one-image-editor-7YbiR-nh.mjs → magmonium-one-image-editor-CO4maKe0.mjs}
RENAMED
|
@@ -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-
|
|
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-DHWHv1xG.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-
|
|
290
|
+
//# sourceMappingURL=magmonium-one-image-editor-CO4maKe0.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-image-editor-7YbiR-nh.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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"}
|
|
1
|
+
{"version":3,"file":"magmonium-one-image-editor-CO4maKe0.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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"}
|
|
@@ -6969,6 +6969,11 @@ class SectionFormItemComponent extends ConfigComponent {
|
|
|
6969
6969
|
value = model('', ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
6970
6970
|
act = output();
|
|
6971
6971
|
fieldKey = output();
|
|
6972
|
+
// This Field's own value, the moment the User moved it — the per-field
|
|
6973
|
+
// counterpart of the form's `dataChange`, at field granularity instead of
|
|
6974
|
+
// the whole record (libs/one ADR 0032). A bare value, not a `{name, value}`
|
|
6975
|
+
// record: the item IS the name.
|
|
6976
|
+
dataChange = output();
|
|
6972
6977
|
// Merged into `config()` by ConfigComponent rather than kept as sibling
|
|
6973
6978
|
// computeds: this item hands its whole config down to a dynamically created
|
|
6974
6979
|
// input, so a value living beside that config would never reach it. An
|
|
@@ -7126,8 +7131,36 @@ class SectionFormItemComponent extends ConfigComponent {
|
|
|
7126
7131
|
dynamicInput = viewChild('dynamicInput', { ...(ngDevMode ? { debugName: "dynamicInput" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
|
|
7127
7132
|
isDestroyed = false;
|
|
7128
7133
|
dynamicSeq = 0;
|
|
7134
|
+
// What this item last saw its Field holding, paired with the form's
|
|
7135
|
+
// bookkeeping version at that moment. The pairing is the whole gate: a move
|
|
7136
|
+
// under an unchanged version is a keystroke; a move the same flush as a
|
|
7137
|
+
// bump (`data` restamped, a `reset()`) is the form's own doing and
|
|
7138
|
+
// announces nothing (libs/one ADR 0032).
|
|
7139
|
+
announced = null;
|
|
7129
7140
|
constructor() {
|
|
7130
7141
|
super();
|
|
7142
|
+
// The Field's value is read off the FieldTree, not off the `value` model:
|
|
7143
|
+
// the model starts `''` and only catches up when the FormField wiring
|
|
7144
|
+
// syncs, so a Field mounted onto data already holding a value would look
|
|
7145
|
+
// like it moved. The tree was built from the model before this item
|
|
7146
|
+
// existed, so its first reading is the truth — which is exactly why the
|
|
7147
|
+
// first reading primes the snapshot instead of announcing.
|
|
7148
|
+
effect(() => {
|
|
7149
|
+
const leaf = this.field();
|
|
7150
|
+
if (!leaf)
|
|
7151
|
+
return;
|
|
7152
|
+
const value = leaf().value();
|
|
7153
|
+
const version = this.sectionForm?.dataVersion() ?? 0;
|
|
7154
|
+
const previous = this.announced;
|
|
7155
|
+
this.announced = { value, version };
|
|
7156
|
+
if (!previous)
|
|
7157
|
+
return;
|
|
7158
|
+
if (version !== previous.version)
|
|
7159
|
+
return;
|
|
7160
|
+
if (value === previous.value)
|
|
7161
|
+
return;
|
|
7162
|
+
this.dataChange.emit(value);
|
|
7163
|
+
});
|
|
7131
7164
|
effect(() => {
|
|
7132
7165
|
const name = this.modelKey();
|
|
7133
7166
|
if (name) {
|
|
@@ -7232,7 +7265,7 @@ class SectionFormItemComponent extends ConfigComponent {
|
|
|
7232
7265
|
break;
|
|
7233
7266
|
}
|
|
7234
7267
|
case InputType.TOGGLE: {
|
|
7235
|
-
const { ToggleInputComponent } = await import('./magmonium-one-toggle-
|
|
7268
|
+
const { ToggleInputComponent } = await import('./magmonium-one-toggle-DAMTKWH2.mjs');
|
|
7236
7269
|
this.createDynamicComponent(seq, ToggleInputComponent, [], true);
|
|
7237
7270
|
break;
|
|
7238
7271
|
}
|
|
@@ -7244,12 +7277,12 @@ class SectionFormItemComponent extends ConfigComponent {
|
|
|
7244
7277
|
break;
|
|
7245
7278
|
}
|
|
7246
7279
|
case InputType.PASSWORD: {
|
|
7247
|
-
const { PasswordInputComponent } = await import('./magmonium-one-password-
|
|
7280
|
+
const { PasswordInputComponent } = await import('./magmonium-one-password-wHCuTNqi.mjs');
|
|
7248
7281
|
this.createDynamicComponent(seq, PasswordInputComponent);
|
|
7249
7282
|
break;
|
|
7250
7283
|
}
|
|
7251
7284
|
case InputType.OTP: {
|
|
7252
|
-
const { OtpInputComponent } = await import('./magmonium-one-otp-
|
|
7285
|
+
const { OtpInputComponent } = await import('./magmonium-one-otp-ClQI3X80.mjs');
|
|
7253
7286
|
this.createDynamicComponent(seq, OtpInputComponent);
|
|
7254
7287
|
break;
|
|
7255
7288
|
}
|
|
@@ -7339,7 +7372,7 @@ class SectionFormItemComponent extends ConfigComponent {
|
|
|
7339
7372
|
}
|
|
7340
7373
|
};
|
|
7341
7374
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionFormItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7342
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionFormItemComponent, isStandalone: true, selector: "m-section-form-item, m-one-section-form-item", inputs: { span: { classPropertyName: "span", publicName: "span", isSignal: true, isRequired: false, transformFunction: null }, labelOrientation: { classPropertyName: "labelOrientation", publicName: "labelOrientation", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, aclResolver: { classPropertyName: "aclResolver", publicName: "aclResolver", isSignal: true, isRequired: false, transformFunction: null }, formValues: { classPropertyName: "formValues", publicName: "formValues", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, button: { classPropertyName: "button", publicName: "button", isSignal: true, isRequired: false, transformFunction: null }, buttonAction: { classPropertyName: "buttonAction", publicName: "buttonAction", isSignal: true, isRequired: false, transformFunction: null }, buttonAcl: { classPropertyName: "buttonAcl", publicName: "buttonAcl", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, acl: { classPropertyName: "acl", publicName: "acl", isSignal: true, isRequired: false, transformFunction: null }, testid: { classPropertyName: "testid", publicName: "testid", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null }, debounce: { classPropertyName: "debounce", publicName: "debounce", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, multiSelect: { classPropertyName: "multiSelect", publicName: "multiSelect", isSignal: true, isRequired: false, transformFunction: null }, equalWidth: { classPropertyName: "equalWidth", publicName: "equalWidth", isSignal: true, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null }, isCheckboxVisible: { classPropertyName: "isCheckboxVisible", publicName: "isCheckboxVisible", isSignal: true, isRequired: false, transformFunction: null }, enlarge: { classPropertyName: "enlarge", publicName: "enlarge", isSignal: true, isRequired: false, transformFunction: null }, optionsAsset: { classPropertyName: "optionsAsset", publicName: "optionsAsset", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, dropZone: { classPropertyName: "dropZone", publicName: "dropZone", isSignal: true, isRequired: false, transformFunction: null }, readAs: { classPropertyName: "readAs", publicName: "readAs", isSignal: true, isRequired: false, transformFunction: null }, editor: { classPropertyName: "editor", publicName: "editor", isSignal: true, isRequired: false, transformFunction: null }, ratio: { classPropertyName: "ratio", publicName: "ratio", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, patterns: { classPropertyName: "patterns", publicName: "patterns", isSignal: true, isRequired: false, transformFunction: null }, patternMessage: { classPropertyName: "patternMessage", publicName: "patternMessage", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", act: "act", fieldKey: "fieldKey" }, host: { properties: { "class": "spanClass()", "style.display": "isVisible() ? null : \"none\"" } }, queries: [{ propertyName: "projectedTemplate", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "dynamicInput", first: true, predicate: ["dynamicInput"], descendants: true, read: ViewContainerRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
7375
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionFormItemComponent, isStandalone: true, selector: "m-section-form-item, m-one-section-form-item", inputs: { span: { classPropertyName: "span", publicName: "span", isSignal: true, isRequired: false, transformFunction: null }, labelOrientation: { classPropertyName: "labelOrientation", publicName: "labelOrientation", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, aclResolver: { classPropertyName: "aclResolver", publicName: "aclResolver", isSignal: true, isRequired: false, transformFunction: null }, formValues: { classPropertyName: "formValues", publicName: "formValues", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, button: { classPropertyName: "button", publicName: "button", isSignal: true, isRequired: false, transformFunction: null }, buttonAction: { classPropertyName: "buttonAction", publicName: "buttonAction", isSignal: true, isRequired: false, transformFunction: null }, buttonAcl: { classPropertyName: "buttonAcl", publicName: "buttonAcl", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, acl: { classPropertyName: "acl", publicName: "acl", isSignal: true, isRequired: false, transformFunction: null }, testid: { classPropertyName: "testid", publicName: "testid", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null }, debounce: { classPropertyName: "debounce", publicName: "debounce", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, multiSelect: { classPropertyName: "multiSelect", publicName: "multiSelect", isSignal: true, isRequired: false, transformFunction: null }, equalWidth: { classPropertyName: "equalWidth", publicName: "equalWidth", isSignal: true, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null }, isCheckboxVisible: { classPropertyName: "isCheckboxVisible", publicName: "isCheckboxVisible", isSignal: true, isRequired: false, transformFunction: null }, enlarge: { classPropertyName: "enlarge", publicName: "enlarge", isSignal: true, isRequired: false, transformFunction: null }, optionsAsset: { classPropertyName: "optionsAsset", publicName: "optionsAsset", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, dropZone: { classPropertyName: "dropZone", publicName: "dropZone", isSignal: true, isRequired: false, transformFunction: null }, readAs: { classPropertyName: "readAs", publicName: "readAs", isSignal: true, isRequired: false, transformFunction: null }, editor: { classPropertyName: "editor", publicName: "editor", isSignal: true, isRequired: false, transformFunction: null }, ratio: { classPropertyName: "ratio", publicName: "ratio", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, patterns: { classPropertyName: "patterns", publicName: "patterns", isSignal: true, isRequired: false, transformFunction: null }, patternMessage: { classPropertyName: "patternMessage", publicName: "patternMessage", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", act: "act", fieldKey: "fieldKey", dataChange: "dataChange" }, host: { properties: { "class": "spanClass()", "style.display": "isVisible() ? null : \"none\"" } }, queries: [{ propertyName: "projectedTemplate", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "dynamicInput", first: true, predicate: ["dynamicInput"], descendants: true, read: ViewContainerRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
7343
7376
|
<div
|
|
7344
7377
|
[class]="itemClass()"
|
|
7345
7378
|
[style.--sfi-gap.px]="gap()"
|
|
@@ -7372,7 +7405,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7372
7405
|
'[class]': 'spanClass()',
|
|
7373
7406
|
'[style.display]': 'isVisible() ? null : "none"',
|
|
7374
7407
|
}, 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;flex:1 1 100%;min-width:0}.section-form-item{display:flex;flex-direction:column;gap:var(--sfi-gap, .5em );min-width:0;width:100%}.section-form-item.--horizontal{flex-direction:row;align-items:center}.section-form-item.--horizontal .section-form-item__input{flex:1;min-width:0}.section-form-item.--vertical{flex-direction:column}.section-form-item.--vertical .section-form-item__input{width:100%}.section-form-item__input{display:flex;flex-direction:column;min-width:0;width:100%}.section-form-item__input>*{width:100%}\n"] }]
|
|
7375
|
-
}], ctorParameters: () => [], propDecorators: { span: [{ type: i0.Input, args: [{ isSignal: true, alias: "span", required: false }] }], labelOrientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelOrientation", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], focused: [{ type: i0.Input, args: [{ isSignal: true, alias: "focused", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: false }] }], projectedTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], aclResolver: [{ type: i0.Input, args: [{ isSignal: true, alias: "aclResolver", required: false }] }], formValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "formValues", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], params: [{ type: i0.Input, args: [{ isSignal: true, alias: "params", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], prefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefix", required: false }] }], suffix: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffix", required: false }] }], button: [{ type: i0.Input, args: [{ isSignal: true, alias: "button", required: false }] }], buttonAction: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonAction", required: false }] }], buttonAcl: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonAcl", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], acl: [{ type: i0.Input, args: [{ isSignal: true, alias: "acl", required: false }] }], testid: [{ type: i0.Input, args: [{ isSignal: true, alias: "testid", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], length: [{ type: i0.Input, args: [{ isSignal: true, alias: "length", required: false }] }], debounce: [{ type: i0.Input, args: [{ isSignal: true, alias: "debounce", required: false }] }], dateFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateFormat", required: false }] }], searchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLabel", required: false }] }], vertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "vertical", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], multiSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSelect", required: false }] }], equalWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "equalWidth", required: false }] }], iconOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOnly", required: false }] }], isCheckboxVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCheckboxVisible", required: false }] }], enlarge: [{ type: i0.Input, args: [{ isSignal: true, alias: "enlarge", required: false }] }], optionsAsset: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionsAsset", required: false }] }], accept: [{ type: i0.Input, args: [{ isSignal: true, alias: "accept", required: false }] }], maxSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSize", required: false }] }], dropZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropZone", required: false }] }], readAs: [{ type: i0.Input, args: [{ isSignal: true, alias: "readAs", required: false }] }], editor: [{ type: i0.Input, args: [{ isSignal: true, alias: "editor", required: false }] }], ratio: [{ type: i0.Input, args: [{ isSignal: true, alias: "ratio", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], patterns: [{ type: i0.Input, args: [{ isSignal: true, alias: "patterns", required: false }] }], patternMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "patternMessage", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], act: [{ type: i0.Output, args: ["act"] }], fieldKey: [{ type: i0.Output, args: ["fieldKey"] }], dynamicInput: [{ type: i0.ViewChild, args: ['dynamicInput', { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
|
|
7408
|
+
}], ctorParameters: () => [], propDecorators: { span: [{ type: i0.Input, args: [{ isSignal: true, alias: "span", required: false }] }], labelOrientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelOrientation", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], focused: [{ type: i0.Input, args: [{ isSignal: true, alias: "focused", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: false }] }], projectedTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], aclResolver: [{ type: i0.Input, args: [{ isSignal: true, alias: "aclResolver", required: false }] }], formValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "formValues", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], params: [{ type: i0.Input, args: [{ isSignal: true, alias: "params", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], prefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefix", required: false }] }], suffix: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffix", required: false }] }], button: [{ type: i0.Input, args: [{ isSignal: true, alias: "button", required: false }] }], buttonAction: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonAction", required: false }] }], buttonAcl: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonAcl", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], acl: [{ type: i0.Input, args: [{ isSignal: true, alias: "acl", required: false }] }], testid: [{ type: i0.Input, args: [{ isSignal: true, alias: "testid", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], length: [{ type: i0.Input, args: [{ isSignal: true, alias: "length", required: false }] }], debounce: [{ type: i0.Input, args: [{ isSignal: true, alias: "debounce", required: false }] }], dateFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateFormat", required: false }] }], searchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLabel", required: false }] }], vertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "vertical", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], multiSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSelect", required: false }] }], equalWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "equalWidth", required: false }] }], iconOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOnly", required: false }] }], isCheckboxVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCheckboxVisible", required: false }] }], enlarge: [{ type: i0.Input, args: [{ isSignal: true, alias: "enlarge", required: false }] }], optionsAsset: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionsAsset", required: false }] }], accept: [{ type: i0.Input, args: [{ isSignal: true, alias: "accept", required: false }] }], maxSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSize", required: false }] }], dropZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropZone", required: false }] }], readAs: [{ type: i0.Input, args: [{ isSignal: true, alias: "readAs", required: false }] }], editor: [{ type: i0.Input, args: [{ isSignal: true, alias: "editor", required: false }] }], ratio: [{ type: i0.Input, args: [{ isSignal: true, alias: "ratio", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], patterns: [{ type: i0.Input, args: [{ isSignal: true, alias: "patterns", required: false }] }], patternMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "patternMessage", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], act: [{ type: i0.Output, args: ["act"] }], fieldKey: [{ type: i0.Output, args: ["fieldKey"] }], dataChange: [{ type: i0.Output, args: ["dataChange"] }], dynamicInput: [{ type: i0.ViewChild, args: ['dynamicInput', { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
|
|
7376
7409
|
|
|
7377
7410
|
function formatDate(date, format) {
|
|
7378
7411
|
if (!date) {
|
|
@@ -7845,6 +7878,10 @@ class SectionFormComponent extends ConfigComponent {
|
|
|
7845
7878
|
return values;
|
|
7846
7879
|
} });
|
|
7847
7880
|
formGroup = signal(null, ...(ngDevMode ? [{ debugName: "formGroup" }] : /* istanbul ignore next */ []));
|
|
7881
|
+
// The bookkeeping counter `SECTION_FORM_CONTEXT` publishes. Bumped wherever
|
|
7882
|
+
// values move without the User typing, so a projected item watching its own
|
|
7883
|
+
// field's value can tell those moves from a keystroke (libs/one ADR 0032).
|
|
7884
|
+
dataVersion = signal(0, ...(ngDevMode ? [{ debugName: "dataVersion" }] : /* istanbul ignore next */ []));
|
|
7848
7885
|
// Read straight off the live FieldTree so a projected Button locks and
|
|
7849
7886
|
// unlocks with the fields as they are typed in, with no state input to keep
|
|
7850
7887
|
// in step.
|
|
@@ -7949,6 +7986,12 @@ class SectionFormComponent extends ConfigComponent {
|
|
|
7949
7986
|
const value = formTree().value();
|
|
7950
7987
|
const data = this.data();
|
|
7951
7988
|
const dataChanged = data !== this.previousData;
|
|
7989
|
+
if (dataChanged) {
|
|
7990
|
+
// The restamp the caller pushed is bookkeeping, not typing — bump
|
|
7991
|
+
// before the items read it, so their own effects (created after this
|
|
7992
|
+
// one, and run in creation order) see the move as suppressed.
|
|
7993
|
+
this.dataVersion.update((version) => version + 1);
|
|
7994
|
+
}
|
|
7952
7995
|
if (isUserEdit(this.previousValue, value, dataChanged)) {
|
|
7953
7996
|
this.dataChange.emit({ ...data, ...value });
|
|
7954
7997
|
}
|
|
@@ -8022,6 +8065,9 @@ class SectionFormComponent extends ConfigComponent {
|
|
|
8022
8065
|
this.model.set(values);
|
|
8023
8066
|
// Emptying the form is the caller's act, not the User's edit.
|
|
8024
8067
|
this.previousValue = values;
|
|
8068
|
+
// Say so before the items' effects read the moved signals — a Field
|
|
8069
|
+
// reset this way must not announce (libs/one ADR 0032).
|
|
8070
|
+
this.dataVersion.update((version) => version + 1);
|
|
8025
8071
|
});
|
|
8026
8072
|
this.rebuild();
|
|
8027
8073
|
};
|
|
@@ -8041,6 +8087,7 @@ class SectionFormComponent extends ConfigComponent {
|
|
|
8041
8087
|
fieldSettled: self.fieldSettled,
|
|
8042
8088
|
blocked: self.blocked,
|
|
8043
8089
|
submit: self.submitNow,
|
|
8090
|
+
dataVersion: self.dataVersion,
|
|
8044
8091
|
};
|
|
8045
8092
|
},
|
|
8046
8093
|
},
|
|
@@ -8091,6 +8138,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8091
8138
|
fieldSettled: self.fieldSettled,
|
|
8092
8139
|
blocked: self.blocked,
|
|
8093
8140
|
submit: self.submitNow,
|
|
8141
|
+
dataVersion: self.dataVersion,
|
|
8094
8142
|
};
|
|
8095
8143
|
},
|
|
8096
8144
|
},
|
|
@@ -17058,7 +17106,7 @@ class AuthActivityPageComponent {
|
|
|
17058
17106
|
wrongPassword: this.authStore.wrongPassword,
|
|
17059
17107
|
});
|
|
17060
17108
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AuthActivityPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17061
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AuthActivityPageComponent, isStandalone: true, selector: "m-auth-activity", ngImport: i0, template: "<m-section>\n <m-flex direction=\"column\" justify=\"center\" alignItems=\"center\" gap=\"2em\" minHeight=\"400px\">\n <m-logo color=\"mm\" width=\"5em\" padding=\"10px\" variant=\"grained\" />\n @if (authStore.variant().busy) {\n <m-icon color=\"mm\" size=\"4em\" name=\"loading-bars\" [one]=\"true\" />\n } @else if (!authStore.variant().identity_exiest && !authStore.variant().many_identifications) {\n <m-text-output [noTranslate]=\"false\" label=\"welcome-to-app?app=Magmonium\" />\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n [data]=\"emailData!\"\n (submitted)=\"authStore.patch({ email: $event.email }); authStore.createAuthEmail({ identity: $event.email })\"\n >\n <m-section-form-item\n name=\"email\"\n patterns=\"email\"\n type=\"text\"\n label=\"e-mail\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"next\"\n icon=\"chevron-right\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n </m-section-form>\n } @else if (!authStore.variant().identity_exiest && authStore.variant().many_identifications) {\n <m-text-output [noTranslate]=\"false\" label=\"welcome-to-app?app=Magmonium\" />\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n (dataChange)=\"selectUserCard($event.user)\"\n >\n <m-section-form-item\n name=\"user\"\n [span]=\"1\"\n patterns=\"email\"\n type=\"selectable_card\"\n label=\"select-user\"\n placeholder=\"type-text\"\n [required]=\"true\"\n [multiSelect]=\"false\"\n [vertical]=\"true\"\n [isCheckboxVisible]=\"false\"\n [data]=\"userCards()\"\n >\n <ng-template let-item=\"row\" let-index=\"index\">\n <m-user [firstName]=\"item.firstName\" [lastName]=\"item.lastName\">\n <m-text-output [label]=\"item.identity\" noTranslate />\n </m-user>\n </ng-template>\n </m-section-form-item>\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"or-try-new-user\"\n icon=\"chevron-left\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n (clicked)=\"authStore.patch({ identity: undefined, email: undefined })\"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (authStore.variant().with_show_term && !authStore.variant().create_new_user) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n (submitted)=\"authStore.createSignUpOtp()\"\n >\n <m-text-output\n align=\"center\"\n variant=\"footer\"\n label=\"by-signing-in-you-agree-to-magmonium-s-terms-of-service-terms-and-acknowledge-our-privacy-policy-privacy\"\n [params]=\"activityTranslateParams()\"\n />\n <m-section-form-item name=\"field_1\" type=\"checkbox\" label=\"i-agree\" placeholder=\"type-text\" [required]=\"true\" />\n <m-button\n label=\"confirm\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"success\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"\n authStore.patch({\n identity: undefined,\n otp: undefined,\n otpCounter: undefined,\n registerNewUser: undefined,\n resetPassword: undefined,\n showTerms: undefined,\n signUp: undefined,\n })\n \"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (authStore.variant().with_otp && authStore.variant().create_new_user) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [data]=\"eMailData!\"\n (submitted)=\"authStore.updateAuthOtp({ code: $event.otp })\"\n >\n <m-section-form-item\n name=\"otp\"\n type=\"one-time-password\"\n label=\"one-time-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"next\"\n icon=\"chevron-right\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"resend\"\n icon=\"corner-left-up\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"authStore.createAuthOtp()\"\n />\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"\n authStore.patch({\n identity: undefined,\n otp: undefined,\n otpCounter: undefined,\n registerNewUser: undefined,\n resetPassword: undefined,\n showTerms: undefined,\n signUp: undefined,\n })\n \"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (\n authStore.variant().identity_exiest && !authStore.variant().reset_password && !authStore.variant().create_new_user\n ) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [validation]=\"signInValidation\"\n [data]=\"signInData!\"\n (formInitialized)=\"authStore.patch({ wrongPassword: undefined })\"\n (submitted)=\"authStore.updateAuthPassword({ password: btoa($event.password) })\"\n >\n <m-text-output label=\"signing-in-as\" [params]=\"activityTranslateParams()\" />\n <m-section-form-item\n name=\"password\"\n type=\"password\"\n label=\"password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"sign-in\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"success\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"authStore.patch({ identity: undefined })\"\n />\n <m-button\n label=\"reset\"\n icon=\"chevron-right\"\n [isRightIcon]=\"true\"\n color=\"textSecondary\"\n variant=\"ghost\"\n (clicked)=\"authStore.createAuthOtp()\"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (authStore.variant().reset_password && authStore.variant().with_otp) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [validation]=\"passwordValidation\"\n [data]=\"passwordData!\"\n (submitted)=\"authStore.createAuthPassword({ password: $event.confirm, code: $event.code })\"\n >\n <m-section-form-item\n name=\"code\"\n type=\"one-time-password\"\n label=\"one-time-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"resend\"\n icon=\"corner-left-up\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"authStore.createAuthOtp()\"\n />\n </m-section-button-group>\n <m-section-form-item\n name=\"password\"\n type=\"password\"\n label=\"new-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-form-item\n name=\"confirm\"\n type=\"password\"\n label=\"confirm-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"reset\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n </m-section-form>\n } @else if (authStore.variant().create_new_user && authStore.variant().identity_exiest) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [data]=\"signupData!\"\n (submitted)=\"\n authStore.createAuthSignup({\n firstName: $event.firstname,\n lastName: $event.lastname,\n dob: $event.dob,\n sex: $event.sex,\n password: btoa($event.password),\n })\n \"\n >\n <m-text-output label=\"signing-up-as\" [params]=\"activityTranslateParams()\" />\n <m-section-form-item\n name=\"firstname\"\n type=\"text\"\n label=\"first-name\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-form-item name=\"lastname\" type=\"text\" label=\"last-name\" placeholder=\"type-text\" [required]=\"true\" />\n <m-section-form-item name=\"dob\" type=\"date\" label=\"date-of-birth\" placeholder=\"type-text\" [required]=\"true\" />\n <m-section-form-item\n name=\"sex\"\n type=\"toggle_radio\"\n label=\"sex\"\n placeholder=\"type-text\"\n [required]=\"true\"\n value=\"male\"\n mOptions=\"sex\"\n />\n <m-section-form-item\n name=\"password\"\n type=\"password\"\n label=\"password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-form-item\n name=\"repassword\"\n type=\"password\"\n label=\"confirm-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"sign-up\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"success\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"\n authStore.patch({\n identity: undefined,\n otp: undefined,\n otpCounter: undefined,\n registerNewUser: undefined,\n resetPassword: undefined,\n showTerms: undefined,\n signUp: undefined,\n })\n \"\n />\n </m-section-button-group>\n </m-section-form>\n }\n </m-flex>\n</m-section>\n", styles: [":host{display:block;width:100%;box-sizing:border-box;padding-block:clamp(1.5rem,6vh,4rem)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: FlexComponent, selector: "m-flex", inputs: ["direction", "justify", "alignItems", "variant", "gap", "padding", "paddingX", "paddingY", "wrap", "inline", "fullHeight", "minHeight", "minWidth", "maxHeight", "maxWidth"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: LogoComponent, selector: "m-logo", inputs: ["animation", "alive", "variant", "interactive", "width", "padding", "border", "color"] }, { kind: "directive", type: OptionsSourceDirective, selector: "[mOptions]", inputs: ["mOptions"] }, { kind: "component", type: SectionButtonGroupComponent, selector: "m-section-button-group", inputs: ["vertical", "align", "variant", "size", "fullWidth"] }, { kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "alignX", "alignY", "size"], outputs: ["inView"] }, { kind: "component", type: SectionFormComponent, selector: "m-section-form, m-one-section-form", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "size", "autofocus", "data", "validation", "disabled", "fieldConfigs", "fieldRenderIds"], outputs: ["dataChange", "submitted", "formInitialized"] }, { kind: "component", type: SectionFormItemComponent, selector: "m-section-form-item, m-one-section-form-item", inputs: ["span", "labelOrientation", "gap", "readonly", "focused", "form", "options", "dir", "element", "data", "template", "aclResolver", "formValues", "type", "label", "placeholder", "params", "required", "disabled", "icon", "prefix", "suffix", "button", "buttonAction", "buttonAcl", "maxWidth", "acl", "testid", "color", "variant", "min", "max", "step", "length", "debounce", "dateFormat", "searchLabel", "vertical", "multiple", "multiSelect", "equalWidth", "iconOnly", "isCheckboxVisible", "enlarge", "optionsAsset", "accept", "maxSize", "dropZone", "readAs", "editor", "ratio", "width", "patterns", "patternMessage", "value"], outputs: ["valueChange", "act", "fieldKey"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "fontWeight", "label", "noTranslate", "params"], outputs: ["configChange", "clicked"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user", "firstName", "lastName", "profilePic"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17109
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AuthActivityPageComponent, isStandalone: true, selector: "m-auth-activity", ngImport: i0, template: "<m-section>\n <m-flex direction=\"column\" justify=\"center\" alignItems=\"center\" gap=\"2em\" minHeight=\"400px\">\n <m-logo color=\"mm\" width=\"5em\" padding=\"10px\" variant=\"grained\" />\n @if (authStore.variant().busy) {\n <m-icon color=\"mm\" size=\"4em\" name=\"loading-bars\" [one]=\"true\" />\n } @else if (!authStore.variant().identity_exiest && !authStore.variant().many_identifications) {\n <m-text-output [noTranslate]=\"false\" label=\"welcome-to-app?app=Magmonium\" />\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n [data]=\"emailData!\"\n (submitted)=\"authStore.patch({ email: $event.email }); authStore.createAuthEmail({ identity: $event.email })\"\n >\n <m-section-form-item\n name=\"email\"\n patterns=\"email\"\n type=\"text\"\n label=\"e-mail\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"next\"\n icon=\"chevron-right\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n </m-section-form>\n } @else if (!authStore.variant().identity_exiest && authStore.variant().many_identifications) {\n <m-text-output [noTranslate]=\"false\" label=\"welcome-to-app?app=Magmonium\" />\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n (dataChange)=\"selectUserCard($event.user)\"\n >\n <m-section-form-item\n name=\"user\"\n [span]=\"1\"\n patterns=\"email\"\n type=\"selectable_card\"\n label=\"select-user\"\n placeholder=\"type-text\"\n [required]=\"true\"\n [multiSelect]=\"false\"\n [vertical]=\"true\"\n [isCheckboxVisible]=\"false\"\n [data]=\"userCards()\"\n >\n <ng-template let-item=\"row\" let-index=\"index\">\n <m-user [firstName]=\"item.firstName\" [lastName]=\"item.lastName\">\n <m-text-output [label]=\"item.identity\" noTranslate />\n </m-user>\n </ng-template>\n </m-section-form-item>\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"or-try-new-user\"\n icon=\"chevron-left\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n (clicked)=\"authStore.patch({ identity: undefined, email: undefined })\"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (authStore.variant().with_show_term && !authStore.variant().create_new_user) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n (submitted)=\"authStore.createSignUpOtp()\"\n >\n <m-text-output\n align=\"center\"\n variant=\"footer\"\n label=\"by-signing-in-you-agree-to-magmonium-s-terms-of-service-terms-and-acknowledge-our-privacy-policy-privacy\"\n [params]=\"activityTranslateParams()\"\n />\n <m-section-form-item name=\"field_1\" type=\"checkbox\" label=\"i-agree\" placeholder=\"type-text\" [required]=\"true\" />\n <m-button\n label=\"confirm\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"success\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"\n authStore.patch({\n identity: undefined,\n otp: undefined,\n otpCounter: undefined,\n registerNewUser: undefined,\n resetPassword: undefined,\n showTerms: undefined,\n signUp: undefined,\n })\n \"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (authStore.variant().with_otp && authStore.variant().create_new_user) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [data]=\"eMailData!\"\n (submitted)=\"authStore.updateAuthOtp({ code: $event.otp })\"\n >\n <m-section-form-item\n name=\"otp\"\n type=\"one-time-password\"\n label=\"one-time-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"next\"\n icon=\"chevron-right\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"resend\"\n icon=\"corner-left-up\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"authStore.createAuthOtp()\"\n />\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"\n authStore.patch({\n identity: undefined,\n otp: undefined,\n otpCounter: undefined,\n registerNewUser: undefined,\n resetPassword: undefined,\n showTerms: undefined,\n signUp: undefined,\n })\n \"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (\n authStore.variant().identity_exiest && !authStore.variant().reset_password && !authStore.variant().create_new_user\n ) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [validation]=\"signInValidation\"\n [data]=\"signInData!\"\n (formInitialized)=\"authStore.patch({ wrongPassword: undefined })\"\n (submitted)=\"authStore.updateAuthPassword({ password: btoa($event.password) })\"\n >\n <m-text-output label=\"signing-in-as\" [params]=\"activityTranslateParams()\" />\n <m-section-form-item\n name=\"password\"\n type=\"password\"\n label=\"password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"sign-in\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"success\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"authStore.patch({ identity: undefined })\"\n />\n <m-button\n label=\"reset\"\n icon=\"chevron-right\"\n [isRightIcon]=\"true\"\n color=\"textSecondary\"\n variant=\"ghost\"\n (clicked)=\"authStore.createAuthOtp()\"\n />\n </m-section-button-group>\n </m-section-form>\n } @else if (authStore.variant().reset_password && authStore.variant().with_otp) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [validation]=\"passwordValidation\"\n [data]=\"passwordData!\"\n (submitted)=\"authStore.createAuthPassword({ password: $event.confirm, code: $event.code })\"\n >\n <m-section-form-item\n name=\"code\"\n type=\"one-time-password\"\n label=\"one-time-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"resend\"\n icon=\"corner-left-up\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"authStore.createAuthOtp()\"\n />\n </m-section-button-group>\n <m-section-form-item\n name=\"password\"\n type=\"password\"\n label=\"new-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-form-item\n name=\"confirm\"\n type=\"password\"\n label=\"confirm-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"reset\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"mm\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n </m-section-form>\n } @else if (authStore.variant().create_new_user && authStore.variant().identity_exiest) {\n <m-section-form\n minWidth=\"320px\"\n maxWidth=\"320px\"\n label=\"e-mail\"\n subtitle=\"type-text\"\n align=\"center\"\n [data]=\"signupData!\"\n (submitted)=\"\n authStore.createAuthSignup({\n firstName: $event.firstname,\n lastName: $event.lastname,\n dob: $event.dob,\n sex: $event.sex,\n password: btoa($event.password),\n })\n \"\n >\n <m-text-output label=\"signing-up-as\" [params]=\"activityTranslateParams()\" />\n <m-section-form-item\n name=\"firstname\"\n type=\"text\"\n label=\"first-name\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-form-item name=\"lastname\" type=\"text\" label=\"last-name\" placeholder=\"type-text\" [required]=\"true\" />\n <m-section-form-item name=\"dob\" type=\"date\" label=\"date-of-birth\" placeholder=\"type-text\" [required]=\"true\" />\n <m-section-form-item\n name=\"sex\"\n type=\"toggle_radio\"\n label=\"sex\"\n placeholder=\"type-text\"\n [required]=\"true\"\n value=\"male\"\n mOptions=\"sex\"\n />\n <m-section-form-item\n name=\"password\"\n type=\"password\"\n label=\"password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-section-form-item\n name=\"repassword\"\n type=\"password\"\n label=\"confirm-password\"\n placeholder=\"type-text\"\n [required]=\"true\"\n />\n <m-button\n label=\"sign-up\"\n icon=\"check\"\n isSubmit\n [isRightIcon]=\"true\"\n color=\"success\"\n [fullWidth]=\"true\"\n variant=\"primary\"\n />\n <m-section-button-group [fullWidth]=\"true\">\n <m-button\n label=\"back\"\n icon=\"chevron-left\"\n color=\"mm\"\n variant=\"ghost\"\n (clicked)=\"\n authStore.patch({\n identity: undefined,\n otp: undefined,\n otpCounter: undefined,\n registerNewUser: undefined,\n resetPassword: undefined,\n showTerms: undefined,\n signUp: undefined,\n })\n \"\n />\n </m-section-button-group>\n </m-section-form>\n }\n </m-flex>\n</m-section>\n", styles: [":host{display:block;width:100%;box-sizing:border-box;padding-block:clamp(1.5rem,6vh,4rem)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: FlexComponent, selector: "m-flex", inputs: ["direction", "justify", "alignItems", "variant", "gap", "padding", "paddingX", "paddingY", "wrap", "inline", "fullHeight", "minHeight", "minWidth", "maxHeight", "maxWidth"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: LogoComponent, selector: "m-logo", inputs: ["animation", "alive", "variant", "interactive", "width", "padding", "border", "color"] }, { kind: "directive", type: OptionsSourceDirective, selector: "[mOptions]", inputs: ["mOptions"] }, { kind: "component", type: SectionButtonGroupComponent, selector: "m-section-button-group", inputs: ["vertical", "align", "variant", "size", "fullWidth"] }, { kind: "component", type: SectionComponent, selector: "m-section", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "alignX", "alignY", "size"], outputs: ["inView"] }, { kind: "component", type: SectionFormComponent, selector: "m-section-form, m-one-section-form", inputs: ["variant", "maxWidth", "heightMode", "maxHeight", "height", "align", "size", "autofocus", "data", "validation", "disabled", "fieldConfigs", "fieldRenderIds"], outputs: ["dataChange", "submitted", "formInitialized"] }, { kind: "component", type: SectionFormItemComponent, selector: "m-section-form-item, m-one-section-form-item", inputs: ["span", "labelOrientation", "gap", "readonly", "focused", "form", "options", "dir", "element", "data", "template", "aclResolver", "formValues", "type", "label", "placeholder", "params", "required", "disabled", "icon", "prefix", "suffix", "button", "buttonAction", "buttonAcl", "maxWidth", "acl", "testid", "color", "variant", "min", "max", "step", "length", "debounce", "dateFormat", "searchLabel", "vertical", "multiple", "multiSelect", "equalWidth", "iconOnly", "isCheckboxVisible", "enlarge", "optionsAsset", "accept", "maxSize", "dropZone", "readAs", "editor", "ratio", "width", "patterns", "patternMessage", "value"], outputs: ["valueChange", "act", "fieldKey", "dataChange"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "fontWeight", "label", "noTranslate", "params"], outputs: ["configChange", "clicked"] }, { kind: "component", type: UserComponent, selector: "m-user", inputs: ["id", "user", "firstName", "lastName", "profilePic"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17062
17110
|
}
|
|
17063
17111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AuthActivityPageComponent, decorators: [{
|
|
17064
17112
|
type: Component,
|
|
@@ -21165,7 +21213,7 @@ class WrapperInputComponent extends ConfigComponent {
|
|
|
21165
21213
|
break;
|
|
21166
21214
|
}
|
|
21167
21215
|
case InputType.TOGGLE: {
|
|
21168
|
-
const { ToggleInputComponent } = await import('./magmonium-one-toggle-
|
|
21216
|
+
const { ToggleInputComponent } = await import('./magmonium-one-toggle-DAMTKWH2.mjs');
|
|
21169
21217
|
this.createDynamicComponent(seq, ToggleInputComponent, [], true);
|
|
21170
21218
|
break;
|
|
21171
21219
|
}
|
|
@@ -21177,12 +21225,12 @@ class WrapperInputComponent extends ConfigComponent {
|
|
|
21177
21225
|
break;
|
|
21178
21226
|
}
|
|
21179
21227
|
case InputType.PASSWORD: {
|
|
21180
|
-
const { PasswordInputComponent } = await import('./magmonium-one-password-
|
|
21228
|
+
const { PasswordInputComponent } = await import('./magmonium-one-password-wHCuTNqi.mjs');
|
|
21181
21229
|
this.createDynamicComponent(seq, PasswordInputComponent);
|
|
21182
21230
|
break;
|
|
21183
21231
|
}
|
|
21184
21232
|
case InputType.OTP: {
|
|
21185
|
-
const { OtpInputComponent } = await import('./magmonium-one-otp-
|
|
21233
|
+
const { OtpInputComponent } = await import('./magmonium-one-otp-ClQI3X80.mjs');
|
|
21186
21234
|
this.createDynamicComponent(seq, OtpInputComponent);
|
|
21187
21235
|
break;
|
|
21188
21236
|
}
|
|
@@ -22889,7 +22937,7 @@ class FileUploadInputComponent extends BaseInputComponent {
|
|
|
22889
22937
|
const modalStore = this.modalStore;
|
|
22890
22938
|
if (!modalStore)
|
|
22891
22939
|
return undefined;
|
|
22892
|
-
const { ImageEditorComponent } = await import('./magmonium-one-image-editor-
|
|
22940
|
+
const { ImageEditorComponent } = await import('./magmonium-one-image-editor-CO4maKe0.mjs');
|
|
22893
22941
|
const ratio = String(this.config()?.ratio ?? '');
|
|
22894
22942
|
return new Promise((resolve) => {
|
|
22895
22943
|
const modalRef = new ModalRef();
|
|
@@ -36595,4 +36643,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
36595
36643
|
*/
|
|
36596
36644
|
|
|
36597
36645
|
export { ColComponent as $, ACCESS_DOMAINS as A, ButtonComponent as B, Assets as C, AuthActivityPageComponent as D, AuthApiService as E, AuthStore as F, AutosizeDirective as G, HeaderComponent$1 as H, InputType as I, BadgeComponent as J, BandingComponent as K, LabelComponent as L, MODAL_REF as M, BaseArrayInputComponent as N, BaseRootWebComponent as O, BaseWebComponent as P, ButtonGroupComponent as Q, RangeInputComponent as R, COMPONENT_INPUT_REGISTRY as S, TranslatePipe as T, CardComponent as U, CardWrapperComponent as V, CarouselComponent as W, ChartComponent as X, ChatBubbleComponent as Y, CheckboxInputComponent as Z, ClearableInputComponent as _, MIN_ZOOM as a, MHeroComponent as a$, ColorPickerInputComponent as a0, CommentItemComponent as a1, CommentsApiService as a2, CommentsComponent as a3, CommentsStore as a4, CompactNumberPipe as a5, ComponentInputComponent as a6, ComponentStepperComponent as a7, ConfigComponent as a8, ConfirmComponent as a9, FileUploadDirective as aA, FileUploadInputComponent as aB, FlexComponent as aC, FlexItemComponent as aD, FormGroupComponent as aE, FrameComponent as aF, FreezeService as aG, GRID_BREAKPOINTS as aH, GetNavService as aI, HighlightDirective as aJ, HttpService as aK, ICON_SOURCE as aL, IS_SIDE_PANEL as aM, IconComponent as aN, ImgComponent as aO, InstrumentScoreComponent as aP, InterceptorObservables as aQ, JumbotronComponent as aR, KeyValueComponent as aS, LAYOUT_ASSET_FOLDER as aT, LOGIN_COMPONENT as aU, LOGIN_STORE as aV, LanguageComponent as aW, ListComponent as aX, LogoComponent as aY, MAG_SOCKET_EVENT as aZ, MHeroColorDirective as a_, ContextMenuComponent as aa, CustomIconClass as ab, CustomIconEditComponent as ac, DEFAULT_FILTER_RANGE_MODE as ad, DEFAULT_FILTER_VARIANT as ae, DEFAULT_NAV_PARAM as af, DEFAULT_NAV_SEGMENT as ag, DEFAULT_SIZE as ah, DashboardCardComponent as ai, DateInputComponent as aj, DatePickerComponent as ak, DeviceService as al, DomService as am, Domain as an, DotGridComponent as ao, DragListDirective as ap, DragListItemDirective as aq, DraggableDirective as ar, DropdownInputComponent as as, FILTER_GROUP_CONTEXT as at, FILTER_RANGE_MODES as au, FILTER_VARIANTS as av, FLEX_VARIANTS as aw, FOLDER_PICK_LISTENER as ax, FORM_ASSET_FOLDER as ay, FileService as az, MAX_ZOOM as b, SEARCH_RESULTS_EVENT as b$, MODAL_STORE_REF as b0, MRefDirective as b1, MStepComponent as b2, MURL_PARAM as b3, MURL_SEP as b4, ManifestEnrichmentService as b5, MenuComponent as b6, ModalDirective as b7, ModalRef as b8, ModalStore as b9, OVERLAY_WIDGETS as bA, OneApp as bB, OptionsSourceDirective as bC, OverlayBodyComponent as bD, OverlayRef as bE, OverlayService as bF, PLATFORM_BUTTON_NAV_IDS as bG, PLATFORM_EXTENSIBLE_NAV_IDS as bH, PLATFORM_NAV_MAP as bI, PLATFORM_ROOT_CHILDREN as bJ, PaginationComponent as bK, PanelComponent as bL, PercentagePipe as bM, PlaygroundComponent as bN, PositionDirective as bO, PwaInstallComponent as bP, ROOT_NAV$1 as bQ, RadioGroupComponent as bR, RadioInputComponent as bS, RatingInputComponent as bT, ReactiveElementComponent as bU, RemoteComponent as bV, RemoteLoaderService as bW, ResizeElementComponent as bX, RouteContainer as bY, RowComponent as bZ, SEARCH_QUERY as b_, MoneyPipe as ba, MultiRangeInputComponent as bb, MurlUrlSerializer as bc, NAV_DEFAULT_MURL as bd, NAV_ID_SEP as be, NAV_MAIN_BUTTONS as bf, NAV_SEGMENT_RE as bg, NAV_STORE_REF as bh, NAV_WC_COMPONENTS as bi, NAV_WIDGET_MAP as bj, NavComponent as bk, NavDetailsComponent as bl, NavHeaderComponent as bm, NavMenuComponent as bn, NavStore as bo, NavTrailComponent as bp, NothingComponent as bq, NotificationElementComponent as br, NotificationGroupComponent as bs, NotificationPopupComponent as bt, NotificationService as bu, NotificationStore as bv, NotificationType as bw, NotificationWidgetComponent as bx, ONE_ASSET_BASE_URL as by, OPTIONS_SOURCE as bz, cropRect as c, ThemeService as c$, SECTION_ACCORDION_GROUP as c0, SECTION_FORM_CONTEXT as c1, SHARED_ICONS as c2, SIZE_CONTEXT as c3, ScoreComponent as c4, ScrollComponent as c5, ScrollService as c6, SearchPanelComponent as c7, SearchStore as c8, SearchUserPanelComponent as c9, SettingsSearchBarComponent as cA, SettingsSearchService as cB, ShapeComponent as cC, SharedStoreRegistry as cD, SidePanelDirective as cE, Size as cF, SocketStore as cG, SortComponent as cH, StatComponent as cI, StepComponent as cJ, StepperComponent as cK, StepsComponent as cL, StorageService as cM, StrokeLinecap as cN, StrokeLinejoin as cO, SummaryComponent as cP, SvgGeneratorComponent as cQ, SvgGeneratorService as cR, SvgService as cS, TOTAL_COLUMNS as cT, TRANSLATION_SOURCE as cU, TableComponent as cV, TechnicalMeterComponent as cW, TextInputComponent as cX, TextareaInputComponent as cY, ThemeComponent as cZ, ThemeDataService as c_, 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, SectionTabsComponent as cv, SectionToggleComponent as cw, SectionToggleItemDirective as cx, SelectableCardInputComponent as cy, SelectorDirective as cz, drawFramed as d, filterTreeGridRows as d$, ThemeStore as d0, TimeAgoPipe as d1, TimelineComponent as d2, ToggleButtonComponent as d3, ToggleInputComponent as d4, ToggleRadioInputComponent as d5, ToolTipDirective as d6, TooltipComponent as d7, TranslateService as d8, TreeGridComponent as d9, cellText as dA, checkFilterCondition as dB, childNavId as dC, classListSignal as dD, coerceSize as dE, cornerEdge as dF, cornerSide as dG, createMap as dH, createPlatformNavMap as dI, deriveAvatarGradient as dJ, deriveContrastColor as dK, deriveOppositeColor as dL, derivePropertyName as dM, emailValidation as dN, evaluate as dO, evaluateBool as dP, filterHoldsList as dQ, filterHoldsOneBound as dR, filterHoldsOptions as dS, filterHoldsRange as dT, filterList as dU, filterNumber as dV, filterNumberList as dW, filterOne as dX, filterPanelOf as dY, filterPanelWidth as dZ, filterRange as d_, URL_SEP as da, USER_STORE_REF as db, USER_TAB_MAP as dc, UniverseComponent as dd, UserApiService as de, UserAvatarComponent as df, UserComponent as dg, UserNavComponent as dh, UserSettingsComponent as di, UserStore as dj, WC_ROUTE_CHANGED_EVENT as dk, WC_SEARCH_GROUPS as dl, WIN_USER_TAB_HOOK as dm, WIN_USER_TAB_KEY as dn, WatermarkComponent as dp, WcRouterStore as dq, WrapperInputComponent as dr, anchorNavId as ds, applyColorsToElement as dt, assetOptions as du, bootstrapMagApp as dv, bootstrapPwaInstall as dw, buildWcBaseUrl as dx, calculateLuminance as dy, calculateRanks as dz, encodeFramed as e, navParamOf as e$, filterValueList as e0, filterValues as e1, flattenTreeGridRows as e2, formatBadgeCount as e3, fullName as e4, generateClipPath as e5, generateTransform as e6, getClassList as e7, getProperty as e8, getScrollParent as e9, isSize as eA, isTierPreview as eB, isUrlLocalhost as eC, isValidNavId as eD, isValidNavSegment as eE, isWebComponent as eF, linkToId as eG, linkToNav as eH, loadingActions as eI, mInterceptor as eJ, manualValidation as eK, matchFieldValidation as eL, maxLengthValidation as eM, maxValidation as eN, mergePlatformNav as eO, mergeUnique as eP, mergeUniqueBy as eQ, mergeUniqueWith as eR, minAgeValidation as eS, minLengthValidation as eT, minValidation as eU, miniMarkToHtml as eV, navIdChain as eW, navIdFor as eX, navIdSegment as eY, navIdToRoutePath as eZ, navIdToSegments as e_, getTierFromPreviewPath as ea, getTreeGridRow as eb, getUniqueId as ec, getValue as ed, hasErrorComputed as ee, hexToRgb as ef, hslToRgb$1 as eg, initMagmoniumApp as eh, initialNotificationState as ei, initialState$2 as ej, initials as ek, injectAuthenticate as el, injectInstallApp as em, injectParentSize as en, injectScrollSticky as eo, isButtonName as ep, isCancelledComputed as eq, isExtensiblePlatformNavId as er, isJson as es, isLoadingComputed as et, isLocalhost as eu, isNavInstanceConfig as ev, isNavMenuConfig as ew, isNavRowsConfig as ex, isNavVisibilityConfig as ey, isPlatformNavId as ez, clampFraming as f, navToId as f0, navVisibilityGuard as f1, normalizeAssetOptions as f2, parentNavId as f3, parseAddress as f4, parseColor as f5, parsePatternNames as f6, patternValidation as f7, patternsValidation as f8, platformNavWidgets as f9, samePatterns as fA, segmentsToNavId as fB, setProperty as fC, setTreeGridChildren as fD, settingsWidgets as fE, shouldShowBadge as fF, splitNavId as fG, splitOnMatch as fH, stringToColor as fI, toAttrBool as fJ, toAttrNumber as fK, toCssLength as fL, toHostNavId as fM, toLength$1 as fN, toLocalNavId as fO, toggleTreeGridRow as fP, unfetchedPlatformNav as fQ, urlValidation as fR, privateGuard as fa, processImageToSvg as fb, provideAppContext as fc, provideMagAppConfig as fd, provideMagWcConfig as fe, provideMagWcRoutes as ff, provideModalComponents as fg, provideMurlUrlSerializer as fh, provideNavWidgets as fi, provideOverlayWidgets as fj, providePlatformNavWidgets as fk, provideSearch as fl, provideSizeContext as fm, provideUserTabs as fn, publicGuard as fo, readFieldPatterns as fp, renderAddress as fq, requiredValidation as fr, resolveConfigAsset as fs, resolveIconSize as ft, resolvePallet as fu, resolvePatternRules as fv, resolveSize as fw, rgbToHex as fx, rgbToHsl as fy, rowHasChildren as fz, BaseInputComponent as g, BaseTextInputComponent as h, initialFraming as i, TextOutputComponent as j, IS_DESIGN_MODE as k, APP_CONTEXT_REF as l, ASSET_BASE_URL as m, AccordionBodyDirective as n, outputSize as o, parseRatio as p, AccordionComponent as q, renameForType as r, AccordionGroupComponent as s, ActionComponent as t, AnimatedGraphsComponent as u, AppCardComponent as v, AppRelationType as w, AppTileComponent as x, AssetStore as y, AssetUrlPipe as z };
|
|
36598
|
-
//# sourceMappingURL=magmonium-one-magmonium-one-
|
|
36646
|
+
//# sourceMappingURL=magmonium-one-magmonium-one-DHWHv1xG.mjs.map
|