@magmonium/one 0.4.34 → 0.4.36
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/buttons/audience_done.json +4 -0
- package/assets/i18n/af.json +3 -0
- package/assets/i18n/am.json +3 -0
- package/assets/i18n/ar.json +17 -0
- package/assets/i18n/as.json +3 -0
- package/assets/i18n/az.json +3 -0
- package/assets/i18n/ba.json +3 -0
- package/assets/i18n/be.json +3 -0
- package/assets/i18n/bg.json +3 -0
- package/assets/i18n/bn.json +3 -0
- package/assets/i18n/br.json +3 -0
- package/assets/i18n/bs.json +3 -0
- package/assets/i18n/ca.json +3 -0
- package/assets/i18n/ceb.json +3 -0
- package/assets/i18n/cnr.json +3 -0
- package/assets/i18n/co.json +3 -0
- package/assets/i18n/cs.json +3 -0
- package/assets/i18n/cy.json +3 -0
- package/assets/i18n/da.json +3 -0
- package/assets/i18n/de.json +17 -0
- package/assets/i18n/doi.json +3 -0
- package/assets/i18n/el.json +3 -0
- package/assets/i18n/en.json +17 -0
- package/assets/i18n/eo.json +3 -0
- package/assets/i18n/es.json +17 -0
- package/assets/i18n/et.json +2 -0
- package/assets/i18n/eu.json +3 -0
- package/assets/i18n/fa.json +3 -0
- package/assets/i18n/fi.json +3 -0
- package/assets/i18n/fr.json +17 -0
- package/assets/i18n/fy.json +3 -0
- package/assets/i18n/ga.json +3 -0
- package/assets/i18n/gd.json +3 -0
- package/assets/i18n/gl.json +3 -0
- package/assets/i18n/gu.json +3 -0
- package/assets/i18n/ha.json +3 -0
- package/assets/i18n/haw.json +3 -0
- package/assets/i18n/he.json +3 -0
- package/assets/i18n/hi.json +17 -0
- package/assets/i18n/hmn.json +3 -0
- package/assets/i18n/hr.json +3 -0
- package/assets/i18n/hu.json +3 -0
- package/assets/i18n/hy.json +3 -0
- package/assets/i18n/id.json +3 -0
- package/assets/i18n/ig.json +3 -0
- package/assets/i18n/ilo.json +3 -0
- package/assets/i18n/is.json +3 -0
- package/assets/i18n/it.json +17 -0
- package/assets/i18n/iw.json +3 -0
- package/assets/i18n/ja.json +17 -0
- package/assets/i18n/jw.json +3 -0
- package/assets/i18n/ka.json +3 -0
- package/assets/i18n/kk.json +3 -0
- package/assets/i18n/km.json +3 -0
- package/assets/i18n/kn.json +3 -0
- package/assets/i18n/ko.json +17 -0
- package/assets/i18n/kok.json +3 -0
- package/assets/i18n/ku.json +3 -0
- package/assets/i18n/ky.json +3 -0
- package/assets/i18n/la.json +3 -0
- package/assets/i18n/lb.json +3 -0
- package/assets/i18n/lo.json +3 -0
- package/assets/i18n/lt.json +3 -0
- package/assets/i18n/lv.json +3 -0
- package/assets/i18n/mai.json +3 -0
- package/assets/i18n/mg.json +3 -0
- package/assets/i18n/mi.json +3 -0
- package/assets/i18n/mk.json +3 -0
- package/assets/i18n/ml.json +3 -0
- package/assets/i18n/mn.json +3 -0
- package/assets/i18n/mr.json +3 -0
- package/assets/i18n/ms.json +3 -0
- package/assets/i18n/mt.json +3 -0
- package/assets/i18n/my.json +3 -0
- package/assets/i18n/ne.json +3 -0
- package/assets/i18n/nl.json +17 -0
- package/assets/i18n/no.json +3 -0
- package/assets/i18n/ny.json +3 -0
- package/assets/i18n/or.json +3 -0
- package/assets/i18n/pa.json +3 -0
- package/assets/i18n/pl.json +17 -0
- package/assets/i18n/ps.json +3 -0
- package/assets/i18n/pt.json +17 -0
- package/assets/i18n/ro.json +3 -0
- package/assets/i18n/ru.json +17 -0
- package/assets/i18n/sa.json +3 -0
- package/assets/i18n/sat.json +3 -0
- package/assets/i18n/sd.json +3 -0
- package/assets/i18n/si.json +3 -0
- package/assets/i18n/sk.json +3 -0
- package/assets/i18n/sl.json +3 -0
- package/assets/i18n/sm.json +3 -0
- package/assets/i18n/sn.json +3 -0
- package/assets/i18n/so.json +3 -0
- package/assets/i18n/sq.json +3 -0
- package/assets/i18n/sr.json +3 -0
- package/assets/i18n/st.json +3 -0
- package/assets/i18n/su.json +3 -0
- package/assets/i18n/sv.json +3 -0
- package/assets/i18n/sw.json +3 -0
- package/assets/i18n/ta.json +3 -0
- package/assets/i18n/te.json +3 -0
- package/assets/i18n/tg.json +3 -0
- package/assets/i18n/th.json +3 -0
- package/assets/i18n/tl.json +3 -0
- package/assets/i18n/tr.json +17 -0
- package/assets/i18n/uk.json +3 -0
- package/assets/i18n/ur.json +3 -0
- package/assets/i18n/uz.json +3 -0
- package/assets/i18n/vi.json +3 -0
- package/assets/i18n/xh.json +3 -0
- package/assets/i18n/yi.json +3 -0
- package/assets/i18n/yo.json +3 -0
- package/assets/i18n/zh.json +17 -0
- package/assets/i18n/zu.json +3 -0
- package/assets/index.json +1 -1
- package/fesm2022/{magmonium-one-attribute-value-DMI0yJpL.mjs → magmonium-one-attribute-value-DCTXt4Sr.mjs} +3 -3
- package/fesm2022/{magmonium-one-attribute-value-DMI0yJpL.mjs.map → magmonium-one-attribute-value-DCTXt4Sr.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-checkbox-C9dvZ2IH.mjs → magmonium-one-base-checkbox-BNQAkyYU.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-checkbox-C9dvZ2IH.mjs.map → magmonium-one-base-checkbox-BNQAkyYU.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-dropdown-U-cWl3p9.mjs → magmonium-one-base-dropdown-DU4B4w7c.mjs} +10 -10
- package/fesm2022/{magmonium-one-base-dropdown-U-cWl3p9.mjs.map → magmonium-one-base-dropdown-DU4B4w7c.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-input-CLBOTOUs.mjs → magmonium-one-base-input-BTxhUtYO.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-input-CLBOTOUs.mjs.map → magmonium-one-base-input-BTxhUtYO.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-text-Zb0oLNRX.mjs → magmonium-one-base-text-BCSqKmVs.mjs} +28 -4
- package/fesm2022/magmonium-one-base-text-BCSqKmVs.mjs.map +1 -0
- package/fesm2022/{magmonium-one-button-Bwzaxxn3.mjs → magmonium-one-button-BWB3ZKIj.mjs} +7 -7
- package/fesm2022/{magmonium-one-button-Bwzaxxn3.mjs.map → magmonium-one-button-BWB3ZKIj.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-checkbox-CPQ9m291.mjs → magmonium-one-checkbox-D5-5WhJ-.mjs} +5 -5
- package/fesm2022/{magmonium-one-checkbox-CPQ9m291.mjs.map → magmonium-one-checkbox-D5-5WhJ-.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-color-utl-CAbZLKB5.mjs → magmonium-one-color-utl-D86GGpz5.mjs} +2 -2
- package/fesm2022/{magmonium-one-color-utl-CAbZLKB5.mjs.map → magmonium-one-color-utl-D86GGpz5.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-directives-BVKX77zM.mjs → magmonium-one-directives-DePukAj8.mjs} +4 -4
- package/fesm2022/{magmonium-one-directives-BVKX77zM.mjs.map → magmonium-one-directives-DePukAj8.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-group-D4yYrVP3.mjs → magmonium-one-group-m41SX_fL.mjs} +7 -7
- package/fesm2022/{magmonium-one-group-D4yYrVP3.mjs.map → magmonium-one-group-m41SX_fL.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-header-DmN8M1a3.mjs → magmonium-one-header-D8CB9CBJ.mjs} +4 -4
- package/fesm2022/{magmonium-one-header-DmN8M1a3.mjs.map → magmonium-one-header-D8CB9CBJ.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-icon-Ep14YeRY.mjs → magmonium-one-icon-BTPHGpEN.mjs} +4 -4
- package/fesm2022/{magmonium-one-icon-Ep14YeRY.mjs.map → magmonium-one-icon-BTPHGpEN.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-image-editor-BX4eNd4u.mjs → magmonium-one-image-editor-Dn0ACfH0.mjs} +4 -4
- package/fesm2022/{magmonium-one-image-editor-BX4eNd4u.mjs.map → magmonium-one-image-editor-Dn0ACfH0.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-label-D2gjTbKX.mjs → magmonium-one-label-DjvJthAB.mjs} +2 -2
- package/fesm2022/{magmonium-one-label-D2gjTbKX.mjs.map → magmonium-one-label-DjvJthAB.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-m-ref-Bq0gQbKE.mjs → magmonium-one-m-ref-C8c4Vf1G.mjs} +2 -2
- package/fesm2022/magmonium-one-m-ref-C8c4Vf1G.mjs.map +1 -0
- package/fesm2022/{magmonium-one-menu-BM9f2knw.mjs → magmonium-one-menu-EIfPlZ4E.mjs} +6 -6
- package/fesm2022/magmonium-one-menu-EIfPlZ4E.mjs.map +1 -0
- package/fesm2022/{magmonium-one-multi-range-a3ZVTy7i.mjs → magmonium-one-multi-range-o57TiVJU.mjs} +3 -3
- package/fesm2022/{magmonium-one-multi-range-a3ZVTy7i.mjs.map → magmonium-one-multi-range-o57TiVJU.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-options-asset-CDEXIif6.mjs → magmonium-one-options-asset-EVsv0DL7.mjs} +2 -2
- package/fesm2022/magmonium-one-options-asset-EVsv0DL7.mjs.map +1 -0
- package/fesm2022/{magmonium-one-otp-DO4oTeSK.mjs → magmonium-one-otp-CE4L1RcG.mjs} +5 -5
- package/fesm2022/{magmonium-one-otp-DO4oTeSK.mjs.map → magmonium-one-otp-CE4L1RcG.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-D3oTo41c.mjs → magmonium-one-password-BjqYmT1s.mjs} +6 -6
- package/fesm2022/{magmonium-one-password-D3oTo41c.mjs.map → magmonium-one-password-BjqYmT1s.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-radio-CkaWESS3.mjs → magmonium-one-radio-C2wOB_Nb.mjs} +3 -3
- package/fesm2022/{magmonium-one-radio-CkaWESS3.mjs.map → magmonium-one-radio-C2wOB_Nb.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-range-D_WEKrli.mjs → magmonium-one-range-rgDe4O8u.mjs} +4 -4
- package/fesm2022/{magmonium-one-range-D_WEKrli.mjs.map → magmonium-one-range-rgDe4O8u.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-selector-BowevmOd.mjs → magmonium-one-selector-DeRIUUBA.mjs} +4 -4
- package/fesm2022/{magmonium-one-selector-BowevmOd.mjs.map → magmonium-one-selector-DeRIUUBA.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-size-converter-BfT0Aw0g.mjs → magmonium-one-size-converter-C5fG_dgw.mjs} +4 -2
- package/fesm2022/magmonium-one-size-converter-C5fG_dgw.mjs.map +1 -0
- package/fesm2022/{magmonium-one-text-B4xKn-EQ.mjs → magmonium-one-text-BL-1lWST.mjs} +6 -6
- package/fesm2022/{magmonium-one-text-B4xKn-EQ.mjs.map → magmonium-one-text-BL-1lWST.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-text-output-CfVeqYM7.mjs → magmonium-one-text-output-Ci93Hi9Y.mjs} +4 -4
- package/fesm2022/{magmonium-one-text-output-CfVeqYM7.mjs.map → magmonium-one-text-output-Ci93Hi9Y.mjs.map} +1 -1
- package/fesm2022/magmonium-one-theme-CT4cWpe7.mjs +1 -0
- package/fesm2022/{magmonium-one-toggle-D2XEbN-b.mjs → magmonium-one-toggle-BTK2lzqA.mjs} +3 -3
- package/fesm2022/{magmonium-one-toggle-D2XEbN-b.mjs.map → magmonium-one-toggle-BTK2lzqA.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +756 -113
- package/fesm2022/magmonium-one.mjs.map +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +368 -60
- package/assets/i18n/(Note.json +0 -3
- package/fesm2022/magmonium-one-base-text-Zb0oLNRX.mjs.map +0 -1
- package/fesm2022/magmonium-one-m-ref-Bq0gQbKE.mjs.map +0 -1
- package/fesm2022/magmonium-one-menu-BM9f2knw.mjs.map +0 -1
- package/fesm2022/magmonium-one-options-asset-CDEXIif6.mjs.map +0 -1
- package/fesm2022/magmonium-one-size-converter-BfT0Aw0g.mjs.map +0 -1
- package/fesm2022/magmonium-one-theme-Xgsx8bJs.mjs +0 -1
package/types/magmonium-one.d.ts
CHANGED
|
@@ -3,13 +3,13 @@ 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, Route, Router, RouterStateSnapshot, Routes, UrlMatcher, UrlSerializer, UrlTree } from "@angular/router";
|
|
6
|
+
import { ActivatedRouteSnapshot, CanActivateFn, Params, Route, Router, 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";
|
|
10
10
|
/**
|
|
11
11
|
* The three scale steps the design system renders, and the only ones — see
|
|
12
|
-
*
|
|
12
|
+
* GLOSSARY.md `Size` and ADR 0008. Declarable on a Section or a ButtonGroup and
|
|
13
13
|
* nowhere else (a SectionButtonGroup shares the latter seat, being its
|
|
14
14
|
* markup-composed variant); everything below one renders at its Size.
|
|
15
15
|
*/
|
|
@@ -120,7 +120,7 @@ export declare class TranslateService {
|
|
|
120
120
|
private readonly country;
|
|
121
121
|
readonly remoteAppId: import("@angular/core").WritableSignal<string | undefined>;
|
|
122
122
|
/**
|
|
123
|
-
* The mounted App's Default Language (store
|
|
123
|
+
* The mounted App's Default Language (store GLOSSARY.md): its keys load from
|
|
124
124
|
* this file when the App ships none for `lang` — library keys still follow
|
|
125
125
|
* `lang`.
|
|
126
126
|
*/
|
|
@@ -219,7 +219,7 @@ export declare class TranslateService {
|
|
|
219
219
|
export type HeldShelf = 'local' | 'session';
|
|
220
220
|
export declare class StorageService {
|
|
221
221
|
/**
|
|
222
|
-
* Write a HeldValue (
|
|
222
|
+
* Write a HeldValue (GLOSSARY.md HeldValue, ADR 0019). Always a JSON envelope,
|
|
223
223
|
* so a `string` holding `'3'` reads back a `string` and not the `3` that
|
|
224
224
|
* `getLocal` answers; `undefined` deletes the key rather than storing the
|
|
225
225
|
* word; and falsiness is never a reason to skip the write, so a `false`, a
|
|
@@ -256,7 +256,7 @@ export declare class DeviceService {
|
|
|
256
256
|
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
257
257
|
}
|
|
258
258
|
/**
|
|
259
|
-
* The language and country the visitor's browser declares (
|
|
259
|
+
* The language and country the visitor's browser declares (GLOSSARY.md
|
|
260
260
|
* Browser Locale). A hint that pre-fills and breaks ties, never an authority —
|
|
261
261
|
* callers clamp `language` to their own list, and `country` is null rather
|
|
262
262
|
* than guessed from the language (`en` is not `US`).
|
|
@@ -554,7 +554,7 @@ type SectionTableSortDirection = 'asc' | 'desc';
|
|
|
554
554
|
type SectionTableVariant = 'default' | 'zebra' | 'compact' | 'spacious' | 'border';
|
|
555
555
|
export declare const SECTION_TABLE_VARIANTS: readonly SectionTableVariant[];
|
|
556
556
|
/**
|
|
557
|
-
* One entry in a SectionTable's configured heading (
|
|
557
|
+
* One entry in a SectionTable's configured heading (GLOSSARY.md
|
|
558
558
|
* SectionTableColumn). The cells beneath it line up by position, so nothing
|
|
559
559
|
* here says how a cell renders — a cell renders what was put in it.
|
|
560
560
|
*/
|
|
@@ -573,7 +573,7 @@ type SectionTableColumn = {
|
|
|
573
573
|
dataType?: SectionTableDataType;
|
|
574
574
|
/** Freezes this column and every column before it to the left edge. */
|
|
575
575
|
freeze?: boolean;
|
|
576
|
-
/** Starts folded, with a toggle in its heading (
|
|
576
|
+
/** Starts folded, with a toggle in its heading (GLOSSARY.md Squeeze). */
|
|
577
577
|
squeeze?: boolean;
|
|
578
578
|
};
|
|
579
579
|
type SectionTableSort = {
|
|
@@ -750,6 +750,8 @@ export interface RemoteSelectorConfig {
|
|
|
750
750
|
export interface WebComponentConfig {
|
|
751
751
|
selector?: string;
|
|
752
752
|
app: string;
|
|
753
|
+
/** What the app is called, from Store's App — `app` is its link. */
|
|
754
|
+
name?: string;
|
|
753
755
|
version: string;
|
|
754
756
|
company?: string;
|
|
755
757
|
timestamp?: string;
|
|
@@ -761,7 +763,7 @@ export interface WebComponentConfig {
|
|
|
761
763
|
selectorConfig?: Partial<RemoteSelectorConfig>;
|
|
762
764
|
backend?: string;
|
|
763
765
|
/**
|
|
764
|
-
* Open App (store
|
|
766
|
+
* Open App (store GLOSSARY.md), stamped by the Store on the served config: a
|
|
765
767
|
* host draws it as its own — no menu node, logo or settings of its own.
|
|
766
768
|
*/
|
|
767
769
|
open?: boolean;
|
|
@@ -782,6 +784,12 @@ export interface RemoteMount {
|
|
|
782
784
|
out?: (remotePath: string, link: string) => string;
|
|
783
785
|
/** Listed in the host menu while its segment is in the URL (ADR 0038). */
|
|
784
786
|
createMenu?: boolean;
|
|
787
|
+
/**
|
|
788
|
+
* Keeps an Open App's own menu: the host gave it a route of its own (m-ui's
|
|
789
|
+
* Store App at `/store`), so its root stays a Nav with its own rows rather
|
|
790
|
+
* than turning transparent and splicing them into the host's.
|
|
791
|
+
*/
|
|
792
|
+
ownMenu?: boolean;
|
|
785
793
|
/**
|
|
786
794
|
* Moves the remote to one of its own paths — a menu click on its Nav.
|
|
787
795
|
* `replaceUrl` is how the host URL takes the move once the remote reports it.
|
|
@@ -811,7 +819,7 @@ export interface NavStoreRef {
|
|
|
811
819
|
panelNavId?: Signal<string | undefined>;
|
|
812
820
|
/**
|
|
813
821
|
* `panelNavId` with any Browse left out — where the User stands rather than
|
|
814
|
-
* where they are looking (
|
|
822
|
+
* where they are looking (GLOSSARY.md Browse). What a row marks itself
|
|
815
823
|
* against, so the row they came through stays marked while they Browse.
|
|
816
824
|
* Optional: a host built before it existed provides none.
|
|
817
825
|
*/
|
|
@@ -840,14 +848,14 @@ export interface NavStoreRef {
|
|
|
840
848
|
}) => void;
|
|
841
849
|
/**
|
|
842
850
|
* Moves the open panel onto a Nav without moving the User — the Address and
|
|
843
|
-
* the Page stay put (
|
|
851
|
+
* the Page stay put (GLOSSARY.md Browse). `params` names the instance of a
|
|
844
852
|
* `dynamic` Nav. Optional: a host built before it existed provides none.
|
|
845
853
|
*/
|
|
846
854
|
browse?: (navId: string, params?: Record<string, string | number>) => void;
|
|
847
855
|
/**
|
|
848
856
|
* Follows a NavRef whose dynamic segments are keyed by the Nav contributing
|
|
849
857
|
* each one rather than by parameter name — what an emitted OutcomeNav calls
|
|
850
|
-
* (m-one-ui
|
|
858
|
+
* (m-one-ui GLOSSARY.md OutcomeNav). Optional: a host built before it existed
|
|
851
859
|
* provides none, and the gesture then does nothing rather than throwing.
|
|
852
860
|
*/
|
|
853
861
|
followNav?: (navId: string, byNav?: Record<string, string | number>, options?: {
|
|
@@ -1043,7 +1051,7 @@ export declare const APP_LINK: InjectionToken<WritableSignal<string | undefined>
|
|
|
1043
1051
|
/**
|
|
1044
1052
|
* The loading counter this application's requests move, ahead of the host's
|
|
1045
1053
|
* shared one. A Plugin provides its own so its requests never turn the host's
|
|
1046
|
-
* `busy` on (libs/one
|
|
1054
|
+
* `busy` on (libs/one GLOSSARY.md Plugin); unset, the host's counter is used.
|
|
1047
1055
|
*/
|
|
1048
1056
|
export declare const LOADING_ACTIONS_REF: InjectionToken<LoadingActionsApi>;
|
|
1049
1057
|
export declare const IS_SIDE_PANEL: InjectionToken<boolean>;
|
|
@@ -1176,8 +1184,10 @@ export declare const AssetStore: import("@angular/core").Type<{
|
|
|
1176
1184
|
isCachingDisabled: import("@angular/core").Signal<boolean>;
|
|
1177
1185
|
appLink: import("@angular/core").Signal<string | undefined>;
|
|
1178
1186
|
hostBase: import("@angular/core").Signal<string | undefined>;
|
|
1187
|
+
hosted: import("@angular/core").Signal<boolean>;
|
|
1179
1188
|
setAppLink: (appLink: string) => void;
|
|
1180
1189
|
setHostBase: (hostBase: string) => void;
|
|
1190
|
+
setHosted: () => void;
|
|
1181
1191
|
setCachingDisabled: (isDisabled: boolean) => void;
|
|
1182
1192
|
resolve: <T>(type: string, name: string, isOne?: boolean, remoteBaseUrl?: string) => Observable<T>;
|
|
1183
1193
|
} & import("@ngrx/signals").StateSource<{
|
|
@@ -1185,6 +1195,7 @@ export declare const AssetStore: import("@angular/core").Type<{
|
|
|
1185
1195
|
isCachingDisabled: boolean;
|
|
1186
1196
|
appLink: string | undefined;
|
|
1187
1197
|
hostBase: string | undefined;
|
|
1198
|
+
hosted: boolean;
|
|
1188
1199
|
}>>;
|
|
1189
1200
|
/**
|
|
1190
1201
|
* Resolves a config asset by name via `AssetStore`, outside any component
|
|
@@ -1211,6 +1222,27 @@ export declare function derivePropertyName(inputString: string, type: ColorPrope
|
|
|
1211
1222
|
export declare function setProperty(element: HTMLElement, key: string, value: string | null): void;
|
|
1212
1223
|
export declare function getProperty(element: HTMLElement, key: string): string;
|
|
1213
1224
|
export declare function classListSignal(element: Element): Signal<string[]>;
|
|
1225
|
+
/**
|
|
1226
|
+
* Which element in `node`'s own root holds the caret — the document for a node
|
|
1227
|
+
* in the light DOM, the nearest shadow root for a node inside one — or null when
|
|
1228
|
+
* nothing there does.
|
|
1229
|
+
*
|
|
1230
|
+
* `document.activeElement` is the wrong question for anything that may be
|
|
1231
|
+
* mounted in a shadow root, and every Screen of an app loaded under m-ui is: the
|
|
1232
|
+
* Web Component wrapper gives the app's root `ViewEncapsulation.ShadowDom`, so
|
|
1233
|
+
* the app renders in one. Asked from inside, the document answers with the
|
|
1234
|
+
* shadow **host** — an ancestor of whoever is asking — and `contains` does not
|
|
1235
|
+
* walk across the boundary, so `node.contains(document.activeElement)` reads
|
|
1236
|
+
* false however well `node` holds the focus. The Section's search bar, asking
|
|
1237
|
+
* the document whether its own freshly-focused input still holds the caret,
|
|
1238
|
+
* therefore closes itself on the very click that opened it: the toggle is
|
|
1239
|
+
* destroyed, the input mounts, the deferred check sees the host instead of the
|
|
1240
|
+
* input, and `close` is called.
|
|
1241
|
+
*
|
|
1242
|
+
* Null is the honest answer for "no caret has been placed here", which is what
|
|
1243
|
+
* a caller guarding against stealing one is asking.
|
|
1244
|
+
*/
|
|
1245
|
+
export declare function activeElementWithin(node: Node): Element | null;
|
|
1214
1246
|
export declare function getScrollParent(node: Node | null): HTMLElement | Window;
|
|
1215
1247
|
export declare function isJson(data: unknown): boolean;
|
|
1216
1248
|
export declare function getValue<T, K extends keyof T>(obj: T, key: K): T[K];
|
|
@@ -1370,7 +1402,7 @@ export declare const pickSupportedLanguage: (own: string | undefined, supported:
|
|
|
1370
1402
|
/**
|
|
1371
1403
|
* One loading counter and the actions that move it. The module's own is the
|
|
1372
1404
|
* app-wide one every Screen's `busy` reads; a Plugin makes another so its
|
|
1373
|
-
* requests never move it (libs/one
|
|
1405
|
+
* requests never move it (libs/one GLOSSARY.md Plugin).
|
|
1374
1406
|
*/
|
|
1375
1407
|
export declare function createLoadingState(): {
|
|
1376
1408
|
isLoading: import("@angular/core").Signal<boolean>;
|
|
@@ -1699,7 +1731,7 @@ export declare class MHeroColorDirective {
|
|
|
1699
1731
|
/**
|
|
1700
1732
|
* NavRef link. `mRef` names a target by NavId and nothing else — the NavKind on
|
|
1701
1733
|
* that node decides whether following it routes or opens a panel, so this
|
|
1702
|
-
* directive never chooses. See libs/one/
|
|
1734
|
+
* directive never chooses. See libs/one/GLOSSARY.md (NavRef) and ADR 0014.
|
|
1703
1735
|
*/
|
|
1704
1736
|
export declare class MRefDirective {
|
|
1705
1737
|
#private;
|
|
@@ -1927,7 +1959,16 @@ export declare abstract class BaseRootWebComponent extends BaseWebComponent {
|
|
|
1927
1959
|
private readonly agreementGate;
|
|
1928
1960
|
/** The User's Relation Language for this App, once its Relation is read. */
|
|
1929
1961
|
private readonly relationLanguage;
|
|
1962
|
+
/** The AppLink this element was bound to, once its input or base href named one. */
|
|
1963
|
+
private appId?;
|
|
1930
1964
|
constructor();
|
|
1965
|
+
/**
|
|
1966
|
+
* Where this app's Router stands, on this element and bubbling: the m-remote
|
|
1967
|
+
* that mounted it listens there (ADR 0038), anything above still hears it.
|
|
1968
|
+
* The Nav rides along — the host routes only down to the mount, and its menu
|
|
1969
|
+
* stands on this app's Nav only if the app says which.
|
|
1970
|
+
*/
|
|
1971
|
+
private report;
|
|
1931
1972
|
private registerCustomElements;
|
|
1932
1973
|
private registerUserTabElements;
|
|
1933
1974
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseRootWebComponent, never>;
|
|
@@ -2023,6 +2064,8 @@ export declare const WC_NAVIGATE_EVENT = "mag-wc-navigate";
|
|
|
2023
2064
|
export interface RemoteReport {
|
|
2024
2065
|
appId?: string;
|
|
2025
2066
|
path?: string;
|
|
2067
|
+
/** The move asked to replace its history entry — a scroll position, not a step. */
|
|
2068
|
+
replaceUrl?: boolean;
|
|
2026
2069
|
/** Its matched route's NavId, root-relative — absent from an older Remote. */
|
|
2027
2070
|
navId?: string;
|
|
2028
2071
|
params?: Record<string, string>;
|
|
@@ -2100,7 +2143,7 @@ export interface PluginOutput {
|
|
|
2100
2143
|
export declare const PLUGIN_FALLBACK_LANG = "en";
|
|
2101
2144
|
export declare const PLUGIN_SCREENS: InjectionToken<ExposedScreens[]>;
|
|
2102
2145
|
/**
|
|
2103
|
-
* Offers Screens to other apps as Plugins (libs/one
|
|
2146
|
+
* Offers Screens to other apps as Plugins (libs/one GLOSSARY.md). Listed in the
|
|
2104
2147
|
* app's providers; its wc bundle defines one element per Screen at load,
|
|
2105
2148
|
* without booting the app's root.
|
|
2106
2149
|
*/
|
|
@@ -2130,10 +2173,30 @@ export declare function createPluginElement(component: Type<unknown>, pluginApp:
|
|
|
2130
2173
|
* once, on the first mount, so an app nobody mounts a Plugin of pays nothing.
|
|
2131
2174
|
*/
|
|
2132
2175
|
export declare function definePluginScreens(selector: string, screens: ExposedScreens, createPluginApp: () => Promise<ApplicationRef>): void;
|
|
2176
|
+
/** `coins/7?sort=desc#top` → its path segments, its query and its fragment. */
|
|
2177
|
+
export declare const splitPath: (path: string) => {
|
|
2178
|
+
segments: string[];
|
|
2179
|
+
query: Params;
|
|
2180
|
+
fragment: string | null;
|
|
2181
|
+
};
|
|
2133
2182
|
/** The query keys a Remote path names — `coins?sort=desc&q=a` → `sort`, `q`. */
|
|
2134
2183
|
declare const queryKeysOf: (path: string) => string[];
|
|
2135
|
-
/**
|
|
2184
|
+
/**
|
|
2185
|
+
* Two Remote paths naming the same segments, query and fragment, whatever the
|
|
2186
|
+
* key order.
|
|
2187
|
+
*/
|
|
2136
2188
|
declare const samePath: (a: string, b: string) => boolean;
|
|
2189
|
+
/** The matrix key an outlet segment holds its Remote's fragment under. */
|
|
2190
|
+
declare const OUTLET_HASH_PARAM = "hash";
|
|
2191
|
+
/**
|
|
2192
|
+
* A Remote path as its auxiliary segment holds it. The URL's own `?` and `#`
|
|
2193
|
+
* are the whole page's — Angular keeps them outside every `(…)` — so the
|
|
2194
|
+
* Remote's query and fragment ride its last segment as matrix params instead:
|
|
2195
|
+
* `x/1?q=a#page-4` → `x/1;q=a;hash=page-4`, all of it inside its parentheses.
|
|
2196
|
+
*/
|
|
2197
|
+
export declare const outletSegmentsOf: (path: string) => UrlSegment[];
|
|
2198
|
+
/** An auxiliary segment back as the Remote path it holds — `outletSegmentsOf` reversed. */
|
|
2199
|
+
export declare const outletPathOf: (segments: readonly UrlSegment[]) => string;
|
|
2137
2200
|
/**
|
|
2138
2201
|
* The host URL's query as a Remote path's query string, `?`-led or empty. The
|
|
2139
2202
|
* Murl param is the host's panel state, never the Remote's (ADR 0013).
|
|
@@ -2156,13 +2219,17 @@ declare class RemoteUrl {
|
|
|
2156
2219
|
private tree;
|
|
2157
2220
|
private segmentsNow;
|
|
2158
2221
|
/**
|
|
2159
|
-
* Whether the host URL already says `path
|
|
2160
|
-
*
|
|
2222
|
+
* Whether the host URL already says `path`. An outlet holds the whole path in
|
|
2223
|
+
* its segment; a tail its segments, the fragment, every query key it names,
|
|
2224
|
+
* and none of the `dropped` keys the Remote has stopped naming.
|
|
2161
2225
|
*/
|
|
2162
2226
|
holds: (path: string, dropped?: readonly string[]) => boolean;
|
|
2163
2227
|
/**
|
|
2164
|
-
*
|
|
2165
|
-
*
|
|
2228
|
+
* An outlet writes the whole path into its own segment and leaves the host's
|
|
2229
|
+
* query and fragment alone. A tail's page is the Remote's: its fragment is
|
|
2230
|
+
* the page's, and since the host's query is shared, `path`'s keys are merged
|
|
2231
|
+
* into it — only the `dropped` keys, ones this Remote wrote and no longer
|
|
2232
|
+
* names, leave it.
|
|
2166
2233
|
*/
|
|
2167
2234
|
write: (path: string, replaceUrl: boolean, dropped?: readonly string[]) => void;
|
|
2168
2235
|
/** An outlet leaving takes its segment with it; a tail leaves with its route. */
|
|
@@ -2220,8 +2287,10 @@ export declare class ConfigComponent<T extends Config = Config> {
|
|
|
2220
2287
|
isCachingDisabled: import("@angular/core").Signal<boolean>;
|
|
2221
2288
|
appLink: import("@angular/core").Signal<string | undefined>;
|
|
2222
2289
|
hostBase: import("@angular/core").Signal<string | undefined>;
|
|
2290
|
+
hosted: import("@angular/core").Signal<boolean>;
|
|
2223
2291
|
setAppLink: (appLink: string) => void;
|
|
2224
2292
|
setHostBase: (hostBase: string) => void;
|
|
2293
|
+
setHosted: () => void;
|
|
2225
2294
|
setCachingDisabled: (isDisabled: boolean) => void;
|
|
2226
2295
|
resolve: <T_1>(type: string, name: string, isOne?: boolean, remoteBaseUrl?: string) => import("rxjs").Observable<T_1>;
|
|
2227
2296
|
} & import("@ngrx/signals").StateSource<{
|
|
@@ -2231,6 +2300,7 @@ export declare class ConfigComponent<T extends Config = Config> {
|
|
|
2231
2300
|
isCachingDisabled: boolean;
|
|
2232
2301
|
appLink: string | undefined;
|
|
2233
2302
|
hostBase: string | undefined;
|
|
2303
|
+
hosted: boolean;
|
|
2234
2304
|
}>;
|
|
2235
2305
|
private readonly http;
|
|
2236
2306
|
private readonly previousName;
|
|
@@ -3934,7 +4004,7 @@ declare class BaseTextInputComponent<T extends Input = TextInput> extends BaseIn
|
|
|
3934
4004
|
/**
|
|
3935
4005
|
* What the results component's search input is called when nobody says
|
|
3936
4006
|
* otherwise — the name the design editor mints on a results Screen, spelled
|
|
3937
|
-
* here so a hand-written caller lands on the same word (
|
|
4007
|
+
* here so a hand-written caller lands on the same word (GLOSSARY.md
|
|
3938
4008
|
* SearchResultsScreen).
|
|
3939
4009
|
*/
|
|
3940
4010
|
declare const SEARCH_RESULT_INPUT = "search";
|
|
@@ -4217,7 +4287,7 @@ export declare class SectionFilterComponent {
|
|
|
4217
4287
|
/**
|
|
4218
4288
|
* How many numbers a `range` Filter picks: two by default, one under
|
|
4219
4289
|
* `single`, where its key carries that number rather than a pair
|
|
4220
|
-
* (
|
|
4290
|
+
* (GLOSSARY.md FilterRangeMode). Ignored by the option-picking variants.
|
|
4221
4291
|
*/
|
|
4222
4292
|
readonly mode: import("@angular/core").InputSignal<FilterRangeMode>;
|
|
4223
4293
|
/**
|
|
@@ -5143,7 +5213,7 @@ export declare const SECTION_ACCORDION_GROUP: InjectionToken<SectionAccordionGro
|
|
|
5143
5213
|
* its projected `m-section-header` (nothing renders, and the Section never
|
|
5144
5214
|
* collapses, if it has no header) and everything below the header collapses
|
|
5145
5215
|
* as one region. Ungrouped, starts open; inside an `mAccordionGroup`, only
|
|
5146
|
-
* the first-registered member starts open (
|
|
5216
|
+
* the first-registered member starts open (GLOSSARY.md SectionAccordion).
|
|
5147
5217
|
*/
|
|
5148
5218
|
export declare class SectionAccordionDirective implements SectionAccordionRef, OnInit, OnDestroy {
|
|
5149
5219
|
readonly mAccordion: import("@angular/core").InputSignal<string | Partial<SectionAccordion> | null | undefined>;
|
|
@@ -5512,7 +5582,7 @@ type SectionButtonGroupConfig = Config & {
|
|
|
5512
5582
|
* whatever Size the nearest Section put on the cascade, which is why its
|
|
5513
5583
|
* Buttons then land on that Section's input geometry with no sizing code here:
|
|
5514
5584
|
* both are 2.25x the Size.
|
|
5515
|
-
* See
|
|
5585
|
+
* See GLOSSARY.md `SectionButtonGroup` and ADR 0008, ADR 0009.
|
|
5516
5586
|
*/
|
|
5517
5587
|
export declare class SectionButtonGroupComponent extends ConfigComponent<SectionButtonGroupConfig> {
|
|
5518
5588
|
subFolder: "section_button_groups";
|
|
@@ -5558,7 +5628,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
|
|
|
5558
5628
|
}, {}, never, ["m-button, m-one-button", "*"], true, never>;
|
|
5559
5629
|
}
|
|
5560
5630
|
/**
|
|
5561
|
-
* The table composed from projected markup (
|
|
5631
|
+
* The table composed from projected markup (GLOSSARY.md SectionTable): the
|
|
5562
5632
|
* `<table>` and its configured heading are this component's, every row is
|
|
5563
5633
|
* projected. A row written inside an `@for` is drawn once per item, one outside
|
|
5564
5634
|
* it once — so a `<tr m-section-table-row>` is all the body ever holds, and
|
|
@@ -5635,7 +5705,7 @@ export declare class SectionTableComponent extends ConfigComponent<SectionTableC
|
|
|
5635
5705
|
}, never, ["*", "m-section-pagination"], true, never>;
|
|
5636
5706
|
}
|
|
5637
5707
|
/**
|
|
5638
|
-
* One `<tr>` of a SectionTable (
|
|
5708
|
+
* One `<tr>` of a SectionTable (GLOSSARY.md SectionTableRow). An attribute on a
|
|
5639
5709
|
* real `<tr>` rather than an element of its own: a component host between
|
|
5640
5710
|
* `<tbody>` and its cells breaks table layout. Repeated or static is decided by
|
|
5641
5711
|
* where it was written, never by a setting here.
|
|
@@ -5649,7 +5719,7 @@ export declare class SectionTableRowComponent {
|
|
|
5649
5719
|
}, never, ["*"], true, never>;
|
|
5650
5720
|
}
|
|
5651
5721
|
/**
|
|
5652
|
-
* One `<td>` of a SectionTableRow (
|
|
5722
|
+
* One `<td>` of a SectionTableRow (GLOSSARY.md SectionTableCell), holding any
|
|
5653
5723
|
* content. Answers to the column at its own position — its `cellIndex`, which
|
|
5654
5724
|
* only the DOM knows once the row is laid out — for alignment, Squeeze and
|
|
5655
5725
|
* freezing, and configures none of them itself.
|
|
@@ -5848,7 +5918,7 @@ type BoundConfig = Partial<Input> & {
|
|
|
5848
5918
|
* The panel a `range` Filter opens: a slider over the authored bounds, and the
|
|
5849
5919
|
* numeric boxes under it. Two thumbs and two boxes by default; one of each in
|
|
5850
5920
|
* `single` mode, where the Filter picks one number rather than a pair
|
|
5851
|
-
* (
|
|
5921
|
+
* (GLOSSARY.md FilterRangeMode). One panel for both, because the modes differ
|
|
5852
5922
|
* only in how many answers come back — the bounds and the fallbacks are the
|
|
5853
5923
|
* same authoring either way.
|
|
5854
5924
|
*
|
|
@@ -5876,7 +5946,7 @@ export declare class SectionFilterRangePanelComponent {
|
|
|
5876
5946
|
readonly value: import("@angular/core").InputSignal<readonly (string | number)[]>;
|
|
5877
5947
|
readonly min: import("@angular/core").InputSignal<number | undefined>;
|
|
5878
5948
|
readonly max: import("@angular/core").InputSignal<number | undefined>;
|
|
5879
|
-
/** One thumb or two. `range` by default (
|
|
5949
|
+
/** One thumb or two. `range` by default (GLOSSARY.md FilterRangeMode). */
|
|
5880
5950
|
readonly mode: import("@angular/core").InputSignal<FilterRangeMode>;
|
|
5881
5951
|
/** The Filter's own heading, already a TranslationAsset key. */
|
|
5882
5952
|
readonly label: import("@angular/core").InputSignal<string>;
|
|
@@ -6808,7 +6878,7 @@ type CheckboxGroupRow = {
|
|
|
6808
6878
|
readonly checkbox: Partial<Input>;
|
|
6809
6879
|
};
|
|
6810
6880
|
/**
|
|
6811
|
-
* The many-pick sibling of `m-radio-group` (
|
|
6881
|
+
* The many-pick sibling of `m-radio-group` (GLOSSARY.md CheckboxGroup). One
|
|
6812
6882
|
* `m-checkbox` per option, its value the picked options' values in option
|
|
6813
6883
|
* order. Options are bound, placed or named (ADR 0039, ADR 0041): bound or
|
|
6814
6884
|
* placed `options` win, and an OptionSet named by `optionsAsset` / `mOptions`
|
|
@@ -7474,7 +7544,7 @@ export declare function normalizeAssetOptions(data: AssetOption[] | AssetOption[
|
|
|
7474
7544
|
export declare function assetOptions(name?: () => string | undefined): Signal<DropdownOption[]>;
|
|
7475
7545
|
/**
|
|
7476
7546
|
* Starts a Field on its list's `default` row when it holds no value of its own
|
|
7477
|
-
* (m-one-ui
|
|
7547
|
+
* (m-one-ui GLOSSARY.md OptionSet). The Field's own value — its config, its form
|
|
7478
7548
|
* data — outranks the row, so a value already held is kept.
|
|
7479
7549
|
*
|
|
7480
7550
|
* Each marked row is consulted once: a User who clears the pick is not handed
|
|
@@ -7887,7 +7957,7 @@ declare const fileMatchesAccept: (file: Pick<File, "name" | "type">, accept: rea
|
|
|
7887
7957
|
/**
|
|
7888
7958
|
* Splits picked or dropped files into the ones the Field keeps and the ones it
|
|
7889
7959
|
* reports. A drop never passes the native picker, so this is where `accept` and
|
|
7890
|
-
* `maxSize` are enforced rather than merely suggested (
|
|
7960
|
+
* `maxSize` are enforced rather than merely suggested (GLOSSARY.md DropZone).
|
|
7891
7961
|
*/
|
|
7892
7962
|
declare const screenFiles: (files: readonly File[], accept: readonly string[], maxSize: number | undefined) => FileScreen;
|
|
7893
7963
|
/** Appends `incoming` to `current`, skipping a file already held. */
|
|
@@ -8101,7 +8171,7 @@ export declare class ListComponent extends ConfigComponent<ListConfig> {
|
|
|
8101
8171
|
* row authored in the asset reaches the template the way a mapped one does:
|
|
8102
8172
|
* an authored `ListItem` carries no `row` of its own, and a body reading
|
|
8103
8173
|
* `undefined` would make the static source unusable to anything but a bare
|
|
8104
|
-
* label (m-one-ui
|
|
8174
|
+
* label (m-one-ui GLOSSARY.md ListControl).
|
|
8105
8175
|
*/
|
|
8106
8176
|
protected readonly rowContext: (item: ListItem, index: number, first: boolean, last: boolean) => ListContext;
|
|
8107
8177
|
static ɵfac: i0.ɵɵFactoryDeclaration<ListComponent, never>;
|
|
@@ -8973,7 +9043,7 @@ export declare class SectionFormItemComponent extends ConfigComponent<Input> imp
|
|
|
8973
9043
|
}, ["projectedTemplate", "placedCheckboxes"], never, true, never>;
|
|
8974
9044
|
}
|
|
8975
9045
|
/**
|
|
8976
|
-
* Names the AssetOptions list a Field chooses from (
|
|
9046
|
+
* Names the AssetOptions list a Field chooses from (GLOSSARY.md OptionsSource).
|
|
8977
9047
|
* The markup spelling of the `optionsAsset:` config key, added beside it rather
|
|
8978
9048
|
* than in place of it (ADR 0010) — a Field still described by a file keeps
|
|
8979
9049
|
* declaring the key inside that file.
|
|
@@ -10044,6 +10114,8 @@ export declare class RemoteComponent implements OnDestroy {
|
|
|
10044
10114
|
readonly out: import("@angular/core").InputSignal<((remotePath: string, link: string) => string) | undefined>;
|
|
10045
10115
|
/** Listed in the host menu while its segment is in the URL. */
|
|
10046
10116
|
readonly createMenu: import("@angular/core").InputSignal<boolean>;
|
|
10117
|
+
/** An Open App keeps its own menu rather than drawing as the host's own. */
|
|
10118
|
+
readonly ownMenu: import("@angular/core").InputSignal<boolean>;
|
|
10047
10119
|
/** The host NavId the remote's root is rebased onto; `root_app_<name>` unset. */
|
|
10048
10120
|
readonly appNavId: import("@angular/core").InputSignal<string | undefined>;
|
|
10049
10121
|
/**
|
|
@@ -10094,7 +10166,7 @@ export declare class RemoteComponent implements OnDestroy {
|
|
|
10094
10166
|
private pinnedLink?;
|
|
10095
10167
|
protected readonly state: import("@angular/core").WritableSignal<"idle" | "loading" | "loaded" | "failed" | "self-beta">;
|
|
10096
10168
|
protected readonly failure: import("@angular/core").WritableSignal<RemoteLoadResult>;
|
|
10097
|
-
/** The host URL's query, as of the last navigation — a `tail` mount's to read. */
|
|
10169
|
+
/** The host URL's query and fragment, as of the last navigation — a `tail` mount's to read. */
|
|
10098
10170
|
private readonly hostQuery;
|
|
10099
10171
|
/** The host's primary path, segment by segment, as of the last navigation. */
|
|
10100
10172
|
private readonly hostSegments;
|
|
@@ -10126,7 +10198,10 @@ export declare class RemoteComponent implements OnDestroy {
|
|
|
10126
10198
|
private mountName;
|
|
10127
10199
|
/** The host page that mounts this app, asked for at its beta tier. */
|
|
10128
10200
|
protected openBeta: () => void;
|
|
10129
|
-
/**
|
|
10201
|
+
/**
|
|
10202
|
+
* The host URL's query and fragment, as a Remote path's tail. A method, not
|
|
10203
|
+
* an arrow field: `hostQuery` calls it during field init.
|
|
10204
|
+
*/
|
|
10130
10205
|
private currentQuery;
|
|
10131
10206
|
/** A method, not an arrow field: `hostSegments` calls it during field init. */
|
|
10132
10207
|
private primarySegments;
|
|
@@ -10210,6 +10285,11 @@ export declare class RemoteComponent implements OnDestroy {
|
|
|
10210
10285
|
"required": false;
|
|
10211
10286
|
"isSignal": true;
|
|
10212
10287
|
};
|
|
10288
|
+
"ownMenu": {
|
|
10289
|
+
"alias": "ownMenu";
|
|
10290
|
+
"required": false;
|
|
10291
|
+
"isSignal": true;
|
|
10292
|
+
};
|
|
10213
10293
|
"appNavId": {
|
|
10214
10294
|
"alias": "appNavId";
|
|
10215
10295
|
"required": false;
|
|
@@ -10236,7 +10316,7 @@ export declare class RemoteComponent implements OnDestroy {
|
|
|
10236
10316
|
*/
|
|
10237
10317
|
export type PluginSource = 'local' | 'beta' | 'published';
|
|
10238
10318
|
/**
|
|
10239
|
-
* Mounts another app's Exposed Screen as a Plugin (libs/one
|
|
10319
|
+
* Mounts another app's Exposed Screen as a Plugin (libs/one GLOSSARY.md): an
|
|
10240
10320
|
* AppLink, the Screen's name, a value per input and one `output` event per
|
|
10241
10321
|
* output the Screen emits. Never a whole app and never an address — that is
|
|
10242
10322
|
* `m-remote`.
|
|
@@ -12000,7 +12080,7 @@ type StatAlign = 'left' | 'center' | 'right';
|
|
|
12000
12080
|
type StatSurface = 'plain' | 'card' | 'shadow' | 'glow' | 'gradient';
|
|
12001
12081
|
/**
|
|
12002
12082
|
* A KeyValue with a corner mark: a label, a large value, and a small secondary
|
|
12003
|
-
* value set against the value itself (
|
|
12083
|
+
* value set against the value itself (GLOSSARY.md Stat).
|
|
12004
12084
|
*
|
|
12005
12085
|
* The label is an attribute because a name is a string either way — a
|
|
12006
12086
|
* TranslationAsset key, or a row's own text under `noTranslate` (ADR 0022);
|
|
@@ -12245,7 +12325,7 @@ export type PanelOverlayConfig = Config & {
|
|
|
12245
12325
|
};
|
|
12246
12326
|
/**
|
|
12247
12327
|
* What a store hands `ModalStore.openScreen` — the programmatic counterpart of
|
|
12248
|
-
* `mModal` / `mSidePanel` (
|
|
12328
|
+
* `mModal` / `mSidePanel` (GLOSSARY.md OverlayTrigger).
|
|
12249
12329
|
*
|
|
12250
12330
|
* One shape for both overlays rather than two: `as` says which, and the caller
|
|
12251
12331
|
* is one generated `tap` that has already drawn the answer. A directive resolves
|
|
@@ -12686,7 +12766,7 @@ export type BreadcrumbTrail = {
|
|
|
12686
12766
|
/**
|
|
12687
12767
|
* NavRef — names the target by NavId only. The NavKind on the target decides
|
|
12688
12768
|
* whether following it routes or opens a panel, so a link can never pick the
|
|
12689
|
-
* wrong kind. See libs/one/
|
|
12769
|
+
* wrong kind. See libs/one/GLOSSARY.md (NavRef) and ADR 0014.
|
|
12690
12770
|
*/
|
|
12691
12771
|
nav?: string;
|
|
12692
12772
|
/**
|
|
@@ -12703,7 +12783,7 @@ export type BreadcrumbTrail = {
|
|
|
12703
12783
|
href?: string;
|
|
12704
12784
|
/**
|
|
12705
12785
|
* A menu row whose Nav would draw rows of its own: it carries a chevron that
|
|
12706
|
-
* Browses into it while the row itself follows it (
|
|
12786
|
+
* Browses into it while the row itself follows it (GLOSSARY.md Browse).
|
|
12707
12787
|
*/
|
|
12708
12788
|
browsable?: boolean;
|
|
12709
12789
|
};
|
|
@@ -12712,7 +12792,7 @@ export type BreadCrumb = {
|
|
|
12712
12792
|
header: BreadcrumbTrail;
|
|
12713
12793
|
};
|
|
12714
12794
|
/**
|
|
12715
|
-
* Nav model — see libs/one/
|
|
12795
|
+
* Nav model — see libs/one/GLOSSARY.md (NavId, NavKind, Address, Anchor, NavRef)
|
|
12716
12796
|
* and docs/adr/0014.
|
|
12717
12797
|
*/
|
|
12718
12798
|
/** How a Nav is reached. A property of the node, never of the link. */
|
|
@@ -12741,7 +12821,7 @@ export type Nav = {
|
|
|
12741
12821
|
*/
|
|
12742
12822
|
param?: string;
|
|
12743
12823
|
/**
|
|
12744
|
-
* A NavTail's parameter name (m-one-ui
|
|
12824
|
+
* A NavTail's parameter name (m-one-ui GLOSSARY.md NavTail): every segment
|
|
12745
12825
|
* below the Nav's own path is one value under this name, separators kept —
|
|
12746
12826
|
* `code/<path>` with `path` = `src/app/x.ts`. Routed by `navTailMatcher`.
|
|
12747
12827
|
*/
|
|
@@ -12755,7 +12835,7 @@ export type Nav = {
|
|
|
12755
12835
|
seeded?: boolean;
|
|
12756
12836
|
};
|
|
12757
12837
|
/**
|
|
12758
|
-
* One row a `dynamic` Nav resolves to at runtime (
|
|
12838
|
+
* One row a `dynamic` Nav resolves to at runtime (GLOSSARY.md NavRow).
|
|
12759
12839
|
*
|
|
12760
12840
|
* `value` is the [NavParam] value and never a NavId — a NavRef names a node
|
|
12761
12841
|
* and the instance rides alongside as params, so a row can never disagree with
|
|
@@ -12830,7 +12910,7 @@ interface NavMenuConfig {
|
|
|
12830
12910
|
}
|
|
12831
12911
|
/**
|
|
12832
12912
|
* What a `dynamic` Nav registers instead of a panel: the rows it resolves at
|
|
12833
|
-
* runtime (
|
|
12913
|
+
* runtime (GLOSSARY.md NavRowSource). Registered under the dynamic Nav's own
|
|
12834
12914
|
* NavId, but drawn in *its parent's* panel — the rows are spliced where its
|
|
12835
12915
|
* own row stood, the transparency a Default Nav already has, because a row
|
|
12836
12916
|
* labelled `with-category` names nothing a User recognises.
|
|
@@ -12870,7 +12950,7 @@ interface NavRowsConfig {
|
|
|
12870
12950
|
/**
|
|
12871
12951
|
* What a `dynamic` Nav registers to answer *which instance the User is standing
|
|
12872
12952
|
* on*, as against `NavRowsConfig`, which answers *where they may go*
|
|
12873
|
-
* (
|
|
12953
|
+
* (GLOSSARY.md NavInstanceSource, ADR 0030). Registered under the dynamic Nav's
|
|
12874
12954
|
* own NavId, and read by the trail and the panel header rather than by any
|
|
12875
12955
|
* menu: a row list is a menu answer, and one deep link into `/app/:id/about`
|
|
12876
12956
|
* needs a name for `:id` whether or not a menu of every app would even be
|
|
@@ -12900,7 +12980,7 @@ interface NavInstanceConfig {
|
|
|
12900
12980
|
navInstanceLoad?: (params: Record<string, string>) => void;
|
|
12901
12981
|
}
|
|
12902
12982
|
/**
|
|
12903
|
-
* What a gate answers (m-one-ui
|
|
12983
|
+
* What a gate answers (m-one-ui GLOSSARY.md NavVisibilitySource).
|
|
12904
12984
|
*
|
|
12905
12985
|
* **Three states, and one of them is a promise.** `true` / `false` are the
|
|
12906
12986
|
* answer; `undefined` is *not answerable yet* — the state the gate reads has
|
|
@@ -12915,7 +12995,7 @@ interface NavInstanceConfig {
|
|
|
12915
12995
|
*/
|
|
12916
12996
|
type NavVisibleAnswer = boolean | undefined | Promise<boolean>;
|
|
12917
12997
|
/**
|
|
12918
|
-
* Whether one Nav is shown and reachable at all (m-one-ui
|
|
12998
|
+
* Whether one Nav is shown and reachable at all (m-one-ui GLOSSARY.md
|
|
12919
12999
|
* NavVisibilitySource). Registered under that Nav's own NavId beside whatever
|
|
12920
13000
|
* else it registers — the configs are not exclusive, which is why every guard
|
|
12921
13001
|
* here tests for its own key rather than for the absence of another's.
|
|
@@ -12938,7 +13018,7 @@ interface NavVisibilityConfig {
|
|
|
12938
13018
|
navVisible: (params: Record<string, string>) => NavVisibleAnswer;
|
|
12939
13019
|
/**
|
|
12940
13020
|
* Fired before the gate is believed, so a gate reading state the store does
|
|
12941
|
-
* not hold yet has something filling it (m-one-ui
|
|
13021
|
+
* not hold yet has something filling it (m-one-ui GLOSSARY.md
|
|
12942
13022
|
* NavVisibilitySource).
|
|
12943
13023
|
*
|
|
12944
13024
|
* This is what makes *is this app's uid the signed-in user* answerable on a
|
|
@@ -13329,19 +13409,19 @@ interface NavState {
|
|
|
13329
13409
|
navOpenedByUser: boolean;
|
|
13330
13410
|
/**
|
|
13331
13411
|
* The Nav a Browse moved the panel onto — up, down or sideways — while the
|
|
13332
|
-
* Address, and the Page, stay put (
|
|
13412
|
+
* Address, and the Page, stay put (GLOSSARY.md Browse).
|
|
13333
13413
|
*/
|
|
13334
13414
|
menuNavId: string | undefined;
|
|
13335
13415
|
/**
|
|
13336
13416
|
* The instances the Browse names — a `dynamic` Nav is a node, and which book
|
|
13337
|
-
* the User is looking into is data (
|
|
13417
|
+
* the User is looking into is data (GLOSSARY.md Browse). Read only while
|
|
13338
13418
|
* `menuNavId` is set.
|
|
13339
13419
|
*/
|
|
13340
13420
|
menuParams: Record<string, string | number> | undefined;
|
|
13341
13421
|
/**
|
|
13342
13422
|
* The app whose menu an App Rail AppLogo Browsed onto, and the slot it held
|
|
13343
13423
|
* then. That Browse belongs to the app: it survives an Address change that
|
|
13344
|
-
* only moved the app to another slot (
|
|
13424
|
+
* only moved the app to another slot (GLOSSARY.md Browse).
|
|
13345
13425
|
*/
|
|
13346
13426
|
browsedApp: {
|
|
13347
13427
|
name: string;
|
|
@@ -13578,8 +13658,26 @@ export declare class GetNavService {
|
|
|
13578
13658
|
* produced a 404 on the first click on chrome (ADR 0016). An extensible one
|
|
13579
13659
|
* is seeded *and* asked for, exactly once, so an app's own children under it
|
|
13580
13660
|
* survive; `seeded` is the flag that makes it once rather than every time.
|
|
13661
|
+
*
|
|
13662
|
+
* A Default Nav is the second id no deployment holds: the emitter writes no
|
|
13663
|
+
* asset for one — "an asset for it would be fetched once and used for nothing"
|
|
13664
|
+
* — and the parent's own asset lists its children, spliced in where it stood.
|
|
13665
|
+
* Asking for it is how loading the Store App requested
|
|
13666
|
+
* `navs/root_default.json` — never shipped, so never served.
|
|
13581
13667
|
*/
|
|
13582
13668
|
private readonly isWanted;
|
|
13669
|
+
/**
|
|
13670
|
+
* Whether this NavId names a Platform Nav whose panel the library fills,
|
|
13671
|
+
* reached through a mount's prefix: `root_store_notification` is the host
|
|
13672
|
+
* map's own `root_notification` — seeded, and drawn by the host's chrome
|
|
13673
|
+
* whatever app is mounted (`isPlatformPanelNavId`, ADR 0016).
|
|
13674
|
+
*
|
|
13675
|
+
* Asking the Remote for it is a request nothing can answer: no app authors
|
|
13676
|
+
* `navs/root_notification.yml`, because the emitter writes App Navs only. The
|
|
13677
|
+
* Store App's deployment answered 409 `wc_file_not_found` for exactly this,
|
|
13678
|
+
* on the first click on chrome while it was mounted.
|
|
13679
|
+
*/
|
|
13680
|
+
private readonly isRemotePlatformPanel;
|
|
13583
13681
|
readonly getNav: (navId: string, navMap: NavMap, ctx?: GetNavContext) => Observable<NavMap>;
|
|
13584
13682
|
private readonly fetchAll;
|
|
13585
13683
|
private readonly fetchNav;
|
|
@@ -13676,7 +13774,7 @@ export declare class MurlUrlSerializer implements UrlSerializer {
|
|
|
13676
13774
|
}
|
|
13677
13775
|
export declare const provideMurlUrlSerializer: () => Provider;
|
|
13678
13776
|
/**
|
|
13679
|
-
* NavId <-> Address. See libs/one/
|
|
13777
|
+
* NavId <-> Address. See libs/one/GLOSSARY.md and docs/adr/0014.
|
|
13680
13778
|
*
|
|
13681
13779
|
* A NavId is the full path joined with `_`, always rooted: `root`,
|
|
13682
13780
|
* `root_settings_user`. It is separator-blind — the `/` vs `|` of an Address
|
|
@@ -13741,7 +13839,7 @@ declare const fillParams: (path: string, params?: Record<string, string | number
|
|
|
13741
13839
|
/**
|
|
13742
13840
|
* A Url NavId's route path with its params filled — and, for a NavTail, the
|
|
13743
13841
|
* rest appended as its tail value names it, separators kept, since the tail is
|
|
13744
|
-
* every segment below the Nav and not one (m-one-ui
|
|
13842
|
+
* every segment below the Nav and not one (m-one-ui GLOSSARY.md NavTail). No
|
|
13745
13843
|
* tail value is no rest: the Nav's own address.
|
|
13746
13844
|
*/
|
|
13747
13845
|
declare const fillRoutePath: (navId: string, navMap: NavMap, params?: Record<string, string | number>) => string;
|
|
@@ -13766,7 +13864,7 @@ export declare const toHostNavId: (localNavId: string, hostNavId: string) => str
|
|
|
13766
13864
|
export declare const toLocalNavId: (hostScopedNavId: string, hostNavId: string) => string | undefined;
|
|
13767
13865
|
export declare const navVisibilityGuard: CanActivateFn;
|
|
13768
13866
|
/**
|
|
13769
|
-
* The route a NavTail emits (m-one-ui
|
|
13867
|
+
* The route a NavTail emits (m-one-ui GLOSSARY.md NavTail): its own prefix, then
|
|
13770
13868
|
* every segment below it joined into one `name` parameter. Angular's `**`
|
|
13771
13869
|
* binds to no input, which is why this is a matcher and not a path. A `:x`
|
|
13772
13870
|
* segment of the prefix is filled the way a path would fill it.
|
|
@@ -13793,7 +13891,7 @@ export declare class NavComponent {
|
|
|
13793
13891
|
app: undefined;
|
|
13794
13892
|
} | undefined>;
|
|
13795
13893
|
/**
|
|
13796
|
-
* The App Rail below the AppLogo (
|
|
13894
|
+
* The App Rail below the AppLogo (GLOSSARY.md App Rail): the Main Slot's App,
|
|
13797
13895
|
* standing where the apps button would, then each Side App. Selecting one
|
|
13798
13896
|
* opens the panel on that app's menu; the open panel rings whose menu it is.
|
|
13799
13897
|
*/
|
|
@@ -14038,7 +14136,7 @@ export declare class NavTrailComponent {
|
|
|
14038
14136
|
constructor();
|
|
14039
14137
|
/**
|
|
14040
14138
|
* Moves the panel onto the entry's Nav and leaves the Address, and the Page
|
|
14041
|
-
* behind the panel, where they are (
|
|
14139
|
+
* behind the panel, where they are (GLOSSARY.md Browse).
|
|
14042
14140
|
*/
|
|
14043
14141
|
protected browse: (navId: string, params?: Record<string, string | number>) => void;
|
|
14044
14142
|
protected onOverflow(item: MenuItem): void;
|
|
@@ -14064,7 +14162,7 @@ export declare class NavMenuComponent {
|
|
|
14064
14162
|
filterBySearch: import("@angular/core").InputSignal<boolean>;
|
|
14065
14163
|
size: typeof Size;
|
|
14066
14164
|
navList: import("@angular/core").Signal<BreadcrumbTrail[] | undefined>;
|
|
14067
|
-
/** Looks inside the row's Nav without following it (
|
|
14165
|
+
/** Looks inside the row's Nav without following it (GLOSSARY.md Browse). */
|
|
14068
14166
|
browse: (item: BreadcrumbTrail) => void;
|
|
14069
14167
|
rows: import("@angular/core").Signal<ListItem[]>;
|
|
14070
14168
|
static ɵfac: i0.ɵɵFactoryDeclaration<NavMenuComponent, never>;
|
|
@@ -14421,7 +14519,7 @@ export declare class NotificationService {
|
|
|
14421
14519
|
/**
|
|
14422
14520
|
* Browser clipboard writes a gesture may fire. Takes one object so a designed
|
|
14423
14521
|
* Screen's call site builds it the way it builds every GlobalMethod's
|
|
14424
|
-
* (
|
|
14522
|
+
* (GLOSSARY.md GlobalMethod), and reports the outcome itself — a template call
|
|
14425
14523
|
* has nowhere to await the write.
|
|
14426
14524
|
*/
|
|
14427
14525
|
export declare class ClipboardService {
|
|
@@ -16009,4 +16107,214 @@ interface AuthResult {
|
|
|
16009
16107
|
tokens: SharedToken;
|
|
16010
16108
|
}
|
|
16011
16109
|
export declare function injectAuthenticate(): () => Promise<AuthResult>;
|
|
16012
|
-
|
|
16110
|
+
/** Who may see a Source — the four Audience Levels of the Sharing context. */
|
|
16111
|
+
type AudienceLevel = 'public' | 'private' | 'with' | 'without';
|
|
16112
|
+
export declare const AUDIENCE_LEVELS: readonly AudienceLevel[];
|
|
16113
|
+
/**
|
|
16114
|
+
* One Source's Audience as the picker edits it. `uids` and `groupIds` only
|
|
16115
|
+
* mean something for `with` (who is let in) and `without` (who is kept out).
|
|
16116
|
+
*/
|
|
16117
|
+
interface Audience {
|
|
16118
|
+
level: AudienceLevel;
|
|
16119
|
+
uids: string[];
|
|
16120
|
+
groupIds: string[];
|
|
16121
|
+
}
|
|
16122
|
+
type GroupKind = 'friends' | 'followers' | 'custom';
|
|
16123
|
+
/** A named list of Users one Owner keeps for their own Audiences. */
|
|
16124
|
+
interface SharingGroup {
|
|
16125
|
+
id: string;
|
|
16126
|
+
kind: GroupKind;
|
|
16127
|
+
name: string;
|
|
16128
|
+
members: string[];
|
|
16129
|
+
}
|
|
16130
|
+
/** The slice of a User the picker draws: enough to name them. */
|
|
16131
|
+
interface AudienceMember {
|
|
16132
|
+
id: string;
|
|
16133
|
+
firstName?: string;
|
|
16134
|
+
lastName?: string;
|
|
16135
|
+
username?: string;
|
|
16136
|
+
}
|
|
16137
|
+
/** A Source's stored Audience and whether its context Locked it. */
|
|
16138
|
+
interface SourceAudience {
|
|
16139
|
+
audience: Audience;
|
|
16140
|
+
locked: boolean;
|
|
16141
|
+
}
|
|
16142
|
+
/**
|
|
16143
|
+
* The picker's config bag (`audience_picker/<name>.yml`). Scalars ride the tag
|
|
16144
|
+
* (ADR 0010); the asset holds the one list — which Audience Levels to offer.
|
|
16145
|
+
*/
|
|
16146
|
+
type AudiencePicker = Config & {
|
|
16147
|
+
levels?: AudienceLevel[];
|
|
16148
|
+
labelled?: boolean;
|
|
16149
|
+
align?: 'left' | 'right';
|
|
16150
|
+
width?: string;
|
|
16151
|
+
};
|
|
16152
|
+
/**
|
|
16153
|
+
* Everything the Audience picker reads or writes. A token rather than a
|
|
16154
|
+
* concrete service so a host can stand a stub in while the Sharing api does
|
|
16155
|
+
* not answer yet, or route the calls through its own store.
|
|
16156
|
+
*/
|
|
16157
|
+
interface SharingClient {
|
|
16158
|
+
/** The caller's own Groups. */
|
|
16159
|
+
groups(): Observable<SharingGroup[]>;
|
|
16160
|
+
/** Users whose first or last name starts with every word of `q`. */
|
|
16161
|
+
searchUsers(q: string): Observable<AudienceMember[]>;
|
|
16162
|
+
/** Names for Users already picked, so a chip reads as a person, not an id. */
|
|
16163
|
+
users(ids: string[]): Observable<AudienceMember[]>;
|
|
16164
|
+
/** A Source's stored Audience. */
|
|
16165
|
+
audience(source: string): Observable<SourceAudience>;
|
|
16166
|
+
/** Replaces an existing Source's Audience; the Owner only, never Locked. */
|
|
16167
|
+
saveAudience(source: string, audience: Audience): Observable<SourceAudience>;
|
|
16168
|
+
}
|
|
16169
|
+
export declare class HttpSharingClient implements SharingClient {
|
|
16170
|
+
private readonly http;
|
|
16171
|
+
groups: () => Observable<SharingGroup[]>;
|
|
16172
|
+
searchUsers: (q: string) => Observable<AudienceMember[]>;
|
|
16173
|
+
users: (ids: string[]) => Observable<AudienceMember[]>;
|
|
16174
|
+
audience: (source: string) => Observable<SourceAudience>;
|
|
16175
|
+
saveAudience: (source: string, audience: Audience) => Observable<SourceAudience>;
|
|
16176
|
+
}
|
|
16177
|
+
export declare const SHARING_CLIENT: InjectionToken<SharingClient>;
|
|
16178
|
+
/**
|
|
16179
|
+
* The popover an Audience picker opens: the Audience Levels on offer, then —
|
|
16180
|
+
* for `with` / `without` — the caller's Groups and a people search. Emits
|
|
16181
|
+
* every change at once; the picker decides whether it is kept or saved.
|
|
16182
|
+
*/
|
|
16183
|
+
export declare class AudiencePickerBoxComponent {
|
|
16184
|
+
readonly audience: import("@angular/core").InputSignal<Audience>;
|
|
16185
|
+
readonly levels: import("@angular/core").InputSignal<readonly AudienceLevel[]>;
|
|
16186
|
+
readonly locked: import("@angular/core").InputSignal<boolean>;
|
|
16187
|
+
readonly client: import("@angular/core").InputSignal<SharingClient>;
|
|
16188
|
+
readonly changed: import("@angular/core").OutputEmitterRef<Audience>;
|
|
16189
|
+
readonly done: import("@angular/core").OutputEmitterRef<void>;
|
|
16190
|
+
private readonly i18n;
|
|
16191
|
+
protected readonly query: import("@angular/core").WritableSignal<string>;
|
|
16192
|
+
private readonly known;
|
|
16193
|
+
protected readonly icons: Record<AudienceLevel, string>;
|
|
16194
|
+
protected readonly picksMembers: import("@angular/core").Signal<boolean>;
|
|
16195
|
+
private readonly groupsResource;
|
|
16196
|
+
protected readonly groups: import("@angular/core").Signal<import("@magmonium/one").SharingGroup[]>;
|
|
16197
|
+
private readonly searchResource;
|
|
16198
|
+
protected readonly results: import("@angular/core").Signal<AudienceMember[]>;
|
|
16199
|
+
protected readonly searchConfig: import("@angular/core").Signal<Partial<TextInput>>;
|
|
16200
|
+
constructor();
|
|
16201
|
+
protected readonly name: (id: string) => string;
|
|
16202
|
+
protected readonly isPicked: (id: string) => boolean;
|
|
16203
|
+
protected readonly hasGroup: (id: string) => boolean;
|
|
16204
|
+
protected readonly setLevel: (level: AudienceLevel) => void;
|
|
16205
|
+
protected readonly flipUser: (uid: string) => void;
|
|
16206
|
+
protected readonly flipGroup: (groupId: string) => void;
|
|
16207
|
+
private readonly remember;
|
|
16208
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AudiencePickerBoxComponent, never>;
|
|
16209
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AudiencePickerBoxComponent, "m-audience-picker-box", never, {
|
|
16210
|
+
"audience": {
|
|
16211
|
+
"alias": "audience";
|
|
16212
|
+
"required": false;
|
|
16213
|
+
"isSignal": true;
|
|
16214
|
+
};
|
|
16215
|
+
"levels": {
|
|
16216
|
+
"alias": "levels";
|
|
16217
|
+
"required": false;
|
|
16218
|
+
"isSignal": true;
|
|
16219
|
+
};
|
|
16220
|
+
"locked": {
|
|
16221
|
+
"alias": "locked";
|
|
16222
|
+
"required": false;
|
|
16223
|
+
"isSignal": true;
|
|
16224
|
+
};
|
|
16225
|
+
"client": {
|
|
16226
|
+
"alias": "client";
|
|
16227
|
+
"required": true;
|
|
16228
|
+
"isSignal": true;
|
|
16229
|
+
};
|
|
16230
|
+
}, {
|
|
16231
|
+
"changed": "changed";
|
|
16232
|
+
"done": "done";
|
|
16233
|
+
}, never, never, true, never>;
|
|
16234
|
+
}
|
|
16235
|
+
/**
|
|
16236
|
+
* Who may see a thing, picked from one icon — the context-menu gesture: the
|
|
16237
|
+
* trigger draws the current Audience Level, a click opens the levels, Groups
|
|
16238
|
+
* and people beside it.
|
|
16239
|
+
*
|
|
16240
|
+
* Controlled: `[(audience)]` — the host keeps the value and sends it with its
|
|
16241
|
+
* own save (a thing being created has no Audience to edit yet).
|
|
16242
|
+
* Bound: `source="<id>"` — the picker loads and saves that Source's Audience
|
|
16243
|
+
* itself, and a Locked one opens read-only.
|
|
16244
|
+
*/
|
|
16245
|
+
export declare class AudiencePickerComponent extends ConfigComponent<AudiencePicker> {
|
|
16246
|
+
readonly audience: import("@angular/core").ModelSignal<Audience | undefined>;
|
|
16247
|
+
readonly source: import("@angular/core").InputSignal<string | undefined>;
|
|
16248
|
+
readonly locked: import("@angular/core").InputSignal<boolean>;
|
|
16249
|
+
readonly labelled: import("@angular/core").InputSignal<boolean | undefined>;
|
|
16250
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
16251
|
+
readonly align: import("@angular/core").InputSignal<"left" | "right" | undefined>;
|
|
16252
|
+
protected readonly subFolder = "audience_picker";
|
|
16253
|
+
protected readonly open: import("@angular/core").WritableSignal<boolean>;
|
|
16254
|
+
private readonly client;
|
|
16255
|
+
private readonly i18n;
|
|
16256
|
+
private readonly selectorDir;
|
|
16257
|
+
private readonly sourceLocked;
|
|
16258
|
+
private readonly pickerConfig;
|
|
16259
|
+
protected readonly current: import("@angular/core").Signal<Audience>;
|
|
16260
|
+
protected readonly levels: import("@angular/core").Signal<readonly AudienceLevel[]>;
|
|
16261
|
+
protected readonly isLocked: import("@angular/core").Signal<boolean>;
|
|
16262
|
+
private readonly stored;
|
|
16263
|
+
protected readonly summary: import("@angular/core").Signal<string>;
|
|
16264
|
+
protected readonly triggerConfig: import("@angular/core").Signal<Partial<Button>>;
|
|
16265
|
+
protected readonly selectorConfig: import("@angular/core").Signal<SelectorConfig<AudiencePickerBoxComponent> | undefined>;
|
|
16266
|
+
constructor();
|
|
16267
|
+
private readonly apply;
|
|
16268
|
+
private readonly levelTitle;
|
|
16269
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AudiencePickerComponent, never>;
|
|
16270
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AudiencePickerComponent, "m-audience-picker, m-one-audience-picker", never, {
|
|
16271
|
+
"audience": {
|
|
16272
|
+
"alias": "audience";
|
|
16273
|
+
"required": false;
|
|
16274
|
+
"isSignal": true;
|
|
16275
|
+
};
|
|
16276
|
+
"source": {
|
|
16277
|
+
"alias": "source";
|
|
16278
|
+
"required": false;
|
|
16279
|
+
"isSignal": true;
|
|
16280
|
+
};
|
|
16281
|
+
"locked": {
|
|
16282
|
+
"alias": "locked";
|
|
16283
|
+
"required": false;
|
|
16284
|
+
"isSignal": true;
|
|
16285
|
+
};
|
|
16286
|
+
"labelled": {
|
|
16287
|
+
"alias": "labelled";
|
|
16288
|
+
"required": false;
|
|
16289
|
+
"isSignal": true;
|
|
16290
|
+
};
|
|
16291
|
+
"disabled": {
|
|
16292
|
+
"alias": "disabled";
|
|
16293
|
+
"required": false;
|
|
16294
|
+
"isSignal": true;
|
|
16295
|
+
};
|
|
16296
|
+
"align": {
|
|
16297
|
+
"alias": "align";
|
|
16298
|
+
"required": false;
|
|
16299
|
+
"isSignal": true;
|
|
16300
|
+
};
|
|
16301
|
+
}, {
|
|
16302
|
+
"audience": "audienceChange";
|
|
16303
|
+
}, never, never, true, never>;
|
|
16304
|
+
}
|
|
16305
|
+
/** Deny by default: an Audience nobody has chosen yet is the Owner's alone. */
|
|
16306
|
+
export declare const DEFAULT_AUDIENCE: Audience;
|
|
16307
|
+
export declare const AUDIENCE_ICONS: Record<AudienceLevel, string>;
|
|
16308
|
+
/** Whether a level is followed by a pick of Users and Groups. */
|
|
16309
|
+
export declare const picksMembers: (level: AudienceLevel) => boolean;
|
|
16310
|
+
/**
|
|
16311
|
+
* Moves an Audience to `level`. A level that picks nobody drops the picks,
|
|
16312
|
+
* so a stored `public` never carries a stale list; switching between `with`
|
|
16313
|
+
* and `without` keeps them, since the same people are usually meant.
|
|
16314
|
+
*/
|
|
16315
|
+
export declare const withLevel: (audience: Audience, level: AudienceLevel) => Audience;
|
|
16316
|
+
export declare const toggleUid: (audience: Audience, uid: string) => Audience;
|
|
16317
|
+
export declare const toggleGroup: (audience: Audience, groupId: string) => Audience;
|
|
16318
|
+
/** How many Users and Groups an Audience names. */
|
|
16319
|
+
export declare const pickCount: (audience: Audience) => number;
|
|
16320
|
+
export type { Accordion, AccordionGroup, AccordionVariant, AppCardData, AppCardInputs, AppCardVariant, AppManifest, AppTileData, AssetOption, Audience, AudienceLevel, AudienceMember, AudiencePicker, AuthResult, Badge, 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, GroupKind, Header, HeaderLevel, Icon, KeyValueVariant, LabelSegment, ListConfig, ListContext, ListItem, ListOrientation, ListVariant, MenuItem, MoneySystem, NavInstanceConfig, NavMenuConfig, NavRowsConfig, NavVisibilityConfig, NavVisibleAnswer, NavWidgetConfig, NavWidgetEntry, NavWidgetMap, OverlayWidgetLoader, OverlayWidgetMap, PageChangeEvent, Pagination, PaginationWindow, ResolvedUserTab, SearchChangeEvent, SectionAccordion, SectionAccordionGroup, SectionAccordionGroupContext, SectionAccordionRef, SectionButtonGroupConfig, SectionFilterGroupConfig, SectionHero, SectionHeroVariant, SectionTableAlign, SectionTableColumn, SectionTableConfig, SectionTableDataType, SectionTableSort, SectionTableSortDirection, 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, TextOrNumberInput, Timeline, TimelineItem, TreeGridCellClickEvent, TreeGridLoadChildrenEvent, TreeGridRow, TreeGridRowSelectEvent, TreeGridToggleEvent, User };
|