@magmonium/one 0.1.13 → 0.1.15
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-BCnG-yvO.mjs} +46 -18
- package/fesm2022/{magmonium-one-magmonium-one-BGcwClRr.mjs.map → magmonium-one-magmonium-one-BCnG-yvO.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-otp-BhQvfyaM.mjs → magmonium-one-otp-B1FWssrl.mjs} +2 -2
- package/fesm2022/{magmonium-one-otp-BhQvfyaM.mjs.map → magmonium-one-otp-B1FWssrl.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-BJyjGWvN.mjs → magmonium-one-password-DOOpbUC0.mjs} +2 -2
- package/fesm2022/{magmonium-one-password-BJyjGWvN.mjs.map → magmonium-one-password-DOOpbUC0.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-toggle-UVuimY8O.mjs → magmonium-one-toggle-CtPlw2pO.mjs} +2 -2
- package/fesm2022/{magmonium-one-toggle-UVuimY8O.mjs.map → magmonium-one-toggle-CtPlw2pO.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +49 -31
|
@@ -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-BCnG-yvO.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-B1FWssrl.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-B1FWssrl.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-DOOpbUC0.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-BCnG-yvO.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-DOOpbUC0.mjs.map
|
package/fesm2022/{magmonium-one-password-BJyjGWvN.mjs.map → magmonium-one-password-DOOpbUC0.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-password-
|
|
1
|
+
{"version":3,"file":"magmonium-one-password-DOOpbUC0.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-BCnG-yvO.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-CtPlw2pO.mjs.map
|
package/fesm2022/{magmonium-one-toggle-UVuimY8O.mjs.map → magmonium-one-toggle-CtPlw2pO.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-toggle-
|
|
1
|
+
{"version":3,"file":"magmonium-one-toggle-CtPlw2pO.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-BCnG-yvO.mjs';
|
|
2
2
|
//# sourceMappingURL=magmonium-one.mjs.map
|
package/package.json
CHANGED
package/types/magmonium-one.d.ts
CHANGED
|
@@ -5373,6 +5373,27 @@ type SocketMessage<T = unknown> = {
|
|
|
5373
5373
|
payload: T;
|
|
5374
5374
|
};
|
|
5375
5375
|
|
|
5376
|
+
/**
|
|
5377
|
+
* Loads one App Widget's component class the first time an overlay names it.
|
|
5378
|
+
* A `() => import(...)` and nothing else — the point of the indirection is that
|
|
5379
|
+
* the class is not in the bundle's initial graph, so an overlay body costs
|
|
5380
|
+
* nothing until it is opened.
|
|
5381
|
+
*/
|
|
5382
|
+
type OverlayWidgetLoader = () => Promise<Type<unknown>>;
|
|
5383
|
+
/**
|
|
5384
|
+
* What an app hands `provideOverlayWidgets`. Keyed by the custom-element tag
|
|
5385
|
+
* the overlay's `component` names, which is the same selector the widget
|
|
5386
|
+
* declares — one string the emitted config and the emitted map both spell.
|
|
5387
|
+
*
|
|
5388
|
+
* Deliberately not `NAV_WC_COMPONENTS`: that map is a list of classes the app
|
|
5389
|
+
* defines as custom elements on bootstrap, so every widget in it ships in the
|
|
5390
|
+
* initial bundle whether or not anything opens it. An overlay's widget is
|
|
5391
|
+
* registered when it is first opened and never before.
|
|
5392
|
+
*/
|
|
5393
|
+
type OverlayWidgetMap = Record<string, OverlayWidgetLoader>;
|
|
5394
|
+
declare const OVERLAY_WIDGETS: InjectionToken<OverlayWidgetMap>;
|
|
5395
|
+
declare const provideOverlayWidgets: (map: OverlayWidgetMap) => Provider;
|
|
5396
|
+
|
|
5376
5397
|
type Modal = Config & {
|
|
5377
5398
|
closeProhibited?: true;
|
|
5378
5399
|
resizable?: true;
|
|
@@ -5401,19 +5422,31 @@ type PanelTrigger<T> = ModalTrigger<T> & {
|
|
|
5401
5422
|
/** Set by ModalStore: id of the panel this one displaced. Presence means docked. */
|
|
5402
5423
|
dockedOver?: string;
|
|
5403
5424
|
};
|
|
5404
|
-
/**
|
|
5425
|
+
/**
|
|
5426
|
+
* Overlay asset shape for `mModal` — body named by `component`/`form`, not a
|
|
5427
|
+
* `Type<T>`.
|
|
5428
|
+
*
|
|
5429
|
+
* `component` takes either spelling of "which App Widget": a custom-element tag
|
|
5430
|
+
* the app registered under `OVERLAY_WIDGETS`, or the widget's own
|
|
5431
|
+
* `() => import(...)`. The loader is what a generated Screen carries — it names
|
|
5432
|
+
* the class where it is used, so the chunk is the bundler's to split and no app
|
|
5433
|
+
* -wide registry has to agree on a string.
|
|
5434
|
+
*/
|
|
5405
5435
|
type ModalOverlayConfig = Modal & {
|
|
5406
|
-
component?: string;
|
|
5436
|
+
component?: string | OverlayWidgetLoader;
|
|
5407
5437
|
form?: string;
|
|
5408
5438
|
};
|
|
5409
|
-
/**
|
|
5439
|
+
/**
|
|
5440
|
+
* Overlay asset shape for `mSidePanel` — body named by `component`/`form`, not
|
|
5441
|
+
* a `Type<T>`. `component` takes a tag or a loader, as ModalOverlayConfig does.
|
|
5442
|
+
*/
|
|
5410
5443
|
type PanelOverlayConfig = Config & {
|
|
5411
5444
|
side?: 'left' | 'right';
|
|
5412
5445
|
width?: string;
|
|
5413
5446
|
height?: string;
|
|
5414
5447
|
dock?: true;
|
|
5415
5448
|
closeProhibited?: true;
|
|
5416
|
-
component?: string;
|
|
5449
|
+
component?: string | OverlayWidgetLoader;
|
|
5417
5450
|
form?: string;
|
|
5418
5451
|
};
|
|
5419
5452
|
|
|
@@ -5529,23 +5562,29 @@ declare class PanelComponent implements AfterViewInit, OnDestroy {
|
|
|
5529
5562
|
}
|
|
5530
5563
|
|
|
5531
5564
|
/**
|
|
5532
|
-
* Turns an overlay's named content — a form asset name or a
|
|
5533
|
-
* tag — into rendered content. Presentational only, no business
|
|
5565
|
+
* Turns an overlay's named content — a form asset name, a widget loader or a
|
|
5566
|
+
* custom-element tag — into rendered content. Presentational only, no business
|
|
5567
|
+
* logic.
|
|
5534
5568
|
*
|
|
5535
|
-
*
|
|
5536
|
-
*
|
|
5537
|
-
*
|
|
5569
|
+
* Two ways to name a widget, because two callers name one differently. A
|
|
5570
|
+
* generated Screen carries a `() => import(...)`: it knows the class it means
|
|
5571
|
+
* and says so where it is used, so the chunk is the bundler's to split. A
|
|
5572
|
+
* hand-written config carries a tag, which is resolved through `OVERLAY_WIDGETS`
|
|
5573
|
+
* and defined on first open — the older spelling, and the only one available to
|
|
5574
|
+
* a config that cannot hold a function, such as a YAML asset.
|
|
5538
5575
|
*/
|
|
5539
5576
|
declare class OverlayBodyComponent {
|
|
5540
5577
|
readonly form: _angular_core.InputSignal<string>;
|
|
5541
5578
|
readonly tag: _angular_core.InputSignal<string>;
|
|
5579
|
+
readonly widget: _angular_core.InputSignal<OverlayWidgetLoader>;
|
|
5542
5580
|
private readonly injector;
|
|
5543
5581
|
private readonly widgets;
|
|
5544
5582
|
private readonly ready;
|
|
5583
|
+
protected readonly loaded: _angular_core.WritableSignal<Type<unknown>>;
|
|
5545
5584
|
protected readonly readyTag: _angular_core.Signal<string>;
|
|
5546
5585
|
constructor();
|
|
5547
5586
|
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>;
|
|
5587
|
+
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
5588
|
}
|
|
5550
5589
|
|
|
5551
5590
|
/** Opens a Modal from an asset name (`modal/<name>.yml`) or an inline config. */
|
|
@@ -5596,27 +5635,6 @@ declare class ConfirmComponent {
|
|
|
5596
5635
|
|
|
5597
5636
|
declare function provideModalComponents(): EnvironmentProviders;
|
|
5598
5637
|
|
|
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
5638
|
type BreadcrumbTrail = {
|
|
5621
5639
|
label: string;
|
|
5622
5640
|
icon?: string;
|