@magmonium/one 0.4.67 → 0.4.68
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-Deu1RaIC.mjs → magmonium-one-base-dropdown-CCsetZ1L.mjs} +3 -3
- package/fesm2022/{magmonium-one-base-dropdown-Deu1RaIC.mjs.map → magmonium-one-base-dropdown-CCsetZ1L.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-checkbox-D4ZJV6AC.mjs → magmonium-one-checkbox-CSWhEUT4.mjs} +2 -2
- package/fesm2022/{magmonium-one-checkbox-D4ZJV6AC.mjs.map → magmonium-one-checkbox-CSWhEUT4.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-image-editor-BMR3f-uc.mjs → magmonium-one-image-editor-BYNN15tt.mjs} +2 -2
- package/fesm2022/{magmonium-one-image-editor-BMR3f-uc.mjs.map → magmonium-one-image-editor-BYNN15tt.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-label-BJcQs0Nd.mjs → magmonium-one-label-23DjRQdd.mjs} +34 -2
- package/fesm2022/magmonium-one-label-23DjRQdd.mjs.map +1 -0
- package/fesm2022/{magmonium-one-multi-range-CDJX9iFR.mjs → magmonium-one-multi-range-DYIv7jB7.mjs} +2 -2
- package/fesm2022/{magmonium-one-multi-range-CDJX9iFR.mjs.map → magmonium-one-multi-range-DYIv7jB7.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-otp-CS1Z0KKQ.mjs → magmonium-one-otp-a8D3AUU6.mjs} +2 -2
- package/fesm2022/{magmonium-one-otp-CS1Z0KKQ.mjs.map → magmonium-one-otp-a8D3AUU6.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-BjAUKLzd.mjs → magmonium-one-password-c2JsD6C5.mjs} +2 -2
- package/fesm2022/{magmonium-one-password-BjAUKLzd.mjs.map → magmonium-one-password-c2JsD6C5.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-radio-yizQzCrD.mjs → magmonium-one-radio-BjsRiF80.mjs} +2 -2
- package/fesm2022/{magmonium-one-radio-yizQzCrD.mjs.map → magmonium-one-radio-BjsRiF80.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-range-B6JesBOM.mjs → magmonium-one-range-M_HBccdt.mjs} +2 -2
- package/fesm2022/{magmonium-one-range-B6JesBOM.mjs.map → magmonium-one-range-M_HBccdt.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-text-DLKgk_bm.mjs → magmonium-one-text-XSYTtGBf.mjs} +2 -2
- package/fesm2022/{magmonium-one-text-DLKgk_bm.mjs.map → magmonium-one-text-XSYTtGBf.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +23 -23
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +43 -28
- package/fesm2022/magmonium-one-label-BJcQs0Nd.mjs.map +0 -1
package/types/magmonium-one.d.ts
CHANGED
|
@@ -510,6 +510,21 @@ export declare class PercentagePipe implements PipeTransform {
|
|
|
510
510
|
static ɵfac: i0.ɵɵFactoryDeclaration<PercentagePipe, never>;
|
|
511
511
|
static ɵpipe: i0.ɵɵPipeDeclaration<PercentagePipe, "percentage", true>;
|
|
512
512
|
}
|
|
513
|
+
/**
|
|
514
|
+
* Reads a number's sign as a colour — `success` above zero, `error` below — for
|
|
515
|
+
* the `color` input `m-text-output` resolves against the active theme, so a
|
|
516
|
+
* gain and a loss follow the theme rather than freezing one theme's hex.
|
|
517
|
+
*
|
|
518
|
+
* Zero, `null`, `undefined` and `NaN` answer `undefined`: no colour is the
|
|
519
|
+
* component's own default, and a flat reading is neither a gain nor a loss.
|
|
520
|
+
*
|
|
521
|
+
* Pure, like `PercentagePipe`: its output depends on its arguments alone.
|
|
522
|
+
*/
|
|
523
|
+
export declare class SignColorPipe implements PipeTransform {
|
|
524
|
+
transform(value: number | undefined | null, positive?: string, negative?: string): string | undefined;
|
|
525
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SignColorPipe, never>;
|
|
526
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SignColorPipe, "signColor", true>;
|
|
527
|
+
}
|
|
513
528
|
/**
|
|
514
529
|
* Renders a large number as a compact denominated reading — `12500` becomes
|
|
515
530
|
* `12.5 k`, `1250000` becomes `12.5 l` (or `1.3 m` on the `INTL` ladder).
|
|
@@ -1539,7 +1554,7 @@ export declare class DraggableDirective {
|
|
|
1539
1554
|
readonly max: import("@angular/core").InputSignal<Position | undefined>;
|
|
1540
1555
|
readonly dragStart: import("@angular/core").OutputEmitterRef<void>;
|
|
1541
1556
|
readonly dragEnd: import("@angular/core").OutputEmitterRef<void>;
|
|
1542
|
-
protected readonly cursor: import("@angular/core").Signal<"
|
|
1557
|
+
protected readonly cursor: import("@angular/core").Signal<"move" | "ew-resize" | "ns-resize">;
|
|
1543
1558
|
protected state: DraggableState;
|
|
1544
1559
|
set pos(position: Position);
|
|
1545
1560
|
/**
|
|
@@ -2841,7 +2856,7 @@ export declare class ButtonComponent extends ReactiveElementComponent<Button> {
|
|
|
2841
2856
|
navParams: import("@angular/core").InputSignal<Record<string, string | number> | undefined>;
|
|
2842
2857
|
href: import("@angular/core").InputSignal<string | undefined>;
|
|
2843
2858
|
disabled: import("@angular/core").InputSignal<boolean | undefined>;
|
|
2844
|
-
variant: import("@angular/core").InputSignal<"
|
|
2859
|
+
variant: import("@angular/core").InputSignal<"ghost" | "primary" | "secondary" | "tab" | undefined>;
|
|
2845
2860
|
name: import("@angular/core").InputSignal<string | undefined>;
|
|
2846
2861
|
baseUrl: import("@angular/core").InputSignal<string | undefined>;
|
|
2847
2862
|
one: import("@angular/core").InputSignal<boolean | undefined>;
|
|
@@ -3461,7 +3476,7 @@ export declare class ButtonGroupComponent extends ConfigComponent<ButtonGroup> {
|
|
|
3461
3476
|
color?: string | keyof import("dist/libs/cli/src").ThemeColor;
|
|
3462
3477
|
align?: ConfigAlign;
|
|
3463
3478
|
isLoading?: boolean;
|
|
3464
|
-
variant?: "
|
|
3479
|
+
variant?: "ghost" | "primary" | "secondary" | "tab" | undefined;
|
|
3465
3480
|
label?: string;
|
|
3466
3481
|
noTranslate?: boolean;
|
|
3467
3482
|
params?: Record<string, string>;
|
|
@@ -4228,7 +4243,7 @@ declare class BaseTextInputComponent<T extends Input = TextInput> extends BaseIn
|
|
|
4228
4243
|
private autofocused;
|
|
4229
4244
|
constructor();
|
|
4230
4245
|
readonly isFocused: import("@angular/core").WritableSignal<boolean>;
|
|
4231
|
-
readonly iconColor: import("@angular/core").Signal<"
|
|
4246
|
+
readonly iconColor: import("@angular/core").Signal<"border" | "error" | "focus">;
|
|
4232
4247
|
protected readonly setValue: (value: string) => void;
|
|
4233
4248
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseTextInputComponent<any>, never>;
|
|
4234
4249
|
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseTextInputComponent<any>, never, never, {
|
|
@@ -4848,7 +4863,7 @@ export declare class SectionFilterGroupComponent {
|
|
|
4848
4863
|
readonly paddingX: import("@angular/core").InputSignal<boolean | undefined>;
|
|
4849
4864
|
readonly paddingY: import("@angular/core").InputSignal<boolean | undefined>;
|
|
4850
4865
|
readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
|
|
4851
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
4866
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
|
|
4852
4867
|
readonly config: import("@angular/core").InputSignal<SectionFilterGroupConfig | undefined>;
|
|
4853
4868
|
/**
|
|
4854
4869
|
* The whole group's selection, keyed by each Filter's `name` — one key per
|
|
@@ -4866,7 +4881,7 @@ export declare class SectionFilterGroupComponent {
|
|
|
4866
4881
|
protected readonly resolvedPadding: import("@angular/core").Signal<boolean>;
|
|
4867
4882
|
protected readonly resolvedPaddingX: import("@angular/core").Signal<boolean>;
|
|
4868
4883
|
protected readonly resolvedPaddingY: import("@angular/core").Signal<boolean>;
|
|
4869
|
-
protected readonly resolvedAlign: import("@angular/core").Signal<"
|
|
4884
|
+
protected readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
4870
4885
|
protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
|
|
4871
4886
|
protected readonly noBorder: import("@angular/core").Signal<boolean>;
|
|
4872
4887
|
/**
|
|
@@ -4971,7 +4986,7 @@ export declare class SectionStepperComponent implements OnDestroy {
|
|
|
4971
4986
|
readonly lg: import("@angular/core").InputSignal<number | undefined>;
|
|
4972
4987
|
readonly xl: import("@angular/core").InputSignal<number | undefined>;
|
|
4973
4988
|
readonly xxl: import("@angular/core").InputSignal<number | undefined>;
|
|
4974
|
-
readonly orientation: import("@angular/core").InputSignal<"
|
|
4989
|
+
readonly orientation: import("@angular/core").InputSignal<"horizontal" | "vertical" | undefined>;
|
|
4975
4990
|
readonly stepChange: import("@angular/core").OutputEmitterRef<number>;
|
|
4976
4991
|
private readonly isCompact;
|
|
4977
4992
|
private readonly mediaMatched;
|
|
@@ -5045,7 +5060,7 @@ export declare class SectionStepperComponent implements OnDestroy {
|
|
|
5045
5060
|
export declare class SectionBadgesComponent {
|
|
5046
5061
|
readonly wrap: import("@angular/core").InputSignal<boolean>;
|
|
5047
5062
|
readonly border: import("@angular/core").InputSignal<boolean>;
|
|
5048
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5063
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
|
|
5049
5064
|
private readonly sectionContext;
|
|
5050
5065
|
protected readonly hasBorder: import("@angular/core").Signal<boolean>;
|
|
5051
5066
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionBadgesComponent, never>;
|
|
@@ -5193,7 +5208,7 @@ export declare class SectionPaginationComponent {
|
|
|
5193
5208
|
* Entries that are not positive numbers drop rather than throw.
|
|
5194
5209
|
*/
|
|
5195
5210
|
readonly perPageOptions: import("@angular/core").InputSignal<string | undefined>;
|
|
5196
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5211
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
|
|
5197
5212
|
readonly showPerPage: import("@angular/core").InputSignal<boolean>;
|
|
5198
5213
|
/** Hides the band outright once everything fits one page. */
|
|
5199
5214
|
readonly hideOnSinglePage: import("@angular/core").InputSignal<boolean>;
|
|
@@ -5530,7 +5545,7 @@ export declare class SectionComponent extends ConfigComponent<SectionConfig> {
|
|
|
5530
5545
|
readonly align: import("@angular/core").InputSignal<SectionAlign | undefined>;
|
|
5531
5546
|
readonly alignX: import("@angular/core").InputSignal<GridAlignX | undefined>;
|
|
5532
5547
|
readonly alignY: import("@angular/core").InputSignal<GridAlignY | undefined>;
|
|
5533
|
-
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" |
|
|
5548
|
+
readonly size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
|
|
5534
5549
|
private readonly parentSize;
|
|
5535
5550
|
readonly resolvedSize: import("@angular/core").Signal<Size>;
|
|
5536
5551
|
protected readonly sizeLength: import("@angular/core").Signal<string>;
|
|
@@ -5701,8 +5716,8 @@ export declare class SectionHeaderComponent {
|
|
|
5701
5716
|
readonly visibilityRule: import("@angular/core").InputSignal<((key: string, data?: unknown) => boolean) | undefined>;
|
|
5702
5717
|
readonly disableRule: import("@angular/core").InputSignal<((key: string, data?: unknown) => boolean) | undefined>;
|
|
5703
5718
|
readonly extraData: import("@angular/core").InputSignal<unknown>;
|
|
5704
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5705
|
-
readonly alignment: import("@angular/core").Signal<"
|
|
5719
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
|
|
5720
|
+
readonly alignment: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
5706
5721
|
readonly badge: import("@angular/core").InputSignal<BadgeCount | undefined>;
|
|
5707
5722
|
readonly showBack: import("@angular/core").InputSignal<boolean>;
|
|
5708
5723
|
readonly actionButton: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -5720,7 +5735,7 @@ export declare class SectionHeaderComponent {
|
|
|
5720
5735
|
protected readonly sidepanel: import("@angular/core").Signal<boolean>;
|
|
5721
5736
|
protected readonly noBorder: import("@angular/core").Signal<boolean>;
|
|
5722
5737
|
protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
|
|
5723
|
-
protected readonly boxAlign: import("@angular/core").Signal<"
|
|
5738
|
+
protected readonly boxAlign: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
5724
5739
|
protected readonly iconBox: import("@angular/core").Signal<string>;
|
|
5725
5740
|
protected readonly isSticky: import("@angular/core").Signal<boolean>;
|
|
5726
5741
|
protected readonly hasMenu: import("@angular/core").Signal<boolean>;
|
|
@@ -5867,7 +5882,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
|
|
|
5867
5882
|
readonly vertical: import("@angular/core").InputSignal<boolean | undefined>;
|
|
5868
5883
|
readonly align: import("@angular/core").InputSignal<ConfigAlign>;
|
|
5869
5884
|
readonly variant: import("@angular/core").InputSignal<"spaced" | "joined" | undefined>;
|
|
5870
|
-
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" |
|
|
5885
|
+
readonly size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
|
|
5871
5886
|
readonly fullWidth: import("@angular/core").InputSignal<boolean | undefined>;
|
|
5872
5887
|
private readonly parentSize;
|
|
5873
5888
|
readonly resolvedSize: import("@angular/core").Signal<Size>;
|
|
@@ -5875,7 +5890,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
|
|
|
5875
5890
|
protected readonly resolvedFullWidth: import("@angular/core").Signal<boolean>;
|
|
5876
5891
|
protected readonly resolvedVertical: import("@angular/core").Signal<boolean>;
|
|
5877
5892
|
protected readonly resolvedVariant: import("@angular/core").Signal<"spaced" | "joined">;
|
|
5878
|
-
protected readonly resolvedAlign: import("@angular/core").Signal<"
|
|
5893
|
+
protected readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right" | "top" | "bottom">;
|
|
5879
5894
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionButtonGroupComponent, never>;
|
|
5880
5895
|
static ɵcmp: i0.ɵɵComponentDeclaration<SectionButtonGroupComponent, "m-section-button-group", never, {
|
|
5881
5896
|
"vertical": {
|
|
@@ -5907,7 +5922,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
|
|
|
5907
5922
|
}
|
|
5908
5923
|
export declare class SectionFooterComponent {
|
|
5909
5924
|
readonly sticky: import("@angular/core").InputSignal<boolean>;
|
|
5910
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5925
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
|
|
5911
5926
|
readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
|
|
5912
5927
|
private readonly scrollSticky;
|
|
5913
5928
|
protected readonly isSticky: import("@angular/core").Signal<boolean>;
|
|
@@ -5915,7 +5930,7 @@ export declare class SectionFooterComponent {
|
|
|
5915
5930
|
protected readonly sidepanel: import("@angular/core").Signal<boolean>;
|
|
5916
5931
|
protected readonly noBorder: import("@angular/core").Signal<boolean>;
|
|
5917
5932
|
protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
|
|
5918
|
-
protected readonly boxAlign: import("@angular/core").Signal<"
|
|
5933
|
+
protected readonly boxAlign: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
5919
5934
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionFooterComponent, never>;
|
|
5920
5935
|
static ɵcmp: i0.ɵɵComponentDeclaration<SectionFooterComponent, "m-section-footer", never, {
|
|
5921
5936
|
"sticky": {
|
|
@@ -8062,7 +8077,7 @@ declare class DropdownBoxComponent {
|
|
|
8062
8077
|
}
|
|
8063
8078
|
/** The trigger both option Fields draw: a searchable text input and a chevron. */
|
|
8064
8079
|
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";
|
|
8065
|
-
declare const DROPDOWN_IMPORTS: (typeof
|
|
8080
|
+
declare const DROPDOWN_IMPORTS: (typeof TextInputComponent | typeof SelectorDirective | typeof LabelComponent | typeof TextOutputComponent | typeof ButtonComponent)[];
|
|
8066
8081
|
/**
|
|
8067
8082
|
* Everything a Dropdown and a Multiselect share: the options, the search, the
|
|
8068
8083
|
* keyboard walk and the panel. What differs is only what the Field holds — one
|
|
@@ -8246,7 +8261,7 @@ declare class ColorPickerBoxComponent implements AfterViewInit, OnDestroy {
|
|
|
8246
8261
|
protected readonly _eyedropperConfig: import("@magmonium/one").Button;
|
|
8247
8262
|
protected readonly _headerContextMenu: ContextMenu;
|
|
8248
8263
|
protected readonly themeSwatches: import("@angular/core").Signal<{
|
|
8249
|
-
key: "
|
|
8264
|
+
key: "mm" | "mmLite" | "mmDark" | "background" | "border" | "text" | "textSecondary" | "focus" | "error" | "errorLight" | "warning" | "successLite" | "success" | "highlight" | "wealth";
|
|
8250
8265
|
color: string;
|
|
8251
8266
|
}[]>;
|
|
8252
8267
|
hue: import("@angular/core").WritableSignal<number>;
|
|
@@ -8991,7 +9006,7 @@ export declare class FileUploadInputComponent extends BaseInputComponent<FileUpl
|
|
|
8991
9006
|
private readonly editorSize;
|
|
8992
9007
|
private readonly maxSize;
|
|
8993
9008
|
protected readonly isLocked: import("@angular/core").Signal<boolean>;
|
|
8994
|
-
protected readonly dropZoneIconColor: import("@angular/core").Signal<"
|
|
9009
|
+
protected readonly dropZoneIconColor: import("@angular/core").Signal<"border" | "error" | "focus">;
|
|
8995
9010
|
/** Object URLs of the previews on show, keyed by what the value holds. */
|
|
8996
9011
|
private readonly previews;
|
|
8997
9012
|
protected readonly heldFiles: import("@angular/core").Signal<HeldFile[]>;
|
|
@@ -9445,17 +9460,17 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
|
|
|
9445
9460
|
protected readonly resolvesConfigAsset = false;
|
|
9446
9461
|
readonly variant: import("@angular/core").InputSignal<string | undefined>;
|
|
9447
9462
|
readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
|
|
9448
|
-
readonly heightMode: import("@angular/core").InputSignal<"
|
|
9463
|
+
readonly heightMode: import("@angular/core").InputSignal<"full" | "fixed" | undefined>;
|
|
9449
9464
|
readonly maxHeight: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9450
9465
|
readonly height: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9451
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
9466
|
+
readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
|
|
9452
9467
|
readonly padding: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9453
9468
|
readonly paddingX: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9454
9469
|
readonly paddingY: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9455
9470
|
readonly margin: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9456
9471
|
readonly marginX: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9457
9472
|
readonly marginY: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9458
|
-
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" |
|
|
9473
|
+
readonly size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
|
|
9459
9474
|
readonly autofocus: import("@angular/core").InputSignal<boolean>;
|
|
9460
9475
|
data: import("@angular/core").InputSignal<T | undefined>;
|
|
9461
9476
|
readonly dataChange: import("@angular/core").OutputEmitterRef<T>;
|
|
@@ -9500,7 +9515,7 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
|
|
|
9500
9515
|
protected readonly handleSubmit: (event: Event) => void;
|
|
9501
9516
|
readonly resolvedSize: import("@angular/core").Signal<Size>;
|
|
9502
9517
|
protected readonly sizeLength: import("@angular/core").Signal<string | null>;
|
|
9503
|
-
readonly resolvedAlign: import("@angular/core").Signal<"
|
|
9518
|
+
readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right">;
|
|
9504
9519
|
readonly resolvedVariant: import("@angular/core").Signal<string | undefined>;
|
|
9505
9520
|
readonly resolvedMaxWidth: import("@angular/core").Signal<string | number | undefined>;
|
|
9506
9521
|
private readonly resolvedPadding;
|
|
@@ -9512,7 +9527,7 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
|
|
|
9512
9527
|
readonly resolvedMinHeight: import("@angular/core").Signal<string | undefined>;
|
|
9513
9528
|
readonly resolvedMinWidth: import("@angular/core").Signal<string | undefined>;
|
|
9514
9529
|
readonly resolvedMaxHeight: import("@angular/core").Signal<string | number | undefined>;
|
|
9515
|
-
readonly resolvedHeightMode: import("@angular/core").Signal<"
|
|
9530
|
+
readonly resolvedHeightMode: import("@angular/core").Signal<"full" | "fixed" | undefined>;
|
|
9516
9531
|
readonly isFullHeight: import("@angular/core").Signal<boolean>;
|
|
9517
9532
|
readonly cssMaxHeight: import("@angular/core").Signal<string | undefined>;
|
|
9518
9533
|
constructor();
|
|
@@ -10360,7 +10375,7 @@ export declare class ComponentStepperComponent {
|
|
|
10360
10375
|
components: import("@angular/core").InputSignal<Type<unknown>[]>;
|
|
10361
10376
|
labels: import("@angular/core").InputSignal<string[] | undefined>;
|
|
10362
10377
|
currentIndex: import("@angular/core").InputSignal<number>;
|
|
10363
|
-
variant: import("@angular/core").InputSignal<"
|
|
10378
|
+
variant: import("@angular/core").InputSignal<"horizontal" | "vertical">;
|
|
10364
10379
|
context: import("@angular/core").InputSignal<Record<string, unknown> | undefined>;
|
|
10365
10380
|
readonly stepChange: import("@angular/core").OutputEmitterRef<number>;
|
|
10366
10381
|
static ɵfac: i0.ɵɵFactoryDeclaration<ComponentStepperComponent, never>;
|
|
@@ -12062,7 +12077,7 @@ export type DocAiPhase = 'idle' | 'asking' | 'question' | 'outline' | 'writing'
|
|
|
12062
12077
|
*/
|
|
12063
12078
|
export declare class DocEditorComponent implements ControlValueAccessor {
|
|
12064
12079
|
protected readonly groups: readonly import("@magmonium/one").DocToolbarGroup[];
|
|
12065
|
-
protected readonly icons: Record<"
|
|
12080
|
+
protected readonly icons: Record<"table" | "list" | "bold" | "italic" | "strike" | "heading" | "quote" | "link" | "code", string>;
|
|
12066
12081
|
protected readonly docActionKey: typeof docActionKey;
|
|
12067
12082
|
private readonly translate;
|
|
12068
12083
|
protected readonly value: import("@angular/core").WritableSignal<string>;
|
|
@@ -14076,7 +14091,7 @@ export declare class ConfirmComponent {
|
|
|
14076
14091
|
cancelLabel: import("@angular/core").InputSignal<string>;
|
|
14077
14092
|
protected readonly confirmText: import("@angular/core").Signal<string>;
|
|
14078
14093
|
protected readonly cancelText: import("@angular/core").Signal<string>;
|
|
14079
|
-
protected readonly accent: import("@angular/core").Signal<"error" | "
|
|
14094
|
+
protected readonly accent: import("@angular/core").Signal<"error" | "warning" | "success" | "mm">;
|
|
14080
14095
|
protected readonly iconName: import("@angular/core").Signal<"exclamation-triangle" | "info" | "trash" | "check-circle">;
|
|
14081
14096
|
protected accept(): void;
|
|
14082
14097
|
protected decline(): void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-label-BJcQs0Nd.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/compact-number.ts","../../../../libs/one/src/lib/shared/pipe/asset-url.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 { 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 {\n SectionTableColumn,\n SectionTableSort,\n} from '../../type/section-table';\n\n/** A column's id, falling back to its position (m-one-ui ADR 0148). */\nexport const sectionTableColumnId = (\n column: SectionTableColumn,\n index: number\n): 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 = (\n current: SectionTableSort | null,\n id: string,\n dataType: SectionTableSort['dataType']\n): SectionTableSort =>\n current?.id === id\n ? { id, dataType, direction: current.direction === 'asc' ? 'desc' : 'asc' }\n : { id, dataType, direction: 'asc' };\n\n/** The sort a table starts with: its first `defaultSort` column's, if any. */\nexport const defaultSectionTableSort = (\n columns: readonly SectionTableColumn[]\n): SectionTableSort | null => {\n const index = columns.findIndex((column) => column.defaultSort);\n if (index < 0) return null;\n const column = columns[index];\n return {\n id: sectionTableColumnId(column, index),\n dataType: column.dataType,\n direction: column.ascending ? 'asc' : '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 === '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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"}
|