@magmonium/one 0.4.73 → 0.4.76
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-base-dropdown-DlggqKkE.mjs → magmonium-one-base-dropdown-9iIR64ME.mjs} +3 -3
- package/fesm2022/{magmonium-one-base-dropdown-DlggqKkE.mjs.map → magmonium-one-base-dropdown-9iIR64ME.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-checkbox-DHg1sBWl.mjs → magmonium-one-checkbox-a3Dwmu2X.mjs} +2 -2
- package/fesm2022/{magmonium-one-checkbox-DHg1sBWl.mjs.map → magmonium-one-checkbox-a3Dwmu2X.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-image-editor-NsUm59Ul.mjs → magmonium-one-image-editor-B6eCXP9A.mjs} +2 -2
- package/fesm2022/{magmonium-one-image-editor-NsUm59Ul.mjs.map → magmonium-one-image-editor-B6eCXP9A.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-label-BII6szn8.mjs → magmonium-one-label-Dkis_mGP.mjs} +33 -2
- package/fesm2022/magmonium-one-label-Dkis_mGP.mjs.map +1 -0
- package/fesm2022/{magmonium-one-multi-range-BQ0f5IFY.mjs → magmonium-one-multi-range-RSLLKzLu.mjs} +2 -2
- package/fesm2022/{magmonium-one-multi-range-BQ0f5IFY.mjs.map → magmonium-one-multi-range-RSLLKzLu.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-otp-Zo1X0_r5.mjs → magmonium-one-otp-COE0X33y.mjs} +2 -2
- package/fesm2022/{magmonium-one-otp-Zo1X0_r5.mjs.map → magmonium-one-otp-COE0X33y.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-B8DtitsZ.mjs → magmonium-one-password-CJBa8k1l.mjs} +2 -2
- package/fesm2022/{magmonium-one-password-B8DtitsZ.mjs.map → magmonium-one-password-CJBa8k1l.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-radio-CldvuwLN.mjs → magmonium-one-radio-DPz4-SAJ.mjs} +2 -2
- package/fesm2022/{magmonium-one-radio-CldvuwLN.mjs.map → magmonium-one-radio-DPz4-SAJ.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-range-pxmV4Ytp.mjs → magmonium-one-range-CqOSrC0Y.mjs} +2 -2
- package/fesm2022/{magmonium-one-range-pxmV4Ytp.mjs.map → magmonium-one-range-CqOSrC0Y.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-text-Bst55TOO.mjs → magmonium-one-text-vDPAhn74.mjs} +2 -2
- package/fesm2022/{magmonium-one-text-Bst55TOO.mjs.map → magmonium-one-text-vDPAhn74.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +23 -23
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +42 -28
- package/fesm2022/magmonium-one-label-BII6szn8.mjs.map +0 -1
package/types/magmonium-one.d.ts
CHANGED
|
@@ -641,6 +641,20 @@ export declare class SectionTableSortPipe implements PipeTransform {
|
|
|
641
641
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionTableSortPipe, never>;
|
|
642
642
|
static ɵpipe: i0.ɵɵPipeDeclaration<SectionTableSortPipe, "sectionTableSort", true>;
|
|
643
643
|
}
|
|
644
|
+
/**
|
|
645
|
+
* One value as the one-item list a collection input holds — `id | toList`
|
|
646
|
+
* hands `[id]` to an input typed `string[]`. An absent value is an empty list,
|
|
647
|
+
* never `[undefined]`.
|
|
648
|
+
*
|
|
649
|
+
* A pipe rather than an inline `[id]`: an array literal in a template binding
|
|
650
|
+
* is what `no-inline-config-template` rejects (ADR 0010). Pure, so the list is
|
|
651
|
+
* rebuilt only when the value changes and the input sees a stable reference.
|
|
652
|
+
*/
|
|
653
|
+
export declare class ToListPipe implements PipeTransform {
|
|
654
|
+
transform<T>(value: T | undefined | null): T[];
|
|
655
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToListPipe, never>;
|
|
656
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<ToListPipe, "toList", true>;
|
|
657
|
+
}
|
|
644
658
|
export type Align = 'left' | 'center' | 'right';
|
|
645
659
|
export type Option = Config & {
|
|
646
660
|
id: string;
|
|
@@ -1600,7 +1614,7 @@ export declare class DraggableDirective {
|
|
|
1600
1614
|
readonly max: import("@angular/core").InputSignal<Position | undefined>;
|
|
1601
1615
|
readonly dragStart: import("@angular/core").OutputEmitterRef<void>;
|
|
1602
1616
|
readonly dragEnd: import("@angular/core").OutputEmitterRef<void>;
|
|
1603
|
-
protected readonly cursor: import("@angular/core").Signal<"
|
|
1617
|
+
protected readonly cursor: import("@angular/core").Signal<"move" | "ew-resize" | "ns-resize">;
|
|
1604
1618
|
protected state: DraggableState;
|
|
1605
1619
|
set pos(position: Position);
|
|
1606
1620
|
/**
|
|
@@ -2902,7 +2916,7 @@ export declare class ButtonComponent extends ReactiveElementComponent<Button> {
|
|
|
2902
2916
|
navParams: import("@angular/core").InputSignal<Record<string, string | number> | undefined>;
|
|
2903
2917
|
href: import("@angular/core").InputSignal<string | undefined>;
|
|
2904
2918
|
disabled: import("@angular/core").InputSignal<boolean | undefined>;
|
|
2905
|
-
variant: import("@angular/core").InputSignal<"
|
|
2919
|
+
variant: import("@angular/core").InputSignal<"ghost" | "primary" | "secondary" | "tab" | undefined>;
|
|
2906
2920
|
name: import("@angular/core").InputSignal<string | undefined>;
|
|
2907
2921
|
baseUrl: import("@angular/core").InputSignal<string | undefined>;
|
|
2908
2922
|
one: import("@angular/core").InputSignal<boolean | undefined>;
|
|
@@ -3522,7 +3536,7 @@ export declare class ButtonGroupComponent extends ConfigComponent<ButtonGroup> {
|
|
|
3522
3536
|
color?: string | keyof import("dist/libs/cli/src").ThemeColor;
|
|
3523
3537
|
align?: ConfigAlign;
|
|
3524
3538
|
isLoading?: boolean;
|
|
3525
|
-
variant?: "
|
|
3539
|
+
variant?: "ghost" | "primary" | "secondary" | "tab" | undefined;
|
|
3526
3540
|
label?: string;
|
|
3527
3541
|
noTranslate?: boolean;
|
|
3528
3542
|
params?: Record<string, string>;
|
|
@@ -4302,7 +4316,7 @@ declare class BaseTextInputComponent<T extends Input = TextInput> extends BaseIn
|
|
|
4302
4316
|
private autofocused;
|
|
4303
4317
|
constructor();
|
|
4304
4318
|
readonly isFocused: import("@angular/core").WritableSignal<boolean>;
|
|
4305
|
-
readonly iconColor: import("@angular/core").Signal<"
|
|
4319
|
+
readonly iconColor: import("@angular/core").Signal<"border" | "error" | "focus">;
|
|
4306
4320
|
protected readonly setValue: (value: string) => void;
|
|
4307
4321
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseTextInputComponent<any>, never>;
|
|
4308
4322
|
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseTextInputComponent<any>, never, never, {
|
|
@@ -4922,7 +4936,7 @@ export declare class SectionFilterGroupComponent {
|
|
|
4922
4936
|
readonly paddingX: import("@angular/core").InputSignal<boolean | undefined>;
|
|
4923
4937
|
readonly paddingY: import("@angular/core").InputSignal<boolean | undefined>;
|
|
4924
4938
|
readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
|
|
4925
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
4939
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
|
|
4926
4940
|
readonly config: import("@angular/core").InputSignal<SectionFilterGroupConfig | undefined>;
|
|
4927
4941
|
/**
|
|
4928
4942
|
* The whole group's selection, keyed by each Filter's `name` — one key per
|
|
@@ -4940,7 +4954,7 @@ export declare class SectionFilterGroupComponent {
|
|
|
4940
4954
|
protected readonly resolvedPadding: import("@angular/core").Signal<boolean>;
|
|
4941
4955
|
protected readonly resolvedPaddingX: import("@angular/core").Signal<boolean>;
|
|
4942
4956
|
protected readonly resolvedPaddingY: import("@angular/core").Signal<boolean>;
|
|
4943
|
-
protected readonly resolvedAlign: import("@angular/core").Signal<"
|
|
4957
|
+
protected readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
4944
4958
|
protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
|
|
4945
4959
|
protected readonly noBorder: import("@angular/core").Signal<boolean>;
|
|
4946
4960
|
/**
|
|
@@ -5045,7 +5059,7 @@ export declare class SectionStepperComponent implements OnDestroy {
|
|
|
5045
5059
|
readonly lg: import("@angular/core").InputSignal<number | undefined>;
|
|
5046
5060
|
readonly xl: import("@angular/core").InputSignal<number | undefined>;
|
|
5047
5061
|
readonly xxl: import("@angular/core").InputSignal<number | undefined>;
|
|
5048
|
-
readonly orientation: import("@angular/core").InputSignal<"
|
|
5062
|
+
readonly orientation: import("@angular/core").InputSignal<"horizontal" | "vertical" | undefined>;
|
|
5049
5063
|
readonly stepChange: import("@angular/core").OutputEmitterRef<number>;
|
|
5050
5064
|
private readonly isCompact;
|
|
5051
5065
|
private readonly mediaMatched;
|
|
@@ -5119,7 +5133,7 @@ export declare class SectionStepperComponent implements OnDestroy {
|
|
|
5119
5133
|
export declare class SectionBadgesComponent {
|
|
5120
5134
|
readonly wrap: import("@angular/core").InputSignal<boolean>;
|
|
5121
5135
|
readonly border: import("@angular/core").InputSignal<boolean>;
|
|
5122
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5136
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
|
|
5123
5137
|
private readonly sectionContext;
|
|
5124
5138
|
protected readonly hasBorder: import("@angular/core").Signal<boolean>;
|
|
5125
5139
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionBadgesComponent, never>;
|
|
@@ -5267,7 +5281,7 @@ export declare class SectionPaginationComponent {
|
|
|
5267
5281
|
* Entries that are not positive numbers drop rather than throw.
|
|
5268
5282
|
*/
|
|
5269
5283
|
readonly perPageOptions: import("@angular/core").InputSignal<string | undefined>;
|
|
5270
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5284
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
|
|
5271
5285
|
readonly showPerPage: import("@angular/core").InputSignal<boolean>;
|
|
5272
5286
|
/** Hides the band outright once everything fits one page. */
|
|
5273
5287
|
readonly hideOnSinglePage: import("@angular/core").InputSignal<boolean>;
|
|
@@ -5604,7 +5618,7 @@ export declare class SectionComponent extends ConfigComponent<SectionConfig> {
|
|
|
5604
5618
|
readonly align: import("@angular/core").InputSignal<SectionAlign | undefined>;
|
|
5605
5619
|
readonly alignX: import("@angular/core").InputSignal<GridAlignX | undefined>;
|
|
5606
5620
|
readonly alignY: import("@angular/core").InputSignal<GridAlignY | undefined>;
|
|
5607
|
-
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" |
|
|
5621
|
+
readonly size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
|
|
5608
5622
|
private readonly parentSize;
|
|
5609
5623
|
readonly resolvedSize: import("@angular/core").Signal<Size>;
|
|
5610
5624
|
protected readonly sizeLength: import("@angular/core").Signal<string>;
|
|
@@ -5775,8 +5789,8 @@ export declare class SectionHeaderComponent {
|
|
|
5775
5789
|
readonly visibilityRule: import("@angular/core").InputSignal<((key: string, data?: unknown) => boolean) | undefined>;
|
|
5776
5790
|
readonly disableRule: import("@angular/core").InputSignal<((key: string, data?: unknown) => boolean) | undefined>;
|
|
5777
5791
|
readonly extraData: import("@angular/core").InputSignal<unknown>;
|
|
5778
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5779
|
-
readonly alignment: import("@angular/core").Signal<"
|
|
5792
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
|
|
5793
|
+
readonly alignment: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
5780
5794
|
readonly badge: import("@angular/core").InputSignal<BadgeCount | undefined>;
|
|
5781
5795
|
readonly showBack: import("@angular/core").InputSignal<boolean>;
|
|
5782
5796
|
readonly actionButton: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -5794,7 +5808,7 @@ export declare class SectionHeaderComponent {
|
|
|
5794
5808
|
protected readonly sidepanel: import("@angular/core").Signal<boolean>;
|
|
5795
5809
|
protected readonly noBorder: import("@angular/core").Signal<boolean>;
|
|
5796
5810
|
protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
|
|
5797
|
-
protected readonly boxAlign: import("@angular/core").Signal<"
|
|
5811
|
+
protected readonly boxAlign: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
5798
5812
|
protected readonly iconBox: import("@angular/core").Signal<string>;
|
|
5799
5813
|
protected readonly isSticky: import("@angular/core").Signal<boolean>;
|
|
5800
5814
|
protected readonly hasMenu: import("@angular/core").Signal<boolean>;
|
|
@@ -5941,7 +5955,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
|
|
|
5941
5955
|
readonly vertical: import("@angular/core").InputSignal<boolean | undefined>;
|
|
5942
5956
|
readonly align: import("@angular/core").InputSignal<ConfigAlign>;
|
|
5943
5957
|
readonly variant: import("@angular/core").InputSignal<"spaced" | "joined" | undefined>;
|
|
5944
|
-
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" |
|
|
5958
|
+
readonly size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
|
|
5945
5959
|
readonly fullWidth: import("@angular/core").InputSignal<boolean | undefined>;
|
|
5946
5960
|
private readonly parentSize;
|
|
5947
5961
|
readonly resolvedSize: import("@angular/core").Signal<Size>;
|
|
@@ -5949,7 +5963,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
|
|
|
5949
5963
|
protected readonly resolvedFullWidth: import("@angular/core").Signal<boolean>;
|
|
5950
5964
|
protected readonly resolvedVertical: import("@angular/core").Signal<boolean>;
|
|
5951
5965
|
protected readonly resolvedVariant: import("@angular/core").Signal<"spaced" | "joined">;
|
|
5952
|
-
protected readonly resolvedAlign: import("@angular/core").Signal<"
|
|
5966
|
+
protected readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right" | "top" | "bottom">;
|
|
5953
5967
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionButtonGroupComponent, never>;
|
|
5954
5968
|
static ɵcmp: i0.ɵɵComponentDeclaration<SectionButtonGroupComponent, "m-section-button-group", never, {
|
|
5955
5969
|
"vertical": {
|
|
@@ -5981,7 +5995,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
|
|
|
5981
5995
|
}
|
|
5982
5996
|
export declare class SectionFooterComponent {
|
|
5983
5997
|
readonly sticky: import("@angular/core").InputSignal<boolean>;
|
|
5984
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5998
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
|
|
5985
5999
|
readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
|
|
5986
6000
|
private readonly scrollSticky;
|
|
5987
6001
|
protected readonly isSticky: import("@angular/core").Signal<boolean>;
|
|
@@ -5989,7 +6003,7 @@ export declare class SectionFooterComponent {
|
|
|
5989
6003
|
protected readonly sidepanel: import("@angular/core").Signal<boolean>;
|
|
5990
6004
|
protected readonly noBorder: import("@angular/core").Signal<boolean>;
|
|
5991
6005
|
protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
|
|
5992
|
-
protected readonly boxAlign: import("@angular/core").Signal<"
|
|
6006
|
+
protected readonly boxAlign: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
5993
6007
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionFooterComponent, never>;
|
|
5994
6008
|
static ɵcmp: i0.ɵɵComponentDeclaration<SectionFooterComponent, "m-section-footer", never, {
|
|
5995
6009
|
"sticky": {
|
|
@@ -8146,7 +8160,7 @@ declare class DropdownBoxComponent {
|
|
|
8146
8160
|
}
|
|
8147
8161
|
/** The trigger both option Fields draw: a searchable text input and a chevron. */
|
|
8148
8162
|
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";
|
|
8149
|
-
declare const DROPDOWN_IMPORTS: (typeof
|
|
8163
|
+
declare const DROPDOWN_IMPORTS: (typeof TextInputComponent | typeof SelectorDirective | typeof LabelComponent | typeof TextOutputComponent | typeof ButtonComponent)[];
|
|
8150
8164
|
/**
|
|
8151
8165
|
* Everything a Dropdown and a Multiselect share: the options, the search, the
|
|
8152
8166
|
* keyboard walk and the panel. What differs is only what the Field holds — one
|
|
@@ -8330,7 +8344,7 @@ declare class ColorPickerBoxComponent implements AfterViewInit, OnDestroy {
|
|
|
8330
8344
|
protected readonly _eyedropperConfig: import("@magmonium/one").Button;
|
|
8331
8345
|
protected readonly _headerContextMenu: ContextMenu;
|
|
8332
8346
|
protected readonly themeSwatches: import("@angular/core").Signal<{
|
|
8333
|
-
key: "
|
|
8347
|
+
key: "mm" | "mmLite" | "mmDark" | "background" | "border" | "text" | "textSecondary" | "focus" | "error" | "errorLight" | "warning" | "successLite" | "success" | "highlight" | "wealth";
|
|
8334
8348
|
color: string;
|
|
8335
8349
|
}[]>;
|
|
8336
8350
|
hue: import("@angular/core").WritableSignal<number>;
|
|
@@ -9075,7 +9089,7 @@ export declare class FileUploadInputComponent extends BaseInputComponent<FileUpl
|
|
|
9075
9089
|
private readonly editorSize;
|
|
9076
9090
|
private readonly maxSize;
|
|
9077
9091
|
protected readonly isLocked: import("@angular/core").Signal<boolean>;
|
|
9078
|
-
protected readonly dropZoneIconColor: import("@angular/core").Signal<"
|
|
9092
|
+
protected readonly dropZoneIconColor: import("@angular/core").Signal<"border" | "error" | "focus">;
|
|
9079
9093
|
/** Object URLs of the previews on show, keyed by what the value holds. */
|
|
9080
9094
|
private readonly previews;
|
|
9081
9095
|
protected readonly heldFiles: import("@angular/core").Signal<HeldFile[]>;
|
|
@@ -9529,17 +9543,17 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
|
|
|
9529
9543
|
protected readonly resolvesConfigAsset = false;
|
|
9530
9544
|
readonly variant: import("@angular/core").InputSignal<string | undefined>;
|
|
9531
9545
|
readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
|
|
9532
|
-
readonly heightMode: import("@angular/core").InputSignal<"
|
|
9546
|
+
readonly heightMode: import("@angular/core").InputSignal<"full" | "fixed" | undefined>;
|
|
9533
9547
|
readonly maxHeight: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9534
9548
|
readonly height: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9535
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
9549
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
|
|
9536
9550
|
readonly padding: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9537
9551
|
readonly paddingX: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9538
9552
|
readonly paddingY: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9539
9553
|
readonly margin: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9540
9554
|
readonly marginX: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9541
9555
|
readonly marginY: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9542
|
-
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" |
|
|
9556
|
+
readonly size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
|
|
9543
9557
|
readonly autofocus: import("@angular/core").InputSignal<boolean>;
|
|
9544
9558
|
data: import("@angular/core").InputSignal<T | undefined>;
|
|
9545
9559
|
readonly dataChange: import("@angular/core").OutputEmitterRef<T>;
|
|
@@ -9584,7 +9598,7 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
|
|
|
9584
9598
|
protected readonly handleSubmit: (event: Event) => void;
|
|
9585
9599
|
readonly resolvedSize: import("@angular/core").Signal<Size>;
|
|
9586
9600
|
protected readonly sizeLength: import("@angular/core").Signal<string | null>;
|
|
9587
|
-
readonly resolvedAlign: import("@angular/core").Signal<"
|
|
9601
|
+
readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
9588
9602
|
readonly resolvedVariant: import("@angular/core").Signal<string | undefined>;
|
|
9589
9603
|
readonly resolvedMaxWidth: import("@angular/core").Signal<string | number | undefined>;
|
|
9590
9604
|
private readonly resolvedPadding;
|
|
@@ -9596,7 +9610,7 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
|
|
|
9596
9610
|
readonly resolvedMinHeight: import("@angular/core").Signal<string | undefined>;
|
|
9597
9611
|
readonly resolvedMinWidth: import("@angular/core").Signal<string | undefined>;
|
|
9598
9612
|
readonly resolvedMaxHeight: import("@angular/core").Signal<string | number | undefined>;
|
|
9599
|
-
readonly resolvedHeightMode: import("@angular/core").Signal<"
|
|
9613
|
+
readonly resolvedHeightMode: import("@angular/core").Signal<"full" | "fixed" | undefined>;
|
|
9600
9614
|
readonly isFullHeight: import("@angular/core").Signal<boolean>;
|
|
9601
9615
|
readonly cssMaxHeight: import("@angular/core").Signal<string | undefined>;
|
|
9602
9616
|
constructor();
|
|
@@ -10444,7 +10458,7 @@ export declare class ComponentStepperComponent {
|
|
|
10444
10458
|
components: import("@angular/core").InputSignal<Type<unknown>[]>;
|
|
10445
10459
|
labels: import("@angular/core").InputSignal<string[] | undefined>;
|
|
10446
10460
|
currentIndex: import("@angular/core").InputSignal<number>;
|
|
10447
|
-
variant: import("@angular/core").InputSignal<"
|
|
10461
|
+
variant: import("@angular/core").InputSignal<"horizontal" | "vertical">;
|
|
10448
10462
|
context: import("@angular/core").InputSignal<Record<string, unknown> | undefined>;
|
|
10449
10463
|
readonly stepChange: import("@angular/core").OutputEmitterRef<number>;
|
|
10450
10464
|
static ɵfac: i0.ɵɵFactoryDeclaration<ComponentStepperComponent, never>;
|
|
@@ -12146,7 +12160,7 @@ export type DocAiPhase = 'idle' | 'asking' | 'question' | 'outline' | 'writing'
|
|
|
12146
12160
|
*/
|
|
12147
12161
|
export declare class DocEditorComponent implements ControlValueAccessor {
|
|
12148
12162
|
protected readonly groups: readonly import("@magmonium/one").DocToolbarGroup[];
|
|
12149
|
-
protected readonly icons: Record<"
|
|
12163
|
+
protected readonly icons: Record<"table" | "list" | "code" | "link" | "bold" | "italic" | "strike" | "heading" | "quote", string>;
|
|
12150
12164
|
protected readonly docActionKey: typeof docActionKey;
|
|
12151
12165
|
private readonly translate;
|
|
12152
12166
|
protected readonly value: import("@angular/core").WritableSignal<string>;
|
|
@@ -14160,7 +14174,7 @@ export declare class ConfirmComponent {
|
|
|
14160
14174
|
cancelLabel: import("@angular/core").InputSignal<string>;
|
|
14161
14175
|
protected readonly confirmText: import("@angular/core").Signal<string>;
|
|
14162
14176
|
protected readonly cancelText: import("@angular/core").Signal<string>;
|
|
14163
|
-
protected readonly accent: import("@angular/core").Signal<"error" | "
|
|
14177
|
+
protected readonly accent: import("@angular/core").Signal<"error" | "warning" | "success" | "mm">;
|
|
14164
14178
|
protected readonly iconName: import("@angular/core").Signal<"exclamation-triangle" | "info" | "trash" | "check-circle">;
|
|
14165
14179
|
protected accept(): void;
|
|
14166
14180
|
protected decline(): void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-label-BII6szn8.mjs","names":[],"sources":["../../../../libs/one/src/lib/shared/pipe/time-ago.ts","../../../../libs/one/src/lib/shared/pipe/money.fn.ts","../../../../libs/one/src/lib/shared/pipe/money.ts","../../../../libs/one/src/lib/shared/pipe/percentage.ts","../../../../libs/one/src/lib/shared/pipe/sign-color.ts","../../../../libs/one/src/lib/shared/pipe/compact-number.ts","../../../../libs/one/src/lib/shared/pipe/asset-url.ts","../../../../libs/one/src/lib/shared/ui/section/type/section-table.ts","../../../../libs/one/src/lib/shared/ui/section/lib/functions/section-table.ts","../../../../libs/one/src/lib/shared/pipe/section-table-sort.ts","../../../../libs/one/src/lib/shared/ui/input/ui/label.ts"],"sourcesContent":["import { ChangeDetectorRef, inject, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '../services/translate';\nimport { interval, Subscription } from 'rxjs';\n\nconst SECONDS_IN_MINUTE = 60;\nconst SECONDS_IN_HOUR = 3600;\nconst SECONDS_IN_DAY = 86400;\nconst SECONDS_IN_MONTH = 2592000;\nconst SECONDS_IN_YEAR = 31536000;\n\n@Pipe({\n name: 'timeAgo',\n pure: false,\n})\nexport class TimeAgoPipe implements PipeTransform, OnDestroy {\n private readonly translateService = inject(TranslateService);\n private readonly cdr = inject(ChangeDetectorRef);\n private timerSubscription: Subscription | null = null;\n private lastValue: string | Date | undefined = undefined;\n\n transform(value: string | Date | undefined): string {\n if (!value) return '';\n\n if (value !== this.lastValue) {\n this.lastValue = value;\n this.setupTimer();\n }\n\n const date = typeof value === 'string' ? new Date(value) : value;\n const now = new Date();\n const seconds = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (seconds < SECONDS_IN_MINUTE) {\n return this.translateService.translate('just-now');\n }\n\n let count: number;\n let unit: string;\n\n if (seconds < SECONDS_IN_HOUR) {\n count = Math.floor(seconds / SECONDS_IN_MINUTE);\n unit = count === 1 ? 'minute' : 'minutes';\n } else if (seconds < SECONDS_IN_DAY) {\n count = Math.floor(seconds / SECONDS_IN_HOUR);\n unit = count === 1 ? 'hour' : 'hours';\n } else if (seconds < SECONDS_IN_MONTH) {\n count = Math.floor(seconds / SECONDS_IN_DAY);\n unit = count === 1 ? 'day' : 'days';\n } else if (seconds < SECONDS_IN_YEAR) {\n count = Math.floor(seconds / SECONDS_IN_MONTH);\n unit = count === 1 ? 'month' : 'months';\n } else {\n count = Math.floor(seconds / SECONDS_IN_YEAR);\n unit = count === 1 ? 'year' : 'years';\n }\n\n return this.translateService.translate(\n `time-ago?count=${count}&unit=${unit}`\n );\n }\n\n private setupTimer(): void {\n this.clearTimer();\n // Update every 30 seconds to keep the display fresh without overloading change detection.\n this.timerSubscription = interval(30000).subscribe(() => {\n this.cdr.detectChanges();\n });\n }\n\n private clearTimer(): void {\n if (this.timerSubscription) {\n this.timerSubscription.unsubscribe();\n this.timerSubscription = null;\n }\n }\n\n ngOnDestroy(): void {\n this.clearTimer();\n }\n}\n","export type MoneySystem = 'IN' | 'INTL';\n\nexport interface MoneyResult {\n amount: string;\n labelKey: string;\n}\n\ninterface Threshold {\n min: number;\n labelKey: string;\n overflowAt: number;\n}\n\nconst IN_THRESHOLDS: Threshold[] = [\n { min: 1_00_00_000, labelKey: 'cr', overflowAt: Infinity },\n { min: 1_00_000, labelKey: 'l', overflowAt: 100 },\n { min: 1_000, labelKey: 'k', overflowAt: 100 },\n];\n\nconst INTL_THRESHOLDS: Threshold[] = [\n { min: 1_000_000_000_000, labelKey: 't', overflowAt: Infinity },\n { min: 1_000_000_000, labelKey: 'b', overflowAt: 1_000 },\n { min: 1_000_000, labelKey: 'm', overflowAt: 1_000 },\n { min: 1_000, labelKey: 'k', overflowAt: 1_000 },\n];\n\n/**\n * Formats a non-negative finite number into a compact denomination result.\n * @param value Must be a non-negative finite number. Negative values and NaN\n * should be handled by the caller before invoking this function.\n */\nexport const formatMoney = (\n value: number,\n system: MoneySystem\n): MoneyResult => {\n const thresholds = system === 'IN' ? IN_THRESHOLDS : INTL_THRESHOLDS;\n\n for (let i = 0; i < thresholds.length; i++) {\n const { min, labelKey, overflowAt } = thresholds[i];\n if (value >= min) {\n const rounded = parseFloat((value / min).toFixed(1));\n if (rounded >= overflowAt && i > 0) {\n const higher = thresholds[i - 1];\n return {\n amount: parseFloat((value / higher.min).toFixed(1)).toString(),\n labelKey: higher.labelKey,\n };\n }\n return { amount: rounded.toString(), labelKey };\n }\n }\n\n return { amount: parseFloat(value.toFixed(2)).toString(), labelKey: '' };\n};\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '../services/translate';\nimport { formatMoney, MoneySystem } from './money.fn';\n\n@Pipe({\n name: 'money',\n pure: false,\n})\nexport class MoneyPipe implements PipeTransform {\n private readonly translateService = inject(TranslateService);\n\n transform(\n value: number | undefined | null,\n system: MoneySystem = 'IN',\n symbol = '₹',\n forceSign = false\n ): string {\n if (value == null || isNaN(value)) return '';\n if (value === 0) return `${symbol}0`;\n\n const isNegative = value < 0;\n const absValue = Math.abs(value);\n const { amount, labelKey } = formatMoney(absValue, system);\n const label = labelKey\n ? ` ${this.translateService.translate(labelKey)}`\n : '';\n\n const sign = isNegative ? '-' : forceSign ? '+' : '';\n return `${sign}${symbol}${amount}${label}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Renders a number already expressed in percent units as a `%` reading —\n * `42` becomes `42.00%`, never `4200%`. A ratio is the caller's to multiply,\n * the way `MoneyPipe` takes an amount rather than a currency object.\n *\n * Two decimals by default: a percentage carries the fraction that separates\n * two near-equal readings, and a caller wanting the whole number asks for\n * `decimals: 0`.\n *\n * Pure, unlike the other three: it reads no language and no clock, so its\n * output depends on its arguments alone.\n */\n@Pipe({\n name: 'percentage',\n})\nexport class PercentagePipe implements PipeTransform {\n transform(\n value: number | undefined | null,\n decimals = 2,\n forceSign = false\n ): string {\n if (value == null || isNaN(value)) return '';\n\n const digits = Math.max(0, Math.trunc(decimals));\n const rendered = Math.abs(value).toFixed(digits);\n // A rounded-to-zero negative would otherwise print `-0%`.\n const isNegative = value < 0 && Number(rendered) !== 0;\n\n const sign = isNegative\n ? '-'\n : forceSign && Number(rendered) !== 0\n ? '+'\n : '';\n return `${sign}${rendered}%`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Reads a number's sign as a colour — `success` above zero, `error` below — for\n * the `color` input `m-text-output` resolves against the active theme, so a\n * gain and a loss follow the theme rather than freezing one theme's hex.\n *\n * Zero, `null`, `undefined` and `NaN` answer `undefined`: no colour is the\n * component's own default, and a flat reading is neither a gain nor a loss.\n *\n * Pure, like `PercentagePipe`: its output depends on its arguments alone.\n */\n@Pipe({\n name: 'signColor',\n})\nexport class SignColorPipe implements PipeTransform {\n transform(\n value: number | undefined | null,\n positive = 'success',\n negative = 'error'\n ): string | undefined {\n if (value == null || isNaN(value) || value === 0) return undefined;\n return value > 0 ? positive : negative;\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '../services/translate';\nimport { formatMoney, MoneySystem } from './money.fn';\n\n/**\n * Renders a large number as a compact denominated reading — `12500` becomes\n * `12.5 k`, `1250000` becomes `12.5 l` (or `1.3 m` on the `INTL` ladder).\n * `MoneyPipe` without the currency symbol: a count of views, rows or users is\n * no amount of money, but it climbs the same thresholds.\n *\n * Named `compactNumber` rather than `number` so it never collides with\n * Angular's own `DecimalPipe` in a template that imports both.\n *\n * Impure for `MoneyPipe`'s reason: the denomination label is a translation key\n * resolved in the active language.\n */\n@Pipe({\n name: 'compactNumber',\n pure: false,\n})\nexport class CompactNumberPipe implements PipeTransform {\n private readonly translateService = inject(TranslateService);\n\n transform(\n value: number | undefined | null,\n system: MoneySystem = 'IN',\n forceSign = false\n ): string {\n if (value == null || isNaN(value)) return '';\n if (value === 0) return '0';\n\n const { amount, labelKey } = formatMoney(Math.abs(value), system);\n // Below the first threshold a tiny value can still round to `0`.\n if (Number(amount) === 0) return '0';\n\n const label = labelKey\n ? ` ${this.translateService.translate(labelKey)}`\n : '';\n const sign = value < 0 ? '-' : forceSign ? '+' : '';\n return `${sign}${amount}${label}`;\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { HttpService } from '../services/http';\n\n@Pipe({\n name: 'assetUrl',\n})\nexport class AssetUrlPipe implements PipeTransform {\n private readonly http = inject(HttpService);\n\n transform(value: string | null | undefined): string {\n return this.http.getAssetUrl(value);\n }\n}\n","import { Config } from '../../../type/config/config-type';\n\nexport type SectionTableAlign = 'left' | 'center' | 'right';\n\n/** What a sorting column compares its values as. */\nexport type SectionTableDataType = 'text' | 'number' | 'date';\n\n/**\n * Which way a SectionTable sorts. An enum rather than a union so a generated\n * Screen keeping the direction keeps it as this vocabulary, the way it keeps\n * the column as its SortEnum (m-one-ui ADR 0203). Its values are the words the\n * union always held, so a stored or compared `'asc'` still reads the same.\n */\nexport enum SectionTableSortDirection {\n Asc = 'asc',\n Desc = 'desc',\n}\n\n/**\n * A SectionTable's look. It never draws a panel border: `zebra` shades every\n * other row, `compact` and `spacious` tighten or loosen the cell padding,\n * `border` draws a thick rule along its top and a thinner one along its\n * bottom.\n */\nexport type SectionTableVariant =\n | 'default'\n | 'zebra'\n | 'compact'\n | 'spacious'\n | 'border';\n\nexport const SECTION_TABLE_VARIANTS: readonly SectionTableVariant[] = [\n 'default',\n 'zebra',\n 'compact',\n 'spacious',\n 'border',\n];\n\n/**\n * One entry in a SectionTable's configured heading (GLOSSARY.md\n * SectionTableColumn). The cells beneath it line up by position, so nothing\n * here says how a cell renders — a cell renders what was put in it.\n *\n * `Id` is the vocabulary of column ids — `string` unless a caller narrows it.\n * A generated Screen narrows it to the enum of its sorting columns' ids, so\n * the `sortChange` it binds already carries that enum (m-one-ui ADR 0203).\n */\nexport type SectionTableColumn<Id extends string = string> = {\n /**\n * The column's position when unset. A sorting column's `id` is the key of\n * the row it sorts by, and must be written (m-one-ui ADR 0148).\n */\n id?: Id;\n /** A translation key. */\n label?: string;\n align?: SectionTableAlign;\n /** 1–12: its share of the table's width. Unset columns divide what is left. */\n span?: number;\n sortable?: boolean;\n dataType?: SectionTableDataType;\n /**\n * The rows start sorted by this column. Needs a written `id`, as `sortable`\n * does; the first such column wins.\n */\n defaultSort?: boolean;\n /** The default sort's direction: ascending when set, descending when not. */\n ascending?: boolean;\n /** Freezes this column and every column before it to the left edge. */\n freeze?: boolean;\n /** Starts folded, with a toggle in its heading (GLOSSARY.md Squeeze). */\n squeeze?: boolean;\n};\n\n/** The sort in force: which column, and which way. */\nexport type SectionTableSort<Id extends string = string> = {\n id: Id;\n direction: SectionTableSortDirection;\n dataType?: SectionTableDataType;\n};\n\nexport type SectionTableConfig<Id extends string = string> = Config & {\n columns?: SectionTableColumn<Id>[];\n sticky?: boolean;\n /** 1em outside the table, above and below — beyond a `border` rule. */\n margin?: boolean;\n variant?: SectionTableVariant;\n};\n","import {\n SectionTableColumn,\n SectionTableSort,\n SectionTableSortDirection,\n} from '../../type/section-table';\n\n/** A column's id, falling back to its position (m-one-ui ADR 0148). */\nexport const sectionTableColumnId = <Id extends string>(\n column: SectionTableColumn<Id>,\n index: number\n): Id | string => column.id || String(index);\n\n/**\n * Each column's width as a CSS length: a `span` is its twelfth-share of the\n * table, and a column without one gets `undefined` so the `<table>` divides\n * what the spanned columns left.\n */\nexport const sectionTableColumnWidths = (\n columns: readonly SectionTableColumn[]\n): (string | undefined)[] =>\n columns.map(({ span }) => {\n if (span == null || !Number.isFinite(span)) return undefined;\n const clamped = Math.min(12, Math.max(1, Math.round(span)));\n return `${(clamped * 100) / 12}%`;\n });\n\n/**\n * How many leading columns are frozen: freezing a column freezes every column\n * before it, because a frozen column pinned past an unfrozen one would slide\n * over it.\n */\nexport const sectionTableFrozenCount = (\n columns: readonly SectionTableColumn[]\n): number => {\n let last = -1;\n columns.forEach((column, i) => {\n if (column.freeze) last = i;\n });\n return last + 1;\n};\n\n/** The next sort after a click on the column with `id`. */\nexport const nextSectionTableSort = <Id extends string>(\n current: SectionTableSort<Id> | null,\n id: Id,\n dataType: SectionTableSort['dataType']\n): SectionTableSort<Id> =>\n current?.id === id\n ? {\n id,\n dataType,\n direction:\n current.direction === SectionTableSortDirection.Asc\n ? SectionTableSortDirection.Desc\n : SectionTableSortDirection.Asc,\n }\n : { id, dataType, direction: SectionTableSortDirection.Asc };\n\n/** The sort a table starts with: its first `defaultSort` column's, if any. */\nexport const defaultSectionTableSort = <Id extends string>(\n columns: readonly SectionTableColumn<Id>[]\n): SectionTableSort<Id> | null => {\n const column = columns.find((one) => one.defaultSort);\n // A default sort needs a written id, as a sorting column does (ADR 0148):\n // one left positional names no key of the row, and sorts by nothing.\n if (!column?.id) return null;\n return {\n id: column.id,\n dataType: column.dataType,\n direction: column.ascending\n ? SectionTableSortDirection.Asc\n : SectionTableSortDirection.Desc,\n };\n};\n\nconst readPath =(row: unknown, path: string): unknown =>\n path\n .split('.')\n .reduce<unknown>(\n (value, key) =>\n value != null && typeof value === 'object'\n ? (value as Record<string, unknown>)[key]\n : undefined,\n row\n );\n\nconst comparable = (\n value: unknown,\n dataType: SectionTableSort['dataType']\n): number | string | undefined => {\n if (value == null || value === '') return undefined;\n if (dataType === 'number') {\n const n = typeof value === 'number' ? value : Number(value);\n return Number.isNaN(n) ? undefined : n;\n }\n if (dataType === 'date') {\n const t =\n value instanceof Date ? value.getTime() : new Date(String(value)).getTime();\n return Number.isNaN(t) ? undefined : t;\n }\n return String(value).toLocaleLowerCase();\n};\n\n/**\n * A copy of `rows` ordered by `sort`, the input untouched. Missing values sink\n * to the end in either direction — an empty cell is not the smallest value.\n */\nexport const sortSectionTableRows = <T>(\n rows: readonly T[] | null | undefined,\n sort: SectionTableSort | null | undefined\n): T[] => {\n const list = [...(rows ?? [])];\n if (!sort) return list;\n const sign = sort.direction === SectionTableSortDirection.Asc ? 1 : -1;\n return list\n .map((row, i) => ({ row, i, key: comparable(readPath(row, sort.id), sort.dataType) }))\n .sort((a, b) => {\n if (a.key === undefined || b.key === undefined) {\n if (a.key === b.key) return a.i - b.i;\n return a.key === undefined ? 1 : -1;\n }\n const diff =\n typeof a.key === 'number' && typeof b.key === 'number'\n ? a.key - b.key\n : String(a.key).localeCompare(String(b.key));\n return diff === 0 ? a.i - b.i : diff * sign;\n })\n .map(({ row }) => row);\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport type { SectionTableSort } from '../ui/section/type/section-table';\nimport { sortSectionTableRows } from '../ui/section/lib/functions/section-table';\n\n/**\n * A SectionTable's sort applied to a Repeat's collection:\n * `@for (row of (rows | sectionTableSort: table.sort()); …)`. The `@for` is the\n * Repeat's, not the table's, so the table reorders a collection it does not\n * own through this and nothing else (m-one-ui ADR 0148).\n *\n * Pure: a new order needs a new sort or a new collection, never a mutated one.\n */\n@Pipe({\n name: 'sectionTableSort',\n})\nexport class SectionTableSortPipe implements PipeTransform {\n transform<T>(\n rows: readonly T[] | null | undefined,\n sort: SectionTableSort | null | undefined\n ): T[] {\n return sortSectionTableRows(rows, sort);\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { TranslatePipe } from '../../../pipe';\n\n@Component({\n selector: 'm-label',\n template: `\n <label\n [class.required]=\"required()\"\n [class.disabled]=\"disabled()\"\n [attr.for]=\"for() || null\"\n >\n @if (color()) {\n <span class=\"label__swatch\" [style.background]=\"color()\"></span>\n }\n @if (noTranslate()) {\n {{ placeholder() }}\n } @else {\n {{ placeholder() | translate: params() }}\n }\n </label>\n `,\n imports: [TranslatePipe],\n styleUrl: './label.sass',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LabelComponent {\n for = input<string>();\n placeholder = input<string>();\n // The label's [MessageVariable] values — a Field whose label is a sentence\n // with a datum in it (m-one-ui ADR 0066).\n params = input<Record<string, string> | undefined>();\n required = input<boolean>();\n disabled = input<boolean>();\n color = input<string>();\n // Authored text rather than an i18n key — an option label mapped from a row\n // the app holds, which the dictionary has never heard of.\n noTranslate = input<boolean>();\n}\n\n"],"mappings":"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"}
|