@magmonium/one 0.3.1 → 0.3.2
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/docs/en/app-release.md +4 -3
- package/assets/i18n/en.json +1 -0
- package/fesm2022/{magmonium-one-image-editor-CPzYCC_n.mjs → magmonium-one-image-editor-CW-I0TUU.mjs} +2 -2
- package/fesm2022/{magmonium-one-image-editor-CPzYCC_n.mjs.map → magmonium-one-image-editor-CW-I0TUU.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-magmonium-one-BXlnho4e.mjs → magmonium-one-magmonium-one-DcsNdIJx.mjs} +585 -14
- package/fesm2022/magmonium-one-magmonium-one-DcsNdIJx.mjs.map +1 -0
- package/fesm2022/{magmonium-one-otp-C6RUv8ws.mjs → magmonium-one-otp-x-dc-FYj.mjs} +2 -2
- package/fesm2022/{magmonium-one-otp-C6RUv8ws.mjs.map → magmonium-one-otp-x-dc-FYj.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-Cz9Ig8UG.mjs → magmonium-one-password-BdD7B7cS.mjs} +2 -2
- package/fesm2022/{magmonium-one-password-Cz9Ig8UG.mjs.map → magmonium-one-password-BdD7B7cS.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-toggle-BNVDl--Z.mjs → magmonium-one-toggle-C5xiIieI.mjs} +2 -2
- package/fesm2022/{magmonium-one-toggle-BNVDl--Z.mjs.map → magmonium-one-toggle-C5xiIieI.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +200 -3
- package/fesm2022/magmonium-one-magmonium-one-BXlnho4e.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
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';
|
|
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, viewChildren, afterEveryRender, 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
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';
|
|
@@ -57,6 +57,7 @@ const LAYOUT_ASSET_FOLDER = {
|
|
|
57
57
|
section_carousel: 'section_carousels',
|
|
58
58
|
text_output: 'text_outputs',
|
|
59
59
|
list: 'lists',
|
|
60
|
+
section_table: 'section_tables',
|
|
60
61
|
};
|
|
61
62
|
|
|
62
63
|
// Single source for the asset subFolders a form and its Fields resolve by —
|
|
@@ -2649,6 +2650,101 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
2649
2650
|
}]
|
|
2650
2651
|
}] });
|
|
2651
2652
|
|
|
2653
|
+
/** A column's id, falling back to its position (m-one-ui ADR 0148). */
|
|
2654
|
+
const sectionTableColumnId = (column, index) => column.id || String(index);
|
|
2655
|
+
/**
|
|
2656
|
+
* Each column's width as a CSS length: a `span` is its twelfth-share of the
|
|
2657
|
+
* table, and a column without one gets `undefined` so the `<table>` divides
|
|
2658
|
+
* what the spanned columns left.
|
|
2659
|
+
*/
|
|
2660
|
+
const sectionTableColumnWidths = (columns) => columns.map(({ span }) => {
|
|
2661
|
+
if (span == null || !Number.isFinite(span))
|
|
2662
|
+
return undefined;
|
|
2663
|
+
const clamped = Math.min(12, Math.max(1, Math.round(span)));
|
|
2664
|
+
return `${(clamped * 100) / 12}%`;
|
|
2665
|
+
});
|
|
2666
|
+
/**
|
|
2667
|
+
* How many leading columns are frozen: freezing a column freezes every column
|
|
2668
|
+
* before it, because a frozen column pinned past an unfrozen one would slide
|
|
2669
|
+
* over it.
|
|
2670
|
+
*/
|
|
2671
|
+
const sectionTableFrozenCount = (columns) => {
|
|
2672
|
+
let last = -1;
|
|
2673
|
+
columns.forEach((column, i) => {
|
|
2674
|
+
if (column.freeze)
|
|
2675
|
+
last = i;
|
|
2676
|
+
});
|
|
2677
|
+
return last + 1;
|
|
2678
|
+
};
|
|
2679
|
+
/** The next sort after a click on the column with `id`. */
|
|
2680
|
+
const nextSectionTableSort = (current, id, dataType) => current?.id === id
|
|
2681
|
+
? { id, dataType, direction: current.direction === 'asc' ? 'desc' : 'asc' }
|
|
2682
|
+
: { id, dataType, direction: 'asc' };
|
|
2683
|
+
const readPath = (row, path) => path
|
|
2684
|
+
.split('.')
|
|
2685
|
+
.reduce((value, key) => value != null && typeof value === 'object'
|
|
2686
|
+
? value[key]
|
|
2687
|
+
: undefined, row);
|
|
2688
|
+
const comparable = (value, dataType) => {
|
|
2689
|
+
if (value == null || value === '')
|
|
2690
|
+
return undefined;
|
|
2691
|
+
if (dataType === 'number') {
|
|
2692
|
+
const n = typeof value === 'number' ? value : Number(value);
|
|
2693
|
+
return Number.isNaN(n) ? undefined : n;
|
|
2694
|
+
}
|
|
2695
|
+
if (dataType === 'date') {
|
|
2696
|
+
const t = value instanceof Date ? value.getTime() : new Date(String(value)).getTime();
|
|
2697
|
+
return Number.isNaN(t) ? undefined : t;
|
|
2698
|
+
}
|
|
2699
|
+
return String(value).toLocaleLowerCase();
|
|
2700
|
+
};
|
|
2701
|
+
/**
|
|
2702
|
+
* A copy of `rows` ordered by `sort`, the input untouched. Missing values sink
|
|
2703
|
+
* to the end in either direction — an empty cell is not the smallest value.
|
|
2704
|
+
*/
|
|
2705
|
+
const sortSectionTableRows = (rows, sort) => {
|
|
2706
|
+
const list = [...(rows ?? [])];
|
|
2707
|
+
if (!sort)
|
|
2708
|
+
return list;
|
|
2709
|
+
const sign = sort.direction === 'asc' ? 1 : -1;
|
|
2710
|
+
return list
|
|
2711
|
+
.map((row, i) => ({ row, i, key: comparable(readPath(row, sort.id), sort.dataType) }))
|
|
2712
|
+
.sort((a, b) => {
|
|
2713
|
+
if (a.key === undefined || b.key === undefined) {
|
|
2714
|
+
if (a.key === b.key)
|
|
2715
|
+
return a.i - b.i;
|
|
2716
|
+
return a.key === undefined ? 1 : -1;
|
|
2717
|
+
}
|
|
2718
|
+
const diff = typeof a.key === 'number' && typeof b.key === 'number'
|
|
2719
|
+
? a.key - b.key
|
|
2720
|
+
: String(a.key).localeCompare(String(b.key));
|
|
2721
|
+
return diff === 0 ? a.i - b.i : diff * sign;
|
|
2722
|
+
})
|
|
2723
|
+
.map(({ row }) => row);
|
|
2724
|
+
};
|
|
2725
|
+
|
|
2726
|
+
/**
|
|
2727
|
+
* A SectionTable's sort applied to a Repeat's collection:
|
|
2728
|
+
* `@for (row of (rows | sectionTableSort: table.sort()); …)`. The `@for` is the
|
|
2729
|
+
* Repeat's, not the table's, so the table reorders a collection it does not
|
|
2730
|
+
* own through this and nothing else (m-one-ui ADR 0148).
|
|
2731
|
+
*
|
|
2732
|
+
* Pure: a new order needs a new sort or a new collection, never a mutated one.
|
|
2733
|
+
*/
|
|
2734
|
+
class SectionTableSortPipe {
|
|
2735
|
+
transform(rows, sort) {
|
|
2736
|
+
return sortSectionTableRows(rows, sort);
|
|
2737
|
+
}
|
|
2738
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableSortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
2739
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: SectionTableSortPipe, isStandalone: true, name: "sectionTableSort" });
|
|
2740
|
+
}
|
|
2741
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableSortPipe, decorators: [{
|
|
2742
|
+
type: Pipe,
|
|
2743
|
+
args: [{
|
|
2744
|
+
name: 'sectionTableSort',
|
|
2745
|
+
}]
|
|
2746
|
+
}] });
|
|
2747
|
+
|
|
2652
2748
|
const GRID_BREAKPOINTS = {
|
|
2653
2749
|
xs: 0,
|
|
2654
2750
|
sm: 576,
|
|
@@ -7368,7 +7464,7 @@ class SectionFormItemComponent extends ConfigComponent {
|
|
|
7368
7464
|
break;
|
|
7369
7465
|
}
|
|
7370
7466
|
case InputType.TOGGLE: {
|
|
7371
|
-
const { ToggleInputComponent } = await import('./magmonium-one-toggle-
|
|
7467
|
+
const { ToggleInputComponent } = await import('./magmonium-one-toggle-C5xiIieI.mjs');
|
|
7372
7468
|
this.createDynamicComponent(seq, ToggleInputComponent, [], true);
|
|
7373
7469
|
break;
|
|
7374
7470
|
}
|
|
@@ -7380,12 +7476,12 @@ class SectionFormItemComponent extends ConfigComponent {
|
|
|
7380
7476
|
break;
|
|
7381
7477
|
}
|
|
7382
7478
|
case InputType.PASSWORD: {
|
|
7383
|
-
const { PasswordInputComponent } = await import('./magmonium-one-password-
|
|
7479
|
+
const { PasswordInputComponent } = await import('./magmonium-one-password-BdD7B7cS.mjs');
|
|
7384
7480
|
this.createDynamicComponent(seq, PasswordInputComponent);
|
|
7385
7481
|
break;
|
|
7386
7482
|
}
|
|
7387
7483
|
case InputType.OTP: {
|
|
7388
|
-
const { OtpInputComponent } = await import('./magmonium-one-otp-
|
|
7484
|
+
const { OtpInputComponent } = await import('./magmonium-one-otp-x-dc-FYj.mjs');
|
|
7389
7485
|
this.createDynamicComponent(seq, OtpInputComponent);
|
|
7390
7486
|
break;
|
|
7391
7487
|
}
|
|
@@ -16471,6 +16567,7 @@ const initialState$2 = {
|
|
|
16471
16567
|
tokens: undefined,
|
|
16472
16568
|
user: undefined,
|
|
16473
16569
|
wrongPassword: undefined,
|
|
16570
|
+
deployToken: undefined,
|
|
16474
16571
|
};
|
|
16475
16572
|
|
|
16476
16573
|
class AuthApiService {
|
|
@@ -16496,6 +16593,12 @@ class AuthApiService {
|
|
|
16496
16593
|
updateAuthPassword(data) {
|
|
16497
16594
|
return this.http.put('auth', ['password'], data);
|
|
16498
16595
|
}
|
|
16596
|
+
/** Mints a new Deploy Token for the caller; the previous one stops working. */
|
|
16597
|
+
rotateDeployToken() {
|
|
16598
|
+
return this.http
|
|
16599
|
+
.post('user', ['rotate-token'], {})
|
|
16600
|
+
.pipe(map(({ deploy_token }) => deploy_token));
|
|
16601
|
+
}
|
|
16499
16602
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AuthApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16500
16603
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AuthApiService, providedIn: 'root' });
|
|
16501
16604
|
}
|
|
@@ -16969,12 +17072,16 @@ const AuthStore = signalStore({ providedIn: 'root' }, withState(initialState$2),
|
|
|
16969
17072
|
return {
|
|
16970
17073
|
hostUserTabs: (userTabMap ?? {}),
|
|
16971
17074
|
};
|
|
16972
|
-
}), withComputed(({ identities, identity, otp, otpCounter, registerNewUser, resetPassword, showTerms, user, }) => ({
|
|
17075
|
+
}), withComputed(({ deployToken, identities, identity, otp, otpCounter, registerNewUser, resetPassword, showTerms, user, }) => ({
|
|
16973
17076
|
userId: computed(() => user()?.id),
|
|
16974
17077
|
isLoggedIn: computed(() => user()?.id !== undefined),
|
|
16975
17078
|
// A GlobalRule (m-one-ui GlobalRuleCatalog): hides or disables what
|
|
16976
17079
|
// only an `app-author` may do. The api still refuses on its own.
|
|
16977
17080
|
isAppAuthor: computed(() => (user()?.roles ?? []).includes('app-author')),
|
|
17081
|
+
// A GlobalRule (m-one-ui GlobalRuleCatalog): true once this session has
|
|
17082
|
+
// minted or rotated one. Session only — the api keeps just the hash, so
|
|
17083
|
+
// a token minted before a reload is not known here.
|
|
17084
|
+
hasDeployToken: computed(() => !!deployToken()),
|
|
16978
17085
|
variant: computed(() => ({
|
|
16979
17086
|
create_new_user: registerNewUser() !== undefined,
|
|
16980
17087
|
identity_exiest: identity() !== undefined,
|
|
@@ -17012,6 +17119,16 @@ withMethods((store) => ({
|
|
|
17012
17119
|
// front of what only one role may do. The api still refuses on its own.
|
|
17013
17120
|
hasRole: (role) => !!role && (store.user()?.roles ?? []).some((held) => held === role),
|
|
17014
17121
|
})), withMethods((store, api = inject(AuthApiService), storage = inject(StorageService), modalStore = inject(ModalStore)) => {
|
|
17122
|
+
let deployTokenPending = false;
|
|
17123
|
+
const rotateDeployToken = () => {
|
|
17124
|
+
if (deployTokenPending)
|
|
17125
|
+
return;
|
|
17126
|
+
deployTokenPending = true;
|
|
17127
|
+
api
|
|
17128
|
+
.rotateDeployToken()
|
|
17129
|
+
.pipe(tap((deployToken) => patchState(store, { deployToken })), catchError(() => EMPTY), finalize(() => (deployTokenPending = false)))
|
|
17130
|
+
.subscribe();
|
|
17131
|
+
};
|
|
17015
17132
|
const closeAfterAuthentication = () => {
|
|
17016
17133
|
if (store.userId() && store.tokens()) {
|
|
17017
17134
|
modalStore.close();
|
|
@@ -17072,8 +17189,20 @@ withMethods((store) => ({
|
|
|
17072
17189
|
patchState(store, { tokens });
|
|
17073
17190
|
},
|
|
17074
17191
|
clearAuth() {
|
|
17075
|
-
patchState(store, {
|
|
17192
|
+
patchState(store, {
|
|
17193
|
+
tokens: undefined,
|
|
17194
|
+
user: undefined,
|
|
17195
|
+
deployToken: undefined,
|
|
17196
|
+
});
|
|
17197
|
+
},
|
|
17198
|
+
// Rotating kills the token already stored in CI, so only mint one
|
|
17199
|
+
// when this session holds none; `rotateDeployToken` is the explicit
|
|
17200
|
+
// replace.
|
|
17201
|
+
ensureDeployToken() {
|
|
17202
|
+
if (!store.deployToken())
|
|
17203
|
+
rotateDeployToken();
|
|
17076
17204
|
},
|
|
17205
|
+
rotateDeployToken,
|
|
17077
17206
|
logout() {
|
|
17078
17207
|
patchState(store, initialState$2);
|
|
17079
17208
|
storage.deleteLocal('tokens');
|
|
@@ -18464,6 +18593,408 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
18464
18593
|
}, 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;grid-column:span 12;width:100%;box-sizing:border-box;border-bottom:1px solid var(--m-backdrop-border);min-height:5em}:host(.no-border){border-bottom:none}:host-context(.is-with-border):last-child,:host-context(.is-sandwich-border):last-child{border-bottom:none}:host.has-padding-y{padding-block:var(--m-row-py, var(--section-pt, var(--_section-pt, 1.5rem)))}.m-row__body{display:flex;flex-wrap:wrap;align-content:flex-start;max-width:var(--m-row-max-width);margin-inline:auto}:host.has-padding-x .m-row__body{padding-inline:var(--m-row-px, var(--section-px, var(--_section-px, 1rem)))}:host.is-center .m-row__body{display:flex;justify-content:center;align-items:center}:host(.align-left) .m-row__body{margin-inline-start:0;margin-inline-end:auto}:host(.align-right) .m-row__body{margin-inline-start:auto;margin-inline-end:0;justify-content:flex-end}:host(.align-center) .m-row__body{margin-inline:auto;justify-content:center}\n"] }]
|
|
18465
18594
|
}], propDecorators: { padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], paddingX: [{ type: i0.Input, args: [{ isSignal: true, alias: "paddingX", required: false }] }], paddingY: [{ type: i0.Input, args: [{ isSignal: true, alias: "paddingY", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], center: [{ type: i0.Input, args: [{ isSignal: true, alias: "center", required: false }] }] } });
|
|
18466
18595
|
|
|
18596
|
+
const SECTION_TABLE_CONTEXT = new InjectionToken('SECTION_TABLE_CONTEXT');
|
|
18597
|
+
|
|
18598
|
+
// A folded column keeps only the width its toggle needs.
|
|
18599
|
+
const FOLDED_WIDTH = '3rem';
|
|
18600
|
+
/**
|
|
18601
|
+
* The table composed from projected markup (CONTEXT.md SectionTable): the
|
|
18602
|
+
* `<table>` and its configured heading are this component's, every row is
|
|
18603
|
+
* projected. A row written inside an `@for` is drawn once per item, one outside
|
|
18604
|
+
* it once — so a `<tr m-section-table-row>` is all the body ever holds, and
|
|
18605
|
+
* which kind a row is comes from where it was written.
|
|
18606
|
+
*
|
|
18607
|
+
* Wears Table's flat look (`m-table` classes, never a panel border) and
|
|
18608
|
+
* nothing else of it: search, selection and row menus are Controls placed
|
|
18609
|
+
* around or inside it. A projected
|
|
18610
|
+
* `m-section-pagination` draws beneath the table and windows nothing itself.
|
|
18611
|
+
*/
|
|
18612
|
+
class SectionTableComponent extends ConfigComponent {
|
|
18613
|
+
subFolder = LAYOUT_ASSET_FOLDER.section_table;
|
|
18614
|
+
// Scalars beside the asset, for SectionCarousel's reason: a Control emits
|
|
18615
|
+
// its settings onto the tag (ADR 0010). Unset defers to the asset.
|
|
18616
|
+
sticky = input(undefined, ...(ngDevMode ? [{ debugName: "sticky" }] : /* istanbul ignore next */ []));
|
|
18617
|
+
variant = input(undefined, ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
18618
|
+
loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
18619
|
+
/**
|
|
18620
|
+
* Fires on every sort click, after the rows were reordered in place — a
|
|
18621
|
+
* table holding one page of a longer list hands the sort to whoever fetches
|
|
18622
|
+
* (m-one-ui ADR 0148).
|
|
18623
|
+
*/
|
|
18624
|
+
sortChange = output();
|
|
18625
|
+
/** The sort in force, read by `sectionTableSort` around each Repeat's source. */
|
|
18626
|
+
sort = signal(null, ...(ngDevMode ? [{ debugName: "sort" }] : /* istanbul ignore next */ []));
|
|
18627
|
+
columns = computed(() => this.config()?.columns ?? [], ...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
|
|
18628
|
+
resolvedSticky = computed(() => this.sticky() ?? this.config()?.sticky ?? false, ...(ngDevMode ? [{ debugName: "resolvedSticky" }] : /* istanbul ignore next */ []));
|
|
18629
|
+
resolvedVariant = computed(() => this.variant() ?? this.config()?.variant ?? 'default', ...(ngDevMode ? [{ debugName: "resolvedVariant" }] : /* istanbul ignore next */ []));
|
|
18630
|
+
// Which squeezing columns the reader has unfolded, by column id. Passing
|
|
18631
|
+
// state: nothing is emitted and nothing is kept (CONTEXT.md Squeeze).
|
|
18632
|
+
unfolded = signal(new Set(), ...(ngDevMode ? [{ debugName: "unfolded" }] : /* istanbul ignore next */ []));
|
|
18633
|
+
frozenCount = computed(() => sectionTableFrozenCount(this.columns()), ...(ngDevMode ? [{ debugName: "frozenCount" }] : /* istanbul ignore next */ []));
|
|
18634
|
+
widths = computed(() => sectionTableColumnWidths(this.columns()), ...(ngDevMode ? [{ debugName: "widths" }] : /* istanbul ignore next */ []));
|
|
18635
|
+
headings = viewChildren('heading', ...(ngDevMode ? [{ debugName: "headings" }] : /* istanbul ignore next */ []));
|
|
18636
|
+
offsets = signal([], ...(ngDevMode ? [{ debugName: "offsets" }] : /* istanbul ignore next */ []));
|
|
18637
|
+
constructor() {
|
|
18638
|
+
super();
|
|
18639
|
+
// A frozen column's `left` is the width of every frozen column before it,
|
|
18640
|
+
// which only layout knows.
|
|
18641
|
+
let observer;
|
|
18642
|
+
afterRenderEffect(() => {
|
|
18643
|
+
const cells = this.headings().map((h) => h.nativeElement);
|
|
18644
|
+
observer?.disconnect();
|
|
18645
|
+
if (!this.frozenCount() || typeof ResizeObserver === 'undefined')
|
|
18646
|
+
return;
|
|
18647
|
+
const measure = () => {
|
|
18648
|
+
let left = 0;
|
|
18649
|
+
const next = cells.map((cell) => {
|
|
18650
|
+
const at = left;
|
|
18651
|
+
left += cell.offsetWidth;
|
|
18652
|
+
return at;
|
|
18653
|
+
});
|
|
18654
|
+
const prev = untracked(this.offsets);
|
|
18655
|
+
if (next.some((v, i) => v !== prev[i]) || next.length !== prev.length) {
|
|
18656
|
+
this.offsets.set(next);
|
|
18657
|
+
}
|
|
18658
|
+
};
|
|
18659
|
+
observer = new ResizeObserver(measure);
|
|
18660
|
+
cells.forEach((cell) => observer?.observe(cell));
|
|
18661
|
+
measure();
|
|
18662
|
+
});
|
|
18663
|
+
inject(DestroyRef).onDestroy(() => observer?.disconnect());
|
|
18664
|
+
}
|
|
18665
|
+
isFolded(index) {
|
|
18666
|
+
const column = this.columns()[index];
|
|
18667
|
+
return (!!column?.squeeze &&
|
|
18668
|
+
!this.unfolded().has(sectionTableColumnId(column, index)));
|
|
18669
|
+
}
|
|
18670
|
+
offsetOf(index) {
|
|
18671
|
+
return this.offsets()[index] ?? 0;
|
|
18672
|
+
}
|
|
18673
|
+
justify(column) {
|
|
18674
|
+
if (column.align === 'center')
|
|
18675
|
+
return 'center';
|
|
18676
|
+
return column.align === 'right' ? 'flex-end' : null;
|
|
18677
|
+
}
|
|
18678
|
+
columnWidth(index) {
|
|
18679
|
+
return this.isFolded(index) ? FOLDED_WIDTH : (this.widths()[index] ?? null);
|
|
18680
|
+
}
|
|
18681
|
+
toggleFold(index) {
|
|
18682
|
+
const column = this.columns()[index];
|
|
18683
|
+
if (!column)
|
|
18684
|
+
return;
|
|
18685
|
+
const id = sectionTableColumnId(column, index);
|
|
18686
|
+
const next = new Set(this.unfolded());
|
|
18687
|
+
if (next.has(id))
|
|
18688
|
+
next.delete(id);
|
|
18689
|
+
else
|
|
18690
|
+
next.add(id);
|
|
18691
|
+
this.unfolded.set(next);
|
|
18692
|
+
}
|
|
18693
|
+
sortDirection(index) {
|
|
18694
|
+
const column = this.columns()[index];
|
|
18695
|
+
const sort = this.sort();
|
|
18696
|
+
return column && sort?.id === sectionTableColumnId(column, index)
|
|
18697
|
+
? sort.direction
|
|
18698
|
+
: null;
|
|
18699
|
+
}
|
|
18700
|
+
ariaSort(index) {
|
|
18701
|
+
const direction = this.sortDirection(index);
|
|
18702
|
+
if (!direction)
|
|
18703
|
+
return null;
|
|
18704
|
+
return direction === 'asc' ? 'ascending' : 'descending';
|
|
18705
|
+
}
|
|
18706
|
+
onSortClick(column, index) {
|
|
18707
|
+
if (!column.sortable || this.isFolded(index))
|
|
18708
|
+
return;
|
|
18709
|
+
const next = nextSectionTableSort(this.sort(), sectionTableColumnId(column, index), column.dataType);
|
|
18710
|
+
this.sort.set(next);
|
|
18711
|
+
this.sortChange.emit(next);
|
|
18712
|
+
}
|
|
18713
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18714
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionTableComponent, isStandalone: true, selector: "m-section-table", inputs: { sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortChange: "sortChange" }, host: { classAttribute: "m-section-table-host" }, providers: [
|
|
18715
|
+
{
|
|
18716
|
+
provide: SECTION_TABLE_CONTEXT,
|
|
18717
|
+
useFactory: () => {
|
|
18718
|
+
const self = inject(SectionTableComponent);
|
|
18719
|
+
return {
|
|
18720
|
+
align: (i) => self.columns()[i]?.align,
|
|
18721
|
+
folded: (i) => self.isFolded(i),
|
|
18722
|
+
frozen: (i) => i < self.frozenCount(),
|
|
18723
|
+
frozenLast: (i) => i === self.frozenCount() - 1,
|
|
18724
|
+
frozenOffset: (i) => self.offsetOf(i),
|
|
18725
|
+
};
|
|
18726
|
+
},
|
|
18727
|
+
},
|
|
18728
|
+
], viewQueries: [{ propertyName: "headings", predicate: ["heading"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
18729
|
+
<div
|
|
18730
|
+
class="m-table m-table--flat m-section-table"
|
|
18731
|
+
[class.m-section-table--zebra]="resolvedVariant() === 'zebra'"
|
|
18732
|
+
[class.m-section-table--compact]="resolvedVariant() === 'compact'"
|
|
18733
|
+
[class.m-section-table--spacious]="resolvedVariant() === 'spacious'"
|
|
18734
|
+
[class.m-section-table--sticky]="resolvedSticky()"
|
|
18735
|
+
>
|
|
18736
|
+
@if (loading()) {
|
|
18737
|
+
<m-freeze />
|
|
18738
|
+
}
|
|
18739
|
+
<div class="m-table__wrapper">
|
|
18740
|
+
<table class="m-table__table m-section-table__table">
|
|
18741
|
+
@if (columns().length) {
|
|
18742
|
+
<colgroup>
|
|
18743
|
+
@for (column of columns(); track $index) {
|
|
18744
|
+
<col [style.width]="columnWidth($index)" />
|
|
18745
|
+
}
|
|
18746
|
+
</colgroup>
|
|
18747
|
+
<thead class="m-table-thead">
|
|
18748
|
+
<tr>
|
|
18749
|
+
@for (column of columns(); track $index; let ci = $index) {
|
|
18750
|
+
<th
|
|
18751
|
+
#heading
|
|
18752
|
+
class="m-table-thead__th m-section-table__th"
|
|
18753
|
+
[class.m-section-table__th--folded]="isFolded(ci)"
|
|
18754
|
+
[class.m-section-table__th--squeeze]="!!column.squeeze"
|
|
18755
|
+
[class.m-table-thead__th--sortable]="!!column.sortable"
|
|
18756
|
+
[class.m-section-table__cell--frozen]="ci < frozenCount()"
|
|
18757
|
+
[class.m-section-table__cell--frozen-last]="
|
|
18758
|
+
ci === frozenCount() - 1
|
|
18759
|
+
"
|
|
18760
|
+
[style.left.px]="ci < frozenCount() ? offsetOf(ci) : null"
|
|
18761
|
+
[style.--m-section-table-justify]="justify(column)"
|
|
18762
|
+
[attr.aria-sort]="ariaSort(ci)"
|
|
18763
|
+
(click)="onSortClick(column, ci)"
|
|
18764
|
+
>
|
|
18765
|
+
<div class="m-table-thead__cell m-section-table__heading">
|
|
18766
|
+
@if (!isFolded(ci)) {
|
|
18767
|
+
<span class="m-section-table__label">{{
|
|
18768
|
+
column.label ?? '' | translate
|
|
18769
|
+
}}</span>
|
|
18770
|
+
@if (sortDirection(ci); as direction) {
|
|
18771
|
+
<span class="m-table-thead__sort-icon">
|
|
18772
|
+
<m-icon
|
|
18773
|
+
[name]="direction === 'asc' ? 'arrow-up' : 'arrow-down'"
|
|
18774
|
+
/>
|
|
18775
|
+
</span>
|
|
18776
|
+
}
|
|
18777
|
+
}
|
|
18778
|
+
@if (column.squeeze) {
|
|
18779
|
+
<span class="m-section-table__squeeze">
|
|
18780
|
+
<m-button
|
|
18781
|
+
[icon]="isFolded(ci) ? 'chevrons-right' : 'chevrons-left'"
|
|
18782
|
+
[iconOnly]="true"
|
|
18783
|
+
variant="ghost"
|
|
18784
|
+
(click)="$event.stopPropagation()"
|
|
18785
|
+
(clicked)="toggleFold(ci)"
|
|
18786
|
+
/>
|
|
18787
|
+
</span>
|
|
18788
|
+
}
|
|
18789
|
+
</div>
|
|
18790
|
+
</th>
|
|
18791
|
+
}
|
|
18792
|
+
</tr>
|
|
18793
|
+
</thead>
|
|
18794
|
+
}
|
|
18795
|
+
<tbody class="m-table-body m-section-table__body">
|
|
18796
|
+
<ng-content />
|
|
18797
|
+
</tbody>
|
|
18798
|
+
</table>
|
|
18799
|
+
</div>
|
|
18800
|
+
<ng-content select="m-section-pagination" />
|
|
18801
|
+
</div>
|
|
18802
|
+
`, 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)}}.m-table{display:flex;flex-direction:column;border:1px solid var(--m-backdrop-border);border-radius:12px;overflow:clip;background:#ffffffe6;-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);position:relative;transition:background-color .3s ease}.m-table--flat{border:none;box-shadow:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}.m-table__toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:1.5rem var(--m-table-toolbar-padding-x, 1.25rem);border-bottom:1px solid var(--m-backdrop-border);gap:1.5rem;background:color-mix(in srgb,var(--m-background) 45%,transparent)}.m-table--flat .m-table__toolbar{background:transparent;padding-left:0;padding-right:0}.m-table__title{margin:0;font-size:1.25rem;font-weight:800;color:var(--m-text);letter-spacing:-.02em;flex:1}.m-table__search{flex:0 1 auto;display:flex;align-items:center}.m-table__search .m-input-wrapper{width:100%}.m-table__mobile-view{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;flex:1;overflow:auto}.m-table__empty-mobile{padding:3rem 1.5rem;text-align:center;color:var(--m-text-tertiary);font-size:.9375rem;font-weight:500;font-style:italic;opacity:.8;background:color-mix(in srgb,var(--m-background) 20%,transparent);border-radius:12px;border:1px dashed var(--m-backdrop-border)}.m-table__wrapper{overflow:auto;flex:1}.m-table__wrapper::-webkit-scrollbar{width:6px;height:6px}.m-table__wrapper::-webkit-scrollbar-track{background:transparent}.m-table__wrapper::-webkit-scrollbar-thumb{background:var(--m-backdrop-border);border-radius:10px}.m-table__wrapper::-webkit-scrollbar-thumb:hover{background:var(--m-text-tertiary)}.m-table__table{width:100%;min-width:100%;border-collapse:separate;border-spacing:0}mark.m-table__highlight{background:var(--m-highlight);color:#000;border-radius:2px;padding:0 2px;font-weight:700;box-shadow:0 1px 4px #0003}mark.m-table__highlight .m-one-pagination{margin-left:auto;--m-button-size: 2.25rem;--m-pagination-gap: .375rem}.m-table-pagination{display:flex;align-items:center;gap:1.5rem;padding:1.25rem var(--m-table-pagination-padding-x, 1.25rem);border-top:1px solid var(--m-backdrop-border);font-size:.8125rem;flex-wrap:wrap;background:color-mix(in srgb,var(--m-background) 40%,transparent)}.m-table--flat .m-table-pagination{background:transparent;padding-left:0;padding-right:0}.m-table-pagination__size{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;color:var(--m-text-secondary);font-weight:500}.m-table-pagination__select{border:1px solid var(--m-backdrop-border);border-radius:8px;background:var(--m-backdrop-surface);color:var(--m-text);padding:.375rem .625rem;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);outline:none}.m-table-pagination__select:hover{background:var(--m-backdrop-glass);border-color:var(--m-mm);box-shadow:0 0 0 3px color-mix(in srgb,var(--m-mm) 10%,transparent)}.m-table-pagination__select:focus{border-color:var(--m-mm);box-shadow:0 0 0 3px color-mix(in srgb,var(--m-mm) 20%,transparent)}.m-table-filter{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:1rem 1.25rem;background:color-mix(in srgb,var(--m-background-lite) 60%,transparent);border-bottom:1px solid var(--m-backdrop-border);box-shadow:inset 0 2px 4px #00000005;overflow-x:auto;scrollbar-width:none}.m-table-filter::-webkit-scrollbar{display:none}.m-table--flat .m-table-filter{background:transparent;padding-left:0;padding-right:0;border-bottom:none}.m-table-filter__item{display:flex;align-items:center;gap:10px;padding:.4375rem 1rem;border-radius:12px;background:var(--m-background);border:1px solid var(--m-backdrop-border);color:var(--m-text-secondary);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;-webkit-user-select:none;user-select:none;outline:none;font-weight:500}.m-table-filter__item:hover{border-color:var(--m-mm);color:var(--m-mm);background:var(--m-background);transform:translateY(-1px);box-shadow:0 4px 12px #0000000d}.m-table-filter__item--active{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);font-weight:600;box-shadow:0 8px 16px color-mix(in srgb,var(--m-mm) 25%,transparent)}.m-table-filter__item--active:hover{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);transform:translateY(-1px)}.m-table-filter__item--active .m-table-filter__badge{background:#fff3;color:var(--m-inverse-text);border-color:#ffffff1a}.m-table-filter__item--primary{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);font-weight:600;box-shadow:0 8px 16px color-mix(in srgb,var(--m-mm) 25%,transparent)}.m-table-filter__item--primary:hover{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);transform:translateY(-1px);box-shadow:0 10px 20px color-mix(in srgb,var(--m-mm) 30%,transparent)}.m-table-filter__item--primary .m-table-filter__badge{background:#fff3;color:var(--m-inverse-text);border-color:#ffffff1a}.m-table-filter__item--danger{border-color:var(--m-error);color:var(--m-error)}.m-table-filter__item--danger:hover{border-color:var(--m-error);color:var(--m-error);background:var(--m-backdrop-error);transform:translateY(-1px);box-shadow:0 4px 12px color-mix(in srgb,var(--m-error) 12%,transparent)}.m-table-filter__item--danger .m-table-filter__badge{background:var(--m-backdrop-error);color:var(--m-error);border-color:color-mix(in srgb,var(--m-error) 20%,transparent)}.m-table-filter__label{font-size:.8125rem;font-weight:600;letter-spacing:.01em}.m-table-filter__badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:100px;background:var(--m-backdrop-surface);color:var(--m-text-secondary);font-size:.6875rem;font-weight:700;border:1px solid var(--m-backdrop-border);transition:all .2s ease}.m-table-thead__th{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--m-background) 95%,transparent);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);padding:1.25rem;text-align:left;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--m-text-tertiary);border-bottom:2px solid var(--m-backdrop-border);white-space:nowrap;transition:all .2s ease}.m-table-thead__th:hover{color:var(--m-text);background:var(--m-background)}@media(min-width:769px){.m-table-thead__th--fixed{z-index:20;background:var(--m-background)}}@media(max-width:768px){.m-table-thead__th--fixed{position:static;z-index:auto}}.m-table-thead__th--fixed{border-right:none}@media(min-width:769px){.m-table-thead__th--fixed-last{border-right:1px solid var(--m-backdrop-border)}}@media(max-width:768px){.m-table-thead__th--fixed-last{border-right:none}}.m-table-thead__th--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.m-table-thead__th--select{width:48px;min-width:48px;max-width:48px;padding:0 1rem;text-align:center}.m-table-thead__th--select input[type=checkbox]{width:1rem;height:1rem;cursor:pointer;accent-color:var(--m-mm);border-radius:3px;display:block;margin:0 auto}.m-table-thead__cell{display:flex;align-items:center;gap:.5rem}.m-table-thead__sort-icon{color:var(--m-mm);opacity:.6;transition:opacity .2s ease}.m-table-thead__th:hover .m-table-thead__sort-icon{opacity:1}.m-table-thead__menu-btn{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-left:auto;border:none;background:transparent;cursor:pointer;color:var(--m-text-tertiary);border-radius:6px;opacity:0;transition:all .15ms ease}.m-table-thead__menu-btn:hover{background:var(--m-backdrop-surface);color:var(--m-text)}.m-table-thead__th:hover .m-table-thead__menu-btn{opacity:1}.m-table-body__row{transition:background-color .3s cubic-bezier(.4,0,.2,1);position:relative}.m-table-body__row:hover{background:color-mix(in srgb,var(--m-mm) 5%,transparent)}.m-table-body__row:hover .m-table-body__cell{background:inherit}.m-table-body__cell{padding:1rem 1.25rem;font-size:.875rem;color:var(--m-text);border-bottom:1px solid var(--m-backdrop-border);white-space:nowrap;vertical-align:middle;background:transparent;transition:background-color .3s ease}.m-table-body__cell[class*=--number],.m-table-body__cell[class*=--currency],.m-table-body__cell[class*=--percent]{font-family:Inter,Roboto Mono,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.01em}@media(min-width:769px){.m-table-body__cell--fixed{position:sticky;background:var(--m-background);z-index:5}}@media(max-width:768px){.m-table-body__cell--fixed{position:static;background:transparent;z-index:auto}}.m-table-body__cell--fixed{border-right:none;transition:background-color .3s ease}.m-table-body__row:hover .m-table-body__cell--fixed{background:color-mix(in srgb,var(--m-mm) 5%,var(--m-background));z-index:6}@media(min-width:769px){.m-table-body__cell--fixed-last{border-right:1px solid var(--m-backdrop-border)}}@media(max-width:768px){.m-table-body__cell--fixed-last{border-right:none}}.m-table-body__cell--context-menu{padding-top:.35rem;padding-bottom:.35rem}.m-table-body__cell--select{width:48px;min-width:48px;max-width:48px;padding:0 1rem;text-align:center}.m-table-body__cell--select input[type=checkbox],.m-table-body__cell--select input[type=radio]{width:1rem;height:1rem;cursor:pointer;accent-color:var(--m-mm);display:block;margin:0 auto}.m-table-body__input{border:none;border-bottom:2px solid var(--m-backdrop-border);background:transparent;font-size:.875rem;color:var(--m-text);padding:.25rem;outline:none;width:100%;transition:border-bottom-color .2s ease}.m-table-body__input:focus{border-bottom-color:var(--m-mm)}.m-table-body__action-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background:transparent;cursor:pointer;color:var(--m-text-tertiary);border-radius:8px;transition:all .2s ease}.m-table-body__action-btn:hover{background:var(--m-backdrop-surface);color:var(--m-text)}.m-table-body__empty{text-align:center;padding:4rem;color:var(--m-text-tertiary);font-size:1rem;font-weight:500;letter-spacing:.02em;font-style:italic;opacity:.7}.m-table-body__link{color:var(--m-mm);text-decoration:none;cursor:pointer;font-weight:600;transition:color .2s ease}.m-table-body__link:hover{text-decoration:underline;color:var(--m-mm-lite)}.m-table-body__value{padding:.25rem .5rem;border-radius:6px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.m-table-body__value--positive{color:var(--m-success);background:var(--m-backdrop-success)}.m-table-body__value--negative{color:var(--m-error);background:var(--m-backdrop-error)}.m-table-body__dash{color:var(--m-text-tertiary);font-weight:400;font-style:italic;opacity:.8}.m-section-table-host{display:block;width:100%}.m-section-table__th{position:static;vertical-align:middle}.m-section-table--sticky .m-section-table__th{position:sticky;top:0}.m-section-table__heading{justify-content:var(--m-section-table-justify, flex-start);min-height:2rem}.m-section-table--compact :where(.m-section-table__th){padding:.625rem .75rem}.m-section-table--compact :where(.m-section-table__cell){padding:.5rem .75rem}.m-section-table--spacious :where(.m-section-table__th){padding:1.5rem 1.75rem}.m-section-table--spacious :where(.m-section-table__cell){padding:1.5rem 1.75rem}.m-section-table--zebra .m-section-table__row:nth-child(2n):not(:hover){background:color-mix(in srgb,var(--m-mm) 3%,transparent)}.m-section-table--zebra .m-section-table__row:nth-child(2n):not(:hover) .m-section-table__cell--frozen{background:color-mix(in srgb,var(--m-mm) 3%,var(--m-background))}.m-section-table__th--squeeze{position:relative;padding-right:3rem}.m-section-table__th--folded{padding-left:0;padding-right:0}.m-section-table__squeeze{position:absolute;top:50%;right:.5rem;transform:translateY(-50%);display:flex;border:1px solid var(--m-backdrop-border);border-radius:8px;background:var(--m-backdrop-surface)}.m-section-table__th--folded .m-section-table__squeeze{right:50%;transform:translate(50%,-50%)}@media(min-width:769px){.m-section-table__cell--frozen{position:sticky;z-index:5;background:var(--m-background)}}@media(min-width:769px){.m-section-table th.m-section-table__cell--frozen{z-index:20}}@media(min-width:769px){.m-section-table--sticky .m-section-table th.m-section-table__cell--frozen{z-index:21}}@media(min-width:769px){.m-section-table__cell--frozen-last{border-right:1px solid var(--m-backdrop-border)}}.m-section-table__row:hover .m-section-table__cell--frozen{background:color-mix(in srgb,var(--m-mm) 5%,var(--m-background))}.m-section-table__cell--folded{text-align:center;padding-left:0;padding-right:0}.m-section-table__content[hidden]{display:none}.m-section-table__dot{display:inline-block;width:.375rem;height:.375rem;border-radius:50%;background:var(--m-text-tertiary)}.m-section-table__row{cursor:default}\n"], dependencies: [{ 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: FreezeComponent, selector: "m-freeze", inputs: ["config"] }, { kind: "component", type: IconComponent, selector: "m-icon, m-one-icon", inputs: ["config", "name", "color", "size", "one", "baseUrl", "remote"], outputs: ["configChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
18803
|
+
}
|
|
18804
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableComponent, decorators: [{
|
|
18805
|
+
type: Component,
|
|
18806
|
+
args: [{ selector: 'm-section-table', imports: [TranslatePipe, ButtonComponent, FreezeComponent, IconComponent], template: `
|
|
18807
|
+
<div
|
|
18808
|
+
class="m-table m-table--flat m-section-table"
|
|
18809
|
+
[class.m-section-table--zebra]="resolvedVariant() === 'zebra'"
|
|
18810
|
+
[class.m-section-table--compact]="resolvedVariant() === 'compact'"
|
|
18811
|
+
[class.m-section-table--spacious]="resolvedVariant() === 'spacious'"
|
|
18812
|
+
[class.m-section-table--sticky]="resolvedSticky()"
|
|
18813
|
+
>
|
|
18814
|
+
@if (loading()) {
|
|
18815
|
+
<m-freeze />
|
|
18816
|
+
}
|
|
18817
|
+
<div class="m-table__wrapper">
|
|
18818
|
+
<table class="m-table__table m-section-table__table">
|
|
18819
|
+
@if (columns().length) {
|
|
18820
|
+
<colgroup>
|
|
18821
|
+
@for (column of columns(); track $index) {
|
|
18822
|
+
<col [style.width]="columnWidth($index)" />
|
|
18823
|
+
}
|
|
18824
|
+
</colgroup>
|
|
18825
|
+
<thead class="m-table-thead">
|
|
18826
|
+
<tr>
|
|
18827
|
+
@for (column of columns(); track $index; let ci = $index) {
|
|
18828
|
+
<th
|
|
18829
|
+
#heading
|
|
18830
|
+
class="m-table-thead__th m-section-table__th"
|
|
18831
|
+
[class.m-section-table__th--folded]="isFolded(ci)"
|
|
18832
|
+
[class.m-section-table__th--squeeze]="!!column.squeeze"
|
|
18833
|
+
[class.m-table-thead__th--sortable]="!!column.sortable"
|
|
18834
|
+
[class.m-section-table__cell--frozen]="ci < frozenCount()"
|
|
18835
|
+
[class.m-section-table__cell--frozen-last]="
|
|
18836
|
+
ci === frozenCount() - 1
|
|
18837
|
+
"
|
|
18838
|
+
[style.left.px]="ci < frozenCount() ? offsetOf(ci) : null"
|
|
18839
|
+
[style.--m-section-table-justify]="justify(column)"
|
|
18840
|
+
[attr.aria-sort]="ariaSort(ci)"
|
|
18841
|
+
(click)="onSortClick(column, ci)"
|
|
18842
|
+
>
|
|
18843
|
+
<div class="m-table-thead__cell m-section-table__heading">
|
|
18844
|
+
@if (!isFolded(ci)) {
|
|
18845
|
+
<span class="m-section-table__label">{{
|
|
18846
|
+
column.label ?? '' | translate
|
|
18847
|
+
}}</span>
|
|
18848
|
+
@if (sortDirection(ci); as direction) {
|
|
18849
|
+
<span class="m-table-thead__sort-icon">
|
|
18850
|
+
<m-icon
|
|
18851
|
+
[name]="direction === 'asc' ? 'arrow-up' : 'arrow-down'"
|
|
18852
|
+
/>
|
|
18853
|
+
</span>
|
|
18854
|
+
}
|
|
18855
|
+
}
|
|
18856
|
+
@if (column.squeeze) {
|
|
18857
|
+
<span class="m-section-table__squeeze">
|
|
18858
|
+
<m-button
|
|
18859
|
+
[icon]="isFolded(ci) ? 'chevrons-right' : 'chevrons-left'"
|
|
18860
|
+
[iconOnly]="true"
|
|
18861
|
+
variant="ghost"
|
|
18862
|
+
(click)="$event.stopPropagation()"
|
|
18863
|
+
(clicked)="toggleFold(ci)"
|
|
18864
|
+
/>
|
|
18865
|
+
</span>
|
|
18866
|
+
}
|
|
18867
|
+
</div>
|
|
18868
|
+
</th>
|
|
18869
|
+
}
|
|
18870
|
+
</tr>
|
|
18871
|
+
</thead>
|
|
18872
|
+
}
|
|
18873
|
+
<tbody class="m-table-body m-section-table__body">
|
|
18874
|
+
<ng-content />
|
|
18875
|
+
</tbody>
|
|
18876
|
+
</table>
|
|
18877
|
+
</div>
|
|
18878
|
+
<ng-content select="m-section-pagination" />
|
|
18879
|
+
</div>
|
|
18880
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'm-section-table-host' }, providers: [
|
|
18881
|
+
{
|
|
18882
|
+
provide: SECTION_TABLE_CONTEXT,
|
|
18883
|
+
useFactory: () => {
|
|
18884
|
+
const self = inject(SectionTableComponent);
|
|
18885
|
+
return {
|
|
18886
|
+
align: (i) => self.columns()[i]?.align,
|
|
18887
|
+
folded: (i) => self.isFolded(i),
|
|
18888
|
+
frozen: (i) => i < self.frozenCount(),
|
|
18889
|
+
frozenLast: (i) => i === self.frozenCount() - 1,
|
|
18890
|
+
frozenOffset: (i) => self.offsetOf(i),
|
|
18891
|
+
};
|
|
18892
|
+
},
|
|
18893
|
+
},
|
|
18894
|
+
], 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)}}.m-table{display:flex;flex-direction:column;border:1px solid var(--m-backdrop-border);border-radius:12px;overflow:clip;background:#ffffffe6;-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);position:relative;transition:background-color .3s ease}.m-table--flat{border:none;box-shadow:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}.m-table__toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:1.5rem var(--m-table-toolbar-padding-x, 1.25rem);border-bottom:1px solid var(--m-backdrop-border);gap:1.5rem;background:color-mix(in srgb,var(--m-background) 45%,transparent)}.m-table--flat .m-table__toolbar{background:transparent;padding-left:0;padding-right:0}.m-table__title{margin:0;font-size:1.25rem;font-weight:800;color:var(--m-text);letter-spacing:-.02em;flex:1}.m-table__search{flex:0 1 auto;display:flex;align-items:center}.m-table__search .m-input-wrapper{width:100%}.m-table__mobile-view{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;flex:1;overflow:auto}.m-table__empty-mobile{padding:3rem 1.5rem;text-align:center;color:var(--m-text-tertiary);font-size:.9375rem;font-weight:500;font-style:italic;opacity:.8;background:color-mix(in srgb,var(--m-background) 20%,transparent);border-radius:12px;border:1px dashed var(--m-backdrop-border)}.m-table__wrapper{overflow:auto;flex:1}.m-table__wrapper::-webkit-scrollbar{width:6px;height:6px}.m-table__wrapper::-webkit-scrollbar-track{background:transparent}.m-table__wrapper::-webkit-scrollbar-thumb{background:var(--m-backdrop-border);border-radius:10px}.m-table__wrapper::-webkit-scrollbar-thumb:hover{background:var(--m-text-tertiary)}.m-table__table{width:100%;min-width:100%;border-collapse:separate;border-spacing:0}mark.m-table__highlight{background:var(--m-highlight);color:#000;border-radius:2px;padding:0 2px;font-weight:700;box-shadow:0 1px 4px #0003}mark.m-table__highlight .m-one-pagination{margin-left:auto;--m-button-size: 2.25rem;--m-pagination-gap: .375rem}.m-table-pagination{display:flex;align-items:center;gap:1.5rem;padding:1.25rem var(--m-table-pagination-padding-x, 1.25rem);border-top:1px solid var(--m-backdrop-border);font-size:.8125rem;flex-wrap:wrap;background:color-mix(in srgb,var(--m-background) 40%,transparent)}.m-table--flat .m-table-pagination{background:transparent;padding-left:0;padding-right:0}.m-table-pagination__size{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;color:var(--m-text-secondary);font-weight:500}.m-table-pagination__select{border:1px solid var(--m-backdrop-border);border-radius:8px;background:var(--m-backdrop-surface);color:var(--m-text);padding:.375rem .625rem;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);outline:none}.m-table-pagination__select:hover{background:var(--m-backdrop-glass);border-color:var(--m-mm);box-shadow:0 0 0 3px color-mix(in srgb,var(--m-mm) 10%,transparent)}.m-table-pagination__select:focus{border-color:var(--m-mm);box-shadow:0 0 0 3px color-mix(in srgb,var(--m-mm) 20%,transparent)}.m-table-filter{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:1rem 1.25rem;background:color-mix(in srgb,var(--m-background-lite) 60%,transparent);border-bottom:1px solid var(--m-backdrop-border);box-shadow:inset 0 2px 4px #00000005;overflow-x:auto;scrollbar-width:none}.m-table-filter::-webkit-scrollbar{display:none}.m-table--flat .m-table-filter{background:transparent;padding-left:0;padding-right:0;border-bottom:none}.m-table-filter__item{display:flex;align-items:center;gap:10px;padding:.4375rem 1rem;border-radius:12px;background:var(--m-background);border:1px solid var(--m-backdrop-border);color:var(--m-text-secondary);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;-webkit-user-select:none;user-select:none;outline:none;font-weight:500}.m-table-filter__item:hover{border-color:var(--m-mm);color:var(--m-mm);background:var(--m-background);transform:translateY(-1px);box-shadow:0 4px 12px #0000000d}.m-table-filter__item--active{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);font-weight:600;box-shadow:0 8px 16px color-mix(in srgb,var(--m-mm) 25%,transparent)}.m-table-filter__item--active:hover{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);transform:translateY(-1px)}.m-table-filter__item--active .m-table-filter__badge{background:#fff3;color:var(--m-inverse-text);border-color:#ffffff1a}.m-table-filter__item--primary{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);font-weight:600;box-shadow:0 8px 16px color-mix(in srgb,var(--m-mm) 25%,transparent)}.m-table-filter__item--primary:hover{background:var(--m-mm);border-color:var(--m-mm);color:var(--m-inverse-text);transform:translateY(-1px);box-shadow:0 10px 20px color-mix(in srgb,var(--m-mm) 30%,transparent)}.m-table-filter__item--primary .m-table-filter__badge{background:#fff3;color:var(--m-inverse-text);border-color:#ffffff1a}.m-table-filter__item--danger{border-color:var(--m-error);color:var(--m-error)}.m-table-filter__item--danger:hover{border-color:var(--m-error);color:var(--m-error);background:var(--m-backdrop-error);transform:translateY(-1px);box-shadow:0 4px 12px color-mix(in srgb,var(--m-error) 12%,transparent)}.m-table-filter__item--danger .m-table-filter__badge{background:var(--m-backdrop-error);color:var(--m-error);border-color:color-mix(in srgb,var(--m-error) 20%,transparent)}.m-table-filter__label{font-size:.8125rem;font-weight:600;letter-spacing:.01em}.m-table-filter__badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:100px;background:var(--m-backdrop-surface);color:var(--m-text-secondary);font-size:.6875rem;font-weight:700;border:1px solid var(--m-backdrop-border);transition:all .2s ease}.m-table-thead__th{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--m-background) 95%,transparent);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);padding:1.25rem;text-align:left;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--m-text-tertiary);border-bottom:2px solid var(--m-backdrop-border);white-space:nowrap;transition:all .2s ease}.m-table-thead__th:hover{color:var(--m-text);background:var(--m-background)}@media(min-width:769px){.m-table-thead__th--fixed{z-index:20;background:var(--m-background)}}@media(max-width:768px){.m-table-thead__th--fixed{position:static;z-index:auto}}.m-table-thead__th--fixed{border-right:none}@media(min-width:769px){.m-table-thead__th--fixed-last{border-right:1px solid var(--m-backdrop-border)}}@media(max-width:768px){.m-table-thead__th--fixed-last{border-right:none}}.m-table-thead__th--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.m-table-thead__th--select{width:48px;min-width:48px;max-width:48px;padding:0 1rem;text-align:center}.m-table-thead__th--select input[type=checkbox]{width:1rem;height:1rem;cursor:pointer;accent-color:var(--m-mm);border-radius:3px;display:block;margin:0 auto}.m-table-thead__cell{display:flex;align-items:center;gap:.5rem}.m-table-thead__sort-icon{color:var(--m-mm);opacity:.6;transition:opacity .2s ease}.m-table-thead__th:hover .m-table-thead__sort-icon{opacity:1}.m-table-thead__menu-btn{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-left:auto;border:none;background:transparent;cursor:pointer;color:var(--m-text-tertiary);border-radius:6px;opacity:0;transition:all .15ms ease}.m-table-thead__menu-btn:hover{background:var(--m-backdrop-surface);color:var(--m-text)}.m-table-thead__th:hover .m-table-thead__menu-btn{opacity:1}.m-table-body__row{transition:background-color .3s cubic-bezier(.4,0,.2,1);position:relative}.m-table-body__row:hover{background:color-mix(in srgb,var(--m-mm) 5%,transparent)}.m-table-body__row:hover .m-table-body__cell{background:inherit}.m-table-body__cell{padding:1rem 1.25rem;font-size:.875rem;color:var(--m-text);border-bottom:1px solid var(--m-backdrop-border);white-space:nowrap;vertical-align:middle;background:transparent;transition:background-color .3s ease}.m-table-body__cell[class*=--number],.m-table-body__cell[class*=--currency],.m-table-body__cell[class*=--percent]{font-family:Inter,Roboto Mono,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.01em}@media(min-width:769px){.m-table-body__cell--fixed{position:sticky;background:var(--m-background);z-index:5}}@media(max-width:768px){.m-table-body__cell--fixed{position:static;background:transparent;z-index:auto}}.m-table-body__cell--fixed{border-right:none;transition:background-color .3s ease}.m-table-body__row:hover .m-table-body__cell--fixed{background:color-mix(in srgb,var(--m-mm) 5%,var(--m-background));z-index:6}@media(min-width:769px){.m-table-body__cell--fixed-last{border-right:1px solid var(--m-backdrop-border)}}@media(max-width:768px){.m-table-body__cell--fixed-last{border-right:none}}.m-table-body__cell--context-menu{padding-top:.35rem;padding-bottom:.35rem}.m-table-body__cell--select{width:48px;min-width:48px;max-width:48px;padding:0 1rem;text-align:center}.m-table-body__cell--select input[type=checkbox],.m-table-body__cell--select input[type=radio]{width:1rem;height:1rem;cursor:pointer;accent-color:var(--m-mm);display:block;margin:0 auto}.m-table-body__input{border:none;border-bottom:2px solid var(--m-backdrop-border);background:transparent;font-size:.875rem;color:var(--m-text);padding:.25rem;outline:none;width:100%;transition:border-bottom-color .2s ease}.m-table-body__input:focus{border-bottom-color:var(--m-mm)}.m-table-body__action-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background:transparent;cursor:pointer;color:var(--m-text-tertiary);border-radius:8px;transition:all .2s ease}.m-table-body__action-btn:hover{background:var(--m-backdrop-surface);color:var(--m-text)}.m-table-body__empty{text-align:center;padding:4rem;color:var(--m-text-tertiary);font-size:1rem;font-weight:500;letter-spacing:.02em;font-style:italic;opacity:.7}.m-table-body__link{color:var(--m-mm);text-decoration:none;cursor:pointer;font-weight:600;transition:color .2s ease}.m-table-body__link:hover{text-decoration:underline;color:var(--m-mm-lite)}.m-table-body__value{padding:.25rem .5rem;border-radius:6px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.m-table-body__value--positive{color:var(--m-success);background:var(--m-backdrop-success)}.m-table-body__value--negative{color:var(--m-error);background:var(--m-backdrop-error)}.m-table-body__dash{color:var(--m-text-tertiary);font-weight:400;font-style:italic;opacity:.8}.m-section-table-host{display:block;width:100%}.m-section-table__th{position:static;vertical-align:middle}.m-section-table--sticky .m-section-table__th{position:sticky;top:0}.m-section-table__heading{justify-content:var(--m-section-table-justify, flex-start);min-height:2rem}.m-section-table--compact :where(.m-section-table__th){padding:.625rem .75rem}.m-section-table--compact :where(.m-section-table__cell){padding:.5rem .75rem}.m-section-table--spacious :where(.m-section-table__th){padding:1.5rem 1.75rem}.m-section-table--spacious :where(.m-section-table__cell){padding:1.5rem 1.75rem}.m-section-table--zebra .m-section-table__row:nth-child(2n):not(:hover){background:color-mix(in srgb,var(--m-mm) 3%,transparent)}.m-section-table--zebra .m-section-table__row:nth-child(2n):not(:hover) .m-section-table__cell--frozen{background:color-mix(in srgb,var(--m-mm) 3%,var(--m-background))}.m-section-table__th--squeeze{position:relative;padding-right:3rem}.m-section-table__th--folded{padding-left:0;padding-right:0}.m-section-table__squeeze{position:absolute;top:50%;right:.5rem;transform:translateY(-50%);display:flex;border:1px solid var(--m-backdrop-border);border-radius:8px;background:var(--m-backdrop-surface)}.m-section-table__th--folded .m-section-table__squeeze{right:50%;transform:translate(50%,-50%)}@media(min-width:769px){.m-section-table__cell--frozen{position:sticky;z-index:5;background:var(--m-background)}}@media(min-width:769px){.m-section-table th.m-section-table__cell--frozen{z-index:20}}@media(min-width:769px){.m-section-table--sticky .m-section-table th.m-section-table__cell--frozen{z-index:21}}@media(min-width:769px){.m-section-table__cell--frozen-last{border-right:1px solid var(--m-backdrop-border)}}.m-section-table__row:hover .m-section-table__cell--frozen{background:color-mix(in srgb,var(--m-mm) 5%,var(--m-background))}.m-section-table__cell--folded{text-align:center;padding-left:0;padding-right:0}.m-section-table__content[hidden]{display:none}.m-section-table__dot{display:inline-block;width:.375rem;height:.375rem;border-radius:50%;background:var(--m-text-tertiary)}.m-section-table__row{cursor:default}\n"] }]
|
|
18895
|
+
}], ctorParameters: () => [], propDecorators: { sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], headings: [{ type: i0.ViewChildren, args: ['heading', { isSignal: true }] }] } });
|
|
18896
|
+
|
|
18897
|
+
/**
|
|
18898
|
+
* One `<tr>` of a SectionTable (CONTEXT.md SectionTableRow). An attribute on a
|
|
18899
|
+
* real `<tr>` rather than an element of its own: a component host between
|
|
18900
|
+
* `<tbody>` and its cells breaks table layout. Repeated or static is decided by
|
|
18901
|
+
* where it was written, never by a setting here.
|
|
18902
|
+
*/
|
|
18903
|
+
class SectionTableRowComponent {
|
|
18904
|
+
/** No payload: a repeated row's handler already has its item in scope. */
|
|
18905
|
+
rowClick = output();
|
|
18906
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18907
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: SectionTableRowComponent, isStandalone: true, selector: "tr[m-section-table-row]", outputs: { rowClick: "rowClick" }, host: { listeners: { "click": "rowClick.emit()" }, classAttribute: "m-table-body__row m-section-table__row" }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
18908
|
+
}
|
|
18909
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableRowComponent, decorators: [{
|
|
18910
|
+
type: Component,
|
|
18911
|
+
args: [{
|
|
18912
|
+
// An attribute selector on purpose: an element host between `<tbody>` and
|
|
18913
|
+
// `<td>` breaks table layout, and a cell's `cellIndex` only counts direct
|
|
18914
|
+
// children of its `<tr>`.
|
|
18915
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
18916
|
+
selector: 'tr[m-section-table-row]',
|
|
18917
|
+
template: `<ng-content />`,
|
|
18918
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18919
|
+
host: {
|
|
18920
|
+
class: 'm-table-body__row m-section-table__row',
|
|
18921
|
+
'(click)': 'rowClick.emit()',
|
|
18922
|
+
},
|
|
18923
|
+
}]
|
|
18924
|
+
}], propDecorators: { rowClick: [{ type: i0.Output, args: ["rowClick"] }] } });
|
|
18925
|
+
|
|
18926
|
+
/**
|
|
18927
|
+
* One `<td>` of a SectionTableRow (CONTEXT.md SectionTableCell), holding any
|
|
18928
|
+
* content. Answers to the column at its own position — its `cellIndex`, which
|
|
18929
|
+
* only the DOM knows once the row is laid out — for alignment, Squeeze and
|
|
18930
|
+
* freezing, and configures none of them itself.
|
|
18931
|
+
*
|
|
18932
|
+
* A folded cell keeps its content mounted and hidden rather than behind an
|
|
18933
|
+
* `@if`: projected content inside a conditional block is only projected once.
|
|
18934
|
+
*/
|
|
18935
|
+
class SectionTableCellComponent {
|
|
18936
|
+
table = inject(SECTION_TABLE_CONTEXT, { optional: true });
|
|
18937
|
+
host = inject(ElementRef);
|
|
18938
|
+
index = signal(-1, ...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
|
|
18939
|
+
constructor() {
|
|
18940
|
+
// Every render, not once: a cell inserted before this one — a column added
|
|
18941
|
+
// on the Canvas, a Repeat filling in — moves it without any signal moving.
|
|
18942
|
+
afterEveryRender(() => {
|
|
18943
|
+
const at = this.host.nativeElement.cellIndex ?? -1;
|
|
18944
|
+
if (at !== this.index())
|
|
18945
|
+
this.index.set(at);
|
|
18946
|
+
});
|
|
18947
|
+
}
|
|
18948
|
+
align = computed(() => this.read((t, i) => t.align(i)), ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
18949
|
+
folded = computed(() => this.read((t, i) => t.folded(i)) ?? false, ...(ngDevMode ? [{ debugName: "folded" }] : /* istanbul ignore next */ []));
|
|
18950
|
+
frozen = computed(() => this.read((t, i) => t.frozen(i)) ?? false, ...(ngDevMode ? [{ debugName: "frozen" }] : /* istanbul ignore next */ []));
|
|
18951
|
+
frozenLast = computed(() => this.read((t, i) => t.frozenLast(i)) ?? false, ...(ngDevMode ? [{ debugName: "frozenLast" }] : /* istanbul ignore next */ []));
|
|
18952
|
+
offset = computed(() => this.read((t, i) => t.frozenOffset(i)) ?? 0, ...(ngDevMode ? [{ debugName: "offset" }] : /* istanbul ignore next */ []));
|
|
18953
|
+
read(fn) {
|
|
18954
|
+
const table = this.table;
|
|
18955
|
+
const i = this.index();
|
|
18956
|
+
if (!table || i < 0)
|
|
18957
|
+
return undefined;
|
|
18958
|
+
return fn(table, i);
|
|
18959
|
+
}
|
|
18960
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18961
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SectionTableCellComponent, isStandalone: true, selector: "td[m-section-table-cell]", host: { properties: { "class.m-section-table__cell--folded": "folded()", "class.m-section-table__cell--frozen": "frozen()", "class.m-section-table__cell--frozen-last": "frozenLast()", "style.left.px": "frozen() ? offset() : null", "style.text-align": "align() ?? null" }, classAttribute: "m-table-body__cell m-section-table__cell" }, ngImport: i0, template: `
|
|
18962
|
+
@if (folded()) {
|
|
18963
|
+
<span class="m-section-table__dot" aria-hidden="true"></span>
|
|
18964
|
+
}
|
|
18965
|
+
<div class="m-section-table__content" [hidden]="folded()">
|
|
18966
|
+
<ng-content />
|
|
18967
|
+
</div>
|
|
18968
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
18969
|
+
}
|
|
18970
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableCellComponent, decorators: [{
|
|
18971
|
+
type: Component,
|
|
18972
|
+
args: [{
|
|
18973
|
+
// An attribute selector on purpose: an element host between `<tbody>` and
|
|
18974
|
+
// `<td>` breaks table layout, and a cell's `cellIndex` only counts direct
|
|
18975
|
+
// children of its `<tr>`.
|
|
18976
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
18977
|
+
selector: 'td[m-section-table-cell]',
|
|
18978
|
+
template: `
|
|
18979
|
+
@if (folded()) {
|
|
18980
|
+
<span class="m-section-table__dot" aria-hidden="true"></span>
|
|
18981
|
+
}
|
|
18982
|
+
<div class="m-section-table__content" [hidden]="folded()">
|
|
18983
|
+
<ng-content />
|
|
18984
|
+
</div>
|
|
18985
|
+
`,
|
|
18986
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18987
|
+
host: {
|
|
18988
|
+
class: 'm-table-body__cell m-section-table__cell',
|
|
18989
|
+
'[class.m-section-table__cell--folded]': 'folded()',
|
|
18990
|
+
'[class.m-section-table__cell--frozen]': 'frozen()',
|
|
18991
|
+
'[class.m-section-table__cell--frozen-last]': 'frozenLast()',
|
|
18992
|
+
'[style.left.px]': 'frozen() ? offset() : null',
|
|
18993
|
+
'[style.text-align]': 'align() ?? null',
|
|
18994
|
+
},
|
|
18995
|
+
}]
|
|
18996
|
+
}], ctorParameters: () => [] });
|
|
18997
|
+
|
|
18467
18998
|
function getTabsClassList(config) {
|
|
18468
18999
|
if (!config) {
|
|
18469
19000
|
return '';
|
|
@@ -21553,7 +22084,7 @@ class WrapperInputComponent extends ConfigComponent {
|
|
|
21553
22084
|
break;
|
|
21554
22085
|
}
|
|
21555
22086
|
case InputType.TOGGLE: {
|
|
21556
|
-
const { ToggleInputComponent } = await import('./magmonium-one-toggle-
|
|
22087
|
+
const { ToggleInputComponent } = await import('./magmonium-one-toggle-C5xiIieI.mjs');
|
|
21557
22088
|
this.createDynamicComponent(seq, ToggleInputComponent, [], true);
|
|
21558
22089
|
break;
|
|
21559
22090
|
}
|
|
@@ -21565,12 +22096,12 @@ class WrapperInputComponent extends ConfigComponent {
|
|
|
21565
22096
|
break;
|
|
21566
22097
|
}
|
|
21567
22098
|
case InputType.PASSWORD: {
|
|
21568
|
-
const { PasswordInputComponent } = await import('./magmonium-one-password-
|
|
22099
|
+
const { PasswordInputComponent } = await import('./magmonium-one-password-BdD7B7cS.mjs');
|
|
21569
22100
|
this.createDynamicComponent(seq, PasswordInputComponent);
|
|
21570
22101
|
break;
|
|
21571
22102
|
}
|
|
21572
22103
|
case InputType.OTP: {
|
|
21573
|
-
const { OtpInputComponent } = await import('./magmonium-one-otp-
|
|
22104
|
+
const { OtpInputComponent } = await import('./magmonium-one-otp-x-dc-FYj.mjs');
|
|
21574
22105
|
this.createDynamicComponent(seq, OtpInputComponent);
|
|
21575
22106
|
break;
|
|
21576
22107
|
}
|
|
@@ -22391,7 +22922,7 @@ class SelectableCardInputComponent extends BaseInputComponent {
|
|
|
22391
22922
|
}
|
|
22392
22923
|
</div>
|
|
22393
22924
|
}
|
|
22394
|
-
`, 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;width:100%;max-width:100%;min-width:0}.selectable-card{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.selectable-card--vertical{flex-direction:column;flex-wrap:nowrap}.selectable-card--vertical .selectable-card__item{width:100%;max-width:100%;min-width:0;align-items:flex-start}.selectable-card--vertical .selectable-card__indicator{padding-top:.125rem}.selectable-card--vertical .selectable-card__content{align-items:flex-start}.selectable-card__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--m-selectable-card-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));border-radius:var(--m-input-radius, .5rem);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--m-selectable-card-background, color-mix(in srgb, var(--m-focus) 2%, var(--m-background)));transition:border-color .2s ease,box-shadow .2s ease,background .15s ease;box-sizing:border-box;max-width:100%;min-width:0}.selectable-card__item.selectable-card__item--line{border:1px solid var(--border, var(--m-border));border-radius:16px}.selectable-card__item.selectable-card__item--line:hover:not(.selectable-card__item.selectable-card__item--line--disabled){border-color:var(--border, var(--m-border));box-shadow:none}.selectable-card__item.selectable-card__item--line--selected{border-color:var(--border, var(--m-border));box-shadow:none;background:var(--background, var(--m-background))}.selectable-card__item.selectable-card__item--line--selected:hover:not(.selectable-card__item--disabled){box-shadow:none}.selectable-card__item.selectable-card__item--line:focus-visible{outline-color:var(--border, var(--m-border))}.selectable-card__item.selectable-card__item--line .selectable-card__indicator{display:none}.selectable-card__item:hover:not(.selectable-card__item--disabled){border-color:var(--m-selectable-card-hover-border, color-mix(in srgb, var(--m-focus) 55%, var(--m-background)));box-shadow:none}.selectable-card__item--selected{border-color:var(--m-selectable-card-selected-border, var(--m-focus));box-shadow:
|
|
22925
|
+
`, 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;width:100%;max-width:100%;min-width:0}.selectable-card{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.selectable-card--vertical{flex-direction:column;flex-wrap:nowrap}.selectable-card--vertical .selectable-card__item{width:100%;max-width:100%;min-width:0;align-items:flex-start}.selectable-card--vertical .selectable-card__indicator{padding-top:.125rem}.selectable-card--vertical .selectable-card__content{align-items:flex-start}.selectable-card__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--m-selectable-card-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));border-radius:var(--m-input-radius, .5rem);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--m-selectable-card-background, color-mix(in srgb, var(--m-focus) 2%, var(--m-background)));transition:border-color .2s ease,box-shadow .2s ease,background .15s ease;box-sizing:border-box;max-width:100%;min-width:0}.selectable-card__item.selectable-card__item--line{border:1px solid var(--border, var(--m-border));border-radius:16px}.selectable-card__item.selectable-card__item--line:hover:not(.selectable-card__item.selectable-card__item--line--disabled){border-color:var(--border, var(--m-border));box-shadow:none}.selectable-card__item.selectable-card__item--line--selected{border-color:var(--border, var(--m-border));box-shadow:none;background:var(--background, var(--m-background))}.selectable-card__item.selectable-card__item--line--selected:hover:not(.selectable-card__item--disabled){box-shadow:none}.selectable-card__item.selectable-card__item--line:focus-visible{outline-color:var(--border, var(--m-border))}.selectable-card__item.selectable-card__item--line .selectable-card__indicator{display:none}.selectable-card__item:hover:not(.selectable-card__item--disabled){border-color:var(--m-selectable-card-hover-border, color-mix(in srgb, var(--m-focus) 55%, var(--m-background)));box-shadow:none}.selectable-card__item--selected{border-color:var(--m-selectable-card-selected-border, var(--m-focus));box-shadow:none;background:color-mix(in srgb,var(--m-focus) 5%,var(--m-background))}.selectable-card__item:focus-visible{outline:2px solid var(--m-focus);outline-offset:3px}.selectable-card__item--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.selectable-card__content{flex:1;min-width:0;max-width:100%;display:flex;align-items:center;gap:.5rem}.selectable-card__content>*{flex:1;min-width:0;max-width:100%}.selectable-card__icon{flex-shrink:0;display:flex}.selectable-card__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selectable-card__indicator{flex-shrink:0;display:flex;align-items:center}.selectable-card__indicator input[type=checkbox],.selectable-card__indicator input[type=radio]{appearance:none;-webkit-appearance:none;width:1.25rem;height:1.25rem;border:var(--m-input-border-width, 1px) solid color-mix(in srgb,var(--m-text) 18%,var(--m-background));border-radius:var(--m-checkbox-radius, .35rem);background:var(--m-text-input-background, color-mix(in srgb, var(--m-focus) 2%, var(--m-background)));cursor:pointer;box-sizing:border-box;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;position:relative;flex-shrink:0;outline:none}.selectable-card__indicator input[type=checkbox][type=radio],.selectable-card__indicator input[type=radio][type=radio]{border-radius:50%}.selectable-card__indicator input[type=checkbox]:hover:not(:disabled),.selectable-card__indicator input[type=radio]:hover:not(:disabled){border-color:color-mix(in srgb,var(--m-focus) 55%,var(--m-background))}.selectable-card__indicator input[type=checkbox]:focus-visible,.selectable-card__indicator input[type=radio]:focus-visible{border-color:var(--m-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--m-focus) 14%,transparent)}.selectable-card__indicator input[type=checkbox]:checked,.selectable-card__indicator input[type=radio]:checked{background:var(--m-focus);border-color:var(--m-focus)}.selectable-card__indicator input[type=checkbox]:checked:hover:not(:disabled),.selectable-card__indicator input[type=radio]:checked:hover:not(:disabled){box-shadow:0 0 0 3px color-mix(in srgb,var(--m-focus) 18%,transparent)}.selectable-card__indicator input[type=checkbox]:checked:after,.selectable-card__indicator input[type=radio]:checked:after{content:\"\";position:absolute;top:50%;left:50%}.selectable-card__indicator input[type=checkbox][type=checkbox]:checked:after,.selectable-card__indicator input[type=radio][type=checkbox]:checked:after{width:.45rem;height:.25rem;border-left:2px solid white;border-bottom:2px solid white;transform:translate(-50%,-60%) rotate(-45deg)}.selectable-card__indicator input[type=checkbox][type=radio]:checked:after,.selectable-card__indicator input[type=radio][type=radio]:checked:after{width:.5rem;height:.5rem;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}.selectable-card__indicator input[type=checkbox]:disabled,.selectable-card__indicator input[type=radio]:disabled{opacity:.5;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
22395
22926
|
}
|
|
22396
22927
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SelectableCardInputComponent, decorators: [{
|
|
22397
22928
|
type: Component,
|
|
@@ -22468,7 +22999,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
22468
22999
|
TranslatePipe,
|
|
22469
23000
|
IconComponent,
|
|
22470
23001
|
LabelComponent,
|
|
22471
|
-
], 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;width:100%;max-width:100%;min-width:0}.selectable-card{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.selectable-card--vertical{flex-direction:column;flex-wrap:nowrap}.selectable-card--vertical .selectable-card__item{width:100%;max-width:100%;min-width:0;align-items:flex-start}.selectable-card--vertical .selectable-card__indicator{padding-top:.125rem}.selectable-card--vertical .selectable-card__content{align-items:flex-start}.selectable-card__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--m-selectable-card-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));border-radius:var(--m-input-radius, .5rem);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--m-selectable-card-background, color-mix(in srgb, var(--m-focus) 2%, var(--m-background)));transition:border-color .2s ease,box-shadow .2s ease,background .15s ease;box-sizing:border-box;max-width:100%;min-width:0}.selectable-card__item.selectable-card__item--line{border:1px solid var(--border, var(--m-border));border-radius:16px}.selectable-card__item.selectable-card__item--line:hover:not(.selectable-card__item.selectable-card__item--line--disabled){border-color:var(--border, var(--m-border));box-shadow:none}.selectable-card__item.selectable-card__item--line--selected{border-color:var(--border, var(--m-border));box-shadow:none;background:var(--background, var(--m-background))}.selectable-card__item.selectable-card__item--line--selected:hover:not(.selectable-card__item--disabled){box-shadow:none}.selectable-card__item.selectable-card__item--line:focus-visible{outline-color:var(--border, var(--m-border))}.selectable-card__item.selectable-card__item--line .selectable-card__indicator{display:none}.selectable-card__item:hover:not(.selectable-card__item--disabled){border-color:var(--m-selectable-card-hover-border, color-mix(in srgb, var(--m-focus) 55%, var(--m-background)));box-shadow:none}.selectable-card__item--selected{border-color:var(--m-selectable-card-selected-border, var(--m-focus));box-shadow:
|
|
23002
|
+
], 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;width:100%;max-width:100%;min-width:0}.selectable-card{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.selectable-card--vertical{flex-direction:column;flex-wrap:nowrap}.selectable-card--vertical .selectable-card__item{width:100%;max-width:100%;min-width:0;align-items:flex-start}.selectable-card--vertical .selectable-card__indicator{padding-top:.125rem}.selectable-card--vertical .selectable-card__content{align-items:flex-start}.selectable-card__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--m-selectable-card-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));border-radius:var(--m-input-radius, .5rem);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--m-selectable-card-background, color-mix(in srgb, var(--m-focus) 2%, var(--m-background)));transition:border-color .2s ease,box-shadow .2s ease,background .15s ease;box-sizing:border-box;max-width:100%;min-width:0}.selectable-card__item.selectable-card__item--line{border:1px solid var(--border, var(--m-border));border-radius:16px}.selectable-card__item.selectable-card__item--line:hover:not(.selectable-card__item.selectable-card__item--line--disabled){border-color:var(--border, var(--m-border));box-shadow:none}.selectable-card__item.selectable-card__item--line--selected{border-color:var(--border, var(--m-border));box-shadow:none;background:var(--background, var(--m-background))}.selectable-card__item.selectable-card__item--line--selected:hover:not(.selectable-card__item--disabled){box-shadow:none}.selectable-card__item.selectable-card__item--line:focus-visible{outline-color:var(--border, var(--m-border))}.selectable-card__item.selectable-card__item--line .selectable-card__indicator{display:none}.selectable-card__item:hover:not(.selectable-card__item--disabled){border-color:var(--m-selectable-card-hover-border, color-mix(in srgb, var(--m-focus) 55%, var(--m-background)));box-shadow:none}.selectable-card__item--selected{border-color:var(--m-selectable-card-selected-border, var(--m-focus));box-shadow:none;background:color-mix(in srgb,var(--m-focus) 5%,var(--m-background))}.selectable-card__item:focus-visible{outline:2px solid var(--m-focus);outline-offset:3px}.selectable-card__item--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.selectable-card__content{flex:1;min-width:0;max-width:100%;display:flex;align-items:center;gap:.5rem}.selectable-card__content>*{flex:1;min-width:0;max-width:100%}.selectable-card__icon{flex-shrink:0;display:flex}.selectable-card__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selectable-card__indicator{flex-shrink:0;display:flex;align-items:center}.selectable-card__indicator input[type=checkbox],.selectable-card__indicator input[type=radio]{appearance:none;-webkit-appearance:none;width:1.25rem;height:1.25rem;border:var(--m-input-border-width, 1px) solid color-mix(in srgb,var(--m-text) 18%,var(--m-background));border-radius:var(--m-checkbox-radius, .35rem);background:var(--m-text-input-background, color-mix(in srgb, var(--m-focus) 2%, var(--m-background)));cursor:pointer;box-sizing:border-box;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;position:relative;flex-shrink:0;outline:none}.selectable-card__indicator input[type=checkbox][type=radio],.selectable-card__indicator input[type=radio][type=radio]{border-radius:50%}.selectable-card__indicator input[type=checkbox]:hover:not(:disabled),.selectable-card__indicator input[type=radio]:hover:not(:disabled){border-color:color-mix(in srgb,var(--m-focus) 55%,var(--m-background))}.selectable-card__indicator input[type=checkbox]:focus-visible,.selectable-card__indicator input[type=radio]:focus-visible{border-color:var(--m-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--m-focus) 14%,transparent)}.selectable-card__indicator input[type=checkbox]:checked,.selectable-card__indicator input[type=radio]:checked{background:var(--m-focus);border-color:var(--m-focus)}.selectable-card__indicator input[type=checkbox]:checked:hover:not(:disabled),.selectable-card__indicator input[type=radio]:checked:hover:not(:disabled){box-shadow:0 0 0 3px color-mix(in srgb,var(--m-focus) 18%,transparent)}.selectable-card__indicator input[type=checkbox]:checked:after,.selectable-card__indicator input[type=radio]:checked:after{content:\"\";position:absolute;top:50%;left:50%}.selectable-card__indicator input[type=checkbox][type=checkbox]:checked:after,.selectable-card__indicator input[type=radio][type=checkbox]:checked:after{width:.45rem;height:.25rem;border-left:2px solid white;border-bottom:2px solid white;transform:translate(-50%,-60%) rotate(-45deg)}.selectable-card__indicator input[type=checkbox][type=radio]:checked:after,.selectable-card__indicator input[type=radio][type=radio]:checked:after{width:.5rem;height:.5rem;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}.selectable-card__indicator input[type=checkbox]:disabled,.selectable-card__indicator input[type=radio]:disabled{opacity:.5;cursor:not-allowed}\n"] }]
|
|
22472
23003
|
}], propDecorators: { element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], projectedTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
22473
23004
|
|
|
22474
23005
|
var selectableCard = /*#__PURE__*/Object.freeze({
|
|
@@ -23277,7 +23808,7 @@ class FileUploadInputComponent extends BaseInputComponent {
|
|
|
23277
23808
|
const modalStore = this.modalStore;
|
|
23278
23809
|
if (!modalStore)
|
|
23279
23810
|
return undefined;
|
|
23280
|
-
const { ImageEditorComponent } = await import('./magmonium-one-image-editor-
|
|
23811
|
+
const { ImageEditorComponent } = await import('./magmonium-one-image-editor-CW-I0TUU.mjs');
|
|
23281
23812
|
const ratio = String(this.config()?.ratio ?? '');
|
|
23282
23813
|
return new Promise((resolve) => {
|
|
23283
23814
|
const modalRef = new ModalRef();
|
|
@@ -33877,6 +34408,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
33877
34408
|
], template: "<m-section maxHeight=\"full\">\n @if (currentUser(); as user) {\n <m-row>\n <m-col [sm]=\"11\" [padding]=\"true\">\n <m-user [id]=\"user.id\" [user]=\"user\" mRef=\"root_user\">\n <span class=\"user-nav__username\">@{{ user.username }}</span>\n </m-user>\n </m-col>\n <m-col [sm]=\"1\">\n <m-context-menu name=\"user_header\" [config]=\"{ one: true }\" (action)=\"onUserMenuAction($event)\" />\n </m-col>\n </m-row>\n }\n <m-col>\n @if (activeTabEntry(); as entry) {\n @if (entry.ceSelector) {\n <m-ce-outlet [tag]=\"entry.ceSelector\" />\n } @else if (entry.component) {\n <ng-container [ngComponentOutlet]=\"entry.component\" />\n } @else {\n <m-nothing icon=\"clock\" title=\"soon-available\" />\n }\n }\n </m-col>\n</m-section>\n", 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)}}.user-nav__username{font-size:.6875rem;font-weight:600;color:var(--m-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.profile-dashboard{display:flex;flex-direction:column;width:100%;margin:0 auto;overflow:visible;box-sizing:border-box;background:var(--m-background-lite)}.profile-banner{position:relative;height:160px;width:100%;overflow:hidden;background:linear-gradient(135deg,var(--m-mm-dark) 0%,color-mix(in oklch,var(--m-mm-dark),#000 20%) 100%);transition:all .5s cubic-bezier(.16,1,.3,1);cursor:pointer}.profile-banner:hover .profile-banner__blob--1{transform:translate(15%,10%) scale(1.1)}.profile-banner:hover .profile-banner__blob--2{transform:translate(-15%,-10%) scale(1.1)}.profile-banner:hover .profile-banner__blob--3{transform:translate(10%,-15%) scale(1.1)}.profile-banner__animate{position:absolute;inset:0;overflow:hidden;opacity:.85}.profile-banner__blob{position:absolute;border-radius:50%;filter:blur(50px);will-change:transform;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}.profile-banner__blob--1{width:240px;height:240px;background:radial-gradient(circle,color-mix(in oklch,var(--m-mm) 85%,transparent) 0%,transparent 70%);top:-85px;left:-40px;animation:float-1 14s infinite alternate ease-in-out}.profile-banner__blob--2{width:200px;height:200px;background:radial-gradient(circle,color-mix(in oklch,#e65c00 75%,transparent) 0%,transparent 70%);bottom:-65px;right:-30px;animation:float-2 18s infinite alternate ease-in-out}.profile-banner__blob--3{width:160px;height:160px;background:radial-gradient(circle,color-mix(in oklch,#ffcc00 65%,transparent) 0%,transparent 70%);top:15px;left:35%;animation:float-3 12s infinite alternate ease-in-out}.profile-banner__overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#00000003,#00000014);-webkit-backdrop-filter:saturate(1.3);backdrop-filter:saturate(1.3)}@keyframes float-1{0%{transform:translate(-10%,-10%) scale(1)}50%{transform:translate(20%,12%) scale(1.1)}to{transform:translate(-5%,15%) scale(.95)}}@keyframes float-2{0%{transform:translate(20%,12%) scale(1.05)}50%{transform:translate(-12%,-12%) scale(.92)}to{transform:translate(12%,5%) scale(1.1)}}@keyframes float-3{0%{transform:translate(8%,20%) scale(.92)}50%{transform:translate(25%,-8%) scale(1.08)}to{transform:translate(5%,12%) scale(1)}}.profile-container{display:flex;flex-direction:column;padding:0 1.5rem 2rem;box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto}.profile-nav-card{background:transparent;border:none;overflow:hidden;box-sizing:border-box;width:100%;transition:all .3s cubic-bezier(.16,1,.3,1);margin-left:-1.75rem;margin-right:-1.75rem;width:calc(100% + 3.5rem)}.profile-nav-card.is-sticky{position:sticky;top:-1px;z-index:100;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--m-backdrop-border);box-shadow:0 4px 20px #0000000a;transition:all .3s cubic-bezier(.16,1,.3,1);animation:slide-down-fade .28s cubic-bezier(.16,1,.3,1)}.profile-content{display:flex;flex-direction:column;gap:1rem;box-sizing:border-box;margin-left:-1.75rem;margin-right:-1.75rem;width:calc(100% + 3.5rem)}.soon-card{background:#ffffff8c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--m-backdrop-border);border-radius:20px;padding:4.5rem 2rem;text-align:center;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px #00000004;box-sizing:border-box;width:100%}.soon-text{font-size:.875rem;color:var(--m-text-secondary);font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(135deg,var(--m-mm),var(--m-mm-lite));-webkit-background-clip:text;-webkit-text-fill-color:transparent}@keyframes slide-down-fade{0%{transform:translateY(-10px);opacity:.75}to{transform:translateY(0);opacity:1}}\n"] }]
|
|
33878
34409
|
}] });
|
|
33879
34410
|
|
|
34411
|
+
/**
|
|
34412
|
+
* Browser clipboard writes a gesture may fire. Takes one object so a designed
|
|
34413
|
+
* Screen's call site builds it the way it builds every GlobalMethod's
|
|
34414
|
+
* (CONTEXT.md GlobalMethod), and reports the outcome itself — a template call
|
|
34415
|
+
* has nowhere to await the write.
|
|
34416
|
+
*/
|
|
34417
|
+
class ClipboardService {
|
|
34418
|
+
notificationService = inject(NotificationService);
|
|
34419
|
+
translateService = inject(TranslateService);
|
|
34420
|
+
copy = ({ text }) => {
|
|
34421
|
+
if (typeof navigator === 'undefined' || !navigator.clipboard) {
|
|
34422
|
+
this.notifyFailed();
|
|
34423
|
+
return;
|
|
34424
|
+
}
|
|
34425
|
+
navigator.clipboard
|
|
34426
|
+
.writeText(text)
|
|
34427
|
+
.then(() => this.notificationService.notify({
|
|
34428
|
+
title: this.translateService.translate('copied-to-clipboard'),
|
|
34429
|
+
type: NotificationType.TEXT,
|
|
34430
|
+
severity: 'success',
|
|
34431
|
+
user: { name: 'System' },
|
|
34432
|
+
}))
|
|
34433
|
+
.catch(() => this.notifyFailed());
|
|
34434
|
+
};
|
|
34435
|
+
notifyFailed = () => {
|
|
34436
|
+
this.notificationService.notify({
|
|
34437
|
+
title: this.translateService.translate('copy-to-clipboard-failed'),
|
|
34438
|
+
type: NotificationType.TEXT,
|
|
34439
|
+
severity: 'error',
|
|
34440
|
+
user: { name: 'System' },
|
|
34441
|
+
});
|
|
34442
|
+
};
|
|
34443
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
34444
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ClipboardService, providedIn: 'root' });
|
|
34445
|
+
}
|
|
34446
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ClipboardService, decorators: [{
|
|
34447
|
+
type: Injectable,
|
|
34448
|
+
args: [{ providedIn: 'root' }]
|
|
34449
|
+
}] });
|
|
34450
|
+
|
|
33880
34451
|
class NotificationGroupComponent {
|
|
33881
34452
|
title = input('Notifications', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
33882
34453
|
emptyMessage = input('No notifications', ...(ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []));
|
|
@@ -38004,5 +38575,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
38004
38575
|
* Generated bundle index. Do not edit.
|
|
38005
38576
|
*/
|
|
38006
38577
|
|
|
38007
|
-
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, InstrumentScoreComponent 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, DotGridComponent as aA, DragListDirective as aB, DragListItemDirective as aC, DraggableDirective as aD, DropdownInputComponent as aE, FILTER_GROUP_CONTEXT as aF, FILTER_RANGE_MODES as aG, FILTER_VARIANTS as aH, FLEX_VARIANTS as aI, FOLDER_PICK_LISTENER as aJ, FORM_ASSET_FOLDER as aK, FileService as aL, FileUploadDirective as aM, FileUploadInputComponent as aN, FlexComponent as aO, FlexItemComponent as aP, FormGroupComponent as aQ, FrameComponent as aR, FreezeService as aS, GRID_BREAKPOINTS as aT, GetNavService as aU, HighlightDirective as aV, HttpService as aW, ICON_SOURCE as aX, IS_SIDE_PANEL as aY, IconComponent as aZ, ImgComponent as a_, ContextMenuComponent as aa, CustomIconClass as ab, CustomIconEditComponent as ac, DEFAULT_DENIAL as ad, DEFAULT_DOC_DENSITY as ae, DEFAULT_DOC_VARIANT as af, DEFAULT_FILTER_RANGE_MODE as ag, DEFAULT_FILTER_VARIANT as ah, DEFAULT_NAV_PARAM as ai, DEFAULT_NAV_SEGMENT as aj, DEFAULT_SIZE as ak, DOCK_MIN_PAGE_REMAINDER as al, DOCS_FOLDER as am, DOC_ACTION_ICONS as an, DOC_DENSITIES as ao, DOC_EDIT_ACTIONS as ap, DOC_TOOLBAR_GROUPS as aq, DOC_VARIANTS as ar, DashboardCardComponent as as, DateInputComponent as at, DatePickerComponent as au, DeviceService as av, DocComponent as aw, DocEditorComponent as ax, DomService as ay, Domain as az, MAX_ZOOM as b, PwaInstallComponent as b$, InterceptorObservables as b0, JumbotronComponent as b1, KeyValueComponent as b2, LAYOUT_ASSET_FOLDER as b3, LOGIN_COMPONENT as b4, LOGIN_STORE as b5, LanguageComponent as b6, ListComponent as b7, LogoComponent as b8, MAG_SOCKET_EVENT as b9, NavStore as bA, NavTrailComponent as bB, NothingComponent as bC, NotificationElementComponent as bD, NotificationGroupComponent as bE, NotificationPopupComponent as bF, NotificationService as bG, NotificationStore as bH, NotificationType as bI, NotificationWidgetComponent as bJ, ONE_ASSET_BASE_URL as bK, OPTIONS_SOURCE as bL, OVERLAY_WIDGETS as bM, OneApp as bN, OptionsSourceDirective as bO, OverlayBodyComponent as bP, OverlayRef as bQ, OverlayService as bR, PLATFORM_BUTTON_NAV_IDS as bS, PLATFORM_EXTENSIBLE_NAV_IDS as bT, PLATFORM_NAV_MAP as bU, PLATFORM_ROOT_CHILDREN as bV, PaginationComponent as bW, PanelComponent as bX, PercentagePipe as bY, PlaygroundComponent as bZ, PositionDirective as b_, MHeroColorDirective as ba, MHeroComponent as bb, MODAL_STORE_REF as bc, MRefDirective as bd, MStepComponent as be, MURL_PARAM as bf, MURL_SEP as bg, ManifestEnrichmentService as bh, MenuComponent as bi, ModalDirective as bj, ModalRef as bk, ModalStore as bl, MoneyPipe as bm, MultiRangeInputComponent as bn, MurlUrlSerializer as bo, NAV_DEFAULT_MURL as bp, NAV_ID_SEP as bq, NAV_MAIN_BUTTONS as br, NAV_SEGMENT_RE as bs, NAV_STORE_REF as bt, NAV_WC_COMPONENTS as bu, NAV_WIDGET_MAP as bv, NavComponent as bw, NavDetailsComponent as bx, NavHeaderComponent as by, NavMenuComponent as bz, cropRect as c, SummaryComponent as c$, ROOT_NAV$1 as c0, RadioGroupComponent as c1, RadioInputComponent as c2, RatingInputComponent as c3, ReactiveElementComponent as c4, RemoteComponent as c5, RemoteLoaderService as c6, ResizeElementComponent as c7, RouteContainer as c8, RowComponent as c9, SectionFormComponent as cA, SectionFormItemComponent as cB, SectionHeaderComponent as cC, SectionHeroComponent as cD, SectionPaginationComponent as cE, SectionSearchComponent as cF, SectionStepperComponent as cG, SectionTabsComponent as cH, SectionToggleComponent as cI, SectionToggleItemDirective as cJ, SelectableCardInputComponent as cK, SelectorDirective as cL, SettingsSearchBarComponent as cM, SettingsSearchService as cN, ShapeComponent as cO, SharedStoreRegistry as cP, SidePanelDirective as cQ, Size as cR, SocketStore as cS, SortComponent as cT, StatComponent as cU, StepComponent as cV, StepperComponent as cW, StepsComponent as cX, StorageService as cY, StrokeLinecap as cZ, StrokeLinejoin as c_, SEARCH_QUERY as ca, SEARCH_RESULTS_EVENT as cb, SECTION_ACCORDION_GROUP as cc, SECTION_FORM_CONTEXT as cd, SHARED_ICONS as ce, SIZE_CONTEXT as cf, ScoreComponent as cg, ScrollComponent as ch, ScrollService as ci, SearchPanelComponent as cj, SearchStore as ck, SearchUserPanelComponent as cl, SectionAccordionDirective as cm, SectionAccordionGroupDirective as cn, SectionBackComponent as co, SectionBadgesComponent as cp, SectionButtonGroupComponent as cq, SectionCardComponent as cr, SectionCarouselComponent as cs, SectionComponent as ct, SectionFilterComponent as cu, SectionFilterGroupComponent as cv, SectionFilterMenuComponent as cw, SectionFilterPanelComponent as cx, SectionFilterRangePanelComponent as cy, SectionFooterComponent as cz, drawFramed as d, derivePropertyName as d$, SvgGeneratorComponent as d0, SvgGeneratorService as d1, SvgService as d2, TOTAL_COLUMNS as d3, TRANSLATION_SOURCE as d4, TableComponent as d5, TechnicalMeterComponent as d6, TextInputComponent as d7, TextareaInputComponent as d8, ThemeComponent as d9, WIN_USER_TAB_KEY as dA, WatermarkComponent as dB, WcRouterStore as dC, WrapperInputComponent as dD, anchorNavId as dE, applyColorsToElement as dF, applyDocEdit as dG, assetOptions as dH, bootstrapMagApp as dI, bootstrapPwaInstall as dJ, buildWcBaseUrl as dK, calculateLuminance as dL, calculateRanks as dM, cellText as dN, checkDoc as dO, checkFilterCondition as dP, childNavId as dQ, claimDenial as dR, classListSignal as dS, coerceSize as dT, cornerEdge as dU, cornerSide as dV, createMap as dW, createPlatformNavMap as dX, deriveAvatarGradient as dY, deriveContrastColor as dZ, deriveOppositeColor as d_, ThemeDataService as da, ThemeService as db, ThemeStore as dc, TimeAgoPipe as dd, TimelineComponent as de, ToggleButtonComponent as df, ToggleInputComponent as dg, ToggleRadioInputComponent as dh, ToolTipDirective as di, TooltipComponent as dj, TranslateService as dk, TreeGridComponent as dl, URL_SEP as dm, USER_STORE_REF as dn, USER_TAB_MAP as dp, UniverseComponent as dq, UserApiService as dr, UserAvatarComponent as ds, UserComponent as dt, UserNavComponent as du, UserSettingsComponent as dv, UserStore as dw, WC_ROUTE_CHANGED_EVENT as dx, WC_SEARCH_GROUPS as dy, WIN_USER_TAB_HOOK as dz, encodeFramed as e, isValidNavSegment as e$, docActionKey as e0, docAssetCandidates as e1, docProblemKey as e2, docRemotePath as e3, emailValidation as e4, evaluate as e5, evaluateBool as e6, fieldBoolean as e7, fieldNumber as e8, fieldString as e9, hasErrorComputed as eA, hexToRgb as eB, hslToRgb$1 as eC, initMagmoniumApp as eD, initialNotificationState as eE, initialState$2 as eF, initials as eG, injectAuthenticate as eH, injectDefaultDenial as eI, injectInstallApp as eJ, injectParentSize as eK, injectScrollSticky as eL, isButtonName as eM, isCancelledComputed as eN, isExtensiblePlatformNavId as eO, isJson as eP, isLoadingComputed as eQ, isLocalhost as eR, isNavInstanceConfig as eS, isNavMenuConfig as eT, isNavRowsConfig as eU, isNavVisibilityConfig as eV, isPlatformNavId as eW, isSize as eX, isTierPreview as eY, isUrlLocalhost as eZ, isValidNavId as e_, filterHoldsList as ea, filterHoldsOneBound as eb, filterHoldsOptions as ec, filterHoldsRange as ed, filterList as ee, filterNumber as ef, filterNumberList as eg, filterOne as eh, filterPanelOf as ei, filterPanelWidth as ej, filterRange as ek, filterTreeGridRows as el, filterValueList as em, filterValues as en, flattenTreeGridRows as eo, formatBadgeCount as ep, fullName as eq, generateClipPath as er, generateTransform as es, getClassList as et, getProperty as eu, getScrollParent as ev, getTierFromPreviewPath as ew, getTreeGridRow as ex, getUniqueId as ey, getValue as ez, clampFraming as f, segmentsToNavId as f$, isWebComponent as f0, linkToId as f1, linkToNav as f2, loadingActions as f3, mInterceptor as f4, manualValidation as f5, matchFieldValidation as f6, maxLengthValidation as f7, maxValidation as f8, mergePlatformNav as f9, processImageToSvg as fA, provideAppContext as fB, provideMagAppConfig as fC, provideMagWcConfig as fD, provideMagWcRoutes as fE, provideModalComponents as fF, provideMurlUrlSerializer as fG, provideNavWidgets as fH, provideOverlayWidgets as fI, providePlatformNavWidgets as fJ, provideSearch as fK, provideSizeContext as fL, provideUserTabs as fM, publicGuard as fN, readFieldPatterns as fO, renderAddress as fP, renderDocument 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, samePatterns as f_, mergeUnique as fa, mergeUniqueBy as fb, mergeUniqueWith as fc, minAgeValidation as fd, minLengthValidation as fe, minValidation as ff, miniMarkToHtml as fg, navIdChain as fh, navIdFor as fi, navIdSegment as fj, navIdToRoutePath as fk, navIdToSegments as fl, navParamOf as fm, navToId as fn, navVisibilityGuard as fo, normalizeAssetOptions as fp, offsetOfLine as fq, parentNavId as fr, parseAddress as fs, parseColor as ft, parsePatternNames as fu, patternValidation as fv, patternsValidation as fw, permissionRefusal as fx, platformNavWidgets as fy, privateGuard as fz, BaseInputComponent as g, setProperty as g0, setTreeGridChildren as g1, settingsWidgets as g2, shouldShowBadge as g3, splitNavId as g4, splitOnMatch as g5, stringToColor as g6, toAttrBool as g7, toAttrNumber as g8, toCssLength as g9, toHostNavId as ga, toLength$1 as gb, toLocalNavId as gc, toggleTreeGridRow as gd, unfetchedPlatformNav as ge, ungroupedDocActions as gf, urlValidation as gg, 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 };
|
|
38008
|
-
//# sourceMappingURL=magmonium-one-magmonium-one-
|
|
38578
|
+
export { ClipboardService 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, ImgComponent as a$, ColComponent as a0, ColorPickerInputComponent as a1, CommentItemComponent as a2, CommentsApiService as a3, CommentsComponent as a4, CommentsStore as a5, CompactNumberPipe as a6, ComponentInputComponent as a7, ComponentStepperComponent as a8, ConfigComponent as a9, Domain as aA, DotGridComponent as aB, DragListDirective as aC, DragListItemDirective as aD, DraggableDirective as aE, DropdownInputComponent as aF, FILTER_GROUP_CONTEXT as aG, FILTER_RANGE_MODES as aH, FILTER_VARIANTS as aI, FLEX_VARIANTS as aJ, FOLDER_PICK_LISTENER as aK, FORM_ASSET_FOLDER as aL, FileService as aM, FileUploadDirective as aN, FileUploadInputComponent as aO, FlexComponent as aP, FlexItemComponent as aQ, FormGroupComponent as aR, FrameComponent as aS, FreezeService as aT, GRID_BREAKPOINTS as aU, GetNavService as aV, HighlightDirective as aW, HttpService as aX, ICON_SOURCE as aY, IS_SIDE_PANEL as aZ, IconComponent as a_, ConfirmComponent as aa, ContextMenuComponent as ab, CustomIconClass as ac, CustomIconEditComponent as ad, DEFAULT_DENIAL as ae, DEFAULT_DOC_DENSITY as af, DEFAULT_DOC_VARIANT as ag, DEFAULT_FILTER_RANGE_MODE as ah, DEFAULT_FILTER_VARIANT as ai, DEFAULT_NAV_PARAM as aj, DEFAULT_NAV_SEGMENT as ak, DEFAULT_SIZE as al, DOCK_MIN_PAGE_REMAINDER as am, DOCS_FOLDER as an, DOC_ACTION_ICONS as ao, DOC_DENSITIES as ap, DOC_EDIT_ACTIONS as aq, DOC_TOOLBAR_GROUPS as ar, DOC_VARIANTS as as, DashboardCardComponent as at, DateInputComponent as au, DatePickerComponent as av, DeviceService as aw, DocComponent as ax, DocEditorComponent as ay, DomService as az, MAX_ZOOM as b, PositionDirective as b$, InstrumentScoreComponent as b0, InterceptorObservables as b1, JumbotronComponent as b2, KeyValueComponent as b3, LAYOUT_ASSET_FOLDER as b4, LOGIN_COMPONENT as b5, LOGIN_STORE as b6, LanguageComponent as b7, ListComponent as b8, LogoComponent as b9, NavMenuComponent as bA, NavStore as bB, NavTrailComponent as bC, NothingComponent as bD, NotificationElementComponent as bE, NotificationGroupComponent as bF, NotificationPopupComponent as bG, NotificationService as bH, NotificationStore as bI, NotificationType as bJ, NotificationWidgetComponent as bK, ONE_ASSET_BASE_URL as bL, OPTIONS_SOURCE as bM, OVERLAY_WIDGETS as bN, OneApp as bO, OptionsSourceDirective as bP, OverlayBodyComponent as bQ, OverlayRef as bR, OverlayService as bS, PLATFORM_BUTTON_NAV_IDS as bT, PLATFORM_EXTENSIBLE_NAV_IDS as bU, PLATFORM_NAV_MAP as bV, PLATFORM_ROOT_CHILDREN as bW, PaginationComponent as bX, PanelComponent as bY, PercentagePipe as bZ, PlaygroundComponent as b_, MAG_SOCKET_EVENT as ba, MHeroColorDirective as bb, MHeroComponent as bc, MODAL_STORE_REF as bd, MRefDirective as be, MStepComponent as bf, MURL_PARAM as bg, MURL_SEP as bh, ManifestEnrichmentService as bi, MenuComponent as bj, ModalDirective as bk, ModalRef as bl, ModalStore as bm, MoneyPipe as bn, MultiRangeInputComponent as bo, MurlUrlSerializer as bp, NAV_DEFAULT_MURL as bq, NAV_ID_SEP as br, NAV_MAIN_BUTTONS as bs, NAV_SEGMENT_RE as bt, NAV_STORE_REF as bu, NAV_WC_COMPONENTS as bv, NAV_WIDGET_MAP as bw, NavComponent as bx, NavDetailsComponent as by, NavHeaderComponent as bz, cropRect as c, StepperComponent as c$, PwaInstallComponent as c0, ROOT_NAV$1 as c1, RadioGroupComponent as c2, RadioInputComponent as c3, RatingInputComponent as c4, ReactiveElementComponent as c5, RemoteComponent as c6, RemoteLoaderService as c7, ResizeElementComponent as c8, RouteContainer as c9, SectionFooterComponent as cA, SectionFormComponent as cB, SectionFormItemComponent as cC, SectionHeaderComponent as cD, SectionHeroComponent as cE, SectionPaginationComponent as cF, SectionSearchComponent as cG, SectionStepperComponent as cH, SectionTableCellComponent as cI, SectionTableComponent as cJ, SectionTableRowComponent as cK, SectionTableSortPipe as cL, SectionTabsComponent as cM, SectionToggleComponent as cN, SectionToggleItemDirective as cO, SelectableCardInputComponent as cP, SelectorDirective as cQ, SettingsSearchBarComponent as cR, SettingsSearchService as cS, ShapeComponent as cT, SharedStoreRegistry as cU, SidePanelDirective as cV, Size as cW, SocketStore as cX, SortComponent as cY, StatComponent as cZ, StepComponent as c_, RowComponent as ca, SEARCH_QUERY as cb, SEARCH_RESULTS_EVENT as cc, SECTION_ACCORDION_GROUP as cd, SECTION_FORM_CONTEXT as ce, SHARED_ICONS as cf, SIZE_CONTEXT as cg, ScoreComponent as ch, ScrollComponent as ci, ScrollService as cj, SearchPanelComponent as ck, SearchStore as cl, SearchUserPanelComponent as cm, SectionAccordionDirective as cn, SectionAccordionGroupDirective as co, SectionBackComponent as cp, SectionBadgesComponent as cq, SectionButtonGroupComponent as cr, SectionCardComponent as cs, SectionCarouselComponent as ct, SectionComponent as cu, SectionFilterComponent as cv, SectionFilterGroupComponent as cw, SectionFilterMenuComponent as cx, SectionFilterPanelComponent as cy, SectionFilterRangePanelComponent as cz, drawFramed as d, createMap as d$, StepsComponent as d0, StorageService as d1, StrokeLinecap as d2, StrokeLinejoin as d3, SummaryComponent as d4, SvgGeneratorComponent as d5, SvgGeneratorService as d6, SvgService as d7, TOTAL_COLUMNS as d8, TRANSLATION_SOURCE as d9, UserSettingsComponent as dA, UserStore as dB, WC_ROUTE_CHANGED_EVENT as dC, WC_SEARCH_GROUPS as dD, WIN_USER_TAB_HOOK as dE, WIN_USER_TAB_KEY as dF, WatermarkComponent as dG, WcRouterStore as dH, WrapperInputComponent as dI, anchorNavId as dJ, applyColorsToElement as dK, applyDocEdit as dL, assetOptions as dM, bootstrapMagApp as dN, bootstrapPwaInstall as dO, buildWcBaseUrl as dP, calculateLuminance as dQ, calculateRanks as dR, cellText as dS, checkDoc as dT, checkFilterCondition as dU, childNavId as dV, claimDenial as dW, classListSignal as dX, coerceSize as dY, cornerEdge as dZ, cornerSide as d_, TableComponent as da, TechnicalMeterComponent as db, TextInputComponent as dc, TextareaInputComponent as dd, ThemeComponent as de, ThemeDataService as df, ThemeService as dg, ThemeStore as dh, TimeAgoPipe as di, TimelineComponent as dj, ToggleButtonComponent as dk, ToggleInputComponent as dl, ToggleRadioInputComponent as dm, ToolTipDirective as dn, TooltipComponent as dp, TranslateService as dq, TreeGridComponent as dr, URL_SEP as ds, USER_STORE_REF as dt, USER_TAB_MAP as du, UniverseComponent as dv, UserApiService as dw, UserAvatarComponent as dx, UserComponent as dy, UserNavComponent as dz, encodeFramed as e, isPlatformNavId as e$, createPlatformNavMap as e0, deriveAvatarGradient as e1, deriveContrastColor as e2, deriveOppositeColor as e3, derivePropertyName as e4, docActionKey as e5, docAssetCandidates as e6, docProblemKey as e7, docRemotePath as e8, emailValidation as e9, getScrollParent as eA, getTierFromPreviewPath as eB, getTreeGridRow as eC, getUniqueId as eD, getValue as eE, hasErrorComputed as eF, hexToRgb as eG, hslToRgb$1 as eH, initMagmoniumApp as eI, initialNotificationState as eJ, initialState$2 as eK, initials as eL, injectAuthenticate as eM, injectDefaultDenial as eN, injectInstallApp as eO, injectParentSize as eP, injectScrollSticky as eQ, isButtonName as eR, isCancelledComputed as eS, isExtensiblePlatformNavId as eT, isJson as eU, isLoadingComputed as eV, isLocalhost as eW, isNavInstanceConfig as eX, isNavMenuConfig as eY, isNavRowsConfig as eZ, isNavVisibilityConfig as e_, evaluate as ea, evaluateBool as eb, fieldBoolean as ec, fieldNumber as ed, fieldString as ee, filterHoldsList as ef, filterHoldsOneBound as eg, filterHoldsOptions as eh, filterHoldsRange as ei, filterList as ej, filterNumber as ek, filterNumberList as el, filterOne as em, filterPanelOf as en, filterPanelWidth as eo, filterRange as ep, filterTreeGridRows as eq, filterValueList as er, filterValues as es, flattenTreeGridRows as et, formatBadgeCount as eu, fullName as ev, generateClipPath as ew, generateTransform as ex, getClassList as ey, getProperty as ez, clampFraming as f, resolvePatternRules as f$, isSize as f0, isTierPreview as f1, isUrlLocalhost as f2, isValidNavId as f3, isValidNavSegment as f4, isWebComponent as f5, linkToId as f6, linkToNav as f7, loadingActions as f8, mInterceptor as f9, parsePatternNames as fA, patternValidation as fB, patternsValidation as fC, permissionRefusal as fD, platformNavWidgets as fE, privateGuard as fF, processImageToSvg as fG, provideAppContext as fH, provideMagAppConfig as fI, provideMagWcConfig as fJ, provideMagWcRoutes as fK, provideModalComponents as fL, provideMurlUrlSerializer as fM, provideNavWidgets as fN, provideOverlayWidgets as fO, providePlatformNavWidgets as fP, provideSearch as fQ, provideSizeContext as fR, provideUserTabs as fS, publicGuard as fT, readFieldPatterns as fU, renderAddress as fV, renderDocument as fW, requiredValidation as fX, resolveConfigAsset as fY, resolveIconSize as fZ, resolvePallet as f_, manualValidation as fa, matchFieldValidation as fb, maxLengthValidation as fc, maxValidation as fd, mergePlatformNav as fe, mergeUnique as ff, mergeUniqueBy as fg, mergeUniqueWith as fh, minAgeValidation as fi, minLengthValidation as fj, minValidation as fk, miniMarkToHtml as fl, navIdChain as fm, navIdFor as fn, navIdSegment as fo, navIdToRoutePath as fp, navIdToSegments as fq, navParamOf as fr, navToId as fs, navVisibilityGuard as ft, nextSectionTableSort as fu, normalizeAssetOptions as fv, offsetOfLine as fw, parentNavId as fx, parseAddress as fy, parseColor as fz, BaseInputComponent as g, resolveSize as g0, rgbToHex as g1, rgbToHsl as g2, rowHasChildren as g3, samePatterns as g4, sectionTableColumnId as g5, sectionTableColumnWidths as g6, sectionTableFrozenCount as g7, segmentsToNavId as g8, setProperty as g9, setTreeGridChildren as ga, settingsWidgets as gb, shouldShowBadge as gc, sortSectionTableRows as gd, splitNavId as ge, splitOnMatch as gf, stringToColor as gg, toAttrBool as gh, toAttrNumber as gi, toCssLength as gj, toHostNavId as gk, toLength$1 as gl, toLocalNavId as gm, toggleTreeGridRow as gn, unfetchedPlatformNav as go, ungroupedDocActions as gp, urlValidation as gq, 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 };
|
|
38579
|
+
//# sourceMappingURL=magmonium-one-magmonium-one-DcsNdIJx.mjs.map
|