@magmonium/one 0.1.14 → 0.1.16
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-magmonium-one-BGcwClRr.mjs → magmonium-one-magmonium-one-BtEA90hr.mjs} +76 -33
- package/fesm2022/{magmonium-one-magmonium-one-BGcwClRr.mjs.map → magmonium-one-magmonium-one-BtEA90hr.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-otp-BhQvfyaM.mjs → magmonium-one-otp-DBgdQmDG.mjs} +2 -2
- package/fesm2022/{magmonium-one-otp-BhQvfyaM.mjs.map → magmonium-one-otp-DBgdQmDG.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-BJyjGWvN.mjs → magmonium-one-password-jNzbCtyz.mjs} +2 -2
- package/fesm2022/{magmonium-one-password-BJyjGWvN.mjs.map → magmonium-one-password-jNzbCtyz.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-toggle-UVuimY8O.mjs → magmonium-one-toggle-DEkZeqYY.mjs} +2 -2
- package/fesm2022/{magmonium-one-toggle-UVuimY8O.mjs.map → magmonium-one-toggle-DEkZeqYY.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +68 -38
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { signal, viewChildren, computed, inject, effect, afterRenderEffect, untracked, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
-
import { a as BaseTextInputComponent, I as IS_DESIGN_MODE, L as LabelComponent, b as TextOutputComponent } from './magmonium-one-magmonium-one-
|
|
3
|
+
import { a as BaseTextInputComponent, I as IS_DESIGN_MODE, L as LabelComponent, b as TextOutputComponent } from './magmonium-one-magmonium-one-BtEA90hr.mjs';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
|
|
6
6
|
class OtpInputComponent extends BaseTextInputComponent {
|
|
@@ -196,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
196
196
|
}], ctorParameters: () => [], propDecorators: { otpInputs: [{ type: i0.ViewChildren, args: ['otpInput', { isSignal: true }] }] } });
|
|
197
197
|
|
|
198
198
|
export { OtpInputComponent };
|
|
199
|
-
//# sourceMappingURL=magmonium-one-otp-
|
|
199
|
+
//# sourceMappingURL=magmonium-one-otp-DBgdQmDG.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-otp-BhQvfyaM.mjs","sources":["../../../../libs/one/src/lib/shared/ui/input/ui/text/otp.ts"],"sourcesContent":["import {\n afterRenderEffect,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n signal,\n untracked,\n viewChildren,\n} from '@angular/core';\nimport { LabelComponent } from '../label';\nimport { TextOutputComponent } from '../../../text-output';\nimport { BaseTextInputComponent } from './base-text';\nimport { CommonModule } from '@angular/common';\nimport { OtpInput } from '../../model/input';\nimport { IS_DESIGN_MODE } from '../../../../config/tokens';\n\n@Component({\n selector: 'm-otp-input',\n template: `\n @if (otpConfig(); as otp) {\n <m-label\n [for]=\"otp.name\"\n [placeholder]=\"otp.label\"\n [required]=\"required()\"\n [disabled]=\"isDisabled()\"\n />\n <div class=\"otp-container\">\n @for (item of otpArray(); track $index) {\n <input\n [id]=\"$index === 0 ? (otp.name ?? '') : ''\"\n #otpInput\n type=\"text\"\n maxlength=\"1\"\n [class.error]=\"showErrors()\"\n [disabled]=\"isDisabled()\"\n [value]=\"otpValues()[$index] || ''\"\n (input)=\"onInput($event, $index)\"\n (keydown)=\"onKeyDown($event, $index)\"\n (paste)=\"onPaste($event)\"\n />\n }\n </div>\n @if (showErrors()) {\n @for (error of errors(); track $index) {\n <m-text-output\n variant=\"footer\"\n color=\"error\"\n [label]=\"error.message\"\n />\n }\n }\n }\n `,\n styleUrl: './otp.sass',\n imports: [LabelComponent, TextOutputComponent, CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OtpInputComponent extends BaseTextInputComponent<OtpInput> {\n otpValues = signal<string[]>([]);\n otpInputs = viewChildren<ElementRef<HTMLInputElement>>('otpInput');\n protected readonly otpConfig = computed(() => this.config() as OtpInput);\n otpArray = computed(() => {\n const length = this.otpConfig()?.length || 6;\n return Array(length).fill(0);\n });\n\n // Inert on the Canvas — other inputs stay idle because they never autofocus;\n // OTP used to steal focus and look live while composing (DesignMode).\n private readonly isDesignMode = !!inject(IS_DESIGN_MODE, { optional: true });\n protected readonly isDisabled = computed(\n () => this.isDesignMode || this.disabled()\n );\n\n // BaseText answers `focused` by focusing its `#inputElement`, and an OTP has\n // none — it has a row of boxes. Without this the caret never lands on an OTP\n // field, so the form that opens on one (login's verification step) reads as\n // dead until the User clicks it.\n private hasAutofocused = false;\n\n constructor() {\n super();\n effect(() => {\n const length = this.otpConfig()?.length || 6;\n this.otpValues.set(Array(length).fill(''));\n });\n\n afterRenderEffect(() => {\n const inputs = this.otpInputs();\n if (!this.focused() || !inputs.length || this.hasAutofocused) return;\n this.hasAutofocused = true;\n untracked(() => this.focusInput(0));\n });\n }\n\n onInput = (event: Event, index: number): void => {\n if (this.isDisabled()) return;\n const input = event.target as HTMLInputElement;\n let value = input.value;\n\n value = value.replace(/[^a-zA-Z0-9]/g, '');\n\n if (value.length > 1) {\n value = value.slice(-1);\n }\n\n input.value = value.toUpperCase();\n\n const newValues = [...this.otpValues()];\n newValues[index] = value.toUpperCase();\n this.otpValues.set(newValues);\n\n const length = this.otpConfig()?.length || 6;\n if (value && index < length - 1) {\n this.focusInput(index + 1);\n }\n this.updateValue();\n };\n\n onKeyDown = (event: KeyboardEvent, index: number): void => {\n if (this.isDisabled()) return;\n const input = event.target as HTMLInputElement;\n const length = this.otpConfig()?.length || 6;\n\n const isAlphaNumeric = /^[a-zA-Z0-9]$/.test(event.key);\n const isControlKey = [\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Tab',\n ].includes(event.key);\n\n if (!isAlphaNumeric && !isControlKey) {\n event.preventDefault();\n return;\n }\n\n if (event.key === 'Backspace') {\n if (!input.value && index > 0) {\n this.focusInput(index - 1);\n }\n }\n if (event.key === 'ArrowLeft' && index > 0) {\n event.preventDefault();\n this.focusInput(index - 1);\n }\n if (event.key === 'ArrowRight' && index < length - 1) {\n event.preventDefault();\n this.focusInput(index + 1);\n }\n };\n\n onPaste = (event: ClipboardEvent): void => {\n if (this.isDisabled()) return;\n event.preventDefault();\n event.stopPropagation();\n\n const length = this.otpConfig()?.length || 6;\n const pastedData = event.clipboardData?.getData('text') || '';\n\n const alphanumeric = pastedData\n .replace(/[^a-zA-Z0-9]/g, '')\n .slice(0, length);\n\n if (alphanumeric.length > 0) {\n const newValues = Array(length).fill('');\n alphanumeric.split('').forEach((char, index) => {\n if (index < length) {\n newValues[index] = char.toUpperCase();\n }\n });\n\n this.otpValues.set(newValues);\n this.updateValue();\n\n const focusIndex = Math.min(alphanumeric.length, length - 1);\n setTimeout(() => this.focusInput(focusIndex), 0);\n }\n };\n\n private focusInput(index: number): void {\n if (this.isDisabled()) return;\n const inputs = this.otpInputs();\n if (inputs[index]) {\n inputs[index].nativeElement.focus();\n }\n }\n\n private updateValue(): void {\n const otpValue = this.otpValues().join('');\n this.setValue(otpValue);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"magmonium-one-otp-DBgdQmDG.mjs","sources":["../../../../libs/one/src/lib/shared/ui/input/ui/text/otp.ts"],"sourcesContent":["import {\n afterRenderEffect,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n signal,\n untracked,\n viewChildren,\n} from '@angular/core';\nimport { LabelComponent } from '../label';\nimport { TextOutputComponent } from '../../../text-output';\nimport { BaseTextInputComponent } from './base-text';\nimport { CommonModule } from '@angular/common';\nimport { OtpInput } from '../../model/input';\nimport { IS_DESIGN_MODE } from '../../../../config/tokens';\n\n@Component({\n selector: 'm-otp-input',\n template: `\n @if (otpConfig(); as otp) {\n <m-label\n [for]=\"otp.name\"\n [placeholder]=\"otp.label\"\n [required]=\"required()\"\n [disabled]=\"isDisabled()\"\n />\n <div class=\"otp-container\">\n @for (item of otpArray(); track $index) {\n <input\n [id]=\"$index === 0 ? (otp.name ?? '') : ''\"\n #otpInput\n type=\"text\"\n maxlength=\"1\"\n [class.error]=\"showErrors()\"\n [disabled]=\"isDisabled()\"\n [value]=\"otpValues()[$index] || ''\"\n (input)=\"onInput($event, $index)\"\n (keydown)=\"onKeyDown($event, $index)\"\n (paste)=\"onPaste($event)\"\n />\n }\n </div>\n @if (showErrors()) {\n @for (error of errors(); track $index) {\n <m-text-output\n variant=\"footer\"\n color=\"error\"\n [label]=\"error.message\"\n />\n }\n }\n }\n `,\n styleUrl: './otp.sass',\n imports: [LabelComponent, TextOutputComponent, CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OtpInputComponent extends BaseTextInputComponent<OtpInput> {\n otpValues = signal<string[]>([]);\n otpInputs = viewChildren<ElementRef<HTMLInputElement>>('otpInput');\n protected readonly otpConfig = computed(() => this.config() as OtpInput);\n otpArray = computed(() => {\n const length = this.otpConfig()?.length || 6;\n return Array(length).fill(0);\n });\n\n // Inert on the Canvas — other inputs stay idle because they never autofocus;\n // OTP used to steal focus and look live while composing (DesignMode).\n private readonly isDesignMode = !!inject(IS_DESIGN_MODE, { optional: true });\n protected readonly isDisabled = computed(\n () => this.isDesignMode || this.disabled()\n );\n\n // BaseText answers `focused` by focusing its `#inputElement`, and an OTP has\n // none — it has a row of boxes. Without this the caret never lands on an OTP\n // field, so the form that opens on one (login's verification step) reads as\n // dead until the User clicks it.\n private hasAutofocused = false;\n\n constructor() {\n super();\n effect(() => {\n const length = this.otpConfig()?.length || 6;\n this.otpValues.set(Array(length).fill(''));\n });\n\n afterRenderEffect(() => {\n const inputs = this.otpInputs();\n if (!this.focused() || !inputs.length || this.hasAutofocused) return;\n this.hasAutofocused = true;\n untracked(() => this.focusInput(0));\n });\n }\n\n onInput = (event: Event, index: number): void => {\n if (this.isDisabled()) return;\n const input = event.target as HTMLInputElement;\n let value = input.value;\n\n value = value.replace(/[^a-zA-Z0-9]/g, '');\n\n if (value.length > 1) {\n value = value.slice(-1);\n }\n\n input.value = value.toUpperCase();\n\n const newValues = [...this.otpValues()];\n newValues[index] = value.toUpperCase();\n this.otpValues.set(newValues);\n\n const length = this.otpConfig()?.length || 6;\n if (value && index < length - 1) {\n this.focusInput(index + 1);\n }\n this.updateValue();\n };\n\n onKeyDown = (event: KeyboardEvent, index: number): void => {\n if (this.isDisabled()) return;\n const input = event.target as HTMLInputElement;\n const length = this.otpConfig()?.length || 6;\n\n const isAlphaNumeric = /^[a-zA-Z0-9]$/.test(event.key);\n const isControlKey = [\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Tab',\n ].includes(event.key);\n\n if (!isAlphaNumeric && !isControlKey) {\n event.preventDefault();\n return;\n }\n\n if (event.key === 'Backspace') {\n if (!input.value && index > 0) {\n this.focusInput(index - 1);\n }\n }\n if (event.key === 'ArrowLeft' && index > 0) {\n event.preventDefault();\n this.focusInput(index - 1);\n }\n if (event.key === 'ArrowRight' && index < length - 1) {\n event.preventDefault();\n this.focusInput(index + 1);\n }\n };\n\n onPaste = (event: ClipboardEvent): void => {\n if (this.isDisabled()) return;\n event.preventDefault();\n event.stopPropagation();\n\n const length = this.otpConfig()?.length || 6;\n const pastedData = event.clipboardData?.getData('text') || '';\n\n const alphanumeric = pastedData\n .replace(/[^a-zA-Z0-9]/g, '')\n .slice(0, length);\n\n if (alphanumeric.length > 0) {\n const newValues = Array(length).fill('');\n alphanumeric.split('').forEach((char, index) => {\n if (index < length) {\n newValues[index] = char.toUpperCase();\n }\n });\n\n this.otpValues.set(newValues);\n this.updateValue();\n\n const focusIndex = Math.min(alphanumeric.length, length - 1);\n setTimeout(() => this.focusInput(focusIndex), 0);\n }\n };\n\n private focusInput(index: number): void {\n if (this.isDisabled()) return;\n const inputs = this.otpInputs();\n if (inputs[index]) {\n inputs[index].nativeElement.focus();\n }\n }\n\n private updateValue(): void {\n const otpValue = this.otpValues().join('');\n this.setValue(otpValue);\n }\n}\n"],"names":[],"mappings":"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"}
|
package/fesm2022/{magmonium-one-password-BJyjGWvN.mjs → magmonium-one-password-jNzbCtyz.mjs}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { signal, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
-
import { a as BaseTextInputComponent, L as LabelComponent, b as TextOutputComponent, c as ButtonComponent, T as TranslatePipe } from './magmonium-one-magmonium-one-
|
|
3
|
+
import { a as BaseTextInputComponent, L as LabelComponent, b as TextOutputComponent, c as ButtonComponent, T as TranslatePipe } from './magmonium-one-magmonium-one-BtEA90hr.mjs';
|
|
4
4
|
|
|
5
5
|
class PasswordInputComponent extends BaseTextInputComponent {
|
|
6
6
|
isPassword = signal(true, ...(ngDevMode ? [{ debugName: "isPassword" }] : /* istanbul ignore next */ []));
|
|
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
100
100
|
}] });
|
|
101
101
|
|
|
102
102
|
export { PasswordInputComponent };
|
|
103
|
-
//# sourceMappingURL=magmonium-one-password-
|
|
103
|
+
//# sourceMappingURL=magmonium-one-password-jNzbCtyz.mjs.map
|
package/fesm2022/{magmonium-one-password-BJyjGWvN.mjs.map → magmonium-one-password-jNzbCtyz.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-password-
|
|
1
|
+
{"version":3,"file":"magmonium-one-password-jNzbCtyz.mjs","sources":["../../../../libs/one/src/lib/shared/ui/input/ui/text/password.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n signal,\n} from '@angular/core';\nimport { LabelComponent } from '../label';\nimport { TextOutputComponent } from '../../../text-output';\nimport { BaseTextInputComponent } from './base-text';\nimport { ButtonComponent } from '../../../button/ui/button';\nimport { TranslatePipe } from '../../../../pipe';\n\n@Component({\n selector: 'm-password-input',\n template: `\n @if (config(); as text) {\n <m-label\n [for]=\"text.name\"\n [placeholder]=\"text.label\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n />\n <div class=\"input-wrapper\">\n <input\n [id]=\"text.name ?? ''\"\n [value]=\"value()\"\n #inputElement\n [class.error]=\"showErrors()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"(text.placeholder ?? '') | translate\"\n (input)=\"onInput($event)\"\n (focus)=\"isFocused.set(true)\"\n (blur)=\"isFocused.set(false); touched.set(true)\"\n [type]=\"type()\"\n />\n <m-one-button\n type=\"button\"\n [disabled]=\"disabled()\"\n [name]=\"button()\"\n [color]=\"iconColor()\"\n (clicked)=\"toggleType()\"\n />\n </div>\n @if (showErrors()) {\n @for (error of errors(); track $index) {\n <m-text-output\n variant=\"footer\"\n color=\"error\"\n [label]=\"error.message\"\n />\n }\n }\n }\n `,\n imports: [LabelComponent, TextOutputComponent, ButtonComponent, TranslatePipe],\n styleUrl: './password.sass',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PasswordInputComponent extends BaseTextInputComponent {\n isPassword = signal<boolean>(true);\n type = computed(() => (this.isPassword() ? 'password' : 'text'));\n button = computed(() => (!this.isPassword() ? 'eye' : 'eye_close'));\n\n protected toggleType() {\n this.isPassword.update((now) => !now);\n }\n\n protected onInput(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.setValue(target?.value ?? '');\n }\n}\n"],"names":[],"mappings":";;;;AA0DM,MAAO,sBAAuB,SAAQ,sBAAsB,CAAA;AAChE,IAAA,UAAU,GAAG,MAAM,CAAU,IAAI,iFAAC;IAClC,IAAI,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,GAAG,MAAM,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;IAChE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,KAAK,GAAG,WAAW,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;IAEzD,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;IACvC;AAEU,IAAA,OAAO,CAAC,KAAY,EAAA;AAC5B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B;QAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;IACpC;uGAZW,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA5CvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qqFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,cAAc,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,8XAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAIlE,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA9ClC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,QAAA,EAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCT,EAAA,CAAA,EAAA,OAAA,EACQ,CAAC,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,CAAC,EAAA,eAAA,EAE7D,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,qqFAAA,CAAA,EAAA;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { model, input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
-
import { B as BaseInputComponent, T as TranslatePipe } from './magmonium-one-magmonium-one-
|
|
3
|
+
import { B as BaseInputComponent, T as TranslatePipe } from './magmonium-one-magmonium-one-BtEA90hr.mjs';
|
|
4
4
|
|
|
5
5
|
class ToggleInputComponent extends BaseInputComponent {
|
|
6
6
|
value = undefined;
|
|
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
59
59
|
}], ctorParameters: () => [], propDecorators: { checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], focused: [{ type: i0.Input, args: [{ isSignal: true, alias: "focused", required: false }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }] } });
|
|
60
60
|
|
|
61
61
|
export { ToggleInputComponent };
|
|
62
|
-
//# sourceMappingURL=magmonium-one-toggle-
|
|
62
|
+
//# sourceMappingURL=magmonium-one-toggle-DEkZeqYY.mjs.map
|
package/fesm2022/{magmonium-one-toggle-UVuimY8O.mjs.map → magmonium-one-toggle-DEkZeqYY.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-toggle-
|
|
1
|
+
{"version":3,"file":"magmonium-one-toggle-DEkZeqYY.mjs","sources":["../../../../libs/one/src/lib/shared/ui/input/ui/toggle/toggle.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n ModelSignal,\n} from '@angular/core';\nimport { ToggleInput } from '../../model/input';\nimport { TranslatePipe } from '../../../../pipe/translate';\nimport {\n FormCheckboxControl,\n ValidationError,\n WithOptionalField,\n} from '@angular/forms/signals';\nimport { BaseInputComponent } from '../../lib/base-input';\n\n@Component({\n selector: 'm-toggle-input',\n template: `\n @if (config(); as toggle) {\n <div class=\"toggle\">\n <input\n [id]=\"toggle.name ?? ''\"\n [checked]=\"checked()\"\n (change)=\"onChange($event)\"\n type=\"checkbox\"\n />\n <label [attr.for]=\"toggle.name || null\">{{\n toggle.label | translate\n }}</label>\n </div>\n }\n `,\n imports: [TranslatePipe],\n styleUrl: './toggle.sass',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleInputComponent\n extends BaseInputComponent<ToggleInput>\n implements FormCheckboxControl\n{\n public value = undefined;\n public checked = model<boolean>(false) as ModelSignal<boolean>;\n public override config = input<Partial<ToggleInput> | undefined>();\n public override required = input<boolean>(false);\n public override disabled = input<boolean>(false);\n public override invalid = input<boolean>(false);\n public override touched = model<boolean>(false);\n public override focused = input<boolean>(false);\n public override errors = input<readonly WithOptionalField<ValidationError>[]>(\n []\n );\n public override showErrors = computed(() => this.touched() && this.invalid());\n\n /** Required by FormCheckboxControl interface */\n // public readonly checked: ModelSignal<boolean> = this.value; // Already defined above\n\n constructor() {\n super();\n }\n\n protected onChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.checked.set(target?.checked ?? false);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { A as ACCESS_DOMAINS, d as APP_CONTEXT_REF, e as ASSET_BASE_URL, f as AccordionBodyDirective, g as AccordionComponent, h as AccordionGroupComponent, i as ActionComponent, j as AnimatedGraphsComponent, k as AppCardComponent, l as AppRelationType, m as AppTileComponent, n as AssetStore, o as AssetUrlPipe, p as Assets, q as AuthActivityPageComponent, r as AuthApiService, s as AuthStore, t as AutosizeDirective, u as BadgeComponent, v as BandingComponent, w as BaseArrayInputComponent, x as BaseRootWebComponent, y as BaseWebComponent, c as ButtonComponent, z as ButtonGroupComponent, C as COMPONENT_INPUT_REGISTRY, D as CardComponent, E as CardWrapperComponent, F as CarouselComponent, G as ChartComponent, H as CheckboxInputComponent, J as ClearableInputComponent, K as ColComponent, M as ColorPickerInputComponent, N as CommentItemComponent, O as CommentsApiService, P as CommentsComponent, Q as CommentsStore, R as ComponentInputComponent, S as ComponentStepperComponent, U as ConfigComponent, V as ConfirmComponent, W as ContextMenuComponent, X as CustomIconClass, Y as CustomIconEditComponent, Z as DEFAULT_SIZE, _ as DashboardCardComponent, $ as DateInputComponent, a0 as DatePickerComponent, a1 as DeviceService, a2 as DomService, a3 as Domain, a4 as DotGridComponent, a5 as DragListDirective, a6 as DragListItemDirective, a7 as DraggableDirective, a8 as DropdownInputComponent, a9 as FLEX_VARIANTS, aa as FOLDER_PICK_LISTENER, ab as FORM_ASSET_FOLDER, ac as FileService, ad as FileUploadDirective, ae as FileUploadInputComponent, af as FlexComponent, ag as FlexItemComponent, ah as FormGroupComponent, ai as FrameComponent, aj as FreezeService, ak as GRID_BREAKPOINTS, al as GetNavService, am as HeaderComponent, an as HighlightDirective, ao as HttpService, ap as ICON_SOURCE, I as IS_DESIGN_MODE, aq as IS_SIDE_PANEL, ar as IconComponent, as as ImgComponent, at as InputType, au as InstrumentScoreComponent, av as InterceptorObservables, aw as JumbotronComponent, ax as KeyValueComponent, ay as LAYOUT_ASSET_FOLDER, az as LOGIN_COMPONENT, aA as LOGIN_STORE, aB as LanguageComponent, aC as LogoComponent, aD as MAG_SOCKET_EVENT, aE as MHeroColorDirective, aF as MHeroComponent, aG as MODAL_REF, aH as MODAL_STORE_REF, aI as MRefDirective, aJ as MStepComponent, aK as MURL_PARAM, aL as MURL_SEP, aM as ManifestEnrichmentService, aN as MenuComponent, aO as ModalDirective, aP as ModalRef, aQ as ModalStore, aR as MoneyPipe, aS as MultiRangeInputComponent, aT as MurlUrlSerializer, aU as NAV_DEFAULT_MURL, aV as NAV_ID_SEP, aW as NAV_MAIN_BUTTONS, aX as NAV_SEGMENT_RE, aY as NAV_STORE_REF, aZ as NAV_WC_COMPONENTS, a_ as NAV_WIDGET_MAP, a$ as NavComponent, b0 as NavDetailsComponent, b1 as NavHeaderComponent, b2 as NavMenuComponent, b3 as NavStore, b4 as NavTrailComponent, b5 as NothingComponent, b6 as NotificationElementComponent, b7 as NotificationGroupComponent, b8 as NotificationPopupComponent, b9 as NotificationService, ba as NotificationStore, bb as NotificationType, bc as NotificationWidgetComponent, bd as ONE_ASSET_BASE_URL, be as OPTIONS_SOURCE, bf as OVERLAY_WIDGETS, bg as OneApp, bh as OptionsSourceDirective, bi as OverlayBodyComponent, bj as OverlayRef, bk as OverlayService, bl as PLATFORM_BUTTON_NAV_IDS, bm as PLATFORM_EXTENSIBLE_NAV_IDS, bn as PLATFORM_NAV_MAP, bo as PLATFORM_ROOT_CHILDREN, bp as PaginationComponent, bq as PanelComponent, br as PercentagePipe, bs as PlaygroundComponent, bt as PositionDirective, bu as PwaInstallComponent, bv as ROOT_NAV, bw as RadioGroupComponent, bx as RadioInputComponent, by as RangeInputComponent, bz as RatingInputComponent, bA as ReactiveElementComponent, bB as RemoteComponent, bC as RemoteLoaderService, bD as ResizeElementComponent, bE as RouteContainer, bF as RowComponent, bG as SEARCH_QUERY, bH as SEARCH_RESULTS_EVENT, bI as SECTION_ACCORDION_GROUP, bJ as SECTION_FORM_CONTEXT, bK as SHARED_ICONS, bL as SIZE_CONTEXT, bM as ScoreComponent, bN as ScrollComponent, bO as ScrollService, bP as SearchPanelComponent, bQ as SearchStore, bR as SearchUserPanelComponent, bS as SectionAccordionDirective, bT as SectionAccordionGroupDirective, bU as SectionBackComponent, bV as SectionBadgesComponent, bW as SectionButtonGroupComponent, bX as SectionCardComponent, bY as SectionComponent, bZ as SectionFilterComponent, b_ as SectionFooterComponent, b$ as SectionFormComponent, c0 as SectionFormItemComponent, c1 as SectionHeaderComponent, c2 as SectionHeroComponent, c3 as SectionSearchComponent, c4 as SectionStepperComponent, c5 as SectionTabsComponent, c6 as SectionToggleComponent, c7 as SectionToggleItemDirective, c8 as SelectableCardInputComponent, c9 as SelectorDirective, ca as SettingsSearchBarComponent, cb as SettingsSearchService, cc as ShapeComponent, cd as SharedStoreRegistry, ce as SidePanelDirective, cf as Size, cg as SocketStore, ch as SortComponent, ci as StatComponent, cj as StepComponent, ck as StepperComponent, cl as StepsComponent, cm as StorageService, cn as StrokeLinecap, co as StrokeLinejoin, cp as SummaryComponent, cq as SvgGeneratorComponent, cr as SvgGeneratorService, cs as SvgService, ct as TOTAL_COLUMNS, cu as TRANSLATION_SOURCE, cv as TableComponent, cw as TechnicalMeterComponent, cx as TextInputComponent, b as TextOutputComponent, cy as TextareaInputComponent, cz as ThemeComponent, cA as ThemeService, cB as ThemeStore, cC as TimeAgoPipe, cD as TimelineComponent, cE as ToggleButtonComponent, cF as ToggleInputComponent, cG as ToggleRadioInputComponent, cH as ToolTipDirective, cI as TooltipComponent, T as TranslatePipe, cJ as TranslateService, cK as TreeGridComponent, cL as URL_SEP, cM as USER_STORE_REF, cN as USER_TAB_MAP, cO as UlComponent, cP as UniverseComponent, cQ as UserApiService, cR as UserAvatarComponent, cS as UserComponent, cT as UserNavComponent, cU as UserSettingsComponent, cV as UserStore, cW as WC_ROUTE_CHANGED_EVENT, cX as WC_SEARCH_GROUPS, cY as WIN_USER_TAB_HOOK, cZ as WIN_USER_TAB_KEY, c_ as WatermarkComponent, c$ as WcRouterStore, d0 as WrapperInputComponent, d1 as anchorNavId, d2 as applyColorsToElement, d3 as bootstrapMagApp, d4 as bootstrapPwaInstall, d5 as buildWcBaseUrl, d6 as calculateLuminance, d7 as calculateRanks, d8 as cellText, d9 as checkFilterCondition, da as childNavId, db as classListSignal, dc as coerceSize, dd as cornerEdge, de as cornerSide, df as createMap, dg as createPlatformNavMap, dh as deriveAvatarGradient, di as deriveContrastColor, dj as deriveOppositeColor, dk as derivePropertyName, dl as emailValidation, dm as evaluate, dn as evaluateBool, dp as flattenTreeGridRows, dq as formatBadgeCount, dr as fullName, ds as generateClipPath, dt as generateTransform, du as getClassList, dv as getProperty, dw as getScrollParent, dx as getTierFromPreviewPath, dy as getTreeGridRow, dz as getUniqueId, dA as getValue, dB as hasErrorComputed, dC as hexToRgb, dD as hslToRgb, dE as initMagmoniumApp, dF as initialNotificationState, dG as initialState, dH as initials, dI as injectAuthenticate, dJ as injectInstallApp, dK as injectParentSize, dL as injectScrollSticky, dM as isButtonName, dN as isCancelledComputed, dO as isExtensiblePlatformNavId, dP as isJson, dQ as isLoadingComputed, dR as isLocalhost, dS as isPlatformNavId, dT as isSize, dU as isTierPreview, dV as isUrlLocalhost, dW as isValidNavId, dX as isValidNavSegment, dY as isWebComponent, dZ as linkToId, d_ as linkToNav, d$ as loadingActions, e0 as mInterceptor, e1 as manualValidation, e2 as matchFieldValidation, e3 as maxLengthValidation, e4 as maxValidation, e5 as mergePlatformNav, e6 as mergeUnique, e7 as mergeUniqueBy, e8 as mergeUniqueWith, e9 as minAgeValidation, ea as minLengthValidation, eb as minValidation, ec as miniMarkToHtml, ed as navIdChain, ee as navIdFor, ef as navIdSegment, eg as navIdToRoutePath, eh as navIdToSegments, ei as navToId, ej as parentNavId, ek as parseAddress, el as parseColor, em as parsePatternNames, en as patternValidation, eo as patternsValidation, ep as platformNavWidgets, eq as privateGuard, er as processImageToSvg, es as provideAppContext, et as provideMagAppConfig, eu as provideMagWcConfig, ev as provideMagWcRoutes, ew as provideModalComponents, ex as provideMurlUrlSerializer, ey as provideNavWidgets, ez as provideOverlayWidgets, eA as providePlatformNavWidgets, eB as provideSearch, eC as provideSizeContext, eD as provideUserTabs, eE as publicGuard, eF as readFieldPatterns, eG as renderAddress, eH as requiredValidation, eI as resolveConfigAsset, eJ as resolveIconSize, eK as resolvePallet, eL as resolvePatternRules, eM as resolveSize, eN as rgbToHex, eO as rgbToHsl, eP as rowHasChildren, eQ as samePatterns, eR as segmentsToNavId, eS as setProperty, eT as setTreeGridChildren, eU as settingsWidgets, eV as shouldShowBadge, eW as splitNavId, eX as stringToColor, eY as toAttrBool, eZ as toAttrNumber, e_ as toCssLength, e$ as toHostNavId, f0 as toLength, f1 as toLocalNavId, f2 as toggleTreeGridRow, f3 as unfetchedPlatformNav, f4 as urlValidation } from './magmonium-one-magmonium-one-
|
|
1
|
+
export { A as ACCESS_DOMAINS, d as APP_CONTEXT_REF, e as ASSET_BASE_URL, f as AccordionBodyDirective, g as AccordionComponent, h as AccordionGroupComponent, i as ActionComponent, j as AnimatedGraphsComponent, k as AppCardComponent, l as AppRelationType, m as AppTileComponent, n as AssetStore, o as AssetUrlPipe, p as Assets, q as AuthActivityPageComponent, r as AuthApiService, s as AuthStore, t as AutosizeDirective, u as BadgeComponent, v as BandingComponent, w as BaseArrayInputComponent, x as BaseRootWebComponent, y as BaseWebComponent, c as ButtonComponent, z as ButtonGroupComponent, C as COMPONENT_INPUT_REGISTRY, D as CardComponent, E as CardWrapperComponent, F as CarouselComponent, G as ChartComponent, H as CheckboxInputComponent, J as ClearableInputComponent, K as ColComponent, M as ColorPickerInputComponent, N as CommentItemComponent, O as CommentsApiService, P as CommentsComponent, Q as CommentsStore, R as ComponentInputComponent, S as ComponentStepperComponent, U as ConfigComponent, V as ConfirmComponent, W as ContextMenuComponent, X as CustomIconClass, Y as CustomIconEditComponent, Z as DEFAULT_SIZE, _ as DashboardCardComponent, $ as DateInputComponent, a0 as DatePickerComponent, a1 as DeviceService, a2 as DomService, a3 as Domain, a4 as DotGridComponent, a5 as DragListDirective, a6 as DragListItemDirective, a7 as DraggableDirective, a8 as DropdownInputComponent, a9 as FLEX_VARIANTS, aa as FOLDER_PICK_LISTENER, ab as FORM_ASSET_FOLDER, ac as FileService, ad as FileUploadDirective, ae as FileUploadInputComponent, af as FlexComponent, ag as FlexItemComponent, ah as FormGroupComponent, ai as FrameComponent, aj as FreezeService, ak as GRID_BREAKPOINTS, al as GetNavService, am as HeaderComponent, an as HighlightDirective, ao as HttpService, ap as ICON_SOURCE, I as IS_DESIGN_MODE, aq as IS_SIDE_PANEL, ar as IconComponent, as as ImgComponent, at as InputType, au as InstrumentScoreComponent, av as InterceptorObservables, aw as JumbotronComponent, ax as KeyValueComponent, ay as LAYOUT_ASSET_FOLDER, az as LOGIN_COMPONENT, aA as LOGIN_STORE, aB as LanguageComponent, aC as LogoComponent, aD as MAG_SOCKET_EVENT, aE as MHeroColorDirective, aF as MHeroComponent, aG as MODAL_REF, aH as MODAL_STORE_REF, aI as MRefDirective, aJ as MStepComponent, aK as MURL_PARAM, aL as MURL_SEP, aM as ManifestEnrichmentService, aN as MenuComponent, aO as ModalDirective, aP as ModalRef, aQ as ModalStore, aR as MoneyPipe, aS as MultiRangeInputComponent, aT as MurlUrlSerializer, aU as NAV_DEFAULT_MURL, aV as NAV_ID_SEP, aW as NAV_MAIN_BUTTONS, aX as NAV_SEGMENT_RE, aY as NAV_STORE_REF, aZ as NAV_WC_COMPONENTS, a_ as NAV_WIDGET_MAP, a$ as NavComponent, b0 as NavDetailsComponent, b1 as NavHeaderComponent, b2 as NavMenuComponent, b3 as NavStore, b4 as NavTrailComponent, b5 as NothingComponent, b6 as NotificationElementComponent, b7 as NotificationGroupComponent, b8 as NotificationPopupComponent, b9 as NotificationService, ba as NotificationStore, bb as NotificationType, bc as NotificationWidgetComponent, bd as ONE_ASSET_BASE_URL, be as OPTIONS_SOURCE, bf as OVERLAY_WIDGETS, bg as OneApp, bh as OptionsSourceDirective, bi as OverlayBodyComponent, bj as OverlayRef, bk as OverlayService, bl as PLATFORM_BUTTON_NAV_IDS, bm as PLATFORM_EXTENSIBLE_NAV_IDS, bn as PLATFORM_NAV_MAP, bo as PLATFORM_ROOT_CHILDREN, bp as PaginationComponent, bq as PanelComponent, br as PercentagePipe, bs as PlaygroundComponent, bt as PositionDirective, bu as PwaInstallComponent, bv as ROOT_NAV, bw as RadioGroupComponent, bx as RadioInputComponent, by as RangeInputComponent, bz as RatingInputComponent, bA as ReactiveElementComponent, bB as RemoteComponent, bC as RemoteLoaderService, bD as ResizeElementComponent, bE as RouteContainer, bF as RowComponent, bG as SEARCH_QUERY, bH as SEARCH_RESULTS_EVENT, bI as SECTION_ACCORDION_GROUP, bJ as SECTION_FORM_CONTEXT, bK as SHARED_ICONS, bL as SIZE_CONTEXT, bM as ScoreComponent, bN as ScrollComponent, bO as ScrollService, bP as SearchPanelComponent, bQ as SearchStore, bR as SearchUserPanelComponent, bS as SectionAccordionDirective, bT as SectionAccordionGroupDirective, bU as SectionBackComponent, bV as SectionBadgesComponent, bW as SectionButtonGroupComponent, bX as SectionCardComponent, bY as SectionComponent, bZ as SectionFilterComponent, b_ as SectionFooterComponent, b$ as SectionFormComponent, c0 as SectionFormItemComponent, c1 as SectionHeaderComponent, c2 as SectionHeroComponent, c3 as SectionSearchComponent, c4 as SectionStepperComponent, c5 as SectionTabsComponent, c6 as SectionToggleComponent, c7 as SectionToggleItemDirective, c8 as SelectableCardInputComponent, c9 as SelectorDirective, ca as SettingsSearchBarComponent, cb as SettingsSearchService, cc as ShapeComponent, cd as SharedStoreRegistry, ce as SidePanelDirective, cf as Size, cg as SocketStore, ch as SortComponent, ci as StatComponent, cj as StepComponent, ck as StepperComponent, cl as StepsComponent, cm as StorageService, cn as StrokeLinecap, co as StrokeLinejoin, cp as SummaryComponent, cq as SvgGeneratorComponent, cr as SvgGeneratorService, cs as SvgService, ct as TOTAL_COLUMNS, cu as TRANSLATION_SOURCE, cv as TableComponent, cw as TechnicalMeterComponent, cx as TextInputComponent, b as TextOutputComponent, cy as TextareaInputComponent, cz as ThemeComponent, cA as ThemeService, cB as ThemeStore, cC as TimeAgoPipe, cD as TimelineComponent, cE as ToggleButtonComponent, cF as ToggleInputComponent, cG as ToggleRadioInputComponent, cH as ToolTipDirective, cI as TooltipComponent, T as TranslatePipe, cJ as TranslateService, cK as TreeGridComponent, cL as URL_SEP, cM as USER_STORE_REF, cN as USER_TAB_MAP, cO as UlComponent, cP as UniverseComponent, cQ as UserApiService, cR as UserAvatarComponent, cS as UserComponent, cT as UserNavComponent, cU as UserSettingsComponent, cV as UserStore, cW as WC_ROUTE_CHANGED_EVENT, cX as WC_SEARCH_GROUPS, cY as WIN_USER_TAB_HOOK, cZ as WIN_USER_TAB_KEY, c_ as WatermarkComponent, c$ as WcRouterStore, d0 as WrapperInputComponent, d1 as anchorNavId, d2 as applyColorsToElement, d3 as bootstrapMagApp, d4 as bootstrapPwaInstall, d5 as buildWcBaseUrl, d6 as calculateLuminance, d7 as calculateRanks, d8 as cellText, d9 as checkFilterCondition, da as childNavId, db as classListSignal, dc as coerceSize, dd as cornerEdge, de as cornerSide, df as createMap, dg as createPlatformNavMap, dh as deriveAvatarGradient, di as deriveContrastColor, dj as deriveOppositeColor, dk as derivePropertyName, dl as emailValidation, dm as evaluate, dn as evaluateBool, dp as flattenTreeGridRows, dq as formatBadgeCount, dr as fullName, ds as generateClipPath, dt as generateTransform, du as getClassList, dv as getProperty, dw as getScrollParent, dx as getTierFromPreviewPath, dy as getTreeGridRow, dz as getUniqueId, dA as getValue, dB as hasErrorComputed, dC as hexToRgb, dD as hslToRgb, dE as initMagmoniumApp, dF as initialNotificationState, dG as initialState, dH as initials, dI as injectAuthenticate, dJ as injectInstallApp, dK as injectParentSize, dL as injectScrollSticky, dM as isButtonName, dN as isCancelledComputed, dO as isExtensiblePlatformNavId, dP as isJson, dQ as isLoadingComputed, dR as isLocalhost, dS as isPlatformNavId, dT as isSize, dU as isTierPreview, dV as isUrlLocalhost, dW as isValidNavId, dX as isValidNavSegment, dY as isWebComponent, dZ as linkToId, d_ as linkToNav, d$ as loadingActions, e0 as mInterceptor, e1 as manualValidation, e2 as matchFieldValidation, e3 as maxLengthValidation, e4 as maxValidation, e5 as mergePlatformNav, e6 as mergeUnique, e7 as mergeUniqueBy, e8 as mergeUniqueWith, e9 as minAgeValidation, ea as minLengthValidation, eb as minValidation, ec as miniMarkToHtml, ed as navIdChain, ee as navIdFor, ef as navIdSegment, eg as navIdToRoutePath, eh as navIdToSegments, ei as navToId, ej as parentNavId, ek as parseAddress, el as parseColor, em as parsePatternNames, en as patternValidation, eo as patternsValidation, ep as platformNavWidgets, eq as privateGuard, er as processImageToSvg, es as provideAppContext, et as provideMagAppConfig, eu as provideMagWcConfig, ev as provideMagWcRoutes, ew as provideModalComponents, ex as provideMurlUrlSerializer, ey as provideNavWidgets, ez as provideOverlayWidgets, eA as providePlatformNavWidgets, eB as provideSearch, eC as provideSizeContext, eD as provideUserTabs, eE as publicGuard, eF as readFieldPatterns, eG as renderAddress, eH as requiredValidation, eI as resolveConfigAsset, eJ as resolveIconSize, eK as resolvePallet, eL as resolvePatternRules, eM as resolveSize, eN as rgbToHex, eO as rgbToHsl, eP as rowHasChildren, eQ as samePatterns, eR as segmentsToNavId, eS as setProperty, eT as setTreeGridChildren, eU as settingsWidgets, eV as shouldShowBadge, eW as splitNavId, eX as stringToColor, eY as toAttrBool, eZ as toAttrNumber, e_ as toCssLength, e$ as toHostNavId, f0 as toLength, f1 as toLocalNavId, f2 as toggleTreeGridRow, f3 as unfetchedPlatformNav, f4 as urlValidation } from './magmonium-one-magmonium-one-BtEA90hr.mjs';
|
|
2
2
|
//# sourceMappingURL=magmonium-one.mjs.map
|
package/package.json
CHANGED
package/types/magmonium-one.d.ts
CHANGED
|
@@ -5214,14 +5214,23 @@ type StatSurface = 'plain' | 'card' | 'shadow' | 'glow' | 'gradient';
|
|
|
5214
5214
|
* A KeyValue with a corner mark: a label, a large value, and a small secondary
|
|
5215
5215
|
* value set against the value itself (CONTEXT.md Stat).
|
|
5216
5216
|
*
|
|
5217
|
-
* The label is an attribute because
|
|
5218
|
-
*
|
|
5219
|
-
*
|
|
5220
|
-
*
|
|
5221
|
-
*
|
|
5217
|
+
* The label is an attribute because a name is a string either way — a
|
|
5218
|
+
* TranslationAsset key, or a row's own text under `noTranslate` (ADR 0022);
|
|
5219
|
+
* the other two are `ng-content` slots, so what a figure and its mark are made
|
|
5220
|
+
* of — a TextOutput reading state, an Icon, a VariantBranch picking between
|
|
5221
|
+
* them — is the caller's markup rather than a string this component would have
|
|
5222
|
+
* to re-invent inputs for (ADR 0021).
|
|
5222
5223
|
*/
|
|
5223
5224
|
declare class StatComponent {
|
|
5224
5225
|
readonly label: _angular_core.InputSignal<string>;
|
|
5226
|
+
/**
|
|
5227
|
+
* Set, `label` renders as written instead of resolving as a key — what the
|
|
5228
|
+
* **dynamic** half of the label's TextSource lands on, a row of data being
|
|
5229
|
+
* text and not a key (ADR 0022). Takes the string form for the reason every
|
|
5230
|
+
* other boolean attribute here does: a tag written by codegen spells it
|
|
5231
|
+
* `noTranslate`, with no value.
|
|
5232
|
+
*/
|
|
5233
|
+
readonly noTranslate: _angular_core.InputSignal<string | boolean>;
|
|
5225
5234
|
/**
|
|
5226
5235
|
* The tile's box density (`default`, `compact`, `no-padding`,
|
|
5227
5236
|
* `no-x-padding`). A Stat owns its padding box so it can stand alone; a tile
|
|
@@ -5241,7 +5250,10 @@ declare class StatComponent {
|
|
|
5241
5250
|
readonly color: _angular_core.InputSignal<string>;
|
|
5242
5251
|
/** Same, for the corner mark. */
|
|
5243
5252
|
readonly cornerColor: _angular_core.InputSignal<string>;
|
|
5244
|
-
/**
|
|
5253
|
+
/**
|
|
5254
|
+
* MessageVariable values for the label (ADR 0020). The translated mode's
|
|
5255
|
+
* alone: a bound label arrives whole and has no `<name>` slots to fill.
|
|
5256
|
+
*/
|
|
5245
5257
|
readonly params: _angular_core.InputSignal<Record<string, string>>;
|
|
5246
5258
|
private readonly translateService;
|
|
5247
5259
|
private readonly themeStore;
|
|
@@ -5255,7 +5267,7 @@ declare class StatComponent {
|
|
|
5255
5267
|
protected readonly labelDisplay: _angular_core.Signal<string>;
|
|
5256
5268
|
private paint;
|
|
5257
5269
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatComponent, never>;
|
|
5258
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatComponent, "m-stat", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "cornerPosition": { "alias": "cornerPosition"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "surface": { "alias": "surface"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "cornerColor": { "alias": "cornerColor"; "required": false; "isSignal": true; }; "params": { "alias": "params"; "required": false; "isSignal": true; }; }, {}, never, ["[value]", "[corner]"], true, never>;
|
|
5270
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatComponent, "m-stat", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "noTranslate": { "alias": "noTranslate"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "cornerPosition": { "alias": "cornerPosition"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "surface": { "alias": "surface"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "cornerColor": { "alias": "cornerColor"; "required": false; "isSignal": true; }; "params": { "alias": "params"; "required": false; "isSignal": true; }; }, {}, never, ["[value]", "[corner]"], true, never>;
|
|
5259
5271
|
}
|
|
5260
5272
|
|
|
5261
5273
|
/**
|
|
@@ -5373,6 +5385,27 @@ type SocketMessage<T = unknown> = {
|
|
|
5373
5385
|
payload: T;
|
|
5374
5386
|
};
|
|
5375
5387
|
|
|
5388
|
+
/**
|
|
5389
|
+
* Loads one App Widget's component class the first time an overlay names it.
|
|
5390
|
+
* A `() => import(...)` and nothing else — the point of the indirection is that
|
|
5391
|
+
* the class is not in the bundle's initial graph, so an overlay body costs
|
|
5392
|
+
* nothing until it is opened.
|
|
5393
|
+
*/
|
|
5394
|
+
type OverlayWidgetLoader = () => Promise<Type<unknown>>;
|
|
5395
|
+
/**
|
|
5396
|
+
* What an app hands `provideOverlayWidgets`. Keyed by the custom-element tag
|
|
5397
|
+
* the overlay's `component` names, which is the same selector the widget
|
|
5398
|
+
* declares — one string the emitted config and the emitted map both spell.
|
|
5399
|
+
*
|
|
5400
|
+
* Deliberately not `NAV_WC_COMPONENTS`: that map is a list of classes the app
|
|
5401
|
+
* defines as custom elements on bootstrap, so every widget in it ships in the
|
|
5402
|
+
* initial bundle whether or not anything opens it. An overlay's widget is
|
|
5403
|
+
* registered when it is first opened and never before.
|
|
5404
|
+
*/
|
|
5405
|
+
type OverlayWidgetMap = Record<string, OverlayWidgetLoader>;
|
|
5406
|
+
declare const OVERLAY_WIDGETS: InjectionToken<OverlayWidgetMap>;
|
|
5407
|
+
declare const provideOverlayWidgets: (map: OverlayWidgetMap) => Provider;
|
|
5408
|
+
|
|
5376
5409
|
type Modal = Config & {
|
|
5377
5410
|
closeProhibited?: true;
|
|
5378
5411
|
resizable?: true;
|
|
@@ -5401,19 +5434,31 @@ type PanelTrigger<T> = ModalTrigger<T> & {
|
|
|
5401
5434
|
/** Set by ModalStore: id of the panel this one displaced. Presence means docked. */
|
|
5402
5435
|
dockedOver?: string;
|
|
5403
5436
|
};
|
|
5404
|
-
/**
|
|
5437
|
+
/**
|
|
5438
|
+
* Overlay asset shape for `mModal` — body named by `component`/`form`, not a
|
|
5439
|
+
* `Type<T>`.
|
|
5440
|
+
*
|
|
5441
|
+
* `component` takes either spelling of "which App Widget": a custom-element tag
|
|
5442
|
+
* the app registered under `OVERLAY_WIDGETS`, or the widget's own
|
|
5443
|
+
* `() => import(...)`. The loader is what a generated Screen carries — it names
|
|
5444
|
+
* the class where it is used, so the chunk is the bundler's to split and no app
|
|
5445
|
+
* -wide registry has to agree on a string.
|
|
5446
|
+
*/
|
|
5405
5447
|
type ModalOverlayConfig = Modal & {
|
|
5406
|
-
component?: string;
|
|
5448
|
+
component?: string | OverlayWidgetLoader;
|
|
5407
5449
|
form?: string;
|
|
5408
5450
|
};
|
|
5409
|
-
/**
|
|
5451
|
+
/**
|
|
5452
|
+
* Overlay asset shape for `mSidePanel` — body named by `component`/`form`, not
|
|
5453
|
+
* a `Type<T>`. `component` takes a tag or a loader, as ModalOverlayConfig does.
|
|
5454
|
+
*/
|
|
5410
5455
|
type PanelOverlayConfig = Config & {
|
|
5411
5456
|
side?: 'left' | 'right';
|
|
5412
5457
|
width?: string;
|
|
5413
5458
|
height?: string;
|
|
5414
5459
|
dock?: true;
|
|
5415
5460
|
closeProhibited?: true;
|
|
5416
|
-
component?: string;
|
|
5461
|
+
component?: string | OverlayWidgetLoader;
|
|
5417
5462
|
form?: string;
|
|
5418
5463
|
};
|
|
5419
5464
|
|
|
@@ -5529,23 +5574,29 @@ declare class PanelComponent implements AfterViewInit, OnDestroy {
|
|
|
5529
5574
|
}
|
|
5530
5575
|
|
|
5531
5576
|
/**
|
|
5532
|
-
* Turns an overlay's named content — a form asset name or a
|
|
5533
|
-
* tag — into rendered content. Presentational only, no business
|
|
5577
|
+
* Turns an overlay's named content — a form asset name, a widget loader or a
|
|
5578
|
+
* custom-element tag — into rendered content. Presentational only, no business
|
|
5579
|
+
* logic.
|
|
5534
5580
|
*
|
|
5535
|
-
*
|
|
5536
|
-
*
|
|
5537
|
-
*
|
|
5581
|
+
* Two ways to name a widget, because two callers name one differently. A
|
|
5582
|
+
* generated Screen carries a `() => import(...)`: it knows the class it means
|
|
5583
|
+
* and says so where it is used, so the chunk is the bundler's to split. A
|
|
5584
|
+
* hand-written config carries a tag, which is resolved through `OVERLAY_WIDGETS`
|
|
5585
|
+
* and defined on first open — the older spelling, and the only one available to
|
|
5586
|
+
* a config that cannot hold a function, such as a YAML asset.
|
|
5538
5587
|
*/
|
|
5539
5588
|
declare class OverlayBodyComponent {
|
|
5540
5589
|
readonly form: _angular_core.InputSignal<string>;
|
|
5541
5590
|
readonly tag: _angular_core.InputSignal<string>;
|
|
5591
|
+
readonly widget: _angular_core.InputSignal<OverlayWidgetLoader>;
|
|
5542
5592
|
private readonly injector;
|
|
5543
5593
|
private readonly widgets;
|
|
5544
5594
|
private readonly ready;
|
|
5595
|
+
protected readonly loaded: _angular_core.WritableSignal<Type<unknown>>;
|
|
5545
5596
|
protected readonly readyTag: _angular_core.Signal<string>;
|
|
5546
5597
|
constructor();
|
|
5547
5598
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayBodyComponent, never>;
|
|
5548
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlayBodyComponent, "m-overlay-body", never, { "form": { "alias": "form"; "required": false; "isSignal": true; }; "tag": { "alias": "tag"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5599
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverlayBodyComponent, "m-overlay-body", never, { "form": { "alias": "form"; "required": false; "isSignal": true; }; "tag": { "alias": "tag"; "required": false; "isSignal": true; }; "widget": { "alias": "widget"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5549
5600
|
}
|
|
5550
5601
|
|
|
5551
5602
|
/** Opens a Modal from an asset name (`modal/<name>.yml`) or an inline config. */
|
|
@@ -5596,27 +5647,6 @@ declare class ConfirmComponent {
|
|
|
5596
5647
|
|
|
5597
5648
|
declare function provideModalComponents(): EnvironmentProviders;
|
|
5598
5649
|
|
|
5599
|
-
/**
|
|
5600
|
-
* Loads one App Widget's component class the first time an overlay names it.
|
|
5601
|
-
* A `() => import(...)` and nothing else — the point of the indirection is that
|
|
5602
|
-
* the class is not in the bundle's initial graph, so an overlay body costs
|
|
5603
|
-
* nothing until it is opened.
|
|
5604
|
-
*/
|
|
5605
|
-
type OverlayWidgetLoader = () => Promise<Type<unknown>>;
|
|
5606
|
-
/**
|
|
5607
|
-
* What an app hands `provideOverlayWidgets`. Keyed by the custom-element tag
|
|
5608
|
-
* the overlay's `component` names, which is the same selector the widget
|
|
5609
|
-
* declares — one string the emitted config and the emitted map both spell.
|
|
5610
|
-
*
|
|
5611
|
-
* Deliberately not `NAV_WC_COMPONENTS`: that map is a list of classes the app
|
|
5612
|
-
* defines as custom elements on bootstrap, so every widget in it ships in the
|
|
5613
|
-
* initial bundle whether or not anything opens it. An overlay's widget is
|
|
5614
|
-
* registered when it is first opened and never before.
|
|
5615
|
-
*/
|
|
5616
|
-
type OverlayWidgetMap = Record<string, OverlayWidgetLoader>;
|
|
5617
|
-
declare const OVERLAY_WIDGETS: InjectionToken<OverlayWidgetMap>;
|
|
5618
|
-
declare const provideOverlayWidgets: (map: OverlayWidgetMap) => Provider;
|
|
5619
|
-
|
|
5620
5650
|
type BreadcrumbTrail = {
|
|
5621
5651
|
label: string;
|
|
5622
5652
|
icon?: string;
|