@magmonium/one 0.4.86 → 0.4.88
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/assets/i18n/en.json +1 -0
- package/fesm2022/{magmonium-one-base-dropdown-9iIR64ME.mjs → magmonium-one-base-dropdown-2hgXcmhE.mjs} +4 -4
- package/fesm2022/{magmonium-one-base-dropdown-9iIR64ME.mjs.map → magmonium-one-base-dropdown-2hgXcmhE.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-button-DO7FTwuF.mjs → magmonium-one-button-C5dk4R_m.mjs} +9 -3
- package/fesm2022/magmonium-one-button-C5dk4R_m.mjs.map +1 -0
- package/fesm2022/{magmonium-one-directives-DM6J1Hvs.mjs → magmonium-one-directives-hJ7wkmQn.mjs} +2 -2
- package/fesm2022/{magmonium-one-directives-DM6J1Hvs.mjs.map → magmonium-one-directives-hJ7wkmQn.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-group-BsqCB8D2.mjs → magmonium-one-group-bRamdzPO.mjs} +3 -3
- package/fesm2022/{magmonium-one-group-BsqCB8D2.mjs.map → magmonium-one-group-bRamdzPO.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-header-CgOV_m7w.mjs → magmonium-one-header-BZzD8uTJ.mjs} +2 -2
- package/fesm2022/{magmonium-one-header-CgOV_m7w.mjs.map → magmonium-one-header-BZzD8uTJ.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-image-editor-B6eCXP9A.mjs → magmonium-one-image-editor-BLqlV2ki.mjs} +4 -4
- package/fesm2022/{magmonium-one-image-editor-B6eCXP9A.mjs.map → magmonium-one-image-editor-BLqlV2ki.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-menu-CsoiLhVg.mjs → magmonium-one-menu-CJjjxFfu.mjs} +5 -5
- package/fesm2022/{magmonium-one-menu-CsoiLhVg.mjs.map → magmonium-one-menu-CJjjxFfu.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-multi-range-RSLLKzLu.mjs → magmonium-one-multi-range-DL_JlKVL.mjs} +2 -2
- package/fesm2022/{magmonium-one-multi-range-RSLLKzLu.mjs.map → magmonium-one-multi-range-DL_JlKVL.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-CJBa8k1l.mjs → magmonium-one-password-CvgWZkAX.mjs} +2 -2
- package/fesm2022/{magmonium-one-password-CJBa8k1l.mjs.map → magmonium-one-password-CvgWZkAX.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-range-CqOSrC0Y.mjs → magmonium-one-range-DlQfnl9p.mjs} +2 -2
- package/fesm2022/{magmonium-one-range-CqOSrC0Y.mjs.map → magmonium-one-range-DlQfnl9p.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-selector-CeqlecBa.mjs → magmonium-one-selector-BK48N5us.mjs} +4 -1
- package/fesm2022/{magmonium-one-selector-CeqlecBa.mjs.map → magmonium-one-selector-BK48N5us.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +1177 -34
- package/fesm2022/magmonium-one.mjs.map +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +524 -29
- package/fesm2022/magmonium-one-button-DO7FTwuF.mjs.map +0 -1
package/types/magmonium-one.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Observable } from "rxjs";
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import { AfterContentInit, AfterViewChecked, AfterViewInit, ApplicationConfig, ApplicationRef, Binding, ChangeDetectorRef, ComponentRef, ElementRef, EnvironmentProviders, EventEmitter, InjectionToken, Injector, InputSignal, ModelSignal, OnDestroy, OnInit, PipeTransform, Provider, Signal, StaticProvider, TemplateRef, Type, ViewContainerRef, WritableSignal } from "@angular/core";
|
|
5
5
|
import { Theme, ThemeColor, ThemeList, WebComponentConfig as WebComponentConfig$1 } from "@magmonium/cli";
|
|
6
|
-
import { ActivatedRouteSnapshot, CanActivateFn, Params, Route, Router, RouterStateSnapshot, Routes, UrlMatcher, UrlSegment, UrlSerializer, UrlTree } from "@angular/router";
|
|
6
|
+
import { ActivatedRouteSnapshot, CanActivateFn, Params, Route, Router, RouterLink, RouterStateSnapshot, Routes, UrlMatcher, UrlSegment, UrlSerializer, UrlTree } from "@angular/router";
|
|
7
7
|
import { FieldTree, FormCheckboxControl, FormValueControl, SchemaOrSchemaFn, SchemaPath, ValidationError, WithOptionalFieldTree } from "@angular/forms/signals";
|
|
8
8
|
import { ControlValueAccessor } from "@angular/forms";
|
|
9
9
|
import { SafeStyle } from "@angular/platform-browser";
|
|
@@ -2948,6 +2948,8 @@ export declare class ButtonComponent extends ReactiveElementComponent<Button> {
|
|
|
2948
2948
|
protected element: import("@angular/core").Signal<ElementRef<any> | undefined>;
|
|
2949
2949
|
protected readonly className: import("@angular/core").Signal<string>;
|
|
2950
2950
|
private readonly navRef;
|
|
2951
|
+
protected readonly resolvesConfigAsset: boolean;
|
|
2952
|
+
readonly routerLinkRef: RouterLink | null;
|
|
2951
2953
|
private readonly sectionForm;
|
|
2952
2954
|
protected readonly isFormSubmit: import("@angular/core").Signal<boolean>;
|
|
2953
2955
|
protected readonly isDisabled: import("@angular/core").Signal<boolean>;
|
|
@@ -3630,6 +3632,10 @@ export declare class ToggleButtonComponent extends ConfigComponent<ButtonGroup>
|
|
|
3630
3632
|
export declare class ActionComponent extends ButtonGroupComponent {
|
|
3631
3633
|
readonly sticky: import("@angular/core").InputSignal<boolean>;
|
|
3632
3634
|
readonly isStuck: import("@angular/core").WritableSignal<boolean>;
|
|
3635
|
+
private readonly projected;
|
|
3636
|
+
private readonly projectedButtons;
|
|
3637
|
+
private readonly projectedLinkTrees;
|
|
3638
|
+
private readonly sourceButtons;
|
|
3633
3639
|
readonly variant: import("@angular/core").InputSignal<"toggle" | undefined>;
|
|
3634
3640
|
readonly active: import("@angular/core").InputSignal<string | undefined>;
|
|
3635
3641
|
readonly renderIds: import("@angular/core").InputSignal<Record<string, string> | undefined>;
|
|
@@ -3639,11 +3645,12 @@ export declare class ActionComponent extends ButtonGroupComponent {
|
|
|
3639
3645
|
private readonly router;
|
|
3640
3646
|
private readonly route;
|
|
3641
3647
|
private readonly linkTrees;
|
|
3642
|
-
protected linkOf(button: Button): Button['routerLink'];
|
|
3648
|
+
protected linkOf(button: Button): Button['routerLink'] | UrlTree;
|
|
3649
|
+
isDisabled(name?: string): boolean | undefined;
|
|
3643
3650
|
private readonly linkActive;
|
|
3644
3651
|
private readonly isRouted;
|
|
3645
3652
|
protected readonly selected: import("@angular/core").Signal<string | undefined>;
|
|
3646
|
-
readonly squeezeAt: import("@angular/core").InputSignal<"sm" | "md" | "lg" | "
|
|
3653
|
+
readonly squeezeAt: import("@angular/core").InputSignal<"sm" | "md" | "lg" | "xl" | "xxl" | "xs" | undefined>;
|
|
3647
3654
|
readonly squeezeMode: import("@angular/core").InputSignal<SqueezeMode | undefined>;
|
|
3648
3655
|
private readonly squeeze;
|
|
3649
3656
|
private readonly barWidth;
|
|
@@ -3700,7 +3707,7 @@ export declare class ActionComponent extends ButtonGroupComponent {
|
|
|
3700
3707
|
"required": false;
|
|
3701
3708
|
"isSignal": true;
|
|
3702
3709
|
};
|
|
3703
|
-
}, {},
|
|
3710
|
+
}, {}, ["projected"], never, true, never>;
|
|
3704
3711
|
}
|
|
3705
3712
|
declare function deriveButtonClass(button?: Button): string;
|
|
3706
3713
|
export declare function isButtonName(name: string, button?: Button): boolean;
|
|
@@ -3718,6 +3725,22 @@ export declare function isButtonName(name: string, button?: Button): boolean;
|
|
|
3718
3725
|
*/
|
|
3719
3726
|
export declare function actionName<Name extends string>(button: Button | undefined, names: Record<string, Name>): Name | undefined;
|
|
3720
3727
|
declare function deriveGroupClass(group?: Partial<ButtonGroup>): string;
|
|
3728
|
+
/**
|
|
3729
|
+
* Published by `<m-action>` for the `<m-button>`s written inside it.
|
|
3730
|
+
*
|
|
3731
|
+
* A Button there is a description of a segment, never drawn itself: the bar
|
|
3732
|
+
* has no `ng-content`, reads each Button's resolved config off its instance and
|
|
3733
|
+
* draws its own `<button>` from it — which is what keeps the toggle, the
|
|
3734
|
+
* squeeze and the routed light working off one list. An `@if` around one
|
|
3735
|
+
* still takes it in and out of that list, because the bar's query follows the
|
|
3736
|
+
* Buttons that exist.
|
|
3737
|
+
*
|
|
3738
|
+
* The flag stops such a Button resolving a `buttons/<name>.yml` of its own:
|
|
3739
|
+
* the bar already resolves what an unlabelled Button is missing, and a named
|
|
3740
|
+
* segment that only ever rides on its tag would otherwise request a file that
|
|
3741
|
+
* was never written.
|
|
3742
|
+
*/
|
|
3743
|
+
declare const ACTION_BUTTON_HOST: InjectionToken<true>;
|
|
3721
3744
|
type GridAlignX = 'left' | 'center' | 'right';
|
|
3722
3745
|
type GridAlignY = 'top' | 'center' | 'bottom';
|
|
3723
3746
|
type ColVariant = 'noBorder' | 'withBorder';
|
|
@@ -4944,7 +4967,7 @@ export declare class SectionFilterGroupComponent {
|
|
|
4944
4967
|
readonly paddingX: import("@angular/core").InputSignal<boolean | undefined>;
|
|
4945
4968
|
readonly paddingY: import("@angular/core").InputSignal<boolean | undefined>;
|
|
4946
4969
|
readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
|
|
4947
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
4970
|
+
readonly align: import("@angular/core").InputSignal<"left" | "right" | "center" | undefined>;
|
|
4948
4971
|
readonly config: import("@angular/core").InputSignal<SectionFilterGroupConfig | undefined>;
|
|
4949
4972
|
/**
|
|
4950
4973
|
* The whole group's selection, keyed by each Filter's `name` — one key per
|
|
@@ -4962,7 +4985,7 @@ export declare class SectionFilterGroupComponent {
|
|
|
4962
4985
|
protected readonly resolvedPadding: import("@angular/core").Signal<boolean>;
|
|
4963
4986
|
protected readonly resolvedPaddingX: import("@angular/core").Signal<boolean>;
|
|
4964
4987
|
protected readonly resolvedPaddingY: import("@angular/core").Signal<boolean>;
|
|
4965
|
-
protected readonly resolvedAlign: import("@angular/core").Signal<"
|
|
4988
|
+
protected readonly resolvedAlign: import("@angular/core").Signal<"left" | "right" | "center">;
|
|
4966
4989
|
protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
|
|
4967
4990
|
protected readonly noBorder: import("@angular/core").Signal<boolean>;
|
|
4968
4991
|
/**
|
|
@@ -5067,7 +5090,7 @@ export declare class SectionStepperComponent implements OnDestroy {
|
|
|
5067
5090
|
readonly lg: import("@angular/core").InputSignal<number | undefined>;
|
|
5068
5091
|
readonly xl: import("@angular/core").InputSignal<number | undefined>;
|
|
5069
5092
|
readonly xxl: import("@angular/core").InputSignal<number | undefined>;
|
|
5070
|
-
readonly orientation: import("@angular/core").InputSignal<"
|
|
5093
|
+
readonly orientation: import("@angular/core").InputSignal<"horizontal" | "vertical" | undefined>;
|
|
5071
5094
|
readonly stepChange: import("@angular/core").OutputEmitterRef<number>;
|
|
5072
5095
|
private readonly isCompact;
|
|
5073
5096
|
private readonly mediaMatched;
|
|
@@ -5141,7 +5164,7 @@ export declare class SectionStepperComponent implements OnDestroy {
|
|
|
5141
5164
|
export declare class SectionBadgesComponent {
|
|
5142
5165
|
readonly wrap: import("@angular/core").InputSignal<boolean>;
|
|
5143
5166
|
readonly border: import("@angular/core").InputSignal<boolean>;
|
|
5144
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5167
|
+
readonly align: import("@angular/core").InputSignal<"left" | "right" | "center">;
|
|
5145
5168
|
private readonly sectionContext;
|
|
5146
5169
|
protected readonly hasBorder: import("@angular/core").Signal<boolean>;
|
|
5147
5170
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionBadgesComponent, never>;
|
|
@@ -5289,7 +5312,7 @@ export declare class SectionPaginationComponent {
|
|
|
5289
5312
|
* Entries that are not positive numbers drop rather than throw.
|
|
5290
5313
|
*/
|
|
5291
5314
|
readonly perPageOptions: import("@angular/core").InputSignal<string | undefined>;
|
|
5292
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5315
|
+
readonly align: import("@angular/core").InputSignal<"left" | "right" | "center">;
|
|
5293
5316
|
readonly showPerPage: import("@angular/core").InputSignal<boolean>;
|
|
5294
5317
|
/** Hides the band outright once everything fits one page. */
|
|
5295
5318
|
readonly hideOnSinglePage: import("@angular/core").InputSignal<boolean>;
|
|
@@ -5797,8 +5820,8 @@ export declare class SectionHeaderComponent {
|
|
|
5797
5820
|
readonly visibilityRule: import("@angular/core").InputSignal<((key: string, data?: unknown) => boolean) | undefined>;
|
|
5798
5821
|
readonly disableRule: import("@angular/core").InputSignal<((key: string, data?: unknown) => boolean) | undefined>;
|
|
5799
5822
|
readonly extraData: import("@angular/core").InputSignal<unknown>;
|
|
5800
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
5801
|
-
readonly alignment: import("@angular/core").Signal<"
|
|
5823
|
+
readonly align: import("@angular/core").InputSignal<"left" | "right" | "center" | undefined>;
|
|
5824
|
+
readonly alignment: import("@angular/core").Signal<"left" | "right" | "center">;
|
|
5802
5825
|
readonly badge: import("@angular/core").InputSignal<BadgeCount | undefined>;
|
|
5803
5826
|
readonly showBack: import("@angular/core").InputSignal<boolean>;
|
|
5804
5827
|
readonly actionButton: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -5816,7 +5839,7 @@ export declare class SectionHeaderComponent {
|
|
|
5816
5839
|
protected readonly sidepanel: import("@angular/core").Signal<boolean>;
|
|
5817
5840
|
protected readonly noBorder: import("@angular/core").Signal<boolean>;
|
|
5818
5841
|
protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
|
|
5819
|
-
protected readonly boxAlign: import("@angular/core").Signal<"
|
|
5842
|
+
protected readonly boxAlign: import("@angular/core").Signal<"left" | "right" | "center">;
|
|
5820
5843
|
protected readonly iconBox: import("@angular/core").Signal<string>;
|
|
5821
5844
|
protected readonly isSticky: import("@angular/core").Signal<boolean>;
|
|
5822
5845
|
protected readonly hasMenu: import("@angular/core").Signal<boolean>;
|
|
@@ -5971,7 +5994,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
|
|
|
5971
5994
|
protected readonly resolvedFullWidth: import("@angular/core").Signal<boolean>;
|
|
5972
5995
|
protected readonly resolvedVertical: import("@angular/core").Signal<boolean>;
|
|
5973
5996
|
protected readonly resolvedVariant: import("@angular/core").Signal<"spaced" | "joined">;
|
|
5974
|
-
protected readonly resolvedAlign: import("@angular/core").Signal<"
|
|
5997
|
+
protected readonly resolvedAlign: import("@angular/core").Signal<"left" | "right" | "top" | "bottom" | "center">;
|
|
5975
5998
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionButtonGroupComponent, never>;
|
|
5976
5999
|
static ɵcmp: i0.ɵɵComponentDeclaration<SectionButtonGroupComponent, "m-section-button-group", never, {
|
|
5977
6000
|
"vertical": {
|
|
@@ -6003,7 +6026,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
|
|
|
6003
6026
|
}
|
|
6004
6027
|
export declare class SectionFooterComponent {
|
|
6005
6028
|
readonly sticky: import("@angular/core").InputSignal<boolean>;
|
|
6006
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
6029
|
+
readonly align: import("@angular/core").InputSignal<"left" | "right" | "center">;
|
|
6007
6030
|
readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
|
|
6008
6031
|
readonly fullWidth: import("@angular/core").InputSignal<boolean>;
|
|
6009
6032
|
private readonly scrollSticky;
|
|
@@ -6012,7 +6035,7 @@ export declare class SectionFooterComponent {
|
|
|
6012
6035
|
protected readonly sidepanel: import("@angular/core").Signal<boolean>;
|
|
6013
6036
|
protected readonly noBorder: import("@angular/core").Signal<boolean>;
|
|
6014
6037
|
protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
|
|
6015
|
-
protected readonly boxAlign: import("@angular/core").Signal<"
|
|
6038
|
+
protected readonly boxAlign: import("@angular/core").Signal<"left" | "right" | "center">;
|
|
6016
6039
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionFooterComponent, never>;
|
|
6017
6040
|
static ɵcmp: i0.ɵɵComponentDeclaration<SectionFooterComponent, "m-section-footer", never, {
|
|
6018
6041
|
"sticky": {
|
|
@@ -8561,7 +8584,7 @@ declare class ColorPickerBoxComponent implements AfterViewInit, OnDestroy {
|
|
|
8561
8584
|
protected readonly _eyedropperConfig: import("@magmonium/one").Button;
|
|
8562
8585
|
protected readonly _headerContextMenu: ContextMenu;
|
|
8563
8586
|
protected readonly themeSwatches: import("@angular/core").Signal<{
|
|
8564
|
-
key: "
|
|
8587
|
+
key: "error" | "background" | "border" | "text" | "textSecondary" | "mm" | "mmLite" | "mmDark" | "focus" | "errorLight" | "warning" | "successLite" | "success" | "highlight" | "wealth";
|
|
8565
8588
|
color: string;
|
|
8566
8589
|
}[]>;
|
|
8567
8590
|
hue: import("@angular/core").WritableSignal<number>;
|
|
@@ -9763,7 +9786,7 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
|
|
|
9763
9786
|
readonly heightMode: import("@angular/core").InputSignal<"fixed" | "full" | undefined>;
|
|
9764
9787
|
readonly maxHeight: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9765
9788
|
readonly height: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9766
|
-
readonly align: import("@angular/core").InputSignal<"
|
|
9789
|
+
readonly align: import("@angular/core").InputSignal<"left" | "right" | "center" | undefined>;
|
|
9767
9790
|
readonly padding: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9768
9791
|
readonly paddingX: import("@angular/core").InputSignal<string | number | undefined>;
|
|
9769
9792
|
readonly paddingY: import("@angular/core").InputSignal<string | number | undefined>;
|
|
@@ -9815,7 +9838,7 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
|
|
|
9815
9838
|
protected readonly handleSubmit: (event: Event) => void;
|
|
9816
9839
|
readonly resolvedSize: import("@angular/core").Signal<Size>;
|
|
9817
9840
|
protected readonly sizeLength: import("@angular/core").Signal<string | null>;
|
|
9818
|
-
readonly resolvedAlign: import("@angular/core").Signal<"
|
|
9841
|
+
readonly resolvedAlign: import("@angular/core").Signal<"left" | "right" | "center">;
|
|
9819
9842
|
readonly resolvedVariant: import("@angular/core").Signal<string | undefined>;
|
|
9820
9843
|
readonly resolvedMaxWidth: import("@angular/core").Signal<string | number | undefined>;
|
|
9821
9844
|
private readonly resolvedPadding;
|
|
@@ -10491,7 +10514,7 @@ export declare class StepperComponent extends ConfigComponent<Stepper> {
|
|
|
10491
10514
|
constructor();
|
|
10492
10515
|
protected readonly isReadonly: import("@angular/core").Signal<boolean>;
|
|
10493
10516
|
protected readonly stepperDisabled: import("@angular/core").Signal<boolean>;
|
|
10494
|
-
protected readonly orientation: import("@angular/core").Signal<"
|
|
10517
|
+
protected readonly orientation: import("@angular/core").Signal<"vertical" | "compact">;
|
|
10495
10518
|
protected readonly currentStepLabel: import("@angular/core").Signal<string>;
|
|
10496
10519
|
protected readonly nextStepLabel: import("@angular/core").Signal<string>;
|
|
10497
10520
|
protected readonly isLastStep: import("@angular/core").Signal<boolean>;
|
|
@@ -10675,7 +10698,7 @@ export declare class ComponentStepperComponent {
|
|
|
10675
10698
|
components: import("@angular/core").InputSignal<Type<unknown>[]>;
|
|
10676
10699
|
labels: import("@angular/core").InputSignal<string[] | undefined>;
|
|
10677
10700
|
currentIndex: import("@angular/core").InputSignal<number>;
|
|
10678
|
-
variant: import("@angular/core").InputSignal<"
|
|
10701
|
+
variant: import("@angular/core").InputSignal<"horizontal" | "vertical">;
|
|
10679
10702
|
context: import("@angular/core").InputSignal<Record<string, unknown> | undefined>;
|
|
10680
10703
|
readonly stepChange: import("@angular/core").OutputEmitterRef<number>;
|
|
10681
10704
|
static ɵfac: i0.ɵɵFactoryDeclaration<ComponentStepperComponent, never>;
|
|
@@ -12100,7 +12123,7 @@ export declare class ScoreSetItemComponent {
|
|
|
12100
12123
|
private readonly themeStore;
|
|
12101
12124
|
protected readonly tipId: string;
|
|
12102
12125
|
protected readonly tipDismissed: import("@angular/core").WritableSignal<boolean>;
|
|
12103
|
-
protected readonly shape: import("@angular/core").Signal<"
|
|
12126
|
+
protected readonly shape: import("@angular/core").Signal<"primary" | "none" | "row">;
|
|
12104
12127
|
protected readonly tone: import("@angular/core").Signal<string | null>;
|
|
12105
12128
|
protected readonly model: import("@angular/core").Signal<{
|
|
12106
12129
|
value: number | null;
|
|
@@ -12238,7 +12261,7 @@ export declare class ScoreSetComponent implements ScoreSetHost {
|
|
|
12238
12261
|
"scoreSelect": "scoreSelect";
|
|
12239
12262
|
}, ["items"], ["m-score-set-item"], true, never>;
|
|
12240
12263
|
}
|
|
12241
|
-
/** A level as a percent change from
|
|
12264
|
+
/** A level as a percent change from a reference value: 110 vs 100 → +10. */
|
|
12242
12265
|
export declare const gapPct: (level: number, value: number) => number;
|
|
12243
12266
|
/** A gap as signed text, one decimal: +12.7%, −1.6%, 0.0%. */
|
|
12244
12267
|
export declare const formatGap: (gap: number) => string;
|
|
@@ -12322,6 +12345,9 @@ interface LadderSignal {
|
|
|
12322
12345
|
* Every predefined rule the levels match, read from one snapshot. A golden or
|
|
12323
12346
|
* death cross here is the regime — SMA 50 above or below SMA 200 now — not the
|
|
12324
12347
|
* crossing itself: a snapshot holds no date it happened on.
|
|
12348
|
+
* @deprecated Use `m-scale` (ScaleComponent) with the price relations in
|
|
12349
|
+
* PRICE_SCALE_RELATIONS; the editor migrates stored ladders (v31). Removed
|
|
12350
|
+
* in the next release.
|
|
12325
12351
|
*/
|
|
12326
12352
|
export declare const ladderSignals: (levels: LadderLevels, symbol?: string) => LadderSignal[];
|
|
12327
12353
|
/** Whether a name is one of the predefined rules — `custom` and '' are not. */
|
|
@@ -12343,7 +12369,7 @@ interface LadderLevel {
|
|
|
12343
12369
|
export declare const PRICE_LADDER_LEVELS: readonly LadderLevel[];
|
|
12344
12370
|
/** The fixed level a key names, or undefined for a key off the list. */
|
|
12345
12371
|
export declare const ladderLevelOf: (key: string) => LadderLevel | undefined;
|
|
12346
|
-
interface Mark {
|
|
12372
|
+
interface Mark$1 {
|
|
12347
12373
|
key: string;
|
|
12348
12374
|
name: string;
|
|
12349
12375
|
value: number;
|
|
@@ -12364,6 +12390,9 @@ interface Chip {
|
|
|
12364
12390
|
* `rank`, bounds as end-caps, the estimate as a dashed tick or a band. Shape,
|
|
12365
12391
|
* not colour alone, says which is past and which is forward. Finance-agnostic:
|
|
12366
12392
|
* what the levels mean arrives as `m-price-ladder-signal` tags from the host.
|
|
12393
|
+
* @deprecated Use `m-scale` (ScaleComponent) with the price relations in
|
|
12394
|
+
* PRICE_SCALE_RELATIONS; the editor migrates stored ladders (v31). Removed
|
|
12395
|
+
* in the next release.
|
|
12367
12396
|
*/
|
|
12368
12397
|
export declare class PriceLadderComponent {
|
|
12369
12398
|
/** The featured value — current price. `null` draws a dash. */
|
|
@@ -12408,7 +12437,7 @@ export declare class PriceLadderComponent {
|
|
|
12408
12437
|
/** Every drawable mark, the `current` and `forecast` stand-ins included. */
|
|
12409
12438
|
private readonly everyMark;
|
|
12410
12439
|
/** The reference levels drawn as ticks and labels. */
|
|
12411
|
-
protected readonly marks: import("@angular/core").Signal<Mark[]>;
|
|
12440
|
+
protected readonly marks: import("@angular/core").Signal<Mark$1[]>;
|
|
12412
12441
|
/** Every predefined rule the drawn levels match, by rule. */
|
|
12413
12442
|
private readonly matched;
|
|
12414
12443
|
/** The indicators picked by `signals`: every rule for `all`. */
|
|
@@ -12578,6 +12607,9 @@ export declare class PriceLadderComponent {
|
|
|
12578
12607
|
* One reference level of a price ladder, written as a tag inside
|
|
12579
12608
|
* `m-price-ladder` so the levels are markup rather than an array literal. It
|
|
12580
12609
|
* draws nothing itself: the ladder reads it and places it on the shared axis.
|
|
12610
|
+
* @deprecated Use `m-scale` (ScaleComponent) with the price relations in
|
|
12611
|
+
* PRICE_SCALE_RELATIONS; the editor migrates stored ladders (v31). Removed
|
|
12612
|
+
* in the next release.
|
|
12581
12613
|
*/
|
|
12582
12614
|
export declare class PriceLadderMarkComponent {
|
|
12583
12615
|
/**
|
|
@@ -12633,6 +12665,9 @@ export declare class PriceLadderMarkComponent {
|
|
|
12633
12665
|
* A reading the host draws from the levels (a golden cross, a 52-week
|
|
12634
12666
|
* breakout), shown as a chip above the ladder. The ladder does not decide what
|
|
12635
12667
|
* the levels mean — that stays with the host, which writes one tag per signal.
|
|
12668
|
+
* @deprecated Use `m-scale` (ScaleComponent) with the price relations in
|
|
12669
|
+
* PRICE_SCALE_RELATIONS; the editor migrates stored ladders (v31). Removed
|
|
12670
|
+
* in the next release.
|
|
12636
12671
|
*/
|
|
12637
12672
|
export declare class PriceLadderSignalComponent {
|
|
12638
12673
|
readonly key: import("@angular/core").InputSignal<string>;
|
|
@@ -12677,6 +12712,454 @@ export declare class PriceLadderSignalComponent {
|
|
|
12677
12712
|
};
|
|
12678
12713
|
}, {}, never, never, true, never>;
|
|
12679
12714
|
}
|
|
12715
|
+
/** `auto` — vertical while the scale's own width is under its `breakpoint`. */
|
|
12716
|
+
type ScaleOrientation = 'auto' | 'horizontal' | 'vertical';
|
|
12717
|
+
/** A grid breakpoint key, read against the scale's own width, not the viewport. */
|
|
12718
|
+
type ScaleBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
12719
|
+
type ScaleFormat = 'number' | 'currency' | 'percent';
|
|
12720
|
+
/** `level` — a tick. `bound` — an end-cap; two bounds shade the range between.
|
|
12721
|
+
* `target` — a dashed tick, with `low`/`high` a hatched band. */
|
|
12722
|
+
type ScaleMarkKind = 'level' | 'bound' | 'target';
|
|
12723
|
+
/** How a relation's chip and bracket read. `gold` is a golden cross. */
|
|
12724
|
+
type ScaleTone = 'up' | 'down' | 'warn' | 'gold' | 'neutral';
|
|
12725
|
+
/** `compare` — a mark against a mark, a fixed value or a % of a mark.
|
|
12726
|
+
* `combine` — other relations joined by `mode`. `always` — holds whatever
|
|
12727
|
+
* the marks say: a fixed chip. */
|
|
12728
|
+
type ScaleRelationType = 'compare' | 'combine' | 'always';
|
|
12729
|
+
/** `within`/`beyond` read the gap % between left and right against `n`. */
|
|
12730
|
+
type ScaleCompareOp = 'gt' | 'gte' | 'lt' | 'lte' | 'within' | 'beyond';
|
|
12731
|
+
/** What a compare's right side is: the mark `right`, `rightValue` itself,
|
|
12732
|
+
* or `rightValue` % of the mark `right`. */
|
|
12733
|
+
type ScaleOperandKind = 'mark' | 'fixed' | 'pct';
|
|
12734
|
+
type ScaleCombineMode = 'all' | 'any' | 'not';
|
|
12735
|
+
interface Mark {
|
|
12736
|
+
key: string;
|
|
12737
|
+
name: string;
|
|
12738
|
+
value: number;
|
|
12739
|
+
kind: ScaleMarkKind;
|
|
12740
|
+
low: number | null;
|
|
12741
|
+
high: number | null;
|
|
12742
|
+
primary: boolean;
|
|
12743
|
+
}
|
|
12744
|
+
/**
|
|
12745
|
+
* Several values of one quantity on one linear axis — current, min, ideal,
|
|
12746
|
+
* max — so where one sits against the others reads at a glance. The scale's
|
|
12747
|
+
* `label` names the quantity and its `primary` mark is the main reading,
|
|
12748
|
+
* shown large beside it. Relations (`m-scale-relation`) name what the marks
|
|
12749
|
+
* mean together and show as chips while they hold. Horizontal on a wide
|
|
12750
|
+
* container, vertical under `breakpoint`, read off the scale's own width.
|
|
12751
|
+
*/
|
|
12752
|
+
export declare class ScaleComponent {
|
|
12753
|
+
/** TranslationAsset key naming the quantity, e.g. `stock-qty`. */
|
|
12754
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
12755
|
+
readonly format: import("@angular/core").InputSignal<ScaleFormat>;
|
|
12756
|
+
/** ISO code for `currency`. */
|
|
12757
|
+
readonly currency: import("@angular/core").InputSignal<string>;
|
|
12758
|
+
/** Suffix after every `number` value, e.g. `kg`. */
|
|
12759
|
+
readonly unit: import("@angular/core").InputSignal<string>;
|
|
12760
|
+
/** Under this width (of the scale, not the screen) `auto` turns vertical. */
|
|
12761
|
+
readonly breakpoint: import("@angular/core").InputSignal<ScaleBreakpoint>;
|
|
12762
|
+
readonly orientation: import("@angular/core").InputSignal<ScaleOrientation>;
|
|
12763
|
+
/** Pin the axis ends; unset, they fit the marks. */
|
|
12764
|
+
readonly min: import("@angular/core").InputSignal<number | null | undefined>;
|
|
12765
|
+
readonly max: import("@angular/core").InputSignal<number | null | undefined>;
|
|
12766
|
+
/** A mark further than this % from the primary is pinned to the edge. Unset, none is. */
|
|
12767
|
+
readonly maxSpanPct: import("@angular/core").InputSignal<number | null | undefined>;
|
|
12768
|
+
private readonly markTags;
|
|
12769
|
+
private readonly relationTags;
|
|
12770
|
+
private readonly translateService;
|
|
12771
|
+
private readonly width;
|
|
12772
|
+
constructor();
|
|
12773
|
+
private readonly t;
|
|
12774
|
+
private readonly formatter;
|
|
12775
|
+
/** A value as text: a `percent` value is already in percent (12.5 → 12.5%). */
|
|
12776
|
+
readonly formatValue: (v: number) => string;
|
|
12777
|
+
protected readonly shownAs: import("@angular/core").Signal<"horizontal" | "vertical">;
|
|
12778
|
+
private readonly marks;
|
|
12779
|
+
protected readonly primary: import("@angular/core").Signal<Mark | null>;
|
|
12780
|
+
private readonly relations;
|
|
12781
|
+
private readonly results;
|
|
12782
|
+
/** One chip per relation that holds and is not hidden. */
|
|
12783
|
+
protected readonly chips: import("@angular/core").Signal<{
|
|
12784
|
+
key: string;
|
|
12785
|
+
label: string;
|
|
12786
|
+
tone: ScaleTone;
|
|
12787
|
+
detail: string;
|
|
12788
|
+
}[]>;
|
|
12789
|
+
private readonly domain;
|
|
12790
|
+
/** Height of a vertical scale: one row per mark, never under the minimum. */
|
|
12791
|
+
protected readonly verticalPx: import("@angular/core").Signal<number>;
|
|
12792
|
+
/**
|
|
12793
|
+
* Everything the plot places, in % from the axis start — the left edge, or
|
|
12794
|
+
* the top on a vertical scale, where the highest value sits.
|
|
12795
|
+
*/
|
|
12796
|
+
protected readonly plot: import("@angular/core").Signal<{
|
|
12797
|
+
ticks: {
|
|
12798
|
+
key: string;
|
|
12799
|
+
kind: ScaleMarkKind;
|
|
12800
|
+
primary: boolean;
|
|
12801
|
+
at: number;
|
|
12802
|
+
pin: string;
|
|
12803
|
+
}[];
|
|
12804
|
+
bands: {
|
|
12805
|
+
from: number;
|
|
12806
|
+
size: number;
|
|
12807
|
+
key: string;
|
|
12808
|
+
}[];
|
|
12809
|
+
range: {
|
|
12810
|
+
from: number;
|
|
12811
|
+
size: number;
|
|
12812
|
+
} | null;
|
|
12813
|
+
brackets: {
|
|
12814
|
+
row: number;
|
|
12815
|
+
from: number;
|
|
12816
|
+
size: number;
|
|
12817
|
+
key: string;
|
|
12818
|
+
tone: ScaleTone;
|
|
12819
|
+
label: string;
|
|
12820
|
+
}[];
|
|
12821
|
+
labels: {
|
|
12822
|
+
name: string;
|
|
12823
|
+
valueText: string;
|
|
12824
|
+
primary: boolean;
|
|
12825
|
+
target: boolean;
|
|
12826
|
+
key: string;
|
|
12827
|
+
lane: number;
|
|
12828
|
+
at: number;
|
|
12829
|
+
}[];
|
|
12830
|
+
lanes: number;
|
|
12831
|
+
}>;
|
|
12832
|
+
protected readonly summary: import("@angular/core").Signal<string>;
|
|
12833
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScaleComponent, never>;
|
|
12834
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScaleComponent, "m-scale", never, {
|
|
12835
|
+
"label": {
|
|
12836
|
+
"alias": "label";
|
|
12837
|
+
"required": false;
|
|
12838
|
+
"isSignal": true;
|
|
12839
|
+
};
|
|
12840
|
+
"format": {
|
|
12841
|
+
"alias": "format";
|
|
12842
|
+
"required": false;
|
|
12843
|
+
"isSignal": true;
|
|
12844
|
+
};
|
|
12845
|
+
"currency": {
|
|
12846
|
+
"alias": "currency";
|
|
12847
|
+
"required": false;
|
|
12848
|
+
"isSignal": true;
|
|
12849
|
+
};
|
|
12850
|
+
"unit": {
|
|
12851
|
+
"alias": "unit";
|
|
12852
|
+
"required": false;
|
|
12853
|
+
"isSignal": true;
|
|
12854
|
+
};
|
|
12855
|
+
"breakpoint": {
|
|
12856
|
+
"alias": "breakpoint";
|
|
12857
|
+
"required": false;
|
|
12858
|
+
"isSignal": true;
|
|
12859
|
+
};
|
|
12860
|
+
"orientation": {
|
|
12861
|
+
"alias": "orientation";
|
|
12862
|
+
"required": false;
|
|
12863
|
+
"isSignal": true;
|
|
12864
|
+
};
|
|
12865
|
+
"min": {
|
|
12866
|
+
"alias": "min";
|
|
12867
|
+
"required": false;
|
|
12868
|
+
"isSignal": true;
|
|
12869
|
+
};
|
|
12870
|
+
"max": {
|
|
12871
|
+
"alias": "max";
|
|
12872
|
+
"required": false;
|
|
12873
|
+
"isSignal": true;
|
|
12874
|
+
};
|
|
12875
|
+
"maxSpanPct": {
|
|
12876
|
+
"alias": "maxSpanPct";
|
|
12877
|
+
"required": false;
|
|
12878
|
+
"isSignal": true;
|
|
12879
|
+
};
|
|
12880
|
+
}, {}, ["markTags", "relationTags"], never, true, never>;
|
|
12881
|
+
}
|
|
12882
|
+
/**
|
|
12883
|
+
* One value on a scale (`min`, `ideal`, `current`), written as a tag inside
|
|
12884
|
+
* `m-scale`. It draws nothing itself: the scale reads it and places it on the
|
|
12885
|
+
* shared axis; relations name it by `key`.
|
|
12886
|
+
*/
|
|
12887
|
+
export declare class ScaleMarkComponent {
|
|
12888
|
+
/** What relations name the mark by. */
|
|
12889
|
+
readonly key: import("@angular/core").InputSignal<string>;
|
|
12890
|
+
/** TranslationAsset key naming the mark; unset, its key. */
|
|
12891
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
12892
|
+
/** Missing or NaN → the mark is left out, and relations reading it do not hold. */
|
|
12893
|
+
readonly value: import("@angular/core").InputSignal<number | null | undefined>;
|
|
12894
|
+
readonly kind: import("@angular/core").InputSignal<ScaleMarkKind>;
|
|
12895
|
+
/** A `target`'s band ends; both set draw a hatched band. */
|
|
12896
|
+
readonly low: import("@angular/core").InputSignal<number | null | undefined>;
|
|
12897
|
+
readonly high: import("@angular/core").InputSignal<number | null | undefined>;
|
|
12898
|
+
/** The main reading: drawn as the dot and shown beside the scale's label. First one wins. */
|
|
12899
|
+
readonly primary: import("@angular/core").InputSignal<boolean>;
|
|
12900
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScaleMarkComponent, never>;
|
|
12901
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScaleMarkComponent, "m-scale-mark", never, {
|
|
12902
|
+
"key": {
|
|
12903
|
+
"alias": "key";
|
|
12904
|
+
"required": false;
|
|
12905
|
+
"isSignal": true;
|
|
12906
|
+
};
|
|
12907
|
+
"label": {
|
|
12908
|
+
"alias": "label";
|
|
12909
|
+
"required": false;
|
|
12910
|
+
"isSignal": true;
|
|
12911
|
+
};
|
|
12912
|
+
"value": {
|
|
12913
|
+
"alias": "value";
|
|
12914
|
+
"required": false;
|
|
12915
|
+
"isSignal": true;
|
|
12916
|
+
};
|
|
12917
|
+
"kind": {
|
|
12918
|
+
"alias": "kind";
|
|
12919
|
+
"required": false;
|
|
12920
|
+
"isSignal": true;
|
|
12921
|
+
};
|
|
12922
|
+
"low": {
|
|
12923
|
+
"alias": "low";
|
|
12924
|
+
"required": false;
|
|
12925
|
+
"isSignal": true;
|
|
12926
|
+
};
|
|
12927
|
+
"high": {
|
|
12928
|
+
"alias": "high";
|
|
12929
|
+
"required": false;
|
|
12930
|
+
"isSignal": true;
|
|
12931
|
+
};
|
|
12932
|
+
"primary": {
|
|
12933
|
+
"alias": "primary";
|
|
12934
|
+
"required": false;
|
|
12935
|
+
"isSignal": true;
|
|
12936
|
+
};
|
|
12937
|
+
}, {}, never, never, true, never>;
|
|
12938
|
+
}
|
|
12939
|
+
/**
|
|
12940
|
+
* A named reading of a scale's marks (a golden cross, "reorder soon"), shown
|
|
12941
|
+
* as a chip above the scale while it holds. A `compare` sets mark `left`
|
|
12942
|
+
* against the mark `right`, the fixed `rightValue`, or `rightValue` % of
|
|
12943
|
+
* `right`; a `combine` joins other relations named in `of`; an `always` is
|
|
12944
|
+
* a fixed chip. Draws nothing.
|
|
12945
|
+
*/
|
|
12946
|
+
export declare class ScaleRelationComponent {
|
|
12947
|
+
/** What other relations name it by in `of`. */
|
|
12948
|
+
readonly key: import("@angular/core").InputSignal<string>;
|
|
12949
|
+
/** TranslationAsset key for the chip; unset, the key. */
|
|
12950
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
12951
|
+
readonly tone: import("@angular/core").InputSignal<ScaleTone>;
|
|
12952
|
+
/** TranslationAsset key for the chip's title, filled from `<left>`, `<right>`, `<gap>`. */
|
|
12953
|
+
readonly detail: import("@angular/core").InputSignal<string>;
|
|
12954
|
+
readonly type: import("@angular/core").InputSignal<ScaleRelationType>;
|
|
12955
|
+
readonly left: import("@angular/core").InputSignal<string>;
|
|
12956
|
+
readonly op: import("@angular/core").InputSignal<ScaleCompareOp>;
|
|
12957
|
+
readonly right: import("@angular/core").InputSignal<string>;
|
|
12958
|
+
readonly rightKind: import("@angular/core").InputSignal<ScaleOperandKind>;
|
|
12959
|
+
readonly rightValue: import("@angular/core").InputSignal<number | null | undefined>;
|
|
12960
|
+
/** Gap % that `within`/`beyond` read against. */
|
|
12961
|
+
readonly n: import("@angular/core").InputSignal<number | null | undefined>;
|
|
12962
|
+
readonly mode: import("@angular/core").InputSignal<ScaleCombineMode>;
|
|
12963
|
+
/** Relation keys a combine joins, comma- or space-separated. */
|
|
12964
|
+
readonly of: import("@angular/core").InputSignal<string | readonly string[] | undefined>;
|
|
12965
|
+
/** Evaluated and usable in a combine, but no chip. */
|
|
12966
|
+
readonly hidden: import("@angular/core").InputSignal<boolean>;
|
|
12967
|
+
/** While it holds, bracket the two operands on the axis. */
|
|
12968
|
+
readonly bracket: import("@angular/core").InputSignal<boolean>;
|
|
12969
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScaleRelationComponent, never>;
|
|
12970
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScaleRelationComponent, "m-scale-relation", never, {
|
|
12971
|
+
"key": {
|
|
12972
|
+
"alias": "key";
|
|
12973
|
+
"required": false;
|
|
12974
|
+
"isSignal": true;
|
|
12975
|
+
};
|
|
12976
|
+
"label": {
|
|
12977
|
+
"alias": "label";
|
|
12978
|
+
"required": false;
|
|
12979
|
+
"isSignal": true;
|
|
12980
|
+
};
|
|
12981
|
+
"tone": {
|
|
12982
|
+
"alias": "tone";
|
|
12983
|
+
"required": false;
|
|
12984
|
+
"isSignal": true;
|
|
12985
|
+
};
|
|
12986
|
+
"detail": {
|
|
12987
|
+
"alias": "detail";
|
|
12988
|
+
"required": false;
|
|
12989
|
+
"isSignal": true;
|
|
12990
|
+
};
|
|
12991
|
+
"type": {
|
|
12992
|
+
"alias": "type";
|
|
12993
|
+
"required": false;
|
|
12994
|
+
"isSignal": true;
|
|
12995
|
+
};
|
|
12996
|
+
"left": {
|
|
12997
|
+
"alias": "left";
|
|
12998
|
+
"required": false;
|
|
12999
|
+
"isSignal": true;
|
|
13000
|
+
};
|
|
13001
|
+
"op": {
|
|
13002
|
+
"alias": "op";
|
|
13003
|
+
"required": false;
|
|
13004
|
+
"isSignal": true;
|
|
13005
|
+
};
|
|
13006
|
+
"right": {
|
|
13007
|
+
"alias": "right";
|
|
13008
|
+
"required": false;
|
|
13009
|
+
"isSignal": true;
|
|
13010
|
+
};
|
|
13011
|
+
"rightKind": {
|
|
13012
|
+
"alias": "rightKind";
|
|
13013
|
+
"required": false;
|
|
13014
|
+
"isSignal": true;
|
|
13015
|
+
};
|
|
13016
|
+
"rightValue": {
|
|
13017
|
+
"alias": "rightValue";
|
|
13018
|
+
"required": false;
|
|
13019
|
+
"isSignal": true;
|
|
13020
|
+
};
|
|
13021
|
+
"n": {
|
|
13022
|
+
"alias": "n";
|
|
13023
|
+
"required": false;
|
|
13024
|
+
"isSignal": true;
|
|
13025
|
+
};
|
|
13026
|
+
"mode": {
|
|
13027
|
+
"alias": "mode";
|
|
13028
|
+
"required": false;
|
|
13029
|
+
"isSignal": true;
|
|
13030
|
+
};
|
|
13031
|
+
"of": {
|
|
13032
|
+
"alias": "of";
|
|
13033
|
+
"required": false;
|
|
13034
|
+
"isSignal": true;
|
|
13035
|
+
};
|
|
13036
|
+
"hidden": {
|
|
13037
|
+
"alias": "hidden";
|
|
13038
|
+
"required": false;
|
|
13039
|
+
"isSignal": true;
|
|
13040
|
+
};
|
|
13041
|
+
"bracket": {
|
|
13042
|
+
"alias": "bracket";
|
|
13043
|
+
"required": false;
|
|
13044
|
+
"isSignal": true;
|
|
13045
|
+
};
|
|
13046
|
+
}, {}, never, never, true, never>;
|
|
13047
|
+
}
|
|
13048
|
+
interface ScaleDomainInput {
|
|
13049
|
+
/** Every value the scale draws: marks and target band ends. */
|
|
13050
|
+
values: readonly number[];
|
|
13051
|
+
/** The primary mark's value, which `maxSpanPct` is read from. */
|
|
13052
|
+
primary: number | null;
|
|
13053
|
+
/** A value further than this % from the primary is pinned to the edge. */
|
|
13054
|
+
maxSpanPct: number | null;
|
|
13055
|
+
/** Pins the axis ends; unset, they fit the values. */
|
|
13056
|
+
min: number | null;
|
|
13057
|
+
max: number | null;
|
|
13058
|
+
}
|
|
13059
|
+
interface ScaleDomain {
|
|
13060
|
+
lo: number;
|
|
13061
|
+
hi: number;
|
|
13062
|
+
/** −1 pinned to the low edge, 1 to the high edge, 0 on the axis. */
|
|
13063
|
+
pin: (v: number) => -1 | 0 | 1;
|
|
13064
|
+
/** Position along the axis, 0–100 (%), a pinned value at its edge. */
|
|
13065
|
+
pos: (v: number) => number;
|
|
13066
|
+
}
|
|
13067
|
+
/**
|
|
13068
|
+
* One linear axis fitted to the values. A value past `maxSpanPct` from the
|
|
13069
|
+
* primary is left off the fit and pinned to its edge, so one far mark cannot
|
|
13070
|
+
* squeeze the rest together; so is any value outside a pinned `min`/`max`.
|
|
13071
|
+
*/
|
|
13072
|
+
export declare const scaleDomain: ({ values, primary, maxSpanPct, min, max }: ScaleDomainInput) => ScaleDomain;
|
|
13073
|
+
/** A relation as the scale evaluates it, read off one `m-scale-relation` tag. */
|
|
13074
|
+
interface ScaleRelationDef {
|
|
13075
|
+
key: string;
|
|
13076
|
+
type: ScaleRelationType;
|
|
13077
|
+
/** compare: the left mark's key. */
|
|
13078
|
+
left: string;
|
|
13079
|
+
op: ScaleCompareOp;
|
|
13080
|
+
/** compare: the right mark's key, for `mark` and `pct`. */
|
|
13081
|
+
right: string;
|
|
13082
|
+
rightKind: ScaleOperandKind;
|
|
13083
|
+
/** The fixed value, or the % of `right`. */
|
|
13084
|
+
rightValue: number | null;
|
|
13085
|
+
/** Gap % that `within`/`beyond` read against. */
|
|
13086
|
+
n: number | null;
|
|
13087
|
+
/** combine: how `of` joins. */
|
|
13088
|
+
mode: ScaleCombineMode;
|
|
13089
|
+
/** combine: keys of the relations joined. */
|
|
13090
|
+
of: readonly string[];
|
|
13091
|
+
}
|
|
13092
|
+
interface ScaleRelationResult {
|
|
13093
|
+
holds: boolean;
|
|
13094
|
+
/** compare: the operands and their gap %, null where missing. */
|
|
13095
|
+
left: number | null;
|
|
13096
|
+
right: number | null;
|
|
13097
|
+
gap: number | null;
|
|
13098
|
+
}
|
|
13099
|
+
/** A keys list as a tag gives it: comma- or space-separated, or an array. */
|
|
13100
|
+
export declare const parseKeys: (raw: string | readonly string[] | null | undefined) => string[];
|
|
13101
|
+
/**
|
|
13102
|
+
* Every relation's reading against the marks' values, by key. A missing
|
|
13103
|
+
* operand, an unknown relation or a cycle does not hold — never an error — so
|
|
13104
|
+
* a combine over it reads it as false.
|
|
13105
|
+
*/
|
|
13106
|
+
export declare const evaluateRelations: (defs: readonly ScaleRelationDef[], values: ReadonlyMap<string, number>) => Map<string, ScaleRelationResult>;
|
|
13107
|
+
interface SpreadItem {
|
|
13108
|
+
key: string;
|
|
13109
|
+
/** Where the item sits along the axis, in px. */
|
|
13110
|
+
y: number;
|
|
13111
|
+
}
|
|
13112
|
+
/**
|
|
13113
|
+
* Pushes labels apart along one axis so no two stand closer than `gapPx`,
|
|
13114
|
+
* keeping their order, then pulls the run back inside `0…lengthPx`. Each label
|
|
13115
|
+
* moves as little as its neighbours allow.
|
|
13116
|
+
*/
|
|
13117
|
+
export declare const spreadLabels: (items: readonly SpreadItem[], gapPx: number, lengthPx: number) => SpreadItem[];
|
|
13118
|
+
/**
|
|
13119
|
+
* The PriceLadder's predefined readings written as ScaleRelations (GLOSSARY.md
|
|
13120
|
+
* Scale, ScaleRelation) over the mark keys `current`, `sma10`, `sma50`,
|
|
13121
|
+
* `sma100`, `sma200`, `low52w`, `high52w` and `forecast`.
|
|
13122
|
+
*
|
|
13123
|
+
* One list, read three times: a host draws a price Scale's relations from it,
|
|
13124
|
+
* the editor's v31 migration turns a stored ladder's `signals` into these, and
|
|
13125
|
+
* the shipped `price-scale` ControlGroup carries every one (its spec holds the
|
|
13126
|
+
* two equal). A rule's key is its old PRICE_LADDER_RULES name, so its
|
|
13127
|
+
* TranslationAsset is the chip's words as before. Angular-free, so codegen
|
|
13128
|
+
* reads it too.
|
|
13129
|
+
*/
|
|
13130
|
+
/** One relation as an `m-scale-relation` tag's inputs — and as a stored
|
|
13131
|
+
* `scale_relation` Control's `configs`. Only what it sets is present. */
|
|
13132
|
+
interface PriceRelation {
|
|
13133
|
+
key: string;
|
|
13134
|
+
label?: string;
|
|
13135
|
+
tone: ScaleTone;
|
|
13136
|
+
type: ScaleRelationType;
|
|
13137
|
+
left?: string;
|
|
13138
|
+
op?: ScaleCompareOp;
|
|
13139
|
+
rightKind?: ScaleOperandKind;
|
|
13140
|
+
right?: string;
|
|
13141
|
+
rightValue?: number;
|
|
13142
|
+
n?: number;
|
|
13143
|
+
mode?: ScaleCombineMode;
|
|
13144
|
+
of?: string[];
|
|
13145
|
+
hidden?: boolean;
|
|
13146
|
+
bracket?: boolean;
|
|
13147
|
+
}
|
|
13148
|
+
/** The nineteen readings, in PRICE_LADDER_RULES order. */
|
|
13149
|
+
export declare const PRICE_RULES: readonly PriceRelation[];
|
|
13150
|
+
/** The hidden building blocks the readings combine. */
|
|
13151
|
+
export declare const PRICE_HELPERS: readonly PriceRelation[];
|
|
13152
|
+
export declare const isPriceRule: (name: unknown) => name is string;
|
|
13153
|
+
/**
|
|
13154
|
+
* Every relation the named readings need: each one as written, then every
|
|
13155
|
+
* relation a combine among them names, transitively. A reading pulled in only
|
|
13156
|
+
* because a combine names it comes hidden — `golden-cross-near` alone shows
|
|
13157
|
+
* one chip, not a `death-cross` chip beside it, as the ladder did. Unknown
|
|
13158
|
+
* names are skipped.
|
|
13159
|
+
*/
|
|
13160
|
+
export declare const priceRelationsFor: (rules: readonly string[]) => PriceRelation[];
|
|
13161
|
+
/** Every reading and helper, each once: what `price-scale` carries. */
|
|
13162
|
+
export declare const PRICE_SCALE_RELATIONS: readonly PriceRelation[];
|
|
12680
13163
|
export declare class ImgComponent {
|
|
12681
13164
|
#private;
|
|
12682
13165
|
readonly src: import("@angular/core").InputSignal<string | null | undefined>;
|
|
@@ -13042,7 +13525,7 @@ export type DocAiPhase = 'idle' | 'asking' | 'question' | 'outline' | 'writing'
|
|
|
13042
13525
|
*/
|
|
13043
13526
|
export declare class DocEditorComponent implements ControlValueAccessor {
|
|
13044
13527
|
protected readonly groups: readonly import("@magmonium/one").DocToolbarGroup[];
|
|
13045
|
-
protected readonly icons: Record<"code" | "
|
|
13528
|
+
protected readonly icons: Record<"code" | "list" | "link" | "table" | "strike" | "bold" | "heading" | "italic" | "quote", string>;
|
|
13046
13529
|
protected readonly docActionKey: typeof docActionKey;
|
|
13047
13530
|
private readonly translate;
|
|
13048
13531
|
protected readonly value: import("@angular/core").WritableSignal<string>;
|
|
@@ -13937,7 +14420,7 @@ export declare class InstrumentScoreComponent {
|
|
|
13937
14420
|
readonly variant: import("@angular/core").InputSignal<"compact" | "detailed">;
|
|
13938
14421
|
readonly showDescription: import("@angular/core").InputSignal<boolean>;
|
|
13939
14422
|
readonly label: import("@angular/core").InputSignal<string>;
|
|
13940
|
-
readonly status: import("@angular/core").Signal<"
|
|
14423
|
+
readonly status: import("@angular/core").Signal<"no-data" | "exceptional" | "strong" | "average" | "weak">;
|
|
13941
14424
|
readonly hex: import("@angular/core").Signal<"#94a3b8" | "#10b981" | "#3b82f6" | "#f59e0b" | "#ef4444">;
|
|
13942
14425
|
readonly description: import("@angular/core").Signal<"insufficient-data-to-provide-analysis" | "this-company-shows-exceptional-fundamentals-and-momentum" | "solid-performance-with-good-growth-potential" | "fair-valuation-but-requires-careful-monitoring" | "higher-risk-profile-with-weakening-metrics">;
|
|
13943
14426
|
static ɵfac: i0.ɵɵFactoryDeclaration<InstrumentScoreComponent, never>;
|
|
@@ -14636,6 +15119,12 @@ export type PanelTrigger<T> = ModalTrigger<T> & {
|
|
|
14636
15119
|
dock?: true;
|
|
14637
15120
|
/** Set by ModalStore: id of the panel this one displaced. Presence means docked. */
|
|
14638
15121
|
dockedOver?: string;
|
|
15122
|
+
/**
|
|
15123
|
+
* What the panel holds, compared by identity: a non-dock open whose body is
|
|
15124
|
+
* already open closes that older panel first (GLOSSARY.md SidePanel).
|
|
15125
|
+
* `component` cannot say it — every overlay body is the same wrapper.
|
|
15126
|
+
*/
|
|
15127
|
+
body?: string | OverlayWidgetLoader;
|
|
14639
15128
|
};
|
|
14640
15129
|
/**
|
|
14641
15130
|
* Overlay asset shape for `mModal` — body named by `component`/`form`, not a
|
|
@@ -14677,6 +15166,12 @@ export type PanelOverlayConfig = Config & {
|
|
|
14677
15166
|
export type ScreenOverlayTrigger = {
|
|
14678
15167
|
as: 'modal' | 'side_panel';
|
|
14679
15168
|
widget: OverlayWidgetLoader;
|
|
15169
|
+
/**
|
|
15170
|
+
* The Screen's name — how a SidePanel already holding it is known as the
|
|
15171
|
+
* same body. A loader written at the call site is a new function every call,
|
|
15172
|
+
* so `widget` alone never matches; absent, it is compared anyway.
|
|
15173
|
+
*/
|
|
15174
|
+
screen?: string;
|
|
14680
15175
|
inputs?: Record<string, unknown>;
|
|
14681
15176
|
/**
|
|
14682
15177
|
* ScreenOutput name -> what the opener runs when the body emits it (ADR
|
|
@@ -15056,8 +15551,8 @@ export declare class ConfirmComponent {
|
|
|
15056
15551
|
cancelLabel: import("@angular/core").InputSignal<string>;
|
|
15057
15552
|
protected readonly confirmText: import("@angular/core").Signal<string>;
|
|
15058
15553
|
protected readonly cancelText: import("@angular/core").Signal<string>;
|
|
15059
|
-
protected readonly accent: import("@angular/core").Signal<"
|
|
15060
|
-
protected readonly iconName: import("@angular/core").Signal<"
|
|
15554
|
+
protected readonly accent: import("@angular/core").Signal<"warning" | "success" | "error" | "mm">;
|
|
15555
|
+
protected readonly iconName: import("@angular/core").Signal<"info" | "exclamation-triangle" | "trash" | "check-circle">;
|
|
15061
15556
|
protected accept(): void;
|
|
15062
15557
|
protected decline(): void;
|
|
15063
15558
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmComponent, never>;
|
|
@@ -18840,4 +19335,4 @@ export declare const toggleUid: (audience: Audience, uid: string) => Audience;
|
|
|
18840
19335
|
export declare const toggleGroup: (audience: Audience, groupId: string) => Audience;
|
|
18841
19336
|
/** How many Users and Groups an Audience names. */
|
|
18842
19337
|
export declare const pickCount: (audience: Audience) => number;
|
|
18843
|
-
export type { Accordion, AccordionGroup, AccordionVariant, AppCardData, AppCardInputs, AppCardVariant, AppLogoTone, AppLogoVariant, AppManifest, AppTileData, AssetOption, Audience, AudienceLevel, AudienceMember, AudiencePicker, AuthResult, Badge, BadgeCount, BadgePosition, BadgeVariant, Button, ButtonGroup, CellChangeEvent, CellClickEvent, ColBreakpoint, ColSpan, ColorPallet, ColumnDef, Comment, CommentItem, Config, ContextMenu, ContextMenuEvent, Cursor, CustomIcon, DragListReorder, Draggable, DraggableState, FileUploadConfig, FileUploadEvent, FilterGroupContext, FilterGroupMember, FilterOption, FilterPanel, FilterPanelIo, FilterRangeMode, FilterSelectionMap, FilterValue, FilterVariant, FilteredTreeGrid, FlatTreeGridRow, FlexAlign, FlexAlignSelf, FlexConfig, FlexDirection, FlexItemConfig, FlexJustify, FlexVariant, GridAlignX, GridAlignY, GroupActionEvent, GroupDropEvent, GroupKind, GroupMenuEvent, Header, HeaderLevel, HeatSwatchRadius, Icon, KeyValueVariant, LabelSegment, LadderLevel, LadderLevels, LadderSignal, ListConfig, ListContext, ListItem, ListOrientation, ListVariant, MenuItem, MoneySystem, NavCountConfig, NavInstanceConfig, NavMenuConfig, NavRowsConfig, NavVisibilityConfig, NavVisibleAnswer, NavWidgetConfig, NavWidgetEntry, NavWidgetMap, OverlayWidgetLoader, OverlayWidgetMap, PageChangeEvent, Pagination, PaginationWindow, PriceLadderMarkKind, PriceLadderRule, PriceLadderTone, PriceLadderVariant, ResolvedUserTab, RowDropEvent, ScoreBand, ScoreSetVariant, SearchChangeEvent, SectionAccordion, SectionAccordionGroup, SectionAccordionGroupContext, SectionAccordionRef, SectionButtonGroupConfig, SectionChartCategories, SectionChartConfig, SectionChartMark, SectionChartPanel, SectionChartPoints, SectionChartScale, SectionChartWindow, SectionFilterGroupConfig, SectionHero, SectionHeroVariant, SectionTableAlign, SectionTableColumn, SectionTableConfig, SectionTableDataType, SectionTableSort, SectionTableVariant, SectionToggleItem, SectionToggleItemContext, SelectionAction, SelectionActionEvent, SelectionChangeEvent, SelectorConfig, SharingClient, SharingGroup, SocketMessage, Sort, SortChange, SortChangeEvent, SortOption, SortOrder, SourceAudience, SpacingInward, SqueezeMode, StatAlign, StatCornerEdge, StatCornerPosition, StatCornerSide, StatSurface, StatVariant, TabGroup, TableConfig, TableFilterCondition, TableFilterDef, TableGroup, TextOrNumberInput, Timeline, TimelineItem, TreeGridCellClickEvent, TreeGridLoadChildrenEvent, TreeGridRow, TreeGridRowSelectEvent, TreeGridToggleEvent, User };
|
|
19338
|
+
export type { Accordion, AccordionGroup, AccordionVariant, AppCardData, AppCardInputs, AppCardVariant, AppLogoTone, AppLogoVariant, AppManifest, AppTileData, AssetOption, Audience, AudienceLevel, AudienceMember, AudiencePicker, AuthResult, Badge, BadgeCount, BadgePosition, BadgeVariant, Button, ButtonGroup, CellChangeEvent, CellClickEvent, ColBreakpoint, ColSpan, ColorPallet, ColumnDef, Comment, CommentItem, Config, ContextMenu, ContextMenuEvent, Cursor, CustomIcon, DragListReorder, Draggable, DraggableState, FileUploadConfig, FileUploadEvent, FilterGroupContext, FilterGroupMember, FilterOption, FilterPanel, FilterPanelIo, FilterRangeMode, FilterSelectionMap, FilterValue, FilterVariant, FilteredTreeGrid, FlatTreeGridRow, FlexAlign, FlexAlignSelf, FlexConfig, FlexDirection, FlexItemConfig, FlexJustify, FlexVariant, GridAlignX, GridAlignY, GroupActionEvent, GroupDropEvent, GroupKind, GroupMenuEvent, Header, HeaderLevel, HeatSwatchRadius, Icon, KeyValueVariant, LabelSegment, LadderLevel, LadderLevels, LadderSignal, ListConfig, ListContext, ListItem, ListOrientation, ListVariant, MenuItem, MoneySystem, NavCountConfig, NavInstanceConfig, NavMenuConfig, NavRowsConfig, NavVisibilityConfig, NavVisibleAnswer, NavWidgetConfig, NavWidgetEntry, NavWidgetMap, OverlayWidgetLoader, OverlayWidgetMap, PageChangeEvent, Pagination, PaginationWindow, PriceLadderMarkKind, PriceLadderRule, PriceLadderTone, PriceLadderVariant, PriceRelation, ResolvedUserTab, RowDropEvent, ScaleBreakpoint, ScaleCombineMode, ScaleCompareOp, ScaleDomain, ScaleDomainInput, ScaleFormat, ScaleMarkKind, ScaleOperandKind, ScaleOrientation, ScaleRelationDef, ScaleRelationResult, ScaleRelationType, ScaleTone, ScoreBand, ScoreSetVariant, SearchChangeEvent, SectionAccordion, SectionAccordionGroup, SectionAccordionGroupContext, SectionAccordionRef, SectionButtonGroupConfig, SectionChartCategories, SectionChartConfig, SectionChartMark, SectionChartPanel, SectionChartPoints, SectionChartScale, SectionChartWindow, SectionFilterGroupConfig, SectionHero, SectionHeroVariant, SectionTableAlign, SectionTableColumn, SectionTableConfig, SectionTableDataType, SectionTableSort, SectionTableVariant, SectionToggleItem, SectionToggleItemContext, SelectionAction, SelectionActionEvent, SelectionChangeEvent, SelectorConfig, SharingClient, SharingGroup, SocketMessage, Sort, SortChange, SortChangeEvent, SortOption, SortOrder, SourceAudience, SpacingInward, SpreadItem, SqueezeMode, StatAlign, StatCornerEdge, StatCornerPosition, StatCornerSide, StatSurface, StatVariant, TabGroup, TableConfig, TableFilterCondition, TableFilterDef, TableGroup, TextOrNumberInput, Timeline, TimelineItem, TreeGridCellClickEvent, TreeGridLoadChildrenEvent, TreeGridRow, TreeGridRowSelectEvent, TreeGridToggleEvent, User };
|