@magmonium/one 0.3.1 → 0.3.3

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.
@@ -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-BNVDl--Z.mjs');
7467
+ const { ToggleInputComponent } = await import('./magmonium-one-toggle-Ck1omDTy.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-Cz9Ig8UG.mjs');
7479
+ const { PasswordInputComponent } = await import('./magmonium-one-password-CdOtPIN_.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-C6RUv8ws.mjs');
7484
+ const { OtpInputComponent } = await import('./magmonium-one-otp-B6RrWq6t.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 mintDeployToken = () => {
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,7 +17189,28 @@ withMethods((store) => ({
17072
17189
  patchState(store, { tokens });
17073
17190
  },
17074
17191
  clearAuth() {
17075
- patchState(store, { tokens: undefined, user: undefined });
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
+ mintDeployToken();
17204
+ },
17205
+ // Every caller confirms first: the old token dies the moment the new
17206
+ // one is minted.
17207
+ rotateDeployToken() {
17208
+ modalStore.confirm({
17209
+ header: 'rotate-deploy-token',
17210
+ body: 'rotate-deploy-token-body',
17211
+ kind: 'yes-no',
17212
+ type: 'warning',
17213
+ }, mintDeployToken);
17076
17214
  },
17077
17215
  logout() {
17078
17216
  patchState(store, initialState$2);
@@ -18464,6 +18602,415 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
18464
18602
  }, 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
18603
  }], 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
18604
 
18605
+ const SECTION_TABLE_CONTEXT = new InjectionToken('SECTION_TABLE_CONTEXT');
18606
+
18607
+ // A folded column keeps only the width its toggle needs.
18608
+ const FOLDED_WIDTH = '3rem';
18609
+ /**
18610
+ * The table composed from projected markup (CONTEXT.md SectionTable): the
18611
+ * `<table>` and its configured heading are this component's, every row is
18612
+ * projected. A row written inside an `@for` is drawn once per item, one outside
18613
+ * it once — so a `<tr m-section-table-row>` is all the body ever holds, and
18614
+ * which kind a row is comes from where it was written.
18615
+ *
18616
+ * Wears Table's flat look (`m-table` classes, never a panel border) and
18617
+ * nothing else of it: search, selection and row menus are Controls placed
18618
+ * around or inside it. A projected
18619
+ * `m-section-pagination` draws beneath the table and windows nothing itself.
18620
+ */
18621
+ class SectionTableComponent extends ConfigComponent {
18622
+ subFolder = LAYOUT_ASSET_FOLDER.section_table;
18623
+ // Scalars beside the asset, for SectionCarousel's reason: a Control emits
18624
+ // its settings onto the tag (ADR 0010). Unset defers to the asset.
18625
+ sticky = input(undefined, ...(ngDevMode ? [{ debugName: "sticky" }] : /* istanbul ignore next */ []));
18626
+ variant = input(undefined, ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
18627
+ loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
18628
+ /**
18629
+ * Fires on every sort click, after the rows were reordered in place — a
18630
+ * table holding one page of a longer list hands the sort to whoever fetches
18631
+ * (m-one-ui ADR 0148).
18632
+ */
18633
+ sortChange = output();
18634
+ /** The sort in force, read by `sectionTableSort` around each Repeat's source. */
18635
+ sort = signal(null, ...(ngDevMode ? [{ debugName: "sort" }] : /* istanbul ignore next */ []));
18636
+ columns = computed(() => this.config()?.columns ?? [], ...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
18637
+ resolvedSticky = computed(() => this.sticky() ?? this.config()?.sticky ?? false, ...(ngDevMode ? [{ debugName: "resolvedSticky" }] : /* istanbul ignore next */ []));
18638
+ resolvedVariant = computed(() => this.variant() ?? this.config()?.variant ?? 'default', ...(ngDevMode ? [{ debugName: "resolvedVariant" }] : /* istanbul ignore next */ []));
18639
+ // Which squeezing columns the reader has unfolded, by column id. Passing
18640
+ // state: nothing is emitted and nothing is kept (CONTEXT.md Squeeze).
18641
+ unfolded = signal(new Set(), ...(ngDevMode ? [{ debugName: "unfolded" }] : /* istanbul ignore next */ []));
18642
+ frozenCount = computed(() => sectionTableFrozenCount(this.columns()), ...(ngDevMode ? [{ debugName: "frozenCount" }] : /* istanbul ignore next */ []));
18643
+ widths = computed(() => sectionTableColumnWidths(this.columns()), ...(ngDevMode ? [{ debugName: "widths" }] : /* istanbul ignore next */ []));
18644
+ headings = viewChildren('heading', ...(ngDevMode ? [{ debugName: "headings" }] : /* istanbul ignore next */ []));
18645
+ offsets = signal([], ...(ngDevMode ? [{ debugName: "offsets" }] : /* istanbul ignore next */ []));
18646
+ constructor() {
18647
+ super();
18648
+ // A frozen column's `left` is the width of every frozen column before it,
18649
+ // which only layout knows.
18650
+ let observer;
18651
+ afterRenderEffect(() => {
18652
+ const cells = this.headings().map((h) => h.nativeElement);
18653
+ observer?.disconnect();
18654
+ if (!this.frozenCount() || typeof ResizeObserver === 'undefined')
18655
+ return;
18656
+ const measure = () => {
18657
+ let left = 0;
18658
+ const next = cells.map((cell) => {
18659
+ const at = left;
18660
+ left += cell.offsetWidth;
18661
+ return at;
18662
+ });
18663
+ const prev = untracked(this.offsets);
18664
+ if (next.some((v, i) => v !== prev[i]) || next.length !== prev.length) {
18665
+ this.offsets.set(next);
18666
+ }
18667
+ };
18668
+ observer = new ResizeObserver(measure);
18669
+ cells.forEach((cell) => observer?.observe(cell));
18670
+ measure();
18671
+ });
18672
+ inject(DestroyRef).onDestroy(() => observer?.disconnect());
18673
+ }
18674
+ isFolded(index) {
18675
+ const column = this.columns()[index];
18676
+ return (!!column?.squeeze &&
18677
+ !this.unfolded().has(sectionTableColumnId(column, index)));
18678
+ }
18679
+ offsetOf(index) {
18680
+ return this.offsets()[index] ?? 0;
18681
+ }
18682
+ justify(column) {
18683
+ if (column.align === 'center')
18684
+ return 'center';
18685
+ return column.align === 'right' ? 'flex-end' : null;
18686
+ }
18687
+ columnWidth(index) {
18688
+ return this.isFolded(index) ? FOLDED_WIDTH : (this.widths()[index] ?? null);
18689
+ }
18690
+ toggleFold(index) {
18691
+ const column = this.columns()[index];
18692
+ if (!column)
18693
+ return;
18694
+ const id = sectionTableColumnId(column, index);
18695
+ const next = new Set(this.unfolded());
18696
+ if (next.has(id))
18697
+ next.delete(id);
18698
+ else
18699
+ next.add(id);
18700
+ this.unfolded.set(next);
18701
+ }
18702
+ sortDirection(index) {
18703
+ const column = this.columns()[index];
18704
+ const sort = this.sort();
18705
+ return column && sort?.id === sectionTableColumnId(column, index)
18706
+ ? sort.direction
18707
+ : null;
18708
+ }
18709
+ ariaSort(index) {
18710
+ const direction = this.sortDirection(index);
18711
+ if (!direction)
18712
+ return null;
18713
+ return direction === 'asc' ? 'ascending' : 'descending';
18714
+ }
18715
+ onSortClick(column, index) {
18716
+ if (!column.sortable || this.isFolded(index))
18717
+ return;
18718
+ const next = nextSectionTableSort(this.sort(), sectionTableColumnId(column, index), column.dataType);
18719
+ this.sort.set(next);
18720
+ this.sortChange.emit(next);
18721
+ }
18722
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18723
+ 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: [
18724
+ {
18725
+ provide: SECTION_TABLE_CONTEXT,
18726
+ useFactory: () => {
18727
+ const self = inject(SectionTableComponent);
18728
+ return {
18729
+ align: (i) => self.columns()[i]?.align,
18730
+ folded: (i) => self.isFolded(i),
18731
+ frozen: (i) => i < self.frozenCount(),
18732
+ frozenLast: (i) => i === self.frozenCount() - 1,
18733
+ frozenOffset: (i) => self.offsetOf(i),
18734
+ };
18735
+ },
18736
+ },
18737
+ ], viewQueries: [{ propertyName: "headings", predicate: ["heading"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
18738
+ <div
18739
+ class="m-table m-table--flat m-section-table"
18740
+ [class.m-section-table--zebra]="resolvedVariant() === 'zebra'"
18741
+ [class.m-section-table--compact]="resolvedVariant() === 'compact'"
18742
+ [class.m-section-table--spacious]="resolvedVariant() === 'spacious'"
18743
+ [class.m-section-table--sticky]="resolvedSticky()"
18744
+ >
18745
+ @if (loading()) {
18746
+ <m-freeze />
18747
+ }
18748
+ <div class="m-table__wrapper">
18749
+ <table class="m-table__table m-section-table__table">
18750
+ @if (columns().length) {
18751
+ <colgroup>
18752
+ @for (column of columns(); track $index) {
18753
+ <col [style.width]="columnWidth($index)" />
18754
+ }
18755
+ </colgroup>
18756
+ <thead class="m-table-thead">
18757
+ <tr>
18758
+ @for (column of columns(); track $index; let ci = $index) {
18759
+ <th
18760
+ #heading
18761
+ class="m-table-thead__th m-section-table__th"
18762
+ [class.m-section-table__th--folded]="isFolded(ci)"
18763
+ [class.m-section-table__th--squeeze]="!!column.squeeze"
18764
+ [class.m-table-thead__th--sortable]="!!column.sortable"
18765
+ [class.m-section-table__cell--frozen]="ci < frozenCount()"
18766
+ [class.m-section-table__cell--frozen-last]="
18767
+ ci === frozenCount() - 1
18768
+ "
18769
+ [style.left.px]="ci < frozenCount() ? offsetOf(ci) : null"
18770
+ [style.--m-section-table-justify]="justify(column)"
18771
+ [attr.aria-sort]="ariaSort(ci)"
18772
+ (click)="onSortClick(column, ci)"
18773
+ >
18774
+ <div class="m-table-thead__cell m-section-table__heading">
18775
+ @if (!isFolded(ci)) {
18776
+ <span class="m-section-table__label">{{
18777
+ column.label ?? '' | translate
18778
+ }}</span>
18779
+ @if (sortDirection(ci); as direction) {
18780
+ <span class="m-table-thead__sort-icon">
18781
+ <m-icon
18782
+ [name]="direction === 'asc' ? 'arrow-up' : 'arrow-down'"
18783
+ />
18784
+ </span>
18785
+ }
18786
+ }
18787
+ @if (column.squeeze) {
18788
+ <span class="m-section-table__squeeze">
18789
+ <m-button
18790
+ [icon]="isFolded(ci) ? 'chevrons-right' : 'chevrons-left'"
18791
+ [iconOnly]="true"
18792
+ variant="ghost"
18793
+ (click)="$event.stopPropagation()"
18794
+ (clicked)="toggleFold(ci)"
18795
+ />
18796
+ </span>
18797
+ }
18798
+ </div>
18799
+ </th>
18800
+ }
18801
+ </tr>
18802
+ </thead>
18803
+ }
18804
+ <tbody class="m-table-body m-section-table__body">
18805
+ <ng-content />
18806
+ </tbody>
18807
+ </table>
18808
+ </div>
18809
+ <ng-content select="m-section-pagination" />
18810
+ </div>
18811
+ `, 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 });
18812
+ }
18813
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableComponent, decorators: [{
18814
+ type: Component,
18815
+ args: [{ selector: 'm-section-table', imports: [TranslatePipe, ButtonComponent, FreezeComponent, IconComponent], template: `
18816
+ <div
18817
+ class="m-table m-table--flat m-section-table"
18818
+ [class.m-section-table--zebra]="resolvedVariant() === 'zebra'"
18819
+ [class.m-section-table--compact]="resolvedVariant() === 'compact'"
18820
+ [class.m-section-table--spacious]="resolvedVariant() === 'spacious'"
18821
+ [class.m-section-table--sticky]="resolvedSticky()"
18822
+ >
18823
+ @if (loading()) {
18824
+ <m-freeze />
18825
+ }
18826
+ <div class="m-table__wrapper">
18827
+ <table class="m-table__table m-section-table__table">
18828
+ @if (columns().length) {
18829
+ <colgroup>
18830
+ @for (column of columns(); track $index) {
18831
+ <col [style.width]="columnWidth($index)" />
18832
+ }
18833
+ </colgroup>
18834
+ <thead class="m-table-thead">
18835
+ <tr>
18836
+ @for (column of columns(); track $index; let ci = $index) {
18837
+ <th
18838
+ #heading
18839
+ class="m-table-thead__th m-section-table__th"
18840
+ [class.m-section-table__th--folded]="isFolded(ci)"
18841
+ [class.m-section-table__th--squeeze]="!!column.squeeze"
18842
+ [class.m-table-thead__th--sortable]="!!column.sortable"
18843
+ [class.m-section-table__cell--frozen]="ci < frozenCount()"
18844
+ [class.m-section-table__cell--frozen-last]="
18845
+ ci === frozenCount() - 1
18846
+ "
18847
+ [style.left.px]="ci < frozenCount() ? offsetOf(ci) : null"
18848
+ [style.--m-section-table-justify]="justify(column)"
18849
+ [attr.aria-sort]="ariaSort(ci)"
18850
+ (click)="onSortClick(column, ci)"
18851
+ >
18852
+ <div class="m-table-thead__cell m-section-table__heading">
18853
+ @if (!isFolded(ci)) {
18854
+ <span class="m-section-table__label">{{
18855
+ column.label ?? '' | translate
18856
+ }}</span>
18857
+ @if (sortDirection(ci); as direction) {
18858
+ <span class="m-table-thead__sort-icon">
18859
+ <m-icon
18860
+ [name]="direction === 'asc' ? 'arrow-up' : 'arrow-down'"
18861
+ />
18862
+ </span>
18863
+ }
18864
+ }
18865
+ @if (column.squeeze) {
18866
+ <span class="m-section-table__squeeze">
18867
+ <m-button
18868
+ [icon]="isFolded(ci) ? 'chevrons-right' : 'chevrons-left'"
18869
+ [iconOnly]="true"
18870
+ variant="ghost"
18871
+ (click)="$event.stopPropagation()"
18872
+ (clicked)="toggleFold(ci)"
18873
+ />
18874
+ </span>
18875
+ }
18876
+ </div>
18877
+ </th>
18878
+ }
18879
+ </tr>
18880
+ </thead>
18881
+ }
18882
+ <tbody class="m-table-body m-section-table__body">
18883
+ <ng-content />
18884
+ </tbody>
18885
+ </table>
18886
+ </div>
18887
+ <ng-content select="m-section-pagination" />
18888
+ </div>
18889
+ `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'm-section-table-host' }, providers: [
18890
+ {
18891
+ provide: SECTION_TABLE_CONTEXT,
18892
+ useFactory: () => {
18893
+ const self = inject(SectionTableComponent);
18894
+ return {
18895
+ align: (i) => self.columns()[i]?.align,
18896
+ folded: (i) => self.isFolded(i),
18897
+ frozen: (i) => i < self.frozenCount(),
18898
+ frozenLast: (i) => i === self.frozenCount() - 1,
18899
+ frozenOffset: (i) => self.offsetOf(i),
18900
+ };
18901
+ },
18902
+ },
18903
+ ], 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"] }]
18904
+ }], 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 }] }] } });
18905
+
18906
+ /**
18907
+ * One `<tr>` of a SectionTable (CONTEXT.md SectionTableRow). An attribute on a
18908
+ * real `<tr>` rather than an element of its own: a component host between
18909
+ * `<tbody>` and its cells breaks table layout. Repeated or static is decided by
18910
+ * where it was written, never by a setting here.
18911
+ */
18912
+ class SectionTableRowComponent {
18913
+ /** No payload: a repeated row's handler already has its item in scope. */
18914
+ rowClick = output();
18915
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18916
+ 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 });
18917
+ }
18918
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableRowComponent, decorators: [{
18919
+ type: Component,
18920
+ args: [{
18921
+ // An attribute selector on purpose: an element host between `<tbody>` and
18922
+ // `<td>` breaks table layout, and a cell's `cellIndex` only counts direct
18923
+ // children of its `<tr>`.
18924
+ // eslint-disable-next-line @angular-eslint/component-selector
18925
+ selector: 'tr[m-section-table-row]',
18926
+ template: `<ng-content />`,
18927
+ changeDetection: ChangeDetectionStrategy.OnPush,
18928
+ host: {
18929
+ class: 'm-table-body__row m-section-table__row',
18930
+ '(click)': 'rowClick.emit()',
18931
+ },
18932
+ }]
18933
+ }], propDecorators: { rowClick: [{ type: i0.Output, args: ["rowClick"] }] } });
18934
+
18935
+ /**
18936
+ * One `<td>` of a SectionTableRow (CONTEXT.md SectionTableCell), holding any
18937
+ * content. Answers to the column at its own position — its `cellIndex`, which
18938
+ * only the DOM knows once the row is laid out — for alignment, Squeeze and
18939
+ * freezing, and configures none of them itself.
18940
+ *
18941
+ * A folded cell keeps its content mounted and hidden rather than behind an
18942
+ * `@if`: projected content inside a conditional block is only projected once.
18943
+ */
18944
+ class SectionTableCellComponent {
18945
+ table = inject(SECTION_TABLE_CONTEXT, { optional: true });
18946
+ host = inject(ElementRef);
18947
+ index = signal(-1, ...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
18948
+ constructor() {
18949
+ // Every render, not once: a cell inserted before this one — a column added
18950
+ // on the Canvas, a Repeat filling in — moves it without any signal moving.
18951
+ afterEveryRender(() => {
18952
+ const at = this.host.nativeElement.cellIndex ?? -1;
18953
+ if (at !== this.index())
18954
+ this.index.set(at);
18955
+ });
18956
+ }
18957
+ align = computed(() => this.read((t, i) => t.align(i)), ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
18958
+ folded = computed(() => this.read((t, i) => t.folded(i)) ?? false, ...(ngDevMode ? [{ debugName: "folded" }] : /* istanbul ignore next */ []));
18959
+ frozen = computed(() => this.read((t, i) => t.frozen(i)) ?? false, ...(ngDevMode ? [{ debugName: "frozen" }] : /* istanbul ignore next */ []));
18960
+ frozenLast = computed(() => this.read((t, i) => t.frozenLast(i)) ?? false, ...(ngDevMode ? [{ debugName: "frozenLast" }] : /* istanbul ignore next */ []));
18961
+ offset = computed(() => this.read((t, i) => t.frozenOffset(i)) ?? 0, ...(ngDevMode ? [{ debugName: "offset" }] : /* istanbul ignore next */ []));
18962
+ read(fn) {
18963
+ const table = this.table;
18964
+ const i = this.index();
18965
+ if (!table || i < 0)
18966
+ return undefined;
18967
+ return fn(table, i);
18968
+ }
18969
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18970
+ 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: `
18971
+ @if (folded()) {
18972
+ <span class="m-section-table__dot" aria-hidden="true"></span>
18973
+ }
18974
+ <div class="m-section-table__content" [hidden]="folded()">
18975
+ <ng-content />
18976
+ </div>
18977
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
18978
+ }
18979
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SectionTableCellComponent, decorators: [{
18980
+ type: Component,
18981
+ args: [{
18982
+ // An attribute selector on purpose: an element host between `<tbody>` and
18983
+ // `<td>` breaks table layout, and a cell's `cellIndex` only counts direct
18984
+ // children of its `<tr>`.
18985
+ // eslint-disable-next-line @angular-eslint/component-selector
18986
+ selector: 'td[m-section-table-cell]',
18987
+ template: `
18988
+ @if (folded()) {
18989
+ <span class="m-section-table__dot" aria-hidden="true"></span>
18990
+ }
18991
+ <div class="m-section-table__content" [hidden]="folded()">
18992
+ <ng-content />
18993
+ </div>
18994
+ `,
18995
+ changeDetection: ChangeDetectionStrategy.OnPush,
18996
+ host: {
18997
+ class: 'm-table-body__cell m-section-table__cell',
18998
+ '[class.m-section-table__cell--folded]': 'folded()',
18999
+ '[class.m-section-table__cell--frozen]': 'frozen()',
19000
+ '[class.m-section-table__cell--frozen-last]': 'frozenLast()',
19001
+ '[style.left.px]': 'frozen() ? offset() : null',
19002
+ '[style.text-align]': 'align() ?? null',
19003
+ },
19004
+ }]
19005
+ }], ctorParameters: () => [] });
19006
+
19007
+ const SECTION_TABLE_VARIANTS = [
19008
+ 'default',
19009
+ 'zebra',
19010
+ 'compact',
19011
+ 'spacious',
19012
+ ];
19013
+
18467
19014
  function getTabsClassList(config) {
18468
19015
  if (!config) {
18469
19016
  return '';
@@ -21553,7 +22100,7 @@ class WrapperInputComponent extends ConfigComponent {
21553
22100
  break;
21554
22101
  }
21555
22102
  case InputType.TOGGLE: {
21556
- const { ToggleInputComponent } = await import('./magmonium-one-toggle-BNVDl--Z.mjs');
22103
+ const { ToggleInputComponent } = await import('./magmonium-one-toggle-Ck1omDTy.mjs');
21557
22104
  this.createDynamicComponent(seq, ToggleInputComponent, [], true);
21558
22105
  break;
21559
22106
  }
@@ -21565,12 +22112,12 @@ class WrapperInputComponent extends ConfigComponent {
21565
22112
  break;
21566
22113
  }
21567
22114
  case InputType.PASSWORD: {
21568
- const { PasswordInputComponent } = await import('./magmonium-one-password-Cz9Ig8UG.mjs');
22115
+ const { PasswordInputComponent } = await import('./magmonium-one-password-CdOtPIN_.mjs');
21569
22116
  this.createDynamicComponent(seq, PasswordInputComponent);
21570
22117
  break;
21571
22118
  }
21572
22119
  case InputType.OTP: {
21573
- const { OtpInputComponent } = await import('./magmonium-one-otp-C6RUv8ws.mjs');
22120
+ const { OtpInputComponent } = await import('./magmonium-one-otp-B6RrWq6t.mjs');
21574
22121
  this.createDynamicComponent(seq, OtpInputComponent);
21575
22122
  break;
21576
22123
  }
@@ -22391,7 +22938,7 @@ class SelectableCardInputComponent extends BaseInputComponent {
22391
22938
  }
22392
22939
  </div>
22393
22940
  }
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:0 0 0 3px color-mix(in srgb,var(--m-focus) 14%,transparent);background:color-mix(in srgb,var(--m-focus) 5%,var(--m-background))}.selectable-card__item--selected:hover:not(.selectable-card__item--disabled){box-shadow:0 0 0 3px color-mix(in srgb,var(--m-focus) 18%,transparent)}.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 });
22941
+ `, 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
22942
  }
22396
22943
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SelectableCardInputComponent, decorators: [{
22397
22944
  type: Component,
@@ -22468,7 +23015,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
22468
23015
  TranslatePipe,
22469
23016
  IconComponent,
22470
23017
  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:0 0 0 3px color-mix(in srgb,var(--m-focus) 14%,transparent);background:color-mix(in srgb,var(--m-focus) 5%,var(--m-background))}.selectable-card__item--selected:hover:not(.selectable-card__item--disabled){box-shadow:0 0 0 3px color-mix(in srgb,var(--m-focus) 18%,transparent)}.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"] }]
23018
+ ], 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
23019
  }], 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
23020
 
22474
23021
  var selectableCard = /*#__PURE__*/Object.freeze({
@@ -23277,7 +23824,7 @@ class FileUploadInputComponent extends BaseInputComponent {
23277
23824
  const modalStore = this.modalStore;
23278
23825
  if (!modalStore)
23279
23826
  return undefined;
23280
- const { ImageEditorComponent } = await import('./magmonium-one-image-editor-CPzYCC_n.mjs');
23827
+ const { ImageEditorComponent } = await import('./magmonium-one-image-editor-Co4twcye.mjs');
23281
23828
  const ratio = String(this.config()?.ratio ?? '');
23282
23829
  return new Promise((resolve) => {
23283
23830
  const modalRef = new ModalRef();
@@ -33877,6 +34424,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
33877
34424
  ], 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\">&#64;{{ 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
34425
  }] });
33879
34426
 
34427
+ /**
34428
+ * Browser clipboard writes a gesture may fire. Takes one object so a designed
34429
+ * Screen's call site builds it the way it builds every GlobalMethod's
34430
+ * (CONTEXT.md GlobalMethod), and reports the outcome itself — a template call
34431
+ * has nowhere to await the write.
34432
+ */
34433
+ class ClipboardService {
34434
+ notificationService = inject(NotificationService);
34435
+ translateService = inject(TranslateService);
34436
+ copy = ({ text }) => {
34437
+ if (typeof navigator === 'undefined' || !navigator.clipboard) {
34438
+ this.notifyFailed();
34439
+ return;
34440
+ }
34441
+ navigator.clipboard
34442
+ .writeText(text)
34443
+ .then(() => this.notificationService.notify({
34444
+ title: this.translateService.translate('copied-to-clipboard'),
34445
+ type: NotificationType.TEXT,
34446
+ severity: 'success',
34447
+ user: { name: 'System' },
34448
+ }))
34449
+ .catch(() => this.notifyFailed());
34450
+ };
34451
+ notifyFailed = () => {
34452
+ this.notificationService.notify({
34453
+ title: this.translateService.translate('copy-to-clipboard-failed'),
34454
+ type: NotificationType.TEXT,
34455
+ severity: 'error',
34456
+ user: { name: 'System' },
34457
+ });
34458
+ };
34459
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
34460
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ClipboardService, providedIn: 'root' });
34461
+ }
34462
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ClipboardService, decorators: [{
34463
+ type: Injectable,
34464
+ args: [{ providedIn: 'root' }]
34465
+ }] });
34466
+
33880
34467
  class NotificationGroupComponent {
33881
34468
  title = input('Notifications', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
33882
34469
  emptyMessage = input('No notifications', ...(ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []));
@@ -38004,5 +38591,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
38004
38591
  * Generated bundle index. Do not edit.
38005
38592
  */
38006
38593
 
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-BXlnho4e.mjs.map
38594
+ 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, StepComponent 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, SectionFilterRangePanelComponent as cA, SectionFooterComponent as cB, SectionFormComponent as cC, SectionFormItemComponent as cD, SectionHeaderComponent as cE, SectionHeroComponent as cF, SectionPaginationComponent as cG, SectionSearchComponent as cH, SectionStepperComponent as cI, SectionTableCellComponent as cJ, SectionTableComponent as cK, SectionTableRowComponent as cL, SectionTableSortPipe as cM, SectionTabsComponent as cN, SectionToggleComponent as cO, SectionToggleItemDirective as cP, SelectableCardInputComponent as cQ, SelectorDirective as cR, SettingsSearchBarComponent as cS, SettingsSearchService as cT, ShapeComponent as cU, SharedStoreRegistry as cV, SidePanelDirective as cW, Size as cX, SocketStore as cY, SortComponent as cZ, StatComponent as c_, RowComponent as ca, SEARCH_QUERY as cb, SEARCH_RESULTS_EVENT as cc, SECTION_ACCORDION_GROUP as cd, SECTION_FORM_CONTEXT as ce, SECTION_TABLE_VARIANTS as cf, SHARED_ICONS as cg, SIZE_CONTEXT as ch, ScoreComponent as ci, ScrollComponent as cj, ScrollService as ck, SearchPanelComponent as cl, SearchStore as cm, SearchUserPanelComponent as cn, SectionAccordionDirective as co, SectionAccordionGroupDirective as cp, SectionBackComponent as cq, SectionBadgesComponent as cr, SectionButtonGroupComponent as cs, SectionCardComponent as ct, SectionCarouselComponent as cu, SectionComponent as cv, SectionFilterComponent as cw, SectionFilterGroupComponent as cx, SectionFilterMenuComponent as cy, SectionFilterPanelComponent as cz, drawFramed as d, cornerSide as d$, StepperComponent as d0, StepsComponent as d1, StorageService as d2, StrokeLinecap as d3, StrokeLinejoin as d4, SummaryComponent as d5, SvgGeneratorComponent as d6, SvgGeneratorService as d7, SvgService as d8, TOTAL_COLUMNS as d9, UserNavComponent as dA, UserSettingsComponent as dB, UserStore as dC, WC_ROUTE_CHANGED_EVENT as dD, WC_SEARCH_GROUPS as dE, WIN_USER_TAB_HOOK as dF, WIN_USER_TAB_KEY as dG, WatermarkComponent as dH, WcRouterStore as dI, WrapperInputComponent as dJ, anchorNavId as dK, applyColorsToElement as dL, applyDocEdit as dM, assetOptions as dN, bootstrapMagApp as dO, bootstrapPwaInstall as dP, buildWcBaseUrl as dQ, calculateLuminance as dR, calculateRanks as dS, cellText as dT, checkDoc as dU, checkFilterCondition as dV, childNavId as dW, claimDenial as dX, classListSignal as dY, coerceSize as dZ, cornerEdge as d_, TRANSLATION_SOURCE as da, TableComponent as db, TechnicalMeterComponent as dc, TextInputComponent as dd, TextareaInputComponent as de, ThemeComponent as df, ThemeDataService as dg, ThemeService as dh, ThemeStore as di, TimeAgoPipe as dj, TimelineComponent as dk, ToggleButtonComponent as dl, ToggleInputComponent as dm, ToggleRadioInputComponent as dn, ToolTipDirective as dp, TooltipComponent as dq, TranslateService as dr, TreeGridComponent as ds, URL_SEP as dt, USER_STORE_REF as du, USER_TAB_MAP as dv, UniverseComponent as dw, UserApiService as dx, UserAvatarComponent as dy, UserComponent as dz, encodeFramed as e, isNavVisibilityConfig as e$, createMap as e0, createPlatformNavMap as e1, deriveAvatarGradient as e2, deriveContrastColor as e3, deriveOppositeColor as e4, derivePropertyName as e5, docActionKey as e6, docAssetCandidates as e7, docProblemKey as e8, docRemotePath as e9, getProperty as eA, getScrollParent as eB, getTierFromPreviewPath as eC, getTreeGridRow as eD, getUniqueId as eE, getValue as eF, hasErrorComputed as eG, hexToRgb as eH, hslToRgb$1 as eI, initMagmoniumApp as eJ, initialNotificationState as eK, initialState$2 as eL, initials as eM, injectAuthenticate as eN, injectDefaultDenial as eO, injectInstallApp as eP, injectParentSize as eQ, injectScrollSticky as eR, isButtonName as eS, isCancelledComputed as eT, isExtensiblePlatformNavId as eU, isJson as eV, isLoadingComputed as eW, isLocalhost as eX, isNavInstanceConfig as eY, isNavMenuConfig as eZ, isNavRowsConfig as e_, emailValidation as ea, evaluate as eb, evaluateBool as ec, fieldBoolean as ed, fieldNumber as ee, fieldString as ef, filterHoldsList as eg, filterHoldsOneBound as eh, filterHoldsOptions as ei, filterHoldsRange as ej, filterList as ek, filterNumber as el, filterNumberList as em, filterOne as en, filterPanelOf as eo, filterPanelWidth as ep, filterRange as eq, filterTreeGridRows as er, filterValueList as es, filterValues as et, flattenTreeGridRows as eu, formatBadgeCount as ev, fullName as ew, generateClipPath as ex, generateTransform as ey, getClassList as ez, clampFraming as f, resolvePallet as f$, isPlatformNavId as f0, isSize as f1, isTierPreview as f2, isUrlLocalhost as f3, isValidNavId as f4, isValidNavSegment as f5, isWebComponent as f6, linkToId as f7, linkToNav as f8, loadingActions as f9, parseColor as fA, parsePatternNames as fB, patternValidation as fC, patternsValidation as fD, permissionRefusal as fE, platformNavWidgets as fF, privateGuard as fG, processImageToSvg as fH, provideAppContext as fI, provideMagAppConfig as fJ, provideMagWcConfig as fK, provideMagWcRoutes as fL, provideModalComponents as fM, provideMurlUrlSerializer as fN, provideNavWidgets as fO, provideOverlayWidgets as fP, providePlatformNavWidgets as fQ, provideSearch as fR, provideSizeContext as fS, provideUserTabs as fT, publicGuard as fU, readFieldPatterns as fV, renderAddress as fW, renderDocument as fX, requiredValidation as fY, resolveConfigAsset as fZ, resolveIconSize as f_, mInterceptor as fa, manualValidation as fb, matchFieldValidation as fc, maxLengthValidation as fd, maxValidation as fe, mergePlatformNav as ff, mergeUnique as fg, mergeUniqueBy as fh, mergeUniqueWith as fi, minAgeValidation as fj, minLengthValidation as fk, minValidation as fl, miniMarkToHtml as fm, navIdChain as fn, navIdFor as fo, navIdSegment as fp, navIdToRoutePath as fq, navIdToSegments as fr, navParamOf as fs, navToId as ft, navVisibilityGuard as fu, nextSectionTableSort as fv, normalizeAssetOptions as fw, offsetOfLine as fx, parentNavId as fy, parseAddress as fz, BaseInputComponent as g, resolvePatternRules as g0, resolveSize as g1, rgbToHex as g2, rgbToHsl as g3, rowHasChildren as g4, samePatterns as g5, sectionTableColumnId as g6, sectionTableColumnWidths as g7, sectionTableFrozenCount as g8, segmentsToNavId as g9, setProperty as ga, setTreeGridChildren as gb, settingsWidgets as gc, shouldShowBadge as gd, sortSectionTableRows as ge, splitNavId as gf, splitOnMatch as gg, stringToColor as gh, toAttrBool as gi, toAttrNumber as gj, toCssLength as gk, toHostNavId as gl, toLength$1 as gm, toLocalNavId as gn, toggleTreeGridRow as go, unfetchedPlatformNav as gp, ungroupedDocActions as gq, urlValidation as gr, 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 };
38595
+ //# sourceMappingURL=magmonium-one-magmonium-one-CaiiIiM3.mjs.map