@magmonium/one 0.2.80 → 0.2.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{magmonium-one-image-editor-DleCJcan.mjs → magmonium-one-image-editor-aBl2dVEc.mjs} +2 -2
- package/fesm2022/{magmonium-one-image-editor-DleCJcan.mjs.map → magmonium-one-image-editor-aBl2dVEc.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-magmonium-one-DpJYXHAK.mjs → magmonium-one-magmonium-one-CWtMvVOS.mjs} +370 -22
- package/fesm2022/magmonium-one-magmonium-one-CWtMvVOS.mjs.map +1 -0
- package/fesm2022/{magmonium-one-otp-6WQxmRKG.mjs → magmonium-one-otp-B-oUlDWY.mjs} +2 -2
- package/fesm2022/{magmonium-one-otp-6WQxmRKG.mjs.map → magmonium-one-otp-B-oUlDWY.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-49sBxeSV.mjs → magmonium-one-password-7gmB_RWb.mjs} +2 -2
- package/fesm2022/{magmonium-one-password-49sBxeSV.mjs.map → magmonium-one-password-7gmB_RWb.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-toggle-Ds_jl5Lz.mjs → magmonium-one-toggle-DL3lH7Xo.mjs} +2 -2
- package/fesm2022/{magmonium-one-toggle-Ds_jl5Lz.mjs.map → magmonium-one-toggle-DL3lH7Xo.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +152 -4
- package/fesm2022/magmonium-one-magmonium-one-DpJYXHAK.mjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, inject, Injectable, signal, computed, DestroyRef, DOCUMENT, ApplicationRef, RendererFactory2, createComponent, EnvironmentInjector, Pipe, ChangeDetectorRef, untracked, ElementRef, afterNextRender, input, ChangeDetectionStrategy, Component, effect, Injector, reflectComponentType, model, HostListener, Renderer2, Directive, output, viewChild, ViewEncapsulation, forwardRef, contentChild, TemplateRef, ViewContainerRef, inputBinding, outputBinding, linkedSignal, afterRenderEffect, runInInjectionContext, Input, booleanAttribute, HostAttributeToken, EventEmitter, Output, ViewChild, ContentChild, provideZonelessChangeDetection, makeEnvironmentProviders, HostBinding, provideAppInitializer, provideBrowserGlobalErrorListeners, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
3
3
|
import { HttpClient, HttpParams, provideHttpClient, withFetch, withInterceptors } from '@angular/common/http';
|
|
4
|
-
import { firstValueFrom, of, tap, catchError, throwError, shareReplay, finalize, map, forkJoin, Observable, pipe, interval, fromEvent, switchMap as switchMap$1, filter, EMPTY, Subject, combineLatest, race, take, from } from 'rxjs';
|
|
4
|
+
import { firstValueFrom, of, tap, catchError, throwError, shareReplay, finalize, map, forkJoin, Observable, pipe, interval, fromEvent, switchMap as switchMap$1, filter, EMPTY, Subject, combineLatest, race, take, from, startWith } from 'rxjs';
|
|
5
5
|
import { rxResource, toObservable, toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
6
|
import { signalStore, withState, withMethods, patchState, withHooks, withComputed, withProps } from '@ngrx/signals';
|
|
7
7
|
import { rxMethod } from '@ngrx/signals/rxjs-interop';
|
|
@@ -3479,6 +3479,9 @@ function isNavRowsConfig(entry) {
|
|
|
3479
3479
|
function isNavInstanceConfig(entry) {
|
|
3480
3480
|
return typeof entry === 'object' && 'navInstance' in entry;
|
|
3481
3481
|
}
|
|
3482
|
+
function isNavVisibilityConfig(entry) {
|
|
3483
|
+
return typeof entry === 'object' && 'navVisible' in entry;
|
|
3484
|
+
}
|
|
3482
3485
|
/**
|
|
3483
3486
|
* Multi-provided, and resolved **last-wins**: the library provides its own
|
|
3484
3487
|
* Platform Nav panels first so an app registering at the same NavId replaces
|
|
@@ -3696,6 +3699,13 @@ const unfetchedPlatformNav = (navId) => {
|
|
|
3696
3699
|
: undefined;
|
|
3697
3700
|
};
|
|
3698
3701
|
|
|
3702
|
+
/**
|
|
3703
|
+
* No Nav hidden — the shape every caller predating [NavVisibilityConfig] still
|
|
3704
|
+
* has. Frozen and shared rather than minted per call: the default sits on four
|
|
3705
|
+
* signatures, and a fresh Set on each would make two calls with the same
|
|
3706
|
+
* arguments produce values a memo could not tell apart.
|
|
3707
|
+
*/
|
|
3708
|
+
const EMPTY_HIDDEN = new Set();
|
|
3699
3709
|
const emptyResult = () => ({
|
|
3700
3710
|
breadcrumb: { header: { label: '', id: '' }, trail: [] },
|
|
3701
3711
|
navMenus: [],
|
|
@@ -3824,9 +3834,20 @@ const drawsRows = (childId, dynamicRows) => {
|
|
|
3824
3834
|
const resolved = dynamicRows[childId];
|
|
3825
3835
|
return !!resolved && (resolved.rows.length > 0 || !!resolved.loading);
|
|
3826
3836
|
};
|
|
3827
|
-
const menuChildIds = (navId, navMap, dynamicRows = {}, instances = {}
|
|
3837
|
+
const menuChildIds = (navId, navMap, dynamicRows = {}, instances = {},
|
|
3838
|
+
// NavIds a NavVisibilityConfig answered no — or has not answered yet — for.
|
|
3839
|
+
// A set rather than a predicate: the answers are resolved once per read of
|
|
3840
|
+
// the widget maps, and this walk is called from four places that would
|
|
3841
|
+
// otherwise each resolve them again.
|
|
3842
|
+
hidden = EMPTY_HIDDEN) => childIdsOf(navId, navMap).flatMap((childId) => {
|
|
3843
|
+
// Hidden first, and before the Default Nav descent: a hidden parent takes
|
|
3844
|
+
// its children with it, which is the same cascade the route guard walks —
|
|
3845
|
+
// a row spliced out of a panel whose children still listed beneath it
|
|
3846
|
+
// would be the panel that looks correct and is not.
|
|
3847
|
+
if (hidden.has(childId))
|
|
3848
|
+
return [];
|
|
3828
3849
|
if (isDefaultNav(childId))
|
|
3829
|
-
return menuChildIds(childId, navMap, dynamicRows, instances);
|
|
3850
|
+
return menuChildIds(childId, navMap, dynamicRows, instances, hidden);
|
|
3830
3851
|
if (navMap[childId]?.presentation === 'dynamic') {
|
|
3831
3852
|
if (drawsRows(childId, dynamicRows))
|
|
3832
3853
|
return [childId];
|
|
@@ -3847,10 +3868,10 @@ const menuChildIds = (navId, navMap, dynamicRows = {}, instances = {}) => childI
|
|
|
3847
3868
|
* list the User moved through and the row they are on is the one marked
|
|
3848
3869
|
* active. Root is the floor: its own children are the last list there is.
|
|
3849
3870
|
*/
|
|
3850
|
-
const navMenuOwnerId = (navId, navMap, hasOwnContent = false, dynamicRows = {}, instances = {}) => {
|
|
3871
|
+
const navMenuOwnerId = (navId, navMap, hasOwnContent = false, dynamicRows = {}, instances = {}, hidden = EMPTY_HIDDEN) => {
|
|
3851
3872
|
const visible = visibleNavId(navId);
|
|
3852
3873
|
if (visible === ROOT_NAV$1 ||
|
|
3853
|
-
menuChildIds(visible, navMap, dynamicRows, instances).length) {
|
|
3874
|
+
menuChildIds(visible, navMap, dynamicRows, instances, hidden).length) {
|
|
3854
3875
|
return visible;
|
|
3855
3876
|
}
|
|
3856
3877
|
// A panel that answers with a widget of its own keeps its own title —
|
|
@@ -3865,7 +3886,7 @@ const navMenuOwnerId = (navId, navMap, hasOwnContent = false, dynamicRows = {},
|
|
|
3865
3886
|
// than the one we are on — a mistitled empty panel is worse than a titled one.
|
|
3866
3887
|
for (let ancestor = parentNavId(visible); ancestor; ancestor = parentNavId(ancestor)) {
|
|
3867
3888
|
const owner = visibleNavId(ancestor);
|
|
3868
|
-
if (menuChildIds(owner, navMap, dynamicRows, instances).length)
|
|
3889
|
+
if (menuChildIds(owner, navMap, dynamicRows, instances, hidden).length)
|
|
3869
3890
|
return owner;
|
|
3870
3891
|
if (owner === ROOT_NAV$1)
|
|
3871
3892
|
break;
|
|
@@ -3885,7 +3906,7 @@ const navMenuOwnerId = (navId, navMap, hasOwnContent = false, dynamicRows = {},
|
|
|
3885
3906
|
* falling through to the static siblings around it would show a panel that
|
|
3886
3907
|
* looks correct and is not.
|
|
3887
3908
|
*/
|
|
3888
|
-
const buildNavMenus = (navId, navMap, anchor, dynamicRows = {}, routeParams, instances = {}) => menuChildIds(navId, navMap, dynamicRows, instances).flatMap((childId) => {
|
|
3909
|
+
const buildNavMenus = (navId, navMap, anchor, dynamicRows = {}, routeParams, instances = {}, hidden = EMPTY_HIDDEN) => menuChildIds(navId, navMap, dynamicRows, instances, hidden).flatMap((childId) => {
|
|
3889
3910
|
const nav = navMap[childId];
|
|
3890
3911
|
const resolved = nav && dynamicRows[childId];
|
|
3891
3912
|
// The instances above this row, whether it is a row of its own or one of
|
|
@@ -3913,7 +3934,7 @@ const mergeTrail = (derived, override, derivedHeader) => {
|
|
|
3913
3934
|
return { trail, header: override.header ?? derivedHeader };
|
|
3914
3935
|
};
|
|
3915
3936
|
function deriveBreadcrumb(params) {
|
|
3916
|
-
const { navId, navMap, anchor, breadcrumb, navMenu, hasOwnContent, dynamicRows, routeParams, instances, } = params;
|
|
3937
|
+
const { navId, navMap, anchor, breadcrumb, navMenu, hasOwnContent, dynamicRows, routeParams, instances, hidden = EMPTY_HIDDEN, } = params;
|
|
3917
3938
|
if (!navId)
|
|
3918
3939
|
return emptyResult();
|
|
3919
3940
|
/**
|
|
@@ -3962,7 +3983,7 @@ function deriveBreadcrumb(params) {
|
|
|
3962
3983
|
// The header and the trail belong to whichever Nav owns the menu below them:
|
|
3963
3984
|
// on a leaf that is the parent, so the User reads the list they are in with
|
|
3964
3985
|
// their own row marked, rather than a title over an empty panel.
|
|
3965
|
-
const ownerId = navMenuOwnerId(navId, navMap, hasOwnContent, dynamicRows, instances);
|
|
3986
|
+
const ownerId = navMenuOwnerId(navId, navMap, hasOwnContent, dynamicRows, instances, hidden);
|
|
3966
3987
|
// An emitted breadcrumb names the panel it was emitted for. Once the panel
|
|
3967
3988
|
// has been handed up to an ancestor it is no longer that panel, so the
|
|
3968
3989
|
// override would title the ancestor's list after the leaf we left.
|
|
@@ -3992,7 +4013,7 @@ function deriveBreadcrumb(params) {
|
|
|
3992
4013
|
breadcrumb: { trail, header },
|
|
3993
4014
|
navMenus: navMenu?.length && ownPanel
|
|
3994
4015
|
? navMenu
|
|
3995
|
-
: buildNavMenus(ownerId, navMap, anchor, dynamicRows, routeParams, instances),
|
|
4016
|
+
: buildNavMenus(ownerId, navMap, anchor, dynamicRows, routeParams, instances, hidden),
|
|
3996
4017
|
};
|
|
3997
4018
|
}
|
|
3998
4019
|
|
|
@@ -4100,6 +4121,7 @@ const initialState$3 = {
|
|
|
4100
4121
|
keepPanelOnPathChange: false,
|
|
4101
4122
|
panelPushed: false,
|
|
4102
4123
|
navScrolledDown: false,
|
|
4124
|
+
visibilityAnswers: {},
|
|
4103
4125
|
remoteWidgets: {},
|
|
4104
4126
|
navMap: createPlatformNavMap(),
|
|
4105
4127
|
wcConfigMap: {},
|
|
@@ -4130,6 +4152,18 @@ const routeParamsOf = (root) => {
|
|
|
4130
4152
|
}
|
|
4131
4153
|
return params;
|
|
4132
4154
|
};
|
|
4155
|
+
/**
|
|
4156
|
+
* A gate's answer is remembered against the parameters it was asked with, not
|
|
4157
|
+
* against the NavId alone: one gate asked about book `a` and book `b` is two
|
|
4158
|
+
* questions, and remembering only the last would carry `a`'s answer into `b`'s
|
|
4159
|
+
* panel. Sorted so two records with the same pairs key alike whatever order the
|
|
4160
|
+
* Router built them in.
|
|
4161
|
+
*/
|
|
4162
|
+
const visibilityKey = (navId, params) => `${navId}|${Object.keys(params)
|
|
4163
|
+
.sort()
|
|
4164
|
+
.map((name) => `${name}=${params[name]}`)
|
|
4165
|
+
.join('&')}`;
|
|
4166
|
+
const isPromise$1 = (value) => typeof value?.then === 'function';
|
|
4133
4167
|
const murlOf = (root) => {
|
|
4134
4168
|
const raw = root.queryParams?.[MURL_PARAM];
|
|
4135
4169
|
return typeof raw === 'string' ? raw.split(MURL_SEP).filter(Boolean) : [];
|
|
@@ -4268,6 +4302,94 @@ const NavStore = signalStore({ providedIn: 'root' }, withState(initialState$3),
|
|
|
4268
4302
|
}
|
|
4269
4303
|
return out;
|
|
4270
4304
|
}, ...(ngDevMode ? [{ debugName: "dynamicInstances" }] : /* istanbul ignore next */ []));
|
|
4305
|
+
/**
|
|
4306
|
+
* Every registered gate, asked once, with the answer left exactly as it
|
|
4307
|
+
* came back — boolean, `undefined`, or a promise.
|
|
4308
|
+
*
|
|
4309
|
+
* One computed rather than one per consumer: `navVisible` is called here
|
|
4310
|
+
* and nowhere else, so an async gate mints one promise per change of the
|
|
4311
|
+
* signals it reads rather than one per reader.
|
|
4312
|
+
*
|
|
4313
|
+
* Walks the whole map for the reason `dynamicRows` does: a gate may sit on
|
|
4314
|
+
* a Nav the open panel never descends into, and reading each registration
|
|
4315
|
+
* here is what makes the menu recompute when the store behind it fills.
|
|
4316
|
+
*/
|
|
4317
|
+
const visibilityReads = computed(() => {
|
|
4318
|
+
const params = store.routeParams();
|
|
4319
|
+
const out = [];
|
|
4320
|
+
for (const nav of Object.values(store.navMap())) {
|
|
4321
|
+
const hit = entryAt(nav.navId);
|
|
4322
|
+
if (!hit || !isNavVisibilityConfig(hit.entry))
|
|
4323
|
+
continue;
|
|
4324
|
+
out.push({
|
|
4325
|
+
navId: nav.navId,
|
|
4326
|
+
key: visibilityKey(nav.navId, params),
|
|
4327
|
+
answer: hit.entry.navVisible(params),
|
|
4328
|
+
});
|
|
4329
|
+
}
|
|
4330
|
+
return out;
|
|
4331
|
+
}, ...(ngDevMode ? [{ debugName: "visibilityReads" }] : /* istanbul ignore next */ []));
|
|
4332
|
+
/**
|
|
4333
|
+
* The load each registered gate offers, paired with the key it answers
|
|
4334
|
+
* under. Exposed rather than fired here for the reason `instanceLoaders`
|
|
4335
|
+
* is: calling a store method from inside a `computed` writes state during a
|
|
4336
|
+
* read.
|
|
4337
|
+
*
|
|
4338
|
+
* Every gate with a load is listed, not only the ones currently answering
|
|
4339
|
+
* `undefined`. What it names is a CacheMethod — state first, HTTP on a miss
|
|
4340
|
+
* — so firing it warm costs a state read, where gating on the answer being
|
|
4341
|
+
* missing would make the trigger depend on the thing it triggers.
|
|
4342
|
+
*/
|
|
4343
|
+
const visibilityLoaders = computed(() => {
|
|
4344
|
+
const params = store.routeParams();
|
|
4345
|
+
const out = [];
|
|
4346
|
+
for (const nav of Object.values(store.navMap())) {
|
|
4347
|
+
const hit = entryAt(nav.navId);
|
|
4348
|
+
if (!hit || !isNavVisibilityConfig(hit.entry))
|
|
4349
|
+
continue;
|
|
4350
|
+
const load = hit.entry.navVisibleLoad;
|
|
4351
|
+
if (!load)
|
|
4352
|
+
continue;
|
|
4353
|
+
out.push({ key: visibilityKey(nav.navId, params), params, load });
|
|
4354
|
+
}
|
|
4355
|
+
return out;
|
|
4356
|
+
}, ...(ngDevMode ? [{ debugName: "visibilityLoaders" }] : /* istanbul ignore next */ []));
|
|
4357
|
+
/**
|
|
4358
|
+
* The promises nothing has resolved yet. Exposed rather than awaited here:
|
|
4359
|
+
* awaiting inside a `computed` would write state during a read, which is
|
|
4360
|
+
* the same reason `instanceLoaders` hands its calls out instead of firing
|
|
4361
|
+
* them. The hook below settles them.
|
|
4362
|
+
*/
|
|
4363
|
+
const visibilityPending = computed(() => {
|
|
4364
|
+
const settled = store.visibilityAnswers();
|
|
4365
|
+
return visibilityReads()
|
|
4366
|
+
.filter((read) => isPromise$1(read.answer) && !(read.key in settled))
|
|
4367
|
+
.map((read) => ({
|
|
4368
|
+
key: read.key,
|
|
4369
|
+
answer: read.answer,
|
|
4370
|
+
}));
|
|
4371
|
+
}, ...(ngDevMode ? [{ debugName: "visibilityPending" }] : /* istanbul ignore next */ []));
|
|
4372
|
+
/**
|
|
4373
|
+
* Every Nav a gate currently takes out of the menu — one that answered
|
|
4374
|
+
* `false`, one that has not answered at all, and one still asking.
|
|
4375
|
+
*
|
|
4376
|
+
* The unresolved cases hide, which is the half that is not symmetric: a row
|
|
4377
|
+
* flashed in while its gate was still asking leaks the existence of the
|
|
4378
|
+
* thing the gate was written to hide, where a row that appears a tick late
|
|
4379
|
+
* costs nothing. The route guard reads the same registrations and parts
|
|
4380
|
+
* ways here — it *waits*, a Router being able to hold a navigation where a
|
|
4381
|
+
* panel cannot hold a render (nav-visibility-guard.ts).
|
|
4382
|
+
*/
|
|
4383
|
+
const hiddenNavIds = computed(() => {
|
|
4384
|
+
const settled = store.visibilityAnswers();
|
|
4385
|
+
const out = new Set();
|
|
4386
|
+
for (const read of visibilityReads()) {
|
|
4387
|
+
const answer = isPromise$1(read.answer) ? settled[read.key] : read.answer;
|
|
4388
|
+
if (answer !== true)
|
|
4389
|
+
out.add(read.navId);
|
|
4390
|
+
}
|
|
4391
|
+
return out;
|
|
4392
|
+
}, ...(ngDevMode ? [{ debugName: "hiddenNavIds" }] : /* istanbul ignore next */ []));
|
|
4271
4393
|
/**
|
|
4272
4394
|
* The load each registered NavInstanceSource offers, paired with the value
|
|
4273
4395
|
* of the parameter it resolves. Exposed rather than fired here: calling a
|
|
@@ -4342,7 +4464,8 @@ const NavStore = signalStore({ providedIn: 'root' }, withState(initialState$3),
|
|
|
4342
4464
|
const map = store.navMap();
|
|
4343
4465
|
const candidates = widgetNavIds();
|
|
4344
4466
|
const rows = dynamicRows();
|
|
4345
|
-
return (candidates.find((c) => menuChildIds(c, map, rows, dynamicInstances())
|
|
4467
|
+
return (candidates.find((c) => menuChildIds(c, map, rows, dynamicInstances(), hiddenNavIds())
|
|
4468
|
+
.length) ??
|
|
4346
4469
|
// A leaf nothing is registered for is still a Nav the tree knows, and
|
|
4347
4470
|
// that is where the panel belongs: `|settings|app` with no widget hands
|
|
4348
4471
|
// the panel back to *settings*, whose row it is, rather than climbing
|
|
@@ -4360,6 +4483,7 @@ const NavStore = signalStore({ providedIn: 'root' }, withState(initialState$3),
|
|
|
4360
4483
|
anchor: { navId: store.routeNavId() ?? ROOT_NAV$1, path: store.path() },
|
|
4361
4484
|
dynamicRows: dynamicRows(),
|
|
4362
4485
|
instances: dynamicInstances(),
|
|
4486
|
+
hidden: hiddenNavIds(),
|
|
4363
4487
|
routeParams: store.routeParams(),
|
|
4364
4488
|
breadcrumb: menuConfig?.breadcramb?.() ??
|
|
4365
4489
|
(typeof widgetConfig?.breadcramb === 'function'
|
|
@@ -4406,6 +4530,9 @@ const NavStore = signalStore({ providedIn: 'root' }, withState(initialState$3),
|
|
|
4406
4530
|
currentWcConfig,
|
|
4407
4531
|
resolvedNavMenuConfig,
|
|
4408
4532
|
instanceLoaders,
|
|
4533
|
+
hiddenNavIds,
|
|
4534
|
+
visibilityPending,
|
|
4535
|
+
visibilityLoaders,
|
|
4409
4536
|
};
|
|
4410
4537
|
}), withMethods((store) => {
|
|
4411
4538
|
const getNavService = inject(GetNavService);
|
|
@@ -4632,6 +4759,61 @@ const NavStore = signalStore({ providedIn: 'root' }, withState(initialState$3),
|
|
|
4632
4759
|
* would never refresh a name that has gone stale, and would make the
|
|
4633
4760
|
* trigger depend on the thing it triggers.
|
|
4634
4761
|
*/
|
|
4762
|
+
/**
|
|
4763
|
+
* Settles each async gate once and remembers what it said.
|
|
4764
|
+
*
|
|
4765
|
+
* Keyed by NavId *and* parameters, so moving from book `a` to book `b`
|
|
4766
|
+
* asks again while moving between two pages under `a` does not. In
|
|
4767
|
+
* flight is tracked separately from settled: a promise that has not
|
|
4768
|
+
* come back yet must not be re-asked on every recompute, and it is not
|
|
4769
|
+
* in `visibilityAnswers` to say so.
|
|
4770
|
+
*/
|
|
4771
|
+
/**
|
|
4772
|
+
* Fires each gate's CacheMethod once per NavId + parameters, so a cold
|
|
4773
|
+
* deep link fills the state the gate reads. Keyed the same way the
|
|
4774
|
+
* answers are: moving from app `a` to app `b` loads again, moving
|
|
4775
|
+
* between two pages under `a` does not.
|
|
4776
|
+
*/
|
|
4777
|
+
const loadedFor = new Set();
|
|
4778
|
+
effect(() => {
|
|
4779
|
+
const loaders = store.visibilityLoaders();
|
|
4780
|
+
untracked(() => {
|
|
4781
|
+
for (const { key, params, load } of loaders) {
|
|
4782
|
+
if (loadedFor.has(key))
|
|
4783
|
+
continue;
|
|
4784
|
+
loadedFor.add(key);
|
|
4785
|
+
load(params);
|
|
4786
|
+
}
|
|
4787
|
+
});
|
|
4788
|
+
});
|
|
4789
|
+
const askedFor = new Set();
|
|
4790
|
+
effect(() => {
|
|
4791
|
+
const pending = store.visibilityPending();
|
|
4792
|
+
untracked(() => {
|
|
4793
|
+
for (const { key, answer } of pending) {
|
|
4794
|
+
if (askedFor.has(key))
|
|
4795
|
+
continue;
|
|
4796
|
+
askedFor.add(key);
|
|
4797
|
+
answer
|
|
4798
|
+
.then((allowed) => patchState(store, (state) => ({
|
|
4799
|
+
visibilityAnswers: {
|
|
4800
|
+
...state.visibilityAnswers,
|
|
4801
|
+
[key]: allowed === true,
|
|
4802
|
+
},
|
|
4803
|
+
})))
|
|
4804
|
+
// A gate that threw is a gate that did not say yes. Closed
|
|
4805
|
+
// rather than open: the failure mode of the other direction is
|
|
4806
|
+
// showing a row the User may not be allowed to have, which is
|
|
4807
|
+
// the thing the gate exists to prevent.
|
|
4808
|
+
.catch(() => patchState(store, (state) => ({
|
|
4809
|
+
visibilityAnswers: {
|
|
4810
|
+
...state.visibilityAnswers,
|
|
4811
|
+
[key]: false,
|
|
4812
|
+
},
|
|
4813
|
+
})));
|
|
4814
|
+
}
|
|
4815
|
+
});
|
|
4816
|
+
});
|
|
4635
4817
|
const firedFor = new Map();
|
|
4636
4818
|
effect(() => {
|
|
4637
4819
|
const loaders = store.instanceLoaders();
|
|
@@ -7050,7 +7232,7 @@ class SectionFormItemComponent extends ConfigComponent {
|
|
|
7050
7232
|
break;
|
|
7051
7233
|
}
|
|
7052
7234
|
case InputType.TOGGLE: {
|
|
7053
|
-
const { ToggleInputComponent } = await import('./magmonium-one-toggle-
|
|
7235
|
+
const { ToggleInputComponent } = await import('./magmonium-one-toggle-DL3lH7Xo.mjs');
|
|
7054
7236
|
this.createDynamicComponent(seq, ToggleInputComponent, [], true);
|
|
7055
7237
|
break;
|
|
7056
7238
|
}
|
|
@@ -7062,12 +7244,12 @@ class SectionFormItemComponent extends ConfigComponent {
|
|
|
7062
7244
|
break;
|
|
7063
7245
|
}
|
|
7064
7246
|
case InputType.PASSWORD: {
|
|
7065
|
-
const { PasswordInputComponent } = await import('./magmonium-one-password-
|
|
7247
|
+
const { PasswordInputComponent } = await import('./magmonium-one-password-7gmB_RWb.mjs');
|
|
7066
7248
|
this.createDynamicComponent(seq, PasswordInputComponent);
|
|
7067
7249
|
break;
|
|
7068
7250
|
}
|
|
7069
7251
|
case InputType.OTP: {
|
|
7070
|
-
const { OtpInputComponent } = await import('./magmonium-one-otp-
|
|
7252
|
+
const { OtpInputComponent } = await import('./magmonium-one-otp-B-oUlDWY.mjs');
|
|
7071
7253
|
this.createDynamicComponent(seq, OtpInputComponent);
|
|
7072
7254
|
break;
|
|
7073
7255
|
}
|
|
@@ -20970,7 +21152,7 @@ class WrapperInputComponent extends ConfigComponent {
|
|
|
20970
21152
|
break;
|
|
20971
21153
|
}
|
|
20972
21154
|
case InputType.TOGGLE: {
|
|
20973
|
-
const { ToggleInputComponent } = await import('./magmonium-one-toggle-
|
|
21155
|
+
const { ToggleInputComponent } = await import('./magmonium-one-toggle-DL3lH7Xo.mjs');
|
|
20974
21156
|
this.createDynamicComponent(seq, ToggleInputComponent, [], true);
|
|
20975
21157
|
break;
|
|
20976
21158
|
}
|
|
@@ -20982,12 +21164,12 @@ class WrapperInputComponent extends ConfigComponent {
|
|
|
20982
21164
|
break;
|
|
20983
21165
|
}
|
|
20984
21166
|
case InputType.PASSWORD: {
|
|
20985
|
-
const { PasswordInputComponent } = await import('./magmonium-one-password-
|
|
21167
|
+
const { PasswordInputComponent } = await import('./magmonium-one-password-7gmB_RWb.mjs');
|
|
20986
21168
|
this.createDynamicComponent(seq, PasswordInputComponent);
|
|
20987
21169
|
break;
|
|
20988
21170
|
}
|
|
20989
21171
|
case InputType.OTP: {
|
|
20990
|
-
const { OtpInputComponent } = await import('./magmonium-one-otp-
|
|
21172
|
+
const { OtpInputComponent } = await import('./magmonium-one-otp-B-oUlDWY.mjs');
|
|
20991
21173
|
this.createDynamicComponent(seq, OtpInputComponent);
|
|
20992
21174
|
break;
|
|
20993
21175
|
}
|
|
@@ -22682,7 +22864,7 @@ class FileUploadInputComponent extends BaseInputComponent {
|
|
|
22682
22864
|
const modalStore = this.modalStore;
|
|
22683
22865
|
if (!modalStore)
|
|
22684
22866
|
return undefined;
|
|
22685
|
-
const { ImageEditorComponent } = await import('./magmonium-one-image-editor-
|
|
22867
|
+
const { ImageEditorComponent } = await import('./magmonium-one-image-editor-aBl2dVEc.mjs');
|
|
22686
22868
|
const ratio = String(this.config()?.ratio ?? '');
|
|
22687
22869
|
return new Promise((resolve) => {
|
|
22688
22870
|
const modalRef = new ModalRef();
|
|
@@ -22830,7 +23012,7 @@ class FileUploadInputComponent extends BaseInputComponent {
|
|
|
22830
23012
|
}
|
|
22831
23013
|
}
|
|
22832
23014
|
}
|
|
22833
|
-
`, isInline: true, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block}.drop-zone{display:flex;align-items:center;background:var(--m-background);height:calc(var(--input-size, 1em) * 2);min-height:calc(var(--input-size, 1em) * 2);border-width:max(1px,var(--input-size, 1em) * .0625);border-radius:calc(var(--input-size, 1em) * .4);padding:calc(var(--input-size, 1em) * .5) calc(var(--input-size, 1em) * .5);gap:calc(var(--input-size, 1em) * .375);font-size:var(--input-size, 1em);border-width:var(--m-input-border-width, 2px);border-radius:var(--m-input-radius, 4px);height:calc(var(--input-size, 1em) * 2.25);min-height:calc(var(--input-size, 1em) * 2.25);padding-top:0;padding-bottom:0;border-color:var(--m-input-color, var(--m-mm));transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease,opacity .2s ease}.drop-zone:hover:not(:disabled){background-color:color-mix(in srgb,var(--m-input-color, var(--m-mm)) 6%,transparent)}.drop-zone:disabled{opacity:.6;cursor:not-allowed}.drop-zone{border-style:solid;backdrop-filter:var(--m-text-input-backdrop-filter, none);-webkit-backdrop-filter:var(--m-text-input-backdrop-filter, none);box-shadow:var(--m-text-input-shadow, none)}.drop-zone:has(>m-one-button,>m-button,>.input-indicator,>.input-suffix,>m-icon:last-child){padding-right:0}.drop-zone:focus-visible:not(:disabled),.drop-zone:focus-within:not(:disabled){border-color:var(--m-text-input-focus-border, color-mix(in srgb, var(--m-focus) 45%, transparent));box-shadow:var(--m-text-input-shadow, none)}.drop-zone:has(.error){border-color:var(--m-error);box-shadow:none}.drop-zone:has(.error):focus-within{border-color:var(--m-error);box-shadow:none}.drop-zone input,.drop-zone textarea{flex:1;border:none;outline:none;background:transparent;color:var(--m-text);font-family:inherit;font-size:inherit;padding:0}.drop-zone input:focus,.drop-zone textarea:focus{border-color:transparent;box-shadow:none}.drop-zone{flex-direction:column;align-items:stretch;justify-content:center;width:100%;height:auto;min-height:calc(var(--m-textarea-input-height, 4.5em) + 1.5em);padding:.75em;border-style:dashed;cursor:pointer}.drop-zone--dragging{border-color:var(--m-focus);background:var(--m-focus-bg)}.drop-zone--locked{cursor:not-allowed;opacity:.6}.drop-zone.error{border-color:var(--m-error)}.drop-zone__empty{display:flex;flex-direction:column;align-items:center;gap:.5em;color:var(--m-mm);text-align:center}.file-tiles{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.75em}.file-tiles--below{margin-top:.75em}.file-tile{--m-file-tile-size: 150px;display:flex;flex-direction:column;gap:.25em;width:var(--m-file-tile-size);max-width:100%}.file-tile__box{position:relative;width:100%;aspect-ratio:1;border:1px solid var(--m-border);border-radius:var(--m-input-radius, 4px);background:var(--m-background-lite);overflow:hidden}.file-tile__preview{display:block;width:100%;height:100%;object-fit:cover}.file-tile__type{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5em;height:100%;color:var(--m-mm)}.file-tile__kind{font-weight:600;letter-spacing:.05em}.file-tile__remove{position:absolute;top:.25em;right:.25em;display:flex;border-radius:50%;background:var(--m-background)}.file-tile__name{text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.
|
|
23015
|
+
`, isInline: true, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block}.drop-zone{display:flex;align-items:center;background:var(--m-background);height:calc(var(--input-size, 1em) * 2);min-height:calc(var(--input-size, 1em) * 2);border-width:max(1px,var(--input-size, 1em) * .0625);border-radius:calc(var(--input-size, 1em) * .4);padding:calc(var(--input-size, 1em) * .5) calc(var(--input-size, 1em) * .5);gap:calc(var(--input-size, 1em) * .375);font-size:var(--input-size, 1em);border-width:var(--m-input-border-width, 2px);border-radius:var(--m-input-radius, 4px);height:calc(var(--input-size, 1em) * 2.25);min-height:calc(var(--input-size, 1em) * 2.25);padding-top:0;padding-bottom:0;border-color:var(--m-input-color, var(--m-mm));transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease,opacity .2s ease}.drop-zone:hover:not(:disabled){background-color:color-mix(in srgb,var(--m-input-color, var(--m-mm)) 6%,transparent)}.drop-zone:disabled{opacity:.6;cursor:not-allowed}.drop-zone{border-style:solid;backdrop-filter:var(--m-text-input-backdrop-filter, none);-webkit-backdrop-filter:var(--m-text-input-backdrop-filter, none);box-shadow:var(--m-text-input-shadow, none)}.drop-zone:has(>m-one-button,>m-button,>.input-indicator,>.input-suffix,>m-icon:last-child){padding-right:0}.drop-zone:focus-visible:not(:disabled),.drop-zone:focus-within:not(:disabled){border-color:var(--m-text-input-focus-border, color-mix(in srgb, var(--m-focus) 45%, transparent));box-shadow:var(--m-text-input-shadow, none)}.drop-zone:has(.error){border-color:var(--m-error);box-shadow:none}.drop-zone:has(.error):focus-within{border-color:var(--m-error);box-shadow:none}.drop-zone input,.drop-zone textarea{flex:1;border:none;outline:none;background:transparent;color:var(--m-text);font-family:inherit;font-size:inherit;padding:0}.drop-zone input:focus,.drop-zone textarea:focus{border-color:transparent;box-shadow:none}.drop-zone{flex-direction:column;align-items:stretch;justify-content:center;width:100%;height:auto;min-height:calc(var(--m-textarea-input-height, 4.5em) + 1.5em);padding:.75em;border-style:dashed;cursor:pointer}.drop-zone--dragging{border-color:var(--m-focus);background:var(--m-focus-bg)}.drop-zone--locked{cursor:not-allowed;opacity:.6}.drop-zone.error{border-color:var(--m-error)}.drop-zone__empty{display:flex;flex-direction:column;align-items:center;gap:.5em;color:var(--m-mm);text-align:center}.file-tiles{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.75em}.file-tiles--below{margin-top:.75em}.file-tile{--m-file-tile-size: 150px;display:flex;flex-direction:column;gap:.25em;width:var(--m-file-tile-size);max-width:100%}.file-tile__box{position:relative;width:100%;aspect-ratio:1;border:1px solid var(--m-border);border-radius:var(--m-input-radius, 4px);background:var(--m-background-lite);overflow:hidden}.file-tile__preview{display:block;width:100%;height:100%;object-fit:cover}.file-tile__type{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5em;height:100%;color:var(--m-mm);--m-icon-size: 2.5em}.file-tile__kind{font-weight:600;letter-spacing:.05em}.file-tile__remove{position:absolute;top:.25em;right:.25em;display:flex;border-radius:50%;background:var(--m-background)}.file-tile__name{text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7em;color:var(--m-text)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "m-button,m-one-button", inputs: ["config", "color", "labelClass", "fullWidth", "nav", "navParams", "href", "disabled", "variant", "name", "baseUrl", "one", "remote", "label", "noTranslate", "params", "noNative", "icon", "isRightIcon", "iconOnly", "stacked", "imgSrc", "nonClickable", "inverted", "isSubmit", "tabindex"], outputs: ["configChange", "clicked"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "component", type: LabelComponent, selector: "m-label", inputs: ["for", "placeholder", "params", "required", "disabled", "color"] }, { kind: "component", type: TextOutputComponent, selector: "m-text-output", inputs: ["config", "align", "variant", "color", "fontWeight", "label", "noTranslate", "params"], outputs: ["configChange", "clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
22834
23016
|
}
|
|
22835
23017
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FileUploadInputComponent, decorators: [{
|
|
22836
23018
|
type: Component,
|
|
@@ -22932,7 +23114,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
22932
23114
|
IconComponent,
|
|
22933
23115
|
LabelComponent,
|
|
22934
23116
|
TextOutputComponent,
|
|
22935
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block}.drop-zone{display:flex;align-items:center;background:var(--m-background);height:calc(var(--input-size, 1em) * 2);min-height:calc(var(--input-size, 1em) * 2);border-width:max(1px,var(--input-size, 1em) * .0625);border-radius:calc(var(--input-size, 1em) * .4);padding:calc(var(--input-size, 1em) * .5) calc(var(--input-size, 1em) * .5);gap:calc(var(--input-size, 1em) * .375);font-size:var(--input-size, 1em);border-width:var(--m-input-border-width, 2px);border-radius:var(--m-input-radius, 4px);height:calc(var(--input-size, 1em) * 2.25);min-height:calc(var(--input-size, 1em) * 2.25);padding-top:0;padding-bottom:0;border-color:var(--m-input-color, var(--m-mm));transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease,opacity .2s ease}.drop-zone:hover:not(:disabled){background-color:color-mix(in srgb,var(--m-input-color, var(--m-mm)) 6%,transparent)}.drop-zone:disabled{opacity:.6;cursor:not-allowed}.drop-zone{border-style:solid;backdrop-filter:var(--m-text-input-backdrop-filter, none);-webkit-backdrop-filter:var(--m-text-input-backdrop-filter, none);box-shadow:var(--m-text-input-shadow, none)}.drop-zone:has(>m-one-button,>m-button,>.input-indicator,>.input-suffix,>m-icon:last-child){padding-right:0}.drop-zone:focus-visible:not(:disabled),.drop-zone:focus-within:not(:disabled){border-color:var(--m-text-input-focus-border, color-mix(in srgb, var(--m-focus) 45%, transparent));box-shadow:var(--m-text-input-shadow, none)}.drop-zone:has(.error){border-color:var(--m-error);box-shadow:none}.drop-zone:has(.error):focus-within{border-color:var(--m-error);box-shadow:none}.drop-zone input,.drop-zone textarea{flex:1;border:none;outline:none;background:transparent;color:var(--m-text);font-family:inherit;font-size:inherit;padding:0}.drop-zone input:focus,.drop-zone textarea:focus{border-color:transparent;box-shadow:none}.drop-zone{flex-direction:column;align-items:stretch;justify-content:center;width:100%;height:auto;min-height:calc(var(--m-textarea-input-height, 4.5em) + 1.5em);padding:.75em;border-style:dashed;cursor:pointer}.drop-zone--dragging{border-color:var(--m-focus);background:var(--m-focus-bg)}.drop-zone--locked{cursor:not-allowed;opacity:.6}.drop-zone.error{border-color:var(--m-error)}.drop-zone__empty{display:flex;flex-direction:column;align-items:center;gap:.5em;color:var(--m-mm);text-align:center}.file-tiles{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.75em}.file-tiles--below{margin-top:.75em}.file-tile{--m-file-tile-size: 150px;display:flex;flex-direction:column;gap:.25em;width:var(--m-file-tile-size);max-width:100%}.file-tile__box{position:relative;width:100%;aspect-ratio:1;border:1px solid var(--m-border);border-radius:var(--m-input-radius, 4px);background:var(--m-background-lite);overflow:hidden}.file-tile__preview{display:block;width:100%;height:100%;object-fit:cover}.file-tile__type{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5em;height:100%;color:var(--m-mm)}.file-tile__kind{font-weight:600;letter-spacing:.05em}.file-tile__remove{position:absolute;top:.25em;right:.25em;display:flex;border-radius:50%;background:var(--m-background)}.file-tile__name{text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.
|
|
23117
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block}.drop-zone{display:flex;align-items:center;background:var(--m-background);height:calc(var(--input-size, 1em) * 2);min-height:calc(var(--input-size, 1em) * 2);border-width:max(1px,var(--input-size, 1em) * .0625);border-radius:calc(var(--input-size, 1em) * .4);padding:calc(var(--input-size, 1em) * .5) calc(var(--input-size, 1em) * .5);gap:calc(var(--input-size, 1em) * .375);font-size:var(--input-size, 1em);border-width:var(--m-input-border-width, 2px);border-radius:var(--m-input-radius, 4px);height:calc(var(--input-size, 1em) * 2.25);min-height:calc(var(--input-size, 1em) * 2.25);padding-top:0;padding-bottom:0;border-color:var(--m-input-color, var(--m-mm));transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease,opacity .2s ease}.drop-zone:hover:not(:disabled){background-color:color-mix(in srgb,var(--m-input-color, var(--m-mm)) 6%,transparent)}.drop-zone:disabled{opacity:.6;cursor:not-allowed}.drop-zone{border-style:solid;backdrop-filter:var(--m-text-input-backdrop-filter, none);-webkit-backdrop-filter:var(--m-text-input-backdrop-filter, none);box-shadow:var(--m-text-input-shadow, none)}.drop-zone:has(>m-one-button,>m-button,>.input-indicator,>.input-suffix,>m-icon:last-child){padding-right:0}.drop-zone:focus-visible:not(:disabled),.drop-zone:focus-within:not(:disabled){border-color:var(--m-text-input-focus-border, color-mix(in srgb, var(--m-focus) 45%, transparent));box-shadow:var(--m-text-input-shadow, none)}.drop-zone:has(.error){border-color:var(--m-error);box-shadow:none}.drop-zone:has(.error):focus-within{border-color:var(--m-error);box-shadow:none}.drop-zone input,.drop-zone textarea{flex:1;border:none;outline:none;background:transparent;color:var(--m-text);font-family:inherit;font-size:inherit;padding:0}.drop-zone input:focus,.drop-zone textarea:focus{border-color:transparent;box-shadow:none}.drop-zone{flex-direction:column;align-items:stretch;justify-content:center;width:100%;height:auto;min-height:calc(var(--m-textarea-input-height, 4.5em) + 1.5em);padding:.75em;border-style:dashed;cursor:pointer}.drop-zone--dragging{border-color:var(--m-focus);background:var(--m-focus-bg)}.drop-zone--locked{cursor:not-allowed;opacity:.6}.drop-zone.error{border-color:var(--m-error)}.drop-zone__empty{display:flex;flex-direction:column;align-items:center;gap:.5em;color:var(--m-mm);text-align:center}.file-tiles{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.75em}.file-tiles--below{margin-top:.75em}.file-tile{--m-file-tile-size: 150px;display:flex;flex-direction:column;gap:.25em;width:var(--m-file-tile-size);max-width:100%}.file-tile__box{position:relative;width:100%;aspect-ratio:1;border:1px solid var(--m-border);border-radius:var(--m-input-radius, 4px);background:var(--m-background-lite);overflow:hidden}.file-tile__preview{display:block;width:100%;height:100%;object-fit:cover}.file-tile__type{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5em;height:100%;color:var(--m-mm);--m-icon-size: 2.5em}.file-tile__kind{font-weight:600;letter-spacing:.05em}.file-tile__remove{position:absolute;top:.25em;right:.25em;display:flex;border-radius:50%;background:var(--m-background)}.file-tile__name{text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7em;color:var(--m-text)}\n"] }]
|
|
22936
23118
|
}], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
|
|
22937
23119
|
|
|
22938
23120
|
var fileUploadInput = /*#__PURE__*/Object.freeze({
|
|
@@ -30313,6 +30495,172 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
30313
30495
|
args: ['click', ['$event']]
|
|
30314
30496
|
}] } });
|
|
30315
30497
|
|
|
30498
|
+
/**
|
|
30499
|
+
* The route half of a [NavVisibilityRule] (m-one-ui CONTEXT.md). One guard for
|
|
30500
|
+
* the whole tree rather than one per rule: every emitted route already carries
|
|
30501
|
+
* `data: { navId }` (libs/one ADR 0014), and a NavId *is* its ancestry, so the
|
|
30502
|
+
* guard walks up from the route it was stamped on and asks every ancestor's
|
|
30503
|
+
* registration in turn.
|
|
30504
|
+
*
|
|
30505
|
+
* That ancestry walk is why the cascade works at all. Routes are emitted flat
|
|
30506
|
+
* until a Screen draws a RouterOutletControl, so a child Nav is routinely a
|
|
30507
|
+
* *sibling* route rather than a nested one — a `canActivate` on the parent
|
|
30508
|
+
* entry would guard nothing below it. Walking the id covers both shapes with
|
|
30509
|
+
* one stamp and no knowledge of which one the emitter chose.
|
|
30510
|
+
*
|
|
30511
|
+
* It **waits** where the menu hides. `navVisible` answering `undefined` means
|
|
30512
|
+
* the state the gate reads has not arrived, and a Router can hold a navigation
|
|
30513
|
+
* where a panel cannot hold a render: refusing on `undefined` would bounce
|
|
30514
|
+
* every cold deep link into a guarded page, which is the whole case the gate's
|
|
30515
|
+
* arguments are resolved before it is called for.
|
|
30516
|
+
*
|
|
30517
|
+
* It also **fires the loads itself, and waits for them** before it asks any
|
|
30518
|
+
* gate. The nav store fires them too, but a deep link is precisely the
|
|
30519
|
+
* navigation that happens before any panel has drawn — the store's own effect
|
|
30520
|
+
* has not run for this address yet, and waiting for it would be waiting for the
|
|
30521
|
+
* thing the wait is supposed to end. A load answers a promise that settles when
|
|
30522
|
+
* its request is done, and a gate is only asked after every one has: a gate
|
|
30523
|
+
* reading a map that already holds *other* keys answers `false`, not
|
|
30524
|
+
* `undefined`, and believing it before the load landed would bounce a
|
|
30525
|
+
* reachable page. A CacheMethod shares one in-flight request per argument set,
|
|
30526
|
+
* so the two firings cost one request between them.
|
|
30527
|
+
*
|
|
30528
|
+
* And it **awaits** where the menu remembers. A gate may be `async` — an
|
|
30529
|
+
* entitlement is routinely a call the client has to make — and awaiting it is
|
|
30530
|
+
* the plainest thing a `canActivate` does. The panel cannot: it has already
|
|
30531
|
+
* rendered, so the nav store settles the same promise once and keeps the
|
|
30532
|
+
* answer.
|
|
30533
|
+
*/
|
|
30534
|
+
/**
|
|
30535
|
+
* Every path parameter on the chain being activated, deepest last — the same
|
|
30536
|
+
* merge `NavStore` does on a finished navigation, redone here because the
|
|
30537
|
+
* guard runs *before* that. Two dynamic Navs on one path each contribute their
|
|
30538
|
+
* own (`:id/:issueId`), and only the chain holds both.
|
|
30539
|
+
*/
|
|
30540
|
+
const paramsOf = (root) => {
|
|
30541
|
+
const params = {};
|
|
30542
|
+
for (let r = root; r; r = r.firstChild) {
|
|
30543
|
+
for (const [key, value] of Object.entries(r.params ?? {})) {
|
|
30544
|
+
if (typeof value === 'string')
|
|
30545
|
+
params[key] = value;
|
|
30546
|
+
}
|
|
30547
|
+
}
|
|
30548
|
+
return params;
|
|
30549
|
+
};
|
|
30550
|
+
/**
|
|
30551
|
+
* The NavId this route was stamped with, read off the deepest entry that
|
|
30552
|
+
* carries one. `data` inherits down the chain, so a child route in a Screen's
|
|
30553
|
+
* own router file reads its own stamp and not its host's.
|
|
30554
|
+
*/
|
|
30555
|
+
const navIdOf = (route) => {
|
|
30556
|
+
const stamped = route.data?.['navId'];
|
|
30557
|
+
return typeof stamped === 'string' && stamped ? stamped : undefined;
|
|
30558
|
+
};
|
|
30559
|
+
/**
|
|
30560
|
+
* Last-wins across the multi-provided maps, matching how `NavStore` resolves a
|
|
30561
|
+
* registration: the library provides its Platform panels first so an app
|
|
30562
|
+
* registering at the same NavId replaces them (ADR 0016).
|
|
30563
|
+
*/
|
|
30564
|
+
const entryAt = (maps, navId) => {
|
|
30565
|
+
for (let i = maps.length - 1; i >= 0; i--) {
|
|
30566
|
+
const entry = maps[i]()[navId];
|
|
30567
|
+
if (entry !== undefined)
|
|
30568
|
+
return entry;
|
|
30569
|
+
}
|
|
30570
|
+
return undefined;
|
|
30571
|
+
};
|
|
30572
|
+
const navVisibilityGuard = (route, state) => {
|
|
30573
|
+
const router = inject(Router);
|
|
30574
|
+
// Multi-provided, so the injected value is the array of maps and not one —
|
|
30575
|
+
// the same cast `NavStore` makes, and last-wins for the same reason: the
|
|
30576
|
+
// library provides its Platform panels first (ADR 0016).
|
|
30577
|
+
const maps = inject(NAV_WIDGET_MAP, {
|
|
30578
|
+
optional: true,
|
|
30579
|
+
}) ?? [];
|
|
30580
|
+
const navId = navIdOf(route);
|
|
30581
|
+
if (!navId)
|
|
30582
|
+
return of(true);
|
|
30583
|
+
const params = paramsOf(state.root);
|
|
30584
|
+
/**
|
|
30585
|
+
* Every gate at or above, and its load. Read once and untracked: firing a
|
|
30586
|
+
* store method inside the `computed` below would write state during a read,
|
|
30587
|
+
* and the loads are about *starting* the fetch rather than about what the
|
|
30588
|
+
* gates then say.
|
|
30589
|
+
*/
|
|
30590
|
+
const gates = navIdChain(navId).flatMap((id) => {
|
|
30591
|
+
const entry = entryAt(maps, id);
|
|
30592
|
+
return entry && isNavVisibilityConfig(entry) ? [entry] : [];
|
|
30593
|
+
});
|
|
30594
|
+
// Fired together, awaited together: the loads are independent. A load that
|
|
30595
|
+
// throws or rejects ends its wait rather than the navigation — the gate is
|
|
30596
|
+
// still asked, and decides on whatever state there is.
|
|
30597
|
+
const loads = gates.flatMap((gate) => {
|
|
30598
|
+
try {
|
|
30599
|
+
const started = gate.navVisibleLoad?.(params);
|
|
30600
|
+
return isThenable(started)
|
|
30601
|
+
? [Promise.resolve(started).catch(() => undefined)]
|
|
30602
|
+
: [];
|
|
30603
|
+
}
|
|
30604
|
+
catch {
|
|
30605
|
+
return [];
|
|
30606
|
+
}
|
|
30607
|
+
});
|
|
30608
|
+
/**
|
|
30609
|
+
* Every rule at or above this route, as one answer. `false` the moment any
|
|
30610
|
+
* ancestor refuses — a subtree is unreachable when its root is — and
|
|
30611
|
+
* `undefined` while any of them is still unresolved, so the wait below is a
|
|
30612
|
+
* wait for *all* of them rather than for the first one that happened to
|
|
30613
|
+
* answer.
|
|
30614
|
+
*/
|
|
30615
|
+
const verdict = computed(() => {
|
|
30616
|
+
let unresolved = false;
|
|
30617
|
+
const asked = [];
|
|
30618
|
+
for (const gate of gates) {
|
|
30619
|
+
const answer = gate.navVisible(params);
|
|
30620
|
+
// A synchronous `false` settles it whatever the rest say, and without
|
|
30621
|
+
// firing the requests the asynchronous ones would have made.
|
|
30622
|
+
if (answer === false)
|
|
30623
|
+
return false;
|
|
30624
|
+
if (answer === undefined)
|
|
30625
|
+
unresolved = true;
|
|
30626
|
+
else if (isPromise(answer))
|
|
30627
|
+
asked.push(answer);
|
|
30628
|
+
}
|
|
30629
|
+
// Still missing an argument: say nothing yet, so the wait below holds
|
|
30630
|
+
// rather than the gate reading an absent value as a refusal.
|
|
30631
|
+
if (unresolved)
|
|
30632
|
+
return undefined;
|
|
30633
|
+
if (!asked.length)
|
|
30634
|
+
return true;
|
|
30635
|
+
// Every gate at or above has to say yes, so the whole chain is one promise
|
|
30636
|
+
// — and `all` rather than a loop of awaits, the requests being independent.
|
|
30637
|
+
return Promise.all(asked).then((answers) => answers.every((answer) => answer === true));
|
|
30638
|
+
}, ...(ngDevMode ? [{ debugName: "verdict" }] : /* istanbul ignore next */ []));
|
|
30639
|
+
// Created here, in the guard's injection context — `toObservable` cannot be
|
|
30640
|
+
// called from inside the pipe below.
|
|
30641
|
+
const verdict$ = toObservable(verdict);
|
|
30642
|
+
// No load to wait on asks the gate at once, as before any load could answer.
|
|
30643
|
+
const loaded$ = loads.length
|
|
30644
|
+
? from(Promise.all(loads))
|
|
30645
|
+
: of(undefined);
|
|
30646
|
+
return loaded$.pipe(
|
|
30647
|
+
// Asked fresh once the loads are done, not replayed: the observable's last
|
|
30648
|
+
// value may predate the landing it was waiting for. Still `undefined` means
|
|
30649
|
+
// an argument has not arrived yet, so hold for the next change.
|
|
30650
|
+
switchMap$1(() => verdict$.pipe(startWith(undefined))), map(() => verdict()), filter((answer) => answer !== undefined), take(1), switchMap$1((answer) => (isPromise(answer) ? from(answer) : of(answer))),
|
|
30651
|
+
// A gate that threw is a gate that did not say yes — closed rather than
|
|
30652
|
+
// open, the direction the nav store's own resolution takes and for the same
|
|
30653
|
+
// reason.
|
|
30654
|
+
catchError(() => of(false)),
|
|
30655
|
+
// The landing is the one address always guaranteed to exist: the nearest
|
|
30656
|
+
// visible ancestor is routinely a grouping Nav that emits no route at all,
|
|
30657
|
+
// and staying put strands a cold deep link on nothing (CONTEXT.md
|
|
30658
|
+
// NavVisibilitySource).
|
|
30659
|
+
map((allowed) => allowed || router.createUrlTree(['/'])));
|
|
30660
|
+
};
|
|
30661
|
+
const isThenable = (value) => typeof value?.then === 'function';
|
|
30662
|
+
const isPromise = (value) => typeof value?.then === 'function';
|
|
30663
|
+
|
|
30316
30664
|
class NavTrailComponent {
|
|
30317
30665
|
config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
|
|
30318
30666
|
Size = Size;
|
|
@@ -36213,5 +36561,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
36213
36561
|
* Generated bundle index. Do not edit.
|
|
36214
36562
|
*/
|
|
36215
36563
|
|
|
36216
|
-
export { ColComponent as $, ACCESS_DOMAINS as A, ButtonComponent as B, Assets as C, AuthActivityPageComponent as D, AuthApiService as E, AuthStore as F, AutosizeDirective as G, HeaderComponent$1 as H, InputType as I, BadgeComponent as J, BandingComponent as K, LabelComponent as L, MODAL_REF as M, BaseArrayInputComponent as N, BaseRootWebComponent as O, BaseWebComponent as P, ButtonGroupComponent as Q, RangeInputComponent as R, COMPONENT_INPUT_REGISTRY as S, TranslatePipe as T, CardComponent as U, CardWrapperComponent as V, CarouselComponent as W, ChartComponent as X, ChatBubbleComponent as Y, CheckboxInputComponent as Z, ClearableInputComponent as _, MIN_ZOOM as a, MHeroComponent as a$, ColorPickerInputComponent as a0, CommentItemComponent as a1, CommentsApiService as a2, CommentsComponent as a3, CommentsStore as a4, CompactNumberPipe as a5, ComponentInputComponent as a6, ComponentStepperComponent as a7, ConfigComponent as a8, ConfirmComponent as a9, FileUploadDirective as aA, FileUploadInputComponent as aB, FlexComponent as aC, FlexItemComponent as aD, FormGroupComponent as aE, FrameComponent as aF, FreezeService as aG, GRID_BREAKPOINTS as aH, GetNavService as aI, HighlightDirective as aJ, HttpService as aK, ICON_SOURCE as aL, IS_SIDE_PANEL as aM, IconComponent as aN, ImgComponent as aO, InstrumentScoreComponent as aP, InterceptorObservables as aQ, JumbotronComponent as aR, KeyValueComponent as aS, LAYOUT_ASSET_FOLDER as aT, LOGIN_COMPONENT as aU, LOGIN_STORE as aV, LanguageComponent as aW, ListComponent as aX, LogoComponent as aY, MAG_SOCKET_EVENT as aZ, MHeroColorDirective as a_, ContextMenuComponent as aa, CustomIconClass as ab, CustomIconEditComponent as ac, DEFAULT_FILTER_RANGE_MODE as ad, DEFAULT_FILTER_VARIANT as ae, DEFAULT_NAV_PARAM as af, DEFAULT_NAV_SEGMENT as ag, DEFAULT_SIZE as ah, DashboardCardComponent as ai, DateInputComponent as aj, DatePickerComponent as ak, DeviceService as al, DomService as am, Domain as an, DotGridComponent as ao, DragListDirective as ap, DragListItemDirective as aq, DraggableDirective as ar, DropdownInputComponent as as, FILTER_GROUP_CONTEXT as at, FILTER_RANGE_MODES as au, FILTER_VARIANTS as av, FLEX_VARIANTS as aw, FOLDER_PICK_LISTENER as ax, FORM_ASSET_FOLDER as ay, FileService as az, MAX_ZOOM as b, SEARCH_RESULTS_EVENT as b$, MODAL_STORE_REF as b0, MRefDirective as b1, MStepComponent as b2, MURL_PARAM as b3, MURL_SEP as b4, ManifestEnrichmentService as b5, MenuComponent as b6, ModalDirective as b7, ModalRef as b8, ModalStore as b9, OVERLAY_WIDGETS as bA, OneApp as bB, OptionsSourceDirective as bC, OverlayBodyComponent as bD, OverlayRef as bE, OverlayService as bF, PLATFORM_BUTTON_NAV_IDS as bG, PLATFORM_EXTENSIBLE_NAV_IDS as bH, PLATFORM_NAV_MAP as bI, PLATFORM_ROOT_CHILDREN as bJ, PaginationComponent as bK, PanelComponent as bL, PercentagePipe as bM, PlaygroundComponent as bN, PositionDirective as bO, PwaInstallComponent as bP, ROOT_NAV$1 as bQ, RadioGroupComponent as bR, RadioInputComponent as bS, RatingInputComponent as bT, ReactiveElementComponent as bU, RemoteComponent as bV, RemoteLoaderService as bW, ResizeElementComponent as bX, RouteContainer as bY, RowComponent as bZ, SEARCH_QUERY as b_, MoneyPipe as ba, MultiRangeInputComponent as bb, MurlUrlSerializer as bc, NAV_DEFAULT_MURL as bd, NAV_ID_SEP as be, NAV_MAIN_BUTTONS as bf, NAV_SEGMENT_RE as bg, NAV_STORE_REF as bh, NAV_WC_COMPONENTS as bi, NAV_WIDGET_MAP as bj, NavComponent as bk, NavDetailsComponent as bl, NavHeaderComponent as bm, NavMenuComponent as bn, NavStore as bo, NavTrailComponent as bp, NothingComponent as bq, NotificationElementComponent as br, NotificationGroupComponent as bs, NotificationPopupComponent as bt, NotificationService as bu, NotificationStore as bv, NotificationType as bw, NotificationWidgetComponent as bx, ONE_ASSET_BASE_URL as by, OPTIONS_SOURCE as bz, cropRect as c, ThemeService as c$, SECTION_ACCORDION_GROUP as c0, SECTION_FORM_CONTEXT as c1, SHARED_ICONS as c2, SIZE_CONTEXT as c3, ScoreComponent as c4, ScrollComponent as c5, ScrollService as c6, SearchPanelComponent as c7, SearchStore as c8, SearchUserPanelComponent as c9, SettingsSearchBarComponent as cA, SettingsSearchService as cB, ShapeComponent as cC, SharedStoreRegistry as cD, SidePanelDirective as cE, Size as cF, SocketStore as cG, SortComponent as cH, StatComponent as cI, StepComponent as cJ, StepperComponent as cK, StepsComponent as cL, StorageService as cM, StrokeLinecap as cN, StrokeLinejoin as cO, SummaryComponent as cP, SvgGeneratorComponent as cQ, SvgGeneratorService as cR, SvgService as cS, TOTAL_COLUMNS as cT, TRANSLATION_SOURCE as cU, TableComponent as cV, TechnicalMeterComponent as cW, TextInputComponent as cX, TextareaInputComponent as cY, ThemeComponent as cZ, ThemeDataService as c_, SectionAccordionDirective as ca, SectionAccordionGroupDirective as cb, SectionBackComponent as cc, SectionBadgesComponent as cd, SectionButtonGroupComponent as ce, SectionCardComponent as cf, SectionCarouselComponent as cg, SectionComponent as ch, SectionFilterComponent as ci, SectionFilterGroupComponent as cj, SectionFilterMenuComponent as ck, SectionFilterPanelComponent as cl, SectionFilterRangePanelComponent as cm, SectionFooterComponent as cn, SectionFormComponent as co, SectionFormItemComponent as cp, SectionHeaderComponent as cq, SectionHeroComponent as cr, SectionPaginationComponent as cs, SectionSearchComponent as ct, SectionStepperComponent as cu, SectionTabsComponent as cv, SectionToggleComponent as cw, SectionToggleItemDirective as cx, SelectableCardInputComponent as cy, SelectorDirective as cz, drawFramed as d, filterTreeGridRows as d$, ThemeStore as d0, TimeAgoPipe as d1, TimelineComponent as d2, ToggleButtonComponent as d3, ToggleInputComponent as d4, ToggleRadioInputComponent as d5, ToolTipDirective as d6, TooltipComponent as d7, TranslateService as d8, TreeGridComponent as d9, cellText as dA, checkFilterCondition as dB, childNavId as dC, classListSignal as dD, coerceSize as dE, cornerEdge as dF, cornerSide as dG, createMap as dH, createPlatformNavMap as dI, deriveAvatarGradient as dJ, deriveContrastColor as dK, deriveOppositeColor as dL, derivePropertyName as dM, emailValidation as dN, evaluate as dO, evaluateBool as dP, filterHoldsList as dQ, filterHoldsOneBound as dR, filterHoldsOptions as dS, filterHoldsRange as dT, filterList as dU, filterNumber as dV, filterNumberList as dW, filterOne as dX, filterPanelOf as dY, filterPanelWidth as dZ, filterRange as d_, URL_SEP as da, USER_STORE_REF as db, USER_TAB_MAP as dc, UniverseComponent as dd, UserApiService as de, UserAvatarComponent as df, UserComponent as dg, UserNavComponent as dh, UserSettingsComponent as di, UserStore as dj, WC_ROUTE_CHANGED_EVENT as dk, WC_SEARCH_GROUPS as dl, WIN_USER_TAB_HOOK as dm, WIN_USER_TAB_KEY as dn, WatermarkComponent as dp, WcRouterStore as dq, WrapperInputComponent as dr, anchorNavId as ds, applyColorsToElement as dt, assetOptions as du, bootstrapMagApp as dv, bootstrapPwaInstall as dw, buildWcBaseUrl as dx, calculateLuminance as dy, calculateRanks as dz, encodeFramed as e, navToId as e$, filterValueList as e0, filterValues as e1, flattenTreeGridRows as e2, formatBadgeCount as e3, fullName as e4, generateClipPath as e5, generateTransform as e6, getClassList as e7, getProperty as e8, getScrollParent as e9, isTierPreview as eA, isUrlLocalhost as eB, isValidNavId as eC, isValidNavSegment as eD, isWebComponent as eE, linkToId as eF, linkToNav as eG, loadingActions as eH, mInterceptor as eI, manualValidation as eJ, matchFieldValidation as eK, maxLengthValidation as eL, maxValidation as eM, mergePlatformNav as eN, mergeUnique as eO, mergeUniqueBy as eP, mergeUniqueWith as eQ, minAgeValidation as eR, minLengthValidation as eS, minValidation as eT, miniMarkToHtml as eU, navIdChain as eV, navIdFor as eW, navIdSegment as eX, navIdToRoutePath as eY, navIdToSegments as eZ, navParamOf as e_, getTierFromPreviewPath as ea, getTreeGridRow as eb, getUniqueId as ec, getValue as ed, hasErrorComputed as ee, hexToRgb as ef, hslToRgb$1 as eg, initMagmoniumApp as eh, initialNotificationState as ei, initialState$2 as ej, initials as ek, injectAuthenticate as el, injectInstallApp as em, injectParentSize as en, injectScrollSticky as eo, isButtonName as ep, isCancelledComputed as eq, isExtensiblePlatformNavId as er, isJson as es, isLoadingComputed as et, isLocalhost as eu, isNavInstanceConfig as ev, isNavMenuConfig as ew, isNavRowsConfig as ex, isPlatformNavId as ey, isSize as ez, clampFraming as f, normalizeAssetOptions as f0, parentNavId as f1, parseAddress as f2, parseColor as f3, parsePatternNames as f4, patternValidation as f5, patternsValidation as f6, platformNavWidgets as f7, privateGuard as f8, processImageToSvg as f9, setProperty as fA, setTreeGridChildren as fB, settingsWidgets as fC, shouldShowBadge as fD, splitNavId as fE, splitOnMatch as fF, stringToColor as fG, toAttrBool as fH, toAttrNumber as fI, toCssLength as fJ, toHostNavId as fK, toLength$1 as fL, toLocalNavId as fM, toggleTreeGridRow as fN, unfetchedPlatformNav as fO, urlValidation as fP, provideAppContext as fa, provideMagAppConfig as fb, provideMagWcConfig as fc, provideMagWcRoutes as fd, provideModalComponents as fe, provideMurlUrlSerializer as ff, provideNavWidgets as fg, provideOverlayWidgets as fh, providePlatformNavWidgets as fi, provideSearch as fj, provideSizeContext as fk, provideUserTabs as fl, publicGuard as fm, readFieldPatterns as fn, renderAddress as fo, requiredValidation as fp, resolveConfigAsset as fq, resolveIconSize as fr, resolvePallet as fs, resolvePatternRules as ft, resolveSize as fu, rgbToHex as fv, rgbToHsl as fw, rowHasChildren as fx, samePatterns as fy, segmentsToNavId as fz, BaseInputComponent as g, BaseTextInputComponent as h, initialFraming as i, TextOutputComponent as j, IS_DESIGN_MODE as k, APP_CONTEXT_REF as l, ASSET_BASE_URL as m, AccordionBodyDirective as n, outputSize as o, parseRatio as p, AccordionComponent as q, renameForType as r, AccordionGroupComponent as s, ActionComponent as t, AnimatedGraphsComponent as u, AppCardComponent as v, AppRelationType as w, AppTileComponent as x, AssetStore as y, AssetUrlPipe as z };
|
|
36217
|
-
//# sourceMappingURL=magmonium-one-magmonium-one-
|
|
36564
|
+
export { ColComponent as $, ACCESS_DOMAINS as A, ButtonComponent as B, Assets as C, AuthActivityPageComponent as D, AuthApiService as E, AuthStore as F, AutosizeDirective as G, HeaderComponent$1 as H, InputType as I, BadgeComponent as J, BandingComponent as K, LabelComponent as L, MODAL_REF as M, BaseArrayInputComponent as N, BaseRootWebComponent as O, BaseWebComponent as P, ButtonGroupComponent as Q, RangeInputComponent as R, COMPONENT_INPUT_REGISTRY as S, TranslatePipe as T, CardComponent as U, CardWrapperComponent as V, CarouselComponent as W, ChartComponent as X, ChatBubbleComponent as Y, CheckboxInputComponent as Z, ClearableInputComponent as _, MIN_ZOOM as a, MHeroComponent as a$, ColorPickerInputComponent as a0, CommentItemComponent as a1, CommentsApiService as a2, CommentsComponent as a3, CommentsStore as a4, CompactNumberPipe as a5, ComponentInputComponent as a6, ComponentStepperComponent as a7, ConfigComponent as a8, ConfirmComponent as a9, FileUploadDirective as aA, FileUploadInputComponent as aB, FlexComponent as aC, FlexItemComponent as aD, FormGroupComponent as aE, FrameComponent as aF, FreezeService as aG, GRID_BREAKPOINTS as aH, GetNavService as aI, HighlightDirective as aJ, HttpService as aK, ICON_SOURCE as aL, IS_SIDE_PANEL as aM, IconComponent as aN, ImgComponent as aO, InstrumentScoreComponent as aP, InterceptorObservables as aQ, JumbotronComponent as aR, KeyValueComponent as aS, LAYOUT_ASSET_FOLDER as aT, LOGIN_COMPONENT as aU, LOGIN_STORE as aV, LanguageComponent as aW, ListComponent as aX, LogoComponent as aY, MAG_SOCKET_EVENT as aZ, MHeroColorDirective as a_, ContextMenuComponent as aa, CustomIconClass as ab, CustomIconEditComponent as ac, DEFAULT_FILTER_RANGE_MODE as ad, DEFAULT_FILTER_VARIANT as ae, DEFAULT_NAV_PARAM as af, DEFAULT_NAV_SEGMENT as ag, DEFAULT_SIZE as ah, DashboardCardComponent as ai, DateInputComponent as aj, DatePickerComponent as ak, DeviceService as al, DomService as am, Domain as an, DotGridComponent as ao, DragListDirective as ap, DragListItemDirective as aq, DraggableDirective as ar, DropdownInputComponent as as, FILTER_GROUP_CONTEXT as at, FILTER_RANGE_MODES as au, FILTER_VARIANTS as av, FLEX_VARIANTS as aw, FOLDER_PICK_LISTENER as ax, FORM_ASSET_FOLDER as ay, FileService as az, MAX_ZOOM as b, SEARCH_RESULTS_EVENT as b$, MODAL_STORE_REF as b0, MRefDirective as b1, MStepComponent as b2, MURL_PARAM as b3, MURL_SEP as b4, ManifestEnrichmentService as b5, MenuComponent as b6, ModalDirective as b7, ModalRef as b8, ModalStore as b9, OVERLAY_WIDGETS as bA, OneApp as bB, OptionsSourceDirective as bC, OverlayBodyComponent as bD, OverlayRef as bE, OverlayService as bF, PLATFORM_BUTTON_NAV_IDS as bG, PLATFORM_EXTENSIBLE_NAV_IDS as bH, PLATFORM_NAV_MAP as bI, PLATFORM_ROOT_CHILDREN as bJ, PaginationComponent as bK, PanelComponent as bL, PercentagePipe as bM, PlaygroundComponent as bN, PositionDirective as bO, PwaInstallComponent as bP, ROOT_NAV$1 as bQ, RadioGroupComponent as bR, RadioInputComponent as bS, RatingInputComponent as bT, ReactiveElementComponent as bU, RemoteComponent as bV, RemoteLoaderService as bW, ResizeElementComponent as bX, RouteContainer as bY, RowComponent as bZ, SEARCH_QUERY as b_, MoneyPipe as ba, MultiRangeInputComponent as bb, MurlUrlSerializer as bc, NAV_DEFAULT_MURL as bd, NAV_ID_SEP as be, NAV_MAIN_BUTTONS as bf, NAV_SEGMENT_RE as bg, NAV_STORE_REF as bh, NAV_WC_COMPONENTS as bi, NAV_WIDGET_MAP as bj, NavComponent as bk, NavDetailsComponent as bl, NavHeaderComponent as bm, NavMenuComponent as bn, NavStore as bo, NavTrailComponent as bp, NothingComponent as bq, NotificationElementComponent as br, NotificationGroupComponent as bs, NotificationPopupComponent as bt, NotificationService as bu, NotificationStore as bv, NotificationType as bw, NotificationWidgetComponent as bx, ONE_ASSET_BASE_URL as by, OPTIONS_SOURCE as bz, cropRect as c, ThemeService as c$, SECTION_ACCORDION_GROUP as c0, SECTION_FORM_CONTEXT as c1, SHARED_ICONS as c2, SIZE_CONTEXT as c3, ScoreComponent as c4, ScrollComponent as c5, ScrollService as c6, SearchPanelComponent as c7, SearchStore as c8, SearchUserPanelComponent as c9, SettingsSearchBarComponent as cA, SettingsSearchService as cB, ShapeComponent as cC, SharedStoreRegistry as cD, SidePanelDirective as cE, Size as cF, SocketStore as cG, SortComponent as cH, StatComponent as cI, StepComponent as cJ, StepperComponent as cK, StepsComponent as cL, StorageService as cM, StrokeLinecap as cN, StrokeLinejoin as cO, SummaryComponent as cP, SvgGeneratorComponent as cQ, SvgGeneratorService as cR, SvgService as cS, TOTAL_COLUMNS as cT, TRANSLATION_SOURCE as cU, TableComponent as cV, TechnicalMeterComponent as cW, TextInputComponent as cX, TextareaInputComponent as cY, ThemeComponent as cZ, ThemeDataService as c_, SectionAccordionDirective as ca, SectionAccordionGroupDirective as cb, SectionBackComponent as cc, SectionBadgesComponent as cd, SectionButtonGroupComponent as ce, SectionCardComponent as cf, SectionCarouselComponent as cg, SectionComponent as ch, SectionFilterComponent as ci, SectionFilterGroupComponent as cj, SectionFilterMenuComponent as ck, SectionFilterPanelComponent as cl, SectionFilterRangePanelComponent as cm, SectionFooterComponent as cn, SectionFormComponent as co, SectionFormItemComponent as cp, SectionHeaderComponent as cq, SectionHeroComponent as cr, SectionPaginationComponent as cs, SectionSearchComponent as ct, SectionStepperComponent as cu, SectionTabsComponent as cv, SectionToggleComponent as cw, SectionToggleItemDirective as cx, SelectableCardInputComponent as cy, SelectorDirective as cz, drawFramed as d, filterTreeGridRows as d$, ThemeStore as d0, TimeAgoPipe as d1, TimelineComponent as d2, ToggleButtonComponent as d3, ToggleInputComponent as d4, ToggleRadioInputComponent as d5, ToolTipDirective as d6, TooltipComponent as d7, TranslateService as d8, TreeGridComponent as d9, cellText as dA, checkFilterCondition as dB, childNavId as dC, classListSignal as dD, coerceSize as dE, cornerEdge as dF, cornerSide as dG, createMap as dH, createPlatformNavMap as dI, deriveAvatarGradient as dJ, deriveContrastColor as dK, deriveOppositeColor as dL, derivePropertyName as dM, emailValidation as dN, evaluate as dO, evaluateBool as dP, filterHoldsList as dQ, filterHoldsOneBound as dR, filterHoldsOptions as dS, filterHoldsRange as dT, filterList as dU, filterNumber as dV, filterNumberList as dW, filterOne as dX, filterPanelOf as dY, filterPanelWidth as dZ, filterRange as d_, URL_SEP as da, USER_STORE_REF as db, USER_TAB_MAP as dc, UniverseComponent as dd, UserApiService as de, UserAvatarComponent as df, UserComponent as dg, UserNavComponent as dh, UserSettingsComponent as di, UserStore as dj, WC_ROUTE_CHANGED_EVENT as dk, WC_SEARCH_GROUPS as dl, WIN_USER_TAB_HOOK as dm, WIN_USER_TAB_KEY as dn, WatermarkComponent as dp, WcRouterStore as dq, WrapperInputComponent as dr, anchorNavId as ds, applyColorsToElement as dt, assetOptions as du, bootstrapMagApp as dv, bootstrapPwaInstall as dw, buildWcBaseUrl as dx, calculateLuminance as dy, calculateRanks as dz, encodeFramed as e, navParamOf as e$, filterValueList as e0, filterValues as e1, flattenTreeGridRows as e2, formatBadgeCount as e3, fullName as e4, generateClipPath as e5, generateTransform as e6, getClassList as e7, getProperty as e8, getScrollParent as e9, isSize as eA, isTierPreview as eB, isUrlLocalhost as eC, isValidNavId as eD, isValidNavSegment as eE, isWebComponent as eF, linkToId as eG, linkToNav as eH, loadingActions as eI, mInterceptor as eJ, manualValidation as eK, matchFieldValidation as eL, maxLengthValidation as eM, maxValidation as eN, mergePlatformNav as eO, mergeUnique as eP, mergeUniqueBy as eQ, mergeUniqueWith as eR, minAgeValidation as eS, minLengthValidation as eT, minValidation as eU, miniMarkToHtml as eV, navIdChain as eW, navIdFor as eX, navIdSegment as eY, navIdToRoutePath as eZ, navIdToSegments as e_, getTierFromPreviewPath as ea, getTreeGridRow as eb, getUniqueId as ec, getValue as ed, hasErrorComputed as ee, hexToRgb as ef, hslToRgb$1 as eg, initMagmoniumApp as eh, initialNotificationState as ei, initialState$2 as ej, initials as ek, injectAuthenticate as el, injectInstallApp as em, injectParentSize as en, injectScrollSticky as eo, isButtonName as ep, isCancelledComputed as eq, isExtensiblePlatformNavId as er, isJson as es, isLoadingComputed as et, isLocalhost as eu, isNavInstanceConfig as ev, isNavMenuConfig as ew, isNavRowsConfig as ex, isNavVisibilityConfig as ey, isPlatformNavId as ez, clampFraming as f, navToId as f0, navVisibilityGuard as f1, normalizeAssetOptions as f2, parentNavId as f3, parseAddress as f4, parseColor as f5, parsePatternNames as f6, patternValidation as f7, patternsValidation as f8, platformNavWidgets as f9, samePatterns as fA, segmentsToNavId as fB, setProperty as fC, setTreeGridChildren as fD, settingsWidgets as fE, shouldShowBadge as fF, splitNavId as fG, splitOnMatch as fH, stringToColor as fI, toAttrBool as fJ, toAttrNumber as fK, toCssLength as fL, toHostNavId as fM, toLength$1 as fN, toLocalNavId as fO, toggleTreeGridRow as fP, unfetchedPlatformNav as fQ, urlValidation as fR, privateGuard as fa, processImageToSvg as fb, provideAppContext as fc, provideMagAppConfig as fd, provideMagWcConfig as fe, provideMagWcRoutes as ff, provideModalComponents as fg, provideMurlUrlSerializer as fh, provideNavWidgets as fi, provideOverlayWidgets as fj, providePlatformNavWidgets as fk, provideSearch as fl, provideSizeContext as fm, provideUserTabs as fn, publicGuard as fo, readFieldPatterns as fp, renderAddress as fq, requiredValidation as fr, resolveConfigAsset as fs, resolveIconSize as ft, resolvePallet as fu, resolvePatternRules as fv, resolveSize as fw, rgbToHex as fx, rgbToHsl as fy, rowHasChildren as fz, BaseInputComponent as g, BaseTextInputComponent as h, initialFraming as i, TextOutputComponent as j, IS_DESIGN_MODE as k, APP_CONTEXT_REF as l, ASSET_BASE_URL as m, AccordionBodyDirective as n, outputSize as o, parseRatio as p, AccordionComponent as q, renameForType as r, AccordionGroupComponent as s, ActionComponent as t, AnimatedGraphsComponent as u, AppCardComponent as v, AppRelationType as w, AppTileComponent as x, AssetStore as y, AssetUrlPipe as z };
|
|
36565
|
+
//# sourceMappingURL=magmonium-one-magmonium-one-CWtMvVOS.mjs.map
|