@magmonium/one 0.4.100 → 0.4.101
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-attribute-value-CPh-lJPV.mjs → magmonium-one-attribute-value-BXEWw7xP.mjs} +3 -3
- package/fesm2022/{magmonium-one-attribute-value-CPh-lJPV.mjs.map → magmonium-one-attribute-value-BXEWw7xP.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-checkbox-LdM6dqF_.mjs → magmonium-one-base-checkbox-CIUMxkzu.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-checkbox-LdM6dqF_.mjs.map → magmonium-one-base-checkbox-CIUMxkzu.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-dropdown-xhoyZ8I5.mjs → magmonium-one-base-dropdown-BMsV5USo.mjs} +9 -11
- package/fesm2022/magmonium-one-base-dropdown-BMsV5USo.mjs.map +1 -0
- package/fesm2022/{magmonium-one-size-converter-BqkALIWA.mjs → magmonium-one-base-input-BeyBAbV4.mjs} +190 -3
- package/fesm2022/magmonium-one-base-input-BeyBAbV4.mjs.map +1 -0
- package/fesm2022/{magmonium-one-base-text-ChjG3GNw.mjs → magmonium-one-base-text-BBeMl8XM.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-text-ChjG3GNw.mjs.map → magmonium-one-base-text-BBeMl8XM.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-button-BPIU6Ww0.mjs → magmonium-one-button-DC_fLy-J.mjs} +7 -7
- package/fesm2022/{magmonium-one-button-BPIU6Ww0.mjs.map → magmonium-one-button-DC_fLy-J.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-checkbox-BXNvtkzo.mjs → magmonium-one-checkbox-C85FEuTs.mjs} +5 -6
- package/fesm2022/magmonium-one-checkbox-C85FEuTs.mjs.map +1 -0
- package/fesm2022/{magmonium-one-color-utl-BA51l-Rw.mjs → magmonium-one-color-utl-DMLkkE-z.mjs} +2 -2
- package/fesm2022/{magmonium-one-color-utl-BA51l-Rw.mjs.map → magmonium-one-color-utl-DMLkkE-z.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-directives-hJ7wkmQn.mjs → magmonium-one-directives-CJK7xDPK.mjs} +4 -4
- package/fesm2022/{magmonium-one-directives-hJ7wkmQn.mjs.map → magmonium-one-directives-CJK7xDPK.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-group-mOaqnb5q.mjs → magmonium-one-group-qu3xLiI8.mjs} +7 -7
- package/fesm2022/{magmonium-one-group-mOaqnb5q.mjs.map → magmonium-one-group-qu3xLiI8.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-header-Cz3oggF7.mjs → magmonium-one-header-BC-74GOn.mjs} +4 -4
- package/fesm2022/{magmonium-one-header-Cz3oggF7.mjs.map → magmonium-one-header-BC-74GOn.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-icon-CH-g8CUR.mjs → magmonium-one-icon-CXFTG4mD.mjs} +4 -4
- package/fesm2022/{magmonium-one-icon-CH-g8CUR.mjs.map → magmonium-one-icon-CXFTG4mD.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-image-editor-D40RzxsY.mjs → magmonium-one-image-editor-BAF7cdC2.mjs} +4 -4
- package/fesm2022/{magmonium-one-image-editor-D40RzxsY.mjs.map → magmonium-one-image-editor-BAF7cdC2.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-label-D-wnA_Fl.mjs → magmonium-one-label-BNxbDSwc.mjs} +2 -2
- package/fesm2022/{magmonium-one-label-D-wnA_Fl.mjs.map → magmonium-one-label-BNxbDSwc.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-m-ref-DLIAzywu.mjs → magmonium-one-m-ref-CoK96ogW.mjs} +2 -2
- package/fesm2022/{magmonium-one-m-ref-DLIAzywu.mjs.map → magmonium-one-m-ref-CoK96ogW.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-menu-eSnsKCez.mjs → magmonium-one-menu-D_HAqfel.mjs} +6 -6
- package/fesm2022/{magmonium-one-menu-eSnsKCez.mjs.map → magmonium-one-menu-D_HAqfel.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-multi-range-C0S7udf5.mjs → magmonium-one-multi-range-DqtW4U_x.mjs} +5 -4
- package/fesm2022/magmonium-one-multi-range-DqtW4U_x.mjs.map +1 -0
- package/fesm2022/{magmonium-one-options-asset-BNd1hbLw.mjs → magmonium-one-options-asset-DWjdYQe0.mjs} +2 -2
- package/fesm2022/{magmonium-one-options-asset-BNd1hbLw.mjs.map → magmonium-one-options-asset-DWjdYQe0.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-otp-CeSz8ZZ2.mjs → magmonium-one-otp-DOPvjYJz.mjs} +5 -5
- package/fesm2022/{magmonium-one-otp-CeSz8ZZ2.mjs.map → magmonium-one-otp-DOPvjYJz.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-CSNZtS__.mjs → magmonium-one-password-BqdyEDF6.mjs} +6 -6
- package/fesm2022/{magmonium-one-password-CSNZtS__.mjs.map → magmonium-one-password-BqdyEDF6.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-radio-DlS31qJG.mjs → magmonium-one-radio-DGTbRRXb.mjs} +3 -3
- package/fesm2022/{magmonium-one-radio-DlS31qJG.mjs.map → magmonium-one-radio-DGTbRRXb.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-range-CR8go24u.mjs → magmonium-one-range-Dw4YACtP.mjs} +4 -4
- package/fesm2022/{magmonium-one-range-CR8go24u.mjs.map → magmonium-one-range-Dw4YACtP.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-selector-BK48N5us.mjs → magmonium-one-selector-QB49Ju9l.mjs} +4 -4
- package/fesm2022/{magmonium-one-selector-BK48N5us.mjs.map → magmonium-one-selector-QB49Ju9l.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-text-4zWYsKpH.mjs → magmonium-one-text-CMULvvAr.mjs} +6 -7
- package/fesm2022/{magmonium-one-text-4zWYsKpH.mjs.map → magmonium-one-text-CMULvvAr.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-text-output-E6pe3IOL.mjs → magmonium-one-text-output-DiA4R1pw.mjs} +4 -4
- package/fesm2022/{magmonium-one-text-output-E6pe3IOL.mjs.map → magmonium-one-text-output-DiA4R1pw.mjs.map} +1 -1
- package/fesm2022/magmonium-one-theme-DEgFM1wD.mjs +1 -0
- package/fesm2022/{magmonium-one-toggle-BPInV6K-.mjs → magmonium-one-toggle-sUSXzxMl.mjs} +3 -5
- package/fesm2022/magmonium-one-toggle-sUSXzxMl.mjs.map +1 -0
- package/fesm2022/magmonium-one.mjs +40 -43
- package/fesm2022/magmonium-one.mjs.map +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +39 -39
- package/fesm2022/magmonium-one-base-dropdown-xhoyZ8I5.mjs.map +0 -1
- package/fesm2022/magmonium-one-base-input-B92NOmxz.mjs +0 -183
- package/fesm2022/magmonium-one-base-input-B92NOmxz.mjs.map +0 -1
- package/fesm2022/magmonium-one-checkbox-BXNvtkzo.mjs.map +0 -1
- package/fesm2022/magmonium-one-multi-range-C0S7udf5.mjs.map +0 -1
- package/fesm2022/magmonium-one-size-converter-BqkALIWA.mjs.map +0 -1
- package/fesm2022/magmonium-one-theme-BtQyLRdQ.mjs +0 -1
- package/fesm2022/magmonium-one-toggle-BPInV6K-.mjs.map +0 -1
package/package.json
CHANGED
package/types/magmonium-one.d.ts
CHANGED
|
@@ -1622,7 +1622,7 @@ export declare class DraggableDirective {
|
|
|
1622
1622
|
readonly max: import("@angular/core").InputSignal<Position | undefined>;
|
|
1623
1623
|
readonly dragStart: import("@angular/core").OutputEmitterRef<void>;
|
|
1624
1624
|
readonly dragEnd: import("@angular/core").OutputEmitterRef<void>;
|
|
1625
|
-
protected readonly cursor: import("@angular/core").Signal<"
|
|
1625
|
+
protected readonly cursor: import("@angular/core").Signal<"move" | "ew-resize" | "ns-resize">;
|
|
1626
1626
|
protected state: DraggableState;
|
|
1627
1627
|
set pos(position: Position);
|
|
1628
1628
|
/**
|
|
@@ -2925,7 +2925,7 @@ export declare class ButtonComponent extends ReactiveElementComponent<Button> {
|
|
|
2925
2925
|
navParams: import("@angular/core").InputSignal<Record<string, string | number> | undefined>;
|
|
2926
2926
|
href: import("@angular/core").InputSignal<string | undefined>;
|
|
2927
2927
|
disabled: import("@angular/core").InputSignal<boolean | undefined>;
|
|
2928
|
-
variant: import("@angular/core").InputSignal<"
|
|
2928
|
+
variant: import("@angular/core").InputSignal<"ghost" | "primary" | "secondary" | "tab" | undefined>;
|
|
2929
2929
|
name: import("@angular/core").InputSignal<string | undefined>;
|
|
2930
2930
|
baseUrl: import("@angular/core").InputSignal<string | undefined>;
|
|
2931
2931
|
one: import("@angular/core").InputSignal<boolean | undefined>;
|
|
@@ -2938,7 +2938,7 @@ export declare class ButtonComponent extends ReactiveElementComponent<Button> {
|
|
|
2938
2938
|
icon: import("@angular/core").InputSignal<string | undefined>;
|
|
2939
2939
|
isRightIcon: import("@angular/core").InputSignal<string | boolean | undefined>;
|
|
2940
2940
|
iconOnly: import("@angular/core").InputSignal<string | boolean | undefined>;
|
|
2941
|
-
size: import("@angular/core").InputSignal<"sm" | "md" | "lg" |
|
|
2941
|
+
size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
|
|
2942
2942
|
stacked: import("@angular/core").InputSignal<string | boolean | undefined>;
|
|
2943
2943
|
imgSrc: import("@angular/core").InputSignal<string | undefined>;
|
|
2944
2944
|
nonClickable: import("@angular/core").InputSignal<string | boolean | undefined>;
|
|
@@ -3555,7 +3555,7 @@ export declare class ButtonGroupComponent extends ConfigComponent<ButtonGroup> {
|
|
|
3555
3555
|
color?: string | keyof import("dist/libs/cli/src").ThemeColor;
|
|
3556
3556
|
align?: ConfigAlign;
|
|
3557
3557
|
isLoading?: boolean;
|
|
3558
|
-
variant?: "
|
|
3558
|
+
variant?: "ghost" | "primary" | "secondary" | "tab" | undefined;
|
|
3559
3559
|
label?: string;
|
|
3560
3560
|
noTranslate?: boolean;
|
|
3561
3561
|
params?: Record<string, string>;
|
|
@@ -4359,6 +4359,11 @@ declare class BaseInputComponent<T extends Input = Input> {
|
|
|
4359
4359
|
"touched": "touchedChange";
|
|
4360
4360
|
}, never, never, true, never>;
|
|
4361
4361
|
}
|
|
4362
|
+
/**
|
|
4363
|
+
* Whether a field holds something a rule can judge. A boolean is never filled:
|
|
4364
|
+
* an unchecked required box is the empty case, not a prefill.
|
|
4365
|
+
*/
|
|
4366
|
+
declare const isFilledValue: (value: unknown) => boolean;
|
|
4362
4367
|
declare class BaseTextInputComponent<T extends Input = TextInput> extends BaseInputComponent<T> implements FormValueControl<string> {
|
|
4363
4368
|
value: ModelSignal<string>;
|
|
4364
4369
|
private inputElement;
|
|
@@ -4367,7 +4372,7 @@ declare class BaseTextInputComponent<T extends Input = TextInput> extends BaseIn
|
|
|
4367
4372
|
private autofocused;
|
|
4368
4373
|
constructor();
|
|
4369
4374
|
readonly isFocused: import("@angular/core").WritableSignal<boolean>;
|
|
4370
|
-
readonly iconColor: import("@angular/core").Signal<"error" | "
|
|
4375
|
+
readonly iconColor: import("@angular/core").Signal<"error" | "focus" | "border">;
|
|
4371
4376
|
protected readonly setValue: (value: string) => void;
|
|
4372
4377
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseTextInputComponent<any>, never>;
|
|
4373
4378
|
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseTextInputComponent<any>, never, never, {
|
|
@@ -4988,7 +4993,7 @@ export declare class SectionFilterGroupComponent {
|
|
|
4988
4993
|
readonly paddingX: import("@angular/core").InputSignal<boolean | undefined>;
|
|
4989
4994
|
readonly paddingY: import("@angular/core").InputSignal<boolean | undefined>;
|
|
4990
4995
|
readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
|
|
4991
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
4996
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
|
|
4992
4997
|
readonly config: import("@angular/core").InputSignal<SectionFilterGroupConfig | undefined>;
|
|
4993
4998
|
/**
|
|
4994
4999
|
* The whole group's selection, keyed by each Filter's `name` — one key per
|
|
@@ -5006,7 +5011,7 @@ export declare class SectionFilterGroupComponent {
|
|
|
5006
5011
|
protected readonly resolvedPadding: import("@angular/core").Signal<boolean>;
|
|
5007
5012
|
protected readonly resolvedPaddingX: import("@angular/core").Signal<boolean>;
|
|
5008
5013
|
protected readonly resolvedPaddingY: import("@angular/core").Signal<boolean>;
|
|
5009
|
-
protected readonly resolvedAlign: import("@angular/core").Signal<"
|
|
5014
|
+
protected readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
5010
5015
|
protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
|
|
5011
5016
|
protected readonly noBorder: import("@angular/core").Signal<boolean>;
|
|
5012
5017
|
/**
|
|
@@ -5111,7 +5116,7 @@ export declare class SectionStepperComponent implements OnDestroy {
|
|
|
5111
5116
|
readonly lg: import("@angular/core").InputSignal<number | undefined>;
|
|
5112
5117
|
readonly xl: import("@angular/core").InputSignal<number | undefined>;
|
|
5113
5118
|
readonly xxl: import("@angular/core").InputSignal<number | undefined>;
|
|
5114
|
-
readonly orientation: import("@angular/core").InputSignal<"
|
|
5119
|
+
readonly orientation: import("@angular/core").InputSignal<"horizontal" | "vertical" | undefined>;
|
|
5115
5120
|
readonly stepChange: import("@angular/core").OutputEmitterRef<number>;
|
|
5116
5121
|
private readonly isCompact;
|
|
5117
5122
|
private readonly mediaMatched;
|
|
@@ -5185,7 +5190,7 @@ export declare class SectionStepperComponent implements OnDestroy {
|
|
|
5185
5190
|
export declare class SectionBadgesComponent {
|
|
5186
5191
|
readonly wrap: import("@angular/core").InputSignal<boolean>;
|
|
5187
5192
|
readonly border: import("@angular/core").InputSignal<boolean>;
|
|
5188
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5193
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
|
|
5189
5194
|
private readonly sectionContext;
|
|
5190
5195
|
protected readonly hasBorder: import("@angular/core").Signal<boolean>;
|
|
5191
5196
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionBadgesComponent, never>;
|
|
@@ -5333,7 +5338,7 @@ export declare class SectionPaginationComponent {
|
|
|
5333
5338
|
* Entries that are not positive numbers drop rather than throw.
|
|
5334
5339
|
*/
|
|
5335
5340
|
readonly perPageOptions: import("@angular/core").InputSignal<string | undefined>;
|
|
5336
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5341
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
|
|
5337
5342
|
readonly showPerPage: import("@angular/core").InputSignal<boolean>;
|
|
5338
5343
|
/** Hides the band outright once everything fits one page. */
|
|
5339
5344
|
readonly hideOnSinglePage: import("@angular/core").InputSignal<boolean>;
|
|
@@ -5671,7 +5676,7 @@ export declare class SectionComponent extends ConfigComponent<SectionConfig> {
|
|
|
5671
5676
|
readonly align: import("@angular/core").InputSignal<SectionAlign | undefined>;
|
|
5672
5677
|
readonly alignX: import("@angular/core").InputSignal<GridAlignX | undefined>;
|
|
5673
5678
|
readonly alignY: import("@angular/core").InputSignal<GridAlignY | undefined>;
|
|
5674
|
-
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" |
|
|
5679
|
+
readonly size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
|
|
5675
5680
|
private readonly parentSize;
|
|
5676
5681
|
readonly resolvedSize: import("@angular/core").Signal<Size>;
|
|
5677
5682
|
protected readonly sizeLength: import("@angular/core").Signal<string>;
|
|
@@ -5842,8 +5847,8 @@ export declare class SectionHeaderComponent {
|
|
|
5842
5847
|
readonly visibilityRule: import("@angular/core").InputSignal<((key: string, data?: unknown) => boolean) | undefined>;
|
|
5843
5848
|
readonly disableRule: import("@angular/core").InputSignal<((key: string, data?: unknown) => boolean) | undefined>;
|
|
5844
5849
|
readonly extraData: import("@angular/core").InputSignal<unknown>;
|
|
5845
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5846
|
-
readonly alignment: import("@angular/core").Signal<"
|
|
5850
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
|
|
5851
|
+
readonly alignment: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
5847
5852
|
readonly badge: import("@angular/core").InputSignal<BadgeCount | undefined>;
|
|
5848
5853
|
readonly showBack: import("@angular/core").InputSignal<boolean>;
|
|
5849
5854
|
readonly actionButton: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -5862,7 +5867,7 @@ export declare class SectionHeaderComponent {
|
|
|
5862
5867
|
protected readonly sidepanel: import("@angular/core").Signal<boolean>;
|
|
5863
5868
|
protected readonly noBorder: import("@angular/core").Signal<boolean>;
|
|
5864
5869
|
protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
|
|
5865
|
-
protected readonly boxAlign: import("@angular/core").Signal<"
|
|
5870
|
+
protected readonly boxAlign: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
5866
5871
|
protected readonly iconBox: import("@angular/core").Signal<string>;
|
|
5867
5872
|
protected readonly stickyOn: import("@angular/core").Signal<boolean>;
|
|
5868
5873
|
protected readonly isSticky: import("@angular/core").Signal<boolean>;
|
|
@@ -6010,7 +6015,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
|
|
|
6010
6015
|
readonly vertical: import("@angular/core").InputSignal<boolean | undefined>;
|
|
6011
6016
|
readonly align: import("@angular/core").InputSignal<ConfigAlign>;
|
|
6012
6017
|
readonly variant: import("@angular/core").InputSignal<"spaced" | "joined" | undefined>;
|
|
6013
|
-
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" |
|
|
6018
|
+
readonly size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
|
|
6014
6019
|
readonly fullWidth: import("@angular/core").InputSignal<boolean | undefined>;
|
|
6015
6020
|
private readonly parentSize;
|
|
6016
6021
|
readonly resolvedSize: import("@angular/core").Signal<Size>;
|
|
@@ -6018,7 +6023,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
|
|
|
6018
6023
|
protected readonly resolvedFullWidth: import("@angular/core").Signal<boolean>;
|
|
6019
6024
|
protected readonly resolvedVertical: import("@angular/core").Signal<boolean>;
|
|
6020
6025
|
protected readonly resolvedVariant: import("@angular/core").Signal<"spaced" | "joined">;
|
|
6021
|
-
protected readonly resolvedAlign: import("@angular/core").Signal<"
|
|
6026
|
+
protected readonly resolvedAlign: import("@angular/core").Signal<"left" | "top" | "bottom" | "center" | "right">;
|
|
6022
6027
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionButtonGroupComponent, never>;
|
|
6023
6028
|
static ɵcmp: i0.ɵɵComponentDeclaration<SectionButtonGroupComponent, "m-section-button-group", never, {
|
|
6024
6029
|
"vertical": {
|
|
@@ -6050,7 +6055,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
|
|
|
6050
6055
|
}
|
|
6051
6056
|
export declare class SectionFooterComponent {
|
|
6052
6057
|
readonly sticky: import("@angular/core").InputSignal<boolean>;
|
|
6053
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
6058
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
|
|
6054
6059
|
readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
|
|
6055
6060
|
readonly fullWidth: import("@angular/core").InputSignal<boolean>;
|
|
6056
6061
|
private readonly isDesignMode;
|
|
@@ -6061,7 +6066,7 @@ export declare class SectionFooterComponent {
|
|
|
6061
6066
|
protected readonly sidepanel: import("@angular/core").Signal<boolean>;
|
|
6062
6067
|
protected readonly noBorder: import("@angular/core").Signal<boolean>;
|
|
6063
6068
|
protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
|
|
6064
|
-
protected readonly boxAlign: import("@angular/core").Signal<"
|
|
6069
|
+
protected readonly boxAlign: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
6065
6070
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionFooterComponent, never>;
|
|
6066
6071
|
static ɵcmp: i0.ɵɵComponentDeclaration<SectionFooterComponent, "m-section-footer", never, {
|
|
6067
6072
|
"sticky": {
|
|
@@ -7797,7 +7802,6 @@ export declare class TextInputComponent extends BaseTextInputComponent<TextOrNum
|
|
|
7797
7802
|
touched: import("@angular/core").ModelSignal<boolean>;
|
|
7798
7803
|
focused: import("@angular/core").InputSignal<boolean>;
|
|
7799
7804
|
errors: import("@angular/core").InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
|
|
7800
|
-
showErrors: import("@angular/core").Signal<boolean>;
|
|
7801
7805
|
readonly hideErrors: import("@angular/core").InputSignal<boolean>;
|
|
7802
7806
|
protected readonly isNumber: import("@angular/core").Signal<boolean>;
|
|
7803
7807
|
protected onInput(event: Event): void;
|
|
@@ -7863,7 +7867,6 @@ export declare class ClearableInputComponent extends BaseTextInputComponent {
|
|
|
7863
7867
|
focused: import("@angular/core").InputSignal<boolean>;
|
|
7864
7868
|
touched: import("@angular/core").ModelSignal<boolean>;
|
|
7865
7869
|
errors: import("@angular/core").InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
|
|
7866
|
-
showErrors: import("@angular/core").Signal<boolean>;
|
|
7867
7870
|
icon: import("@angular/core").InputSignal<string | undefined>;
|
|
7868
7871
|
placeholder: import("@angular/core").InputSignal<string>;
|
|
7869
7872
|
type: import("@angular/core").InputSignal<string>;
|
|
@@ -8124,7 +8127,6 @@ export declare class CheckboxInputComponent extends BaseCheckboxInputComponent i
|
|
|
8124
8127
|
touched: ModelSignal<boolean>;
|
|
8125
8128
|
focused: import("@angular/core").InputSignal<boolean>;
|
|
8126
8129
|
errors: import("@angular/core").InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
|
|
8127
|
-
showErrors: import("@angular/core").Signal<boolean>;
|
|
8128
8130
|
readonly optionValue: import("@angular/core").InputSignal<string | undefined>;
|
|
8129
8131
|
readonly label: import("@angular/core").InputSignal<string | undefined>;
|
|
8130
8132
|
readonly noTranslate: import("@angular/core").InputSignal<string | boolean | undefined>;
|
|
@@ -8432,7 +8434,7 @@ declare class DropdownBoxComponent {
|
|
|
8432
8434
|
}
|
|
8433
8435
|
/** The trigger both option Fields draw: a searchable text input and a chevron. */
|
|
8434
8436
|
declare const DROPDOWN_TEMPLATE = "\n @if (config(); as dropdown) {\n @if (dropdown.label) {\n <m-label\n [for]=\"dropdown.name ?? ''\"\n [placeholder]=\"dropdown.label\"\n [params]=\"dropdown.params\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n />\n }\n <div\n class=\"trigger-wrap\"\n #wrapper\n [mSelector]=\"selectorConfig()\"\n [disabled]=\"disabled() || readonly() || !!config()?.readonly\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n (focusin)=\"isFocused.set(true)\"\n (focusout)=\"isFocused.set(false)\"\n >\n <m-text-input\n [config]=\"triggerInputConfig()\"\n [value]=\"displayValue()\"\n [disabled]=\"disabled()\"\n [invalid]=\"invalid()\"\n [hideErrors]=\"true\"\n [(touched)]=\"touched\"\n [focused]=\"focused()\"\n (valueChange)=\"onInput($event)\"\n (click)=\"preventToggleWhenOpen($event)\"\n (keydown.space)=\"$event.stopPropagation()\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.arrowdown)=\"onArrow($event, 1)\"\n (keydown.arrowup)=\"onArrow($event, -1)\"\n (keydown.tab)=\"$event.stopPropagation()\"\n />\n <m-button [disabled]=\"disabled()\" [config]=\"chevron()\" />\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";
|
|
8435
|
-
declare const DROPDOWN_IMPORTS: (typeof
|
|
8437
|
+
declare const DROPDOWN_IMPORTS: (typeof LabelComponent | typeof TextOutputComponent | typeof TextInputComponent | typeof ButtonComponent | typeof SelectorDirective)[];
|
|
8436
8438
|
/**
|
|
8437
8439
|
* Everything a Dropdown and a Multiselect share: the options, the search, the
|
|
8438
8440
|
* keyboard walk and the panel. What differs is only what the Field holds — one
|
|
@@ -8447,7 +8449,6 @@ declare abstract class BaseDropdownComponent extends BaseInputComponent<Dropdown
|
|
|
8447
8449
|
touched: import("@angular/core").ModelSignal<boolean>;
|
|
8448
8450
|
focused: import("@angular/core").InputSignal<boolean>;
|
|
8449
8451
|
errors: import("@angular/core").InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
|
|
8450
|
-
showErrors: Signal<boolean>;
|
|
8451
8452
|
readonly options: import("@angular/core").InputSignal<DropdownOption<DropdownValue>[] | Signal<DropdownOption<DropdownValue>[]> | undefined>;
|
|
8452
8453
|
readonly dir: import("@angular/core").InputSignal<Direction$2 | undefined>;
|
|
8453
8454
|
readonly toggle: import("@angular/core").ModelSignal<boolean>;
|
|
@@ -8616,7 +8617,7 @@ declare class ColorPickerBoxComponent implements AfterViewInit, OnDestroy {
|
|
|
8616
8617
|
protected readonly _eyedropperConfig: import("@magmonium/one").Button;
|
|
8617
8618
|
protected readonly _headerContextMenu: ContextMenu;
|
|
8618
8619
|
protected readonly themeSwatches: import("@angular/core").Signal<{
|
|
8619
|
-
key: "
|
|
8620
|
+
key: "error" | "focus" | "border" | "background" | "text" | "textSecondary" | "mm" | "mmLite" | "mmDark" | "errorLight" | "warning" | "successLite" | "success" | "highlight" | "wealth";
|
|
8620
8621
|
color: string;
|
|
8621
8622
|
}[]>;
|
|
8622
8623
|
hue: import("@angular/core").WritableSignal<number>;
|
|
@@ -9185,7 +9186,6 @@ export declare class RatingInputComponent extends BaseInputComponent<RatingInput
|
|
|
9185
9186
|
touched: import("@angular/core").ModelSignal<boolean>;
|
|
9186
9187
|
focused: import("@angular/core").InputSignal<boolean>;
|
|
9187
9188
|
errors: import("@angular/core").InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
|
|
9188
|
-
showErrors: import("@angular/core").Signal<boolean>;
|
|
9189
9189
|
private readonly themeStore;
|
|
9190
9190
|
protected readonly stars: number[];
|
|
9191
9191
|
/** Selected-star fill; undefined leaves the stylesheet's gold in place. */
|
|
@@ -9361,7 +9361,7 @@ export declare class FileUploadInputComponent extends BaseInputComponent<FileUpl
|
|
|
9361
9361
|
private readonly editorSize;
|
|
9362
9362
|
private readonly maxSize;
|
|
9363
9363
|
protected readonly isLocked: import("@angular/core").Signal<boolean>;
|
|
9364
|
-
protected readonly dropZoneIconColor: import("@angular/core").Signal<"error" | "
|
|
9364
|
+
protected readonly dropZoneIconColor: import("@angular/core").Signal<"error" | "focus" | "border">;
|
|
9365
9365
|
/** Object URLs of the previews on show, keyed by what the value holds. */
|
|
9366
9366
|
private readonly previews;
|
|
9367
9367
|
protected readonly heldFiles: import("@angular/core").Signal<HeldFile[]>;
|
|
@@ -9815,17 +9815,17 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
|
|
|
9815
9815
|
protected readonly resolvesConfigAsset = false;
|
|
9816
9816
|
readonly variant: import("@angular/core").InputSignal<string | undefined>;
|
|
9817
9817
|
readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
|
|
9818
|
-
readonly heightMode: import("@angular/core").InputSignal<"
|
|
9818
|
+
readonly heightMode: import("@angular/core").InputSignal<"full" | "fixed" | undefined>;
|
|
9819
9819
|
readonly maxHeight: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9820
9820
|
readonly height: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9821
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
9821
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
|
|
9822
9822
|
readonly padding: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9823
9823
|
readonly paddingX: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9824
9824
|
readonly paddingY: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9825
9825
|
readonly margin: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9826
9826
|
readonly marginX: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9827
9827
|
readonly marginY: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9828
|
-
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" |
|
|
9828
|
+
readonly size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
|
|
9829
9829
|
readonly autofocus: import("@angular/core").InputSignal<boolean>;
|
|
9830
9830
|
data: import("@angular/core").InputSignal<T | undefined>;
|
|
9831
9831
|
readonly dataChange: import("@angular/core").OutputEmitterRef<T>;
|
|
@@ -9870,7 +9870,7 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
|
|
|
9870
9870
|
protected readonly handleSubmit: (event: Event) => void;
|
|
9871
9871
|
readonly resolvedSize: import("@angular/core").Signal<Size>;
|
|
9872
9872
|
protected readonly sizeLength: import("@angular/core").Signal<string | null>;
|
|
9873
|
-
readonly resolvedAlign: import("@angular/core").Signal<"
|
|
9873
|
+
readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
9874
9874
|
readonly resolvedVariant: import("@angular/core").Signal<string | undefined>;
|
|
9875
9875
|
readonly resolvedMaxWidth: import("@angular/core").Signal<string | number | undefined>;
|
|
9876
9876
|
private readonly resolvedPadding;
|
|
@@ -9882,7 +9882,7 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
|
|
|
9882
9882
|
readonly resolvedMinHeight: import("@angular/core").Signal<string | undefined>;
|
|
9883
9883
|
readonly resolvedMinWidth: import("@angular/core").Signal<string | undefined>;
|
|
9884
9884
|
readonly resolvedMaxHeight: import("@angular/core").Signal<string | number | undefined>;
|
|
9885
|
-
readonly resolvedHeightMode: import("@angular/core").Signal<"
|
|
9885
|
+
readonly resolvedHeightMode: import("@angular/core").Signal<"full" | "fixed" | undefined>;
|
|
9886
9886
|
readonly isFullHeight: import("@angular/core").Signal<boolean>;
|
|
9887
9887
|
readonly cssMaxHeight: import("@angular/core").Signal<string | undefined>;
|
|
9888
9888
|
constructor();
|
|
@@ -10552,7 +10552,7 @@ export declare class StepperComponent extends ConfigComponent<Stepper> {
|
|
|
10552
10552
|
constructor();
|
|
10553
10553
|
protected readonly isReadonly: import("@angular/core").Signal<boolean>;
|
|
10554
10554
|
protected readonly stepperDisabled: import("@angular/core").Signal<boolean>;
|
|
10555
|
-
protected readonly orientation: import("@angular/core").Signal<"
|
|
10555
|
+
protected readonly orientation: import("@angular/core").Signal<"vertical" | "compact">;
|
|
10556
10556
|
protected readonly currentStepLabel: import("@angular/core").Signal<string>;
|
|
10557
10557
|
protected readonly nextStepLabel: import("@angular/core").Signal<string>;
|
|
10558
10558
|
protected readonly isLastStep: import("@angular/core").Signal<boolean>;
|
|
@@ -10736,7 +10736,7 @@ export declare class ComponentStepperComponent {
|
|
|
10736
10736
|
components: import("@angular/core").InputSignal<Type<unknown>[]>;
|
|
10737
10737
|
labels: import("@angular/core").InputSignal<string[] | undefined>;
|
|
10738
10738
|
currentIndex: import("@angular/core").InputSignal<number>;
|
|
10739
|
-
variant: import("@angular/core").InputSignal<"
|
|
10739
|
+
variant: import("@angular/core").InputSignal<"horizontal" | "vertical">;
|
|
10740
10740
|
context: import("@angular/core").InputSignal<Record<string, unknown> | undefined>;
|
|
10741
10741
|
readonly stepChange: import("@angular/core").OutputEmitterRef<number>;
|
|
10742
10742
|
static ɵfac: i0.ɵɵFactoryDeclaration<ComponentStepperComponent, never>;
|
|
@@ -12161,7 +12161,7 @@ export declare class ScoreSetItemComponent {
|
|
|
12161
12161
|
private readonly themeStore;
|
|
12162
12162
|
protected readonly tipId: string;
|
|
12163
12163
|
protected readonly tipDismissed: import("@angular/core").WritableSignal<boolean>;
|
|
12164
|
-
protected readonly shape: import("@angular/core").Signal<"
|
|
12164
|
+
protected readonly shape: import("@angular/core").Signal<"primary" | "none" | "row">;
|
|
12165
12165
|
protected readonly tone: import("@angular/core").Signal<string | null>;
|
|
12166
12166
|
protected readonly model: import("@angular/core").Signal<{
|
|
12167
12167
|
value: number | null;
|
|
@@ -12475,7 +12475,7 @@ export declare class PriceLadderComponent {
|
|
|
12475
12475
|
protected readonly current: import("@angular/core").Signal<number | null>;
|
|
12476
12476
|
/** The forecast point: a `forecast` mark, else the `target` input. */
|
|
12477
12477
|
private readonly targetPoint;
|
|
12478
|
-
protected readonly shownAs: import("@angular/core").Signal<"
|
|
12478
|
+
protected readonly shownAs: import("@angular/core").Signal<"list" | "line">;
|
|
12479
12479
|
/** Every drawable mark, the `current` and `forecast` stand-ins included. */
|
|
12480
12480
|
private readonly everyMark;
|
|
12481
12481
|
/** The reference levels drawn as ticks and labels. */
|
|
@@ -12818,7 +12818,7 @@ export declare class ScaleComponent {
|
|
|
12818
12818
|
private readonly formatter;
|
|
12819
12819
|
/** A value as text: a `percent` value is already in percent (12.5 → 12.5%). */
|
|
12820
12820
|
readonly formatValue: (v: number) => string;
|
|
12821
|
-
protected readonly shownAs: import("@angular/core").Signal<"
|
|
12821
|
+
protected readonly shownAs: import("@angular/core").Signal<"horizontal" | "vertical">;
|
|
12822
12822
|
private readonly marks;
|
|
12823
12823
|
protected readonly primary: import("@angular/core").Signal<Mark | null>;
|
|
12824
12824
|
private readonly relations;
|
|
@@ -13569,7 +13569,7 @@ export type DocAiPhase = 'idle' | 'asking' | 'question' | 'outline' | 'writing'
|
|
|
13569
13569
|
*/
|
|
13570
13570
|
export declare class DocEditorComponent implements ControlValueAccessor {
|
|
13571
13571
|
protected readonly groups: readonly import("@magmonium/one").DocToolbarGroup[];
|
|
13572
|
-
protected readonly icons: Record<"
|
|
13572
|
+
protected readonly icons: Record<"bold" | "italic" | "strike" | "heading" | "list" | "quote" | "link" | "code" | "table", string>;
|
|
13573
13573
|
protected readonly docActionKey: typeof docActionKey;
|
|
13574
13574
|
private readonly translate;
|
|
13575
13575
|
protected readonly value: import("@angular/core").WritableSignal<string>;
|
|
@@ -15578,7 +15578,7 @@ export declare class ConfirmComponent {
|
|
|
15578
15578
|
* every confirmation drawn before this.
|
|
15579
15579
|
*/
|
|
15580
15580
|
params: import("@angular/core").InputSignal<Record<string, string>>;
|
|
15581
|
-
type: import("@angular/core").InputSignal<"warning" | "success" | "
|
|
15581
|
+
type: import("@angular/core").InputSignal<"warning" | "success" | "danger" | "info">;
|
|
15582
15582
|
/**
|
|
15583
15583
|
* Whether the question can be refused. `yes` is an acknowledgement — the one
|
|
15584
15584
|
* button commits and there is nothing else to press — and stays the default,
|
|
@@ -15595,7 +15595,7 @@ export declare class ConfirmComponent {
|
|
|
15595
15595
|
cancelLabel: import("@angular/core").InputSignal<string>;
|
|
15596
15596
|
protected readonly confirmText: import("@angular/core").Signal<string>;
|
|
15597
15597
|
protected readonly cancelText: import("@angular/core").Signal<string>;
|
|
15598
|
-
protected readonly accent: import("@angular/core").Signal<"error" | "
|
|
15598
|
+
protected readonly accent: import("@angular/core").Signal<"error" | "warning" | "success" | "mm">;
|
|
15599
15599
|
protected readonly iconName: import("@angular/core").Signal<"exclamation-triangle" | "info" | "trash" | "check-circle">;
|
|
15600
15600
|
protected accept(): void;
|
|
15601
15601
|
protected decline(): void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-base-dropdown-xhoyZ8I5.mjs","names":[],"sources":["../../../../libs/one/src/lib/shared/ui/input/ui/dropdown/dropdown-box.ts","../../../../libs/one/src/lib/shared/ui/input/ui/dropdown/base-dropdown.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { TranslatePipe } from '../../../../pipe/translate';\nimport { DropdownOption, DropdownValue } from '../../model/input';\n\n@Component({\n selector: 'm-dropdown-box',\n imports: [TranslatePipe],\n template: `\n <ul class=\"dropdown-box\" role=\"listbox\">\n @for (option of options(); track option.value; let i = $index) {\n @let selectedState = isSelected(option.value);\n <li\n class=\"dropdown-box__option\"\n [class.dropdown-box__option--selected]=\"selectedState\"\n [class.dropdown-box__option--disabled]=\"option.disabled\"\n [class.dropdown-box__option--active]=\"i === activeIndex()\"\n [style.--m-dropdown-option-depth]=\"option.depth\"\n role=\"option\"\n [attr.aria-selected]=\"selectedState\"\n [attr.data-value]=\"option.value\"\n (click)=\"selectOption(option)\"\n (keydown.enter)=\"selectOption(option)\"\n tabindex=\"0\"\n >\n <!-- A group header is a row, never a choice: no box to tick. -->\n @if (multiple() && !option.disabled) {\n <input\n type=\"checkbox\"\n class=\"dropdown-box__checkbox\"\n [checked]=\"selectedState\"\n tabindex=\"-1\"\n (click)=\"$event.preventDefault()\"\n />\n }\n @if (option.noTranslate) {\n {{ option.label }}\n } @else {\n {{ option.label | translate }}\n }\n </li>\n } @empty {\n <li class=\"dropdown-box__empty\">\n {{ 'no-results-found' | translate }}\n </li>\n }\n </ul>\n `,\n styleUrl: './dropdown-box.sass',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownBoxComponent {\n readonly options = input<DropdownOption<DropdownValue>[]>([]);\n /** The values ticked, as a list whichever Field drew the panel. */\n readonly selected = input<readonly DropdownValue[]>([]);\n readonly multiple = input<boolean>(false);\n readonly activeIndex = input<number>(-1);\n readonly action = output<DropdownOption<DropdownValue>>();\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n // Keep the keyboard-active option in view as ↑/↓ walk a scrolled list.\n constructor() {\n effect(() => {\n const index = this.activeIndex();\n if (index < 0) return;\n this.host.nativeElement\n .querySelectorAll('.dropdown-box__option')\n [index]?.scrollIntoView?.({ block: 'nearest' });\n });\n }\n\n protected readonly isSelected = (value: DropdownValue): boolean =>\n this.selected().includes(value);\n\n // Only emit a selection event for enabled options.\n protected readonly selectOption = (\n option: DropdownOption<DropdownValue>\n ): void => {\n if (option.disabled) return;\n this.action.emit(option);\n };\n}\n","import {\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n inputBinding,\n linkedSignal,\n model,\n outputBinding,\n Signal,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ValidationError, WithOptionalFieldTree } from '@angular/forms/signals';\nimport { LabelComponent } from '../label';\nimport { TextOutputComponent } from '../../../text-output';\nimport { BaseInputComponent } from '../../lib/base-input';\nimport { Button } from '../../../button/type/button';\nimport { ButtonComponent } from '../../../button/ui/button';\nimport { TranslateService } from '../../../../services';\nimport { SelectorConfig, SelectorDirective } from '../../../../directives';\nimport { Direction } from '../../../../directives/selector/selector-type';\nimport { DropdownBoxComponent } from './dropdown-box';\nimport {\n DropdownInput,\n DropdownOption,\n DropdownValue,\n TextInput,\n} from '../../model/input';\nimport { TextInputComponent } from '../text/text';\nimport { assetOptions } from '../../lib/options-asset';\n\n/** The trigger both option Fields draw: a searchable text input and a chevron. */\nexport const DROPDOWN_TEMPLATE = `\n @if (config(); as dropdown) {\n @if (dropdown.label) {\n <m-label\n [for]=\"dropdown.name ?? ''\"\n [placeholder]=\"dropdown.label\"\n [params]=\"dropdown.params\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n />\n }\n <div\n class=\"trigger-wrap\"\n #wrapper\n [mSelector]=\"selectorConfig()\"\n [disabled]=\"disabled() || readonly() || !!config()?.readonly\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n (focusin)=\"isFocused.set(true)\"\n (focusout)=\"isFocused.set(false)\"\n >\n <m-text-input\n [config]=\"triggerInputConfig()\"\n [value]=\"displayValue()\"\n [disabled]=\"disabled()\"\n [invalid]=\"invalid()\"\n [hideErrors]=\"true\"\n [(touched)]=\"touched\"\n [focused]=\"focused()\"\n (valueChange)=\"onInput($event)\"\n (click)=\"preventToggleWhenOpen($event)\"\n (keydown.space)=\"$event.stopPropagation()\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.arrowdown)=\"onArrow($event, 1)\"\n (keydown.arrowup)=\"onArrow($event, -1)\"\n (keydown.tab)=\"$event.stopPropagation()\"\n />\n <m-button [disabled]=\"disabled()\" [config]=\"chevron()\" />\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\nexport const DROPDOWN_IMPORTS = [\n LabelComponent,\n TextOutputComponent,\n TextInputComponent,\n ButtonComponent,\n SelectorDirective,\n];\n\n/**\n * Everything a Dropdown and a Multiselect share: the options, the search, the\n * keyboard walk and the panel. What differs is only what the Field holds — one\n * value or a list — so a subclass says which values are selected and what a\n * pick does to them.\n */\n@Directive()\nexport abstract class BaseDropdownComponent extends BaseInputComponent<DropdownInput> {\n public override config = input<Partial<DropdownInput> | 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 WithOptionalFieldTree<ValidationError>[]>(\n []\n );\n public override showErrors = computed(() => this.touched() && this.invalid());\n\n readonly options = input<\n DropdownOption<DropdownValue>[] | Signal<DropdownOption<DropdownValue>[]>\n >();\n readonly dir = input<Direction>();\n readonly toggle = model(false);\n readonly searchTerm = signal('');\n readonly isFocused = signal(false);\n readonly chevron = computed(\n () =>\n <Button>{\n icon: this.toggle() ? 'chevron-up' : 'chevron-down',\n one: true,\n variant: 'ghost',\n // In-Field control, never the form's submit — without this the Button\n // reads as the submit control and greys out while the form is invalid.\n type: 'button',\n // Chevron tracks the trigger's border like the text input's own icon:\n // red while the Field shows errors, focus tint while focused, border at rest.\n color: this.showErrors()\n ? 'error'\n : this.isFocused()\n ? 'focus'\n : 'border',\n // The trigger input is the Field's tab stop; the chevron only repeats\n // what clicking that input already does, so Tab walks past it.\n tabindex: -1,\n }\n );\n\n /** The values the Field holds now, as a list whichever kind it is. */\n protected abstract readonly selectedValues: Signal<readonly DropdownValue[]>;\n /** Whether the panel ticks rows and stays open across picks. */\n protected abstract readonly multiple: boolean;\n /** What picking `option` does to the Field's value. */\n protected abstract selectOption(option: DropdownOption<DropdownValue>): void;\n\n protected readonly triggerInputConfig = computed(() => {\n const dropdown = this.config() as DropdownInput | undefined;\n return <Partial<TextInput>>{\n name: dropdown?.name,\n icon: dropdown?.icon,\n one: dropdown?.one,\n placeholder: this.placeholderText(),\n readonly: this.readonly() || !!dropdown?.readonly,\n };\n });\n\n protected readonly dropdownOptions = computed(\n (): DropdownOption<DropdownValue>[] => {\n const runtimeOptions = this.options();\n const source =\n runtimeOptions ?? (this.config() as DropdownInput | undefined)?.options;\n if (typeof source === 'function') return source();\n if (source?.length) return source;\n return this.assetOptions();\n }\n );\n\n private readonly translateService = inject(TranslateService);\n\n protected readonly assetOptions = assetOptions(\n () => (this.config() as DropdownInput | undefined)?.optionsAsset\n );\n\n /** An option's text: authored as it stands, a key translated. */\n private readonly optionLabel = (\n option?: DropdownOption<DropdownValue>\n ): string => {\n if (!option?.label) return '';\n return option.noTranslate\n ? option.label\n : this.translateService.translate(option.label);\n };\n\n protected readonly filteredOptions = computed(\n (): DropdownOption<DropdownValue>[] => {\n const search = this.searchTerm().toLowerCase();\n if (!search) return this.dropdownOptions();\n return this.dropdownOptions().filter((o) => {\n const label = this.optionLabel(o).toLowerCase();\n return (\n label.includes(search) ||\n String(o.value).toLowerCase().includes(search)\n );\n });\n }\n );\n\n /** The option ↑/↓ point at while the panel is open; -1 is none. Reset as the search narrows the list. */\n protected readonly activeIndex = linkedSignal<\n DropdownOption<DropdownValue>[],\n number\n >({\n source: this.filteredOptions,\n computation: (options) =>\n this.searchTerm() ? this.nextEnabled(options, -1, 1) : -1,\n });\n\n /** The enabled option `step` rows past `from`, wrapping; `from` itself when none. */\n private readonly nextEnabled = (\n options: DropdownOption<DropdownValue>[],\n from: number,\n step: 1 | -1\n ): number => {\n for (let i = 1; i <= options.length; i++) {\n const index =\n (((from + step * i) % options.length) + options.length) %\n options.length;\n if (!options[index].disabled) return index;\n }\n return from;\n };\n\n /** One pick reads as its option's label, several as a count. */\n private readonly selectionLabel = computed((): string => {\n const values = this.selectedValues();\n if (values.length === 0) return '';\n if (values.length === 1) {\n return this.optionLabel(\n this.dropdownOptions().find((o) => o.value === values[0])\n );\n }\n const translation = this.translateService.translate(\n `selected?count=${values.length}`\n );\n return translation.includes('selected')\n ? `${values.length} Selected`\n : translation;\n });\n\n protected readonly displayValue = computed((): string =>\n this.toggle() ? this.searchTerm() : this.selectionLabel()\n );\n\n protected readonly placeholderText = computed((): string => {\n if (this.toggle()) {\n const label = this.selectionLabel();\n if (label) return label;\n }\n const placeholder = (this.config() as DropdownInput | undefined)\n ?.placeholder;\n return placeholder ? this.translateService.translate(placeholder) : '';\n });\n\n private readonly wrapperRef =\n viewChild<ElementRef<HTMLDivElement>>('wrapper');\n\n protected readonly selectorConfig = computed<\n SelectorConfig<DropdownBoxComponent>\n >(() => ({\n component: DropdownBoxComponent,\n base: 'm-dropdown-input',\n matchTriggerWidth: true,\n toggle: true,\n dir: this.dir(),\n bindings: [\n inputBinding('options', this.filteredOptions),\n inputBinding('selected', this.selectedValues),\n inputBinding('multiple', () => this.multiple),\n inputBinding('activeIndex', this.activeIndex),\n outputBinding<DropdownOption<DropdownValue>>('action', (option) =>\n this.selectOption(option)\n ),\n ],\n }));\n\n /** Shuts the panel after a pick, the way a click on the trigger would. */\n protected readonly closePanel = (): void => {\n this.toggle.set(false);\n this.searchTerm.set('');\n setTimeout(() => this.wrapperRef()?.nativeElement.click(), 0);\n };\n\n protected readonly onOpened = (): void => {\n this.toggle.set(true);\n this.searchTerm.set('');\n const current = this.selectedValues()[0];\n this.activeIndex.set(\n this.filteredOptions().findIndex((o) => o.value === current)\n );\n };\n\n // Focus stays in the trigger input (it is the search box), so ↑/↓ move the\n // active option rather than DOM focus. Closed, ArrowDown bubbles on to\n // SelectorDirective, which opens the panel.\n protected readonly onArrow = (event: Event, step: 1 | -1): void => {\n if (!this.toggle()) return;\n event.preventDefault();\n this.activeIndex.update((index) =>\n this.nextEnabled(this.filteredOptions(), index, step)\n );\n };\n\n // Enter never reaches SelectorDirective (it would toggle the panel); open,\n // it picks the active option.\n protected readonly onEnter = (event: Event): void => {\n event.stopPropagation();\n if (!this.toggle()) return;\n event.preventDefault();\n const option = this.filteredOptions()[this.activeIndex()];\n if (option && !option.disabled) this.selectOption(option);\n };\n\n protected readonly onClosed = (): void => {\n this.toggle.set(false);\n this.searchTerm.set('');\n };\n\n protected readonly onInput = (value: string): void => {\n this.searchTerm.set(value);\n };\n\n protected readonly preventToggleWhenOpen = (event: Event): void => {\n if (this.toggle() || this.readonly() || this.config()?.readonly) {\n event.stopPropagation();\n }\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import { i as resolveSize } from "./magmonium-one-size-converter-BqkALIWA.mjs";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import { Directive, ElementRef, computed, effect, inject, input, model } from "@angular/core";
|
|
4
|
-
var BaseInputComponent = class BaseInputComponent {
|
|
5
|
-
focused = input(false, ...ngDevMode ? [{ debugName: "focused" }] : /* istanbul ignore next */ []);
|
|
6
|
-
errors = input([], ...ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []);
|
|
7
|
-
config = input(...ngDevMode ? [void 0, { debugName: "config" }] : /* istanbul ignore next */ []);
|
|
8
|
-
required = input(false, ...ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []);
|
|
9
|
-
disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
10
|
-
invalid = input(false, ...ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []);
|
|
11
|
-
touched = model(false, ...ngDevMode ? [{ debugName: "touched" }] : /* istanbul ignore next */ []);
|
|
12
|
-
readonly = input(false, ...ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []);
|
|
13
|
-
elementRef = inject(ElementRef);
|
|
14
|
-
applyConfigSize = effect(() => {
|
|
15
|
-
const size = this.config()?.size;
|
|
16
|
-
const el = this.elementRef.nativeElement;
|
|
17
|
-
if (size) {
|
|
18
|
-
const resolved = resolveSize(size);
|
|
19
|
-
el.style.setProperty("--input-size", resolved);
|
|
20
|
-
el.style.fontSize = resolved;
|
|
21
|
-
} else {
|
|
22
|
-
el.style.removeProperty("--input-size");
|
|
23
|
-
el.style.removeProperty("font-size");
|
|
24
|
-
}
|
|
25
|
-
}, ...ngDevMode ? [{ debugName: "applyConfigSize" }] : /* istanbul ignore next */ []);
|
|
26
|
-
showErrors = computed(() => (this.touched() === true || this.touched() + "" === "true") && (this.invalid() === true || this.invalid() + "" === "true"), ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
27
|
-
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
28
|
-
minVersion: "12.0.0",
|
|
29
|
-
version: "22.2.1",
|
|
30
|
-
ngImport: i0,
|
|
31
|
-
type: BaseInputComponent,
|
|
32
|
-
deps: [],
|
|
33
|
-
target: i0.ɵɵFactoryTarget.Directive
|
|
34
|
-
});
|
|
35
|
-
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
36
|
-
minVersion: "17.1.0",
|
|
37
|
-
version: "22.2.1",
|
|
38
|
-
type: BaseInputComponent,
|
|
39
|
-
isStandalone: true,
|
|
40
|
-
inputs: {
|
|
41
|
-
focused: {
|
|
42
|
-
classPropertyName: "focused",
|
|
43
|
-
publicName: "focused",
|
|
44
|
-
isSignal: true,
|
|
45
|
-
isRequired: false,
|
|
46
|
-
transformFunction: null
|
|
47
|
-
},
|
|
48
|
-
errors: {
|
|
49
|
-
classPropertyName: "errors",
|
|
50
|
-
publicName: "errors",
|
|
51
|
-
isSignal: true,
|
|
52
|
-
isRequired: false,
|
|
53
|
-
transformFunction: null
|
|
54
|
-
},
|
|
55
|
-
config: {
|
|
56
|
-
classPropertyName: "config",
|
|
57
|
-
publicName: "config",
|
|
58
|
-
isSignal: true,
|
|
59
|
-
isRequired: false,
|
|
60
|
-
transformFunction: null
|
|
61
|
-
},
|
|
62
|
-
required: {
|
|
63
|
-
classPropertyName: "required",
|
|
64
|
-
publicName: "required",
|
|
65
|
-
isSignal: true,
|
|
66
|
-
isRequired: false,
|
|
67
|
-
transformFunction: null
|
|
68
|
-
},
|
|
69
|
-
disabled: {
|
|
70
|
-
classPropertyName: "disabled",
|
|
71
|
-
publicName: "disabled",
|
|
72
|
-
isSignal: true,
|
|
73
|
-
isRequired: false,
|
|
74
|
-
transformFunction: null
|
|
75
|
-
},
|
|
76
|
-
invalid: {
|
|
77
|
-
classPropertyName: "invalid",
|
|
78
|
-
publicName: "invalid",
|
|
79
|
-
isSignal: true,
|
|
80
|
-
isRequired: false,
|
|
81
|
-
transformFunction: null
|
|
82
|
-
},
|
|
83
|
-
touched: {
|
|
84
|
-
classPropertyName: "touched",
|
|
85
|
-
publicName: "touched",
|
|
86
|
-
isSignal: true,
|
|
87
|
-
isRequired: false,
|
|
88
|
-
transformFunction: null
|
|
89
|
-
},
|
|
90
|
-
readonly: {
|
|
91
|
-
classPropertyName: "readonly",
|
|
92
|
-
publicName: "readonly",
|
|
93
|
-
isSignal: true,
|
|
94
|
-
isRequired: false,
|
|
95
|
-
transformFunction: null
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
outputs: { touched: "touchedChange" },
|
|
99
|
-
ngImport: i0
|
|
100
|
-
});
|
|
101
|
-
};
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
103
|
-
minVersion: "12.0.0",
|
|
104
|
-
version: "22.2.1",
|
|
105
|
-
ngImport: i0,
|
|
106
|
-
type: BaseInputComponent,
|
|
107
|
-
decorators: [{
|
|
108
|
-
type: Directive,
|
|
109
|
-
args: [{}]
|
|
110
|
-
}],
|
|
111
|
-
propDecorators: {
|
|
112
|
-
focused: [{
|
|
113
|
-
type: i0.Input,
|
|
114
|
-
args: [{
|
|
115
|
-
isSignal: true,
|
|
116
|
-
alias: "focused",
|
|
117
|
-
required: false
|
|
118
|
-
}]
|
|
119
|
-
}],
|
|
120
|
-
errors: [{
|
|
121
|
-
type: i0.Input,
|
|
122
|
-
args: [{
|
|
123
|
-
isSignal: true,
|
|
124
|
-
alias: "errors",
|
|
125
|
-
required: false
|
|
126
|
-
}]
|
|
127
|
-
}],
|
|
128
|
-
config: [{
|
|
129
|
-
type: i0.Input,
|
|
130
|
-
args: [{
|
|
131
|
-
isSignal: true,
|
|
132
|
-
alias: "config",
|
|
133
|
-
required: false
|
|
134
|
-
}]
|
|
135
|
-
}],
|
|
136
|
-
required: [{
|
|
137
|
-
type: i0.Input,
|
|
138
|
-
args: [{
|
|
139
|
-
isSignal: true,
|
|
140
|
-
alias: "required",
|
|
141
|
-
required: false
|
|
142
|
-
}]
|
|
143
|
-
}],
|
|
144
|
-
disabled: [{
|
|
145
|
-
type: i0.Input,
|
|
146
|
-
args: [{
|
|
147
|
-
isSignal: true,
|
|
148
|
-
alias: "disabled",
|
|
149
|
-
required: false
|
|
150
|
-
}]
|
|
151
|
-
}],
|
|
152
|
-
invalid: [{
|
|
153
|
-
type: i0.Input,
|
|
154
|
-
args: [{
|
|
155
|
-
isSignal: true,
|
|
156
|
-
alias: "invalid",
|
|
157
|
-
required: false
|
|
158
|
-
}]
|
|
159
|
-
}],
|
|
160
|
-
touched: [{
|
|
161
|
-
type: i0.Input,
|
|
162
|
-
args: [{
|
|
163
|
-
isSignal: true,
|
|
164
|
-
alias: "touched",
|
|
165
|
-
required: false
|
|
166
|
-
}]
|
|
167
|
-
}, {
|
|
168
|
-
type: i0.Output,
|
|
169
|
-
args: ["touchedChange"]
|
|
170
|
-
}],
|
|
171
|
-
readonly: [{
|
|
172
|
-
type: i0.Input,
|
|
173
|
-
args: [{
|
|
174
|
-
isSignal: true,
|
|
175
|
-
alias: "readonly",
|
|
176
|
-
required: false
|
|
177
|
-
}]
|
|
178
|
-
}]
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
export { BaseInputComponent as t };
|
|
182
|
-
|
|
183
|
-
//# sourceMappingURL=magmonium-one-base-input-B92NOmxz.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-base-input-B92NOmxz.mjs","names":[],"sources":["../../../../libs/one/src/lib/shared/ui/input/lib/base-input.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n effect,\n inject,\n input,\n model,\n computed,\n InputSignal,\n ModelSignal,\n} from '@angular/core';\nimport { ValidationError, WithOptionalFieldTree } from '@angular/forms/signals';\nimport { Size } from '../../../enum/scaling/size';\nimport { Input } from '../model/input';\nimport { resolveSize } from '../../../functions/size/size-converter';\n\n@Directive({})\nexport class BaseInputComponent<T extends Input = Input> {\n public focused: InputSignal<boolean> = input<boolean>(false);\n public errors: InputSignal<readonly WithOptionalFieldTree<ValidationError>[]> =\n input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n public config: InputSignal<Partial<T> | undefined> = input<\n Partial<T> | undefined\n >();\n public required: InputSignal<boolean> = input<boolean>(false);\n public disabled: InputSignal<boolean> = input<boolean>(false);\n public invalid: InputSignal<boolean> = input<boolean>(false);\n public touched: ModelSignal<boolean> = model<boolean>(false);\n public readonly: InputSignal<boolean> = input<boolean>(false);\n\n protected readonly elementRef = inject(ElementRef);\n\n // SectionFormItem stamps Size onto config; inputs scale via CSS var\n // so size changes update without destroying the field. Uses CSS var because\n // host may have display: contents, but CSS vars still inherit to children.\n private readonly applyConfigSize = effect(() => {\n const configWithSize = this.config() as Partial<Input> & { size?: Size };\n const size = configWithSize?.size;\n const el = this.elementRef.nativeElement as HTMLElement;\n if (size) {\n const resolved = resolveSize(size);\n el.style.setProperty('--input-size', resolved);\n // Some input variants declare their own font-size on the rendered\n // control. Keep the actual input text synchronized with the size that\n // drives its geometry instead of relying only on inherited variables.\n el.style.fontSize = resolved;\n } else {\n el.style.removeProperty('--input-size');\n el.style.removeProperty('font-size');\n }\n });\n\n public showErrors = computed(() => \n (this.touched() === true || this.touched() + '' === 'true') && \n (this.invalid() === true || this.invalid() + '' === 'true')\n );\n}\n"],"mappings":";;;AAiBA,IAAa,qBAAb,MAAa,mBAAkB;CACtB,UAAgC,MAAe,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CACrD,SACL,MAAyD,CAAA,GAAG,GAAA,YAAA,CAAA,EAAA,WAAA,SAAA,CAAA,+BAAA,CAAA,CAAA;CACvD,SAA8C,MAElD,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,SAAA,CAAA,+BAAA,CAAA,CAAA;CACI,WAAiC,MAAe,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,WAAA,CAAA,+BAAA,CAAA,CAAA;CACtD,WAAiC,MAAe,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,WAAA,CAAA,+BAAA,CAAA,CAAA;CACtD,UAAgC,MAAe,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CACrD,UAAgC,MAAe,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CACrD,WAAiC,MAAe,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,WAAA,CAAA,+BAAA,CAAA,CAAA;CAE1C,aAAa,OAAO,UAAU;CAKhC,kBAAkB,aAAY;EAE7C,MAAM,OADiB,KAAK,OACf,CAAA,EAAgB;EAC7B,MAAM,KAAK,KAAK,WAAW;EAC3B,IAAI,MAAM;GACR,MAAM,WAAW,YAAY,IAAI;GACjC,GAAG,MAAM,YAAY,gBAAgB,QAAQ;GAI7C,GAAG,MAAM,WAAW;EACtB,OAAO;GACL,GAAG,MAAM,eAAe,cAAc;GACtC,GAAG,MAAM,eAAe,WAAW;EACrC;CACF,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,kBAAA,CAAA,+BAAA,CAAA,CAAA;CAEK,aAAa,gBACjB,KAAK,QAAO,MAAO,QAAQ,KAAK,QAAO,IAAK,OAAO,YACnD,KAAK,QAAO,MAAO,QAAQ,KAAK,QAAO,IAAK,OAAO,SACrD,GAAA,YAAA,CAAA,EAAA,WAAA,aAAA,CAAA,+BAAA,CAAA,CAAA;CAtCU,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAkB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAlB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAkB,cAAA;EAAA,QAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,QAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,QAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,UAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,UAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,UAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,SAAA,EAAA,SAAA,gBAAA;EAAA,UAAA;CAAA,CAAA;;AAAlB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkB,YAAA,CAAA;EAD9B,MAAA;EAAU,MAAA,CAAA,CAAA,CAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-checkbox-BXNvtkzo.mjs","names":[],"sources":["../../../../libs/one/src/lib/shared/ui/input/lib/placed-checkbox.token.ts","../../../../libs/one/src/lib/shared/ui/input/ui/checkbox/checkbox.ts"],"sourcesContent":["import { InjectionToken, Signal } from '@angular/core';\nimport { DropdownOption } from '../model/input';\n\n/**\n * An `m-checkbox` placed between a SectionFormItem's tags as one option of its\n * CheckboxGroup (libs/one ADR 0039). Provided by the checkbox itself so the\n * item can collect its children without importing the checkbox chunk it only\n * lazy-loads. `undefined` until the checkbox names a `value`.\n */\nexport type PlacedCheckbox = {\n readonly option: Signal<DropdownOption | undefined>;\n};\n\nexport const PLACED_CHECKBOX = new InjectionToken<PlacedCheckbox>(\n 'PLACED_CHECKBOX'\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n ModelSignal,\n} from '@angular/core';\nimport { BaseCheckboxInputComponent } from './base-checkbox';\nimport { LabelComponent } from '../label';\nimport { TextOutputComponent } from '../../../text-output';\nimport { ValidationError, WithOptionalFieldTree } from '@angular/forms/signals';\nimport { DropdownOption, Input } from '../../model/input';\nimport {\n PLACED_CHECKBOX,\n PlacedCheckbox,\n} from '../../lib/placed-checkbox.token';\nimport { toAttrBool } from '../../../../functions/config/attribute-value';\n\n@Component({\n selector: 'm-checkbox',\n template: `\n @if (config(); as checkbox) {\n <div class=\"checkbox\">\n <input\n [checked]=\"checked()\"\n #inputElement\n [class.error]=\"showErrors()\"\n [disabled]=\"disabled()\"\n (change)=\"onChange($event)\"\n type=\"checkbox\"\n [id]=\"checkbox.name\"\n />\n @if (labelText(); as text) {\n <m-label\n [for]=\"checkbox.name\"\n [placeholder]=\"text\"\n [params]=\"checkbox.params\"\n [noTranslate]=\"isNoTranslate()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\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 imports: [LabelComponent, TextOutputComponent],\n styleUrl: './checkbox.sass',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: PLACED_CHECKBOX, useExisting: CheckboxInputComponent },\n ],\n})\nexport class CheckboxInputComponent\n extends BaseCheckboxInputComponent\n implements PlacedCheckbox\n{\n public override value = undefined;\n public override checked = model<boolean>(false) as ModelSignal<boolean>;\n public override config = input<Partial<Input> | 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 WithOptionalFieldTree<ValidationError>[]>(\n []\n );\n public override showErrors = computed(() => this.touched() && this.invalid());\n\n // What a checkbox placed inside a CheckboxGroup's SectionFormItem says about\n // the option it stands for, written on its own tag (ADR 0010, ADR 0039).\n // `value` is the attribute because it is the option's value; the member is\n // named apart because FormCheckboxControl pins `value` itself to undefined —\n // a checkbox control's value is `checked`.\n /* eslint-disable @angular-eslint/no-input-rename */\n public readonly optionValue = input<string | undefined>(undefined, {\n alias: 'value',\n });\n /* eslint-enable @angular-eslint/no-input-rename */\n public readonly label = input<string | undefined>();\n public readonly noTranslate = input<boolean | string | undefined>();\n\n protected readonly labelText = computed(\n () => this.label() ?? this.config()?.label\n );\n protected readonly isNoTranslate = computed(\n () => toAttrBool(this.noTranslate()) === true\n );\n\n public readonly option = computed((): DropdownOption | undefined => {\n const value = this.optionValue();\n if (!value) return undefined;\n return {\n value,\n label: this.label() ?? value,\n disabled: this.disabled() || undefined,\n noTranslate: this.isNoTranslate() || undefined,\n };\n });\n\n protected onChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.setValue(target?.checked ?? false);\n }\n}\n"],"mappings":"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"}
|