@akcelik/strct 3.1.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/akcelik-strct.mjs +199 -20
- package/fesm2022/akcelik-strct.mjs.map +1 -1
- package/package.json +1 -1
- package/types/akcelik-strct.d.ts +47 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, DOCUMENT, signal, computed, Injectable, input, isDevMode, ViewEncapsulation, ChangeDetectionStrategy, Component, ElementRef, NgZone, booleanAttribute, afterNextRender, Directive, model, output, HostListener, contentChildren, effect, ApplicationRef, EnvironmentInjector, createComponent, forwardRef, DestroyRef, contentChild, viewChild, InjectionToken, untracked, Injector, viewChildren,
|
|
2
|
+
import { inject, DOCUMENT, signal, computed, Injectable, input, isDevMode, ViewEncapsulation, ChangeDetectionStrategy, Component, ElementRef, NgZone, booleanAttribute, afterNextRender, Directive, model, output, HostListener, contentChildren, effect, ApplicationRef, EnvironmentInjector, createComponent, forwardRef, DestroyRef, TemplateRef, contentChild, viewChild, InjectionToken, untracked, Injector, viewChildren, Renderer2, Pipe, PLATFORM_ID, afterRenderEffect } from '@angular/core';
|
|
3
3
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
4
|
import { NgTemplateOutlet, DOCUMENT as DOCUMENT$1, isPlatformBrowser } from '@angular/common';
|
|
5
5
|
import { RouterLink, RouterLinkActive } from '@angular/router';
|
|
@@ -3344,6 +3344,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
3344
3344
|
}, styles: [".strct-tree{display:block}.strct-tree--comfortable .strct-tnode__row{gap:7px;padding:6px 10px;border-radius:6px;font-size:14px}.strct-tree--comfortable .strct-tnode__chevron{margin:-4px;margin-inline-end:-9px}.strct-tree--comfortable .strct-tnode__spacer{width:16px}.strct-tree--comfortable .strct-tnode__children{margin-inline-start:19px}\n"] }]
|
|
3345
3345
|
}], propDecorators: { nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: false }] }], density: [{ type: i0.Input, args: [{ isSignal: true, alias: "density", required: false }] }], nodeMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeMenu", required: false }] }], chevronAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "chevronAriaLabel", required: false }] }], nodeActivated: [{ type: i0.Output, args: ["nodeActivated"] }], nodeMenuSelect: [{ type: i0.Output, args: ["nodeMenuSelect"] }], expandedIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedIds", required: false }] }, { type: i0.Output, args: ["expandedIdsChange"] }], expandedChange: [{ type: i0.Output, args: ["expandedChange"] }], nodeToggled: [{ type: i0.Output, args: ["nodeToggled"] }], projectedNodes: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => StrctTreeNode), { ...{ descendants: false }, isSignal: true }] }] } });
|
|
3346
3346
|
|
|
3347
|
+
/**
|
|
3348
|
+
* Dev-mode diagnostics for combinations a component accepts but cannot honour.
|
|
3349
|
+
*
|
|
3350
|
+
* Every message names what was ignored and what to do instead. Keyed: a
|
|
3351
|
+
* condition warns once per page load, not once per change detection.
|
|
3352
|
+
*
|
|
3353
|
+
* Production cost: none, PROVIDED each call site is guarded INLINE with
|
|
3354
|
+
* if (typeof ngDevMode !== 'undefined' && ngDevMode) { … }
|
|
3355
|
+
* Production builds define `ngDevMode` as false, and the minifier then drops
|
|
3356
|
+
* the whole block — messages included. A helper function returning that same
|
|
3357
|
+
* expression would NOT be folded across the call, so the check and its
|
|
3358
|
+
* strings would ship; that is why no such helper exists here.
|
|
3359
|
+
*/
|
|
3360
|
+
const warned = new Set();
|
|
3361
|
+
function strctDevWarn(key, message) {
|
|
3362
|
+
if (typeof ngDevMode === 'undefined' || !ngDevMode || warned.has(key))
|
|
3363
|
+
return;
|
|
3364
|
+
warned.add(key);
|
|
3365
|
+
console.warn(message);
|
|
3366
|
+
}
|
|
3367
|
+
/** Test hook: forget which warnings have fired. Not part of the public API. */
|
|
3368
|
+
function resetStrctDevWarnings() {
|
|
3369
|
+
warned.clear();
|
|
3370
|
+
}
|
|
3371
|
+
|
|
3347
3372
|
/**
|
|
3348
3373
|
* Refcounted body scroll-lock shared across any number of simultaneously
|
|
3349
3374
|
* open transient surfaces (modal, drawer …): the first lock hides body
|
|
@@ -3378,6 +3403,27 @@ function removeOpenModal(modal) {
|
|
|
3378
3403
|
function isTopmostModal(modal) {
|
|
3379
3404
|
return openModalStack[openModalStack.length - 1] === modal;
|
|
3380
3405
|
}
|
|
3406
|
+
/**
|
|
3407
|
+
* Lazily rendered modal body. Plain projected content is created by the PARENT
|
|
3408
|
+
* with the parent's own view, so it is instantiated — and costs — even while
|
|
3409
|
+
* the modal is closed. Content inside this template is created only while the
|
|
3410
|
+
* modal is open, and destroyed when it closes (state does not survive a close):
|
|
3411
|
+
*
|
|
3412
|
+
* <strct-modal [(open)]="show" title="Import hosts">
|
|
3413
|
+
* <ng-template strctModalContent>
|
|
3414
|
+
* <strct-datagrid [rows]="hosts" … />
|
|
3415
|
+
* </ng-template>
|
|
3416
|
+
* </strct-modal>
|
|
3417
|
+
*/
|
|
3418
|
+
class StrctModalContent {
|
|
3419
|
+
template = inject(TemplateRef);
|
|
3420
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctModalContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3421
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: StrctModalContent, isStandalone: true, selector: "[strctModalContent]", ngImport: i0 });
|
|
3422
|
+
}
|
|
3423
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctModalContent, decorators: [{
|
|
3424
|
+
type: Directive,
|
|
3425
|
+
args: [{ selector: '[strctModalContent]' }]
|
|
3426
|
+
}] });
|
|
3381
3427
|
/**
|
|
3382
3428
|
* Overlay dialog with two-way `open`:
|
|
3383
3429
|
* <strct-modal [(open)]="show" title="Confirm">
|
|
@@ -3396,7 +3442,8 @@ class StrctModal {
|
|
|
3396
3442
|
/** Dialog title. */
|
|
3397
3443
|
title = input('', /* @ts-ignore */
|
|
3398
3444
|
...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
3399
|
-
/** Size variant (fixed scale; defaults to `sm` = 480px).
|
|
3445
|
+
/** Size variant (fixed scale; defaults to `sm` = 480px). Ignored by
|
|
3446
|
+
* `chromeless`, which sizes from the wizard it hosts. */
|
|
3400
3447
|
size = input('sm', /* @ts-ignore */
|
|
3401
3448
|
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
3402
3449
|
/** Hide the footer slot. */
|
|
@@ -3406,6 +3453,11 @@ class StrctModal {
|
|
|
3406
3453
|
* content (a `flush` vertical wizard) is the dialog surface. `title` still
|
|
3407
3454
|
* names the dialog for assistive tech; backdrop/Escape dismissal follow
|
|
3408
3455
|
* `dismissible` as usual.
|
|
3456
|
+
*
|
|
3457
|
+
* The dialog's width comes from the wizard's geometry, not from `size`:
|
|
3458
|
+
* rail + `--strct-wiz-content-min` (default 864px) [+ aside]. To change it,
|
|
3459
|
+
* set that variable on this `strct-modal` or an ancestor — the dialog reads
|
|
3460
|
+
* it on itself, so setting it on the `strct-wizard` inside does not reach it.
|
|
3409
3461
|
*/
|
|
3410
3462
|
chromeless = input(false, { ...(ngDevMode ? { debugName: "chromeless" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
3411
3463
|
/** Accessible label of the X close button (localizable). */
|
|
@@ -3431,6 +3483,22 @@ class StrctModal {
|
|
|
3431
3483
|
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
3432
3484
|
/** Emitted when the alert is dismissed. */
|
|
3433
3485
|
closed = output();
|
|
3486
|
+
/** Lazily rendered body, if one is provided (see {@link StrctModalContent}). */
|
|
3487
|
+
lazyContent = contentChild(StrctModalContent, /* @ts-ignore */
|
|
3488
|
+
...(ngDevMode ? [{ debugName: "lazyContent" }] : /* istanbul ignore next */ []));
|
|
3489
|
+
// Dev mode only: `size` is accepted alongside `chromeless` but cannot apply.
|
|
3490
|
+
sizeDiagnostic = typeof ngDevMode !== 'undefined' && ngDevMode
|
|
3491
|
+
? effect(() => {
|
|
3492
|
+
const size = this.size();
|
|
3493
|
+
if (this.chromeless() && size !== 'sm') {
|
|
3494
|
+
strctDevWarn(`modal:chromeless-size:${size}`, `[strct-modal] size="${size}" has no effect with chromeless: a chromeless ` +
|
|
3495
|
+
`dialog sizes itself from the wizard it hosts (rail + --strct-wiz-content-min, ` +
|
|
3496
|
+
`default 864px). To change its width, set --strct-wiz-content-min on the ` +
|
|
3497
|
+
`strct-modal or an ancestor — on the strct-wizard alone it does not reach ` +
|
|
3498
|
+
`the dialog.`);
|
|
3499
|
+
}
|
|
3500
|
+
})
|
|
3501
|
+
: null;
|
|
3434
3502
|
titleId = `strct-modal-${++modalCounter}`;
|
|
3435
3503
|
/** Element that had focus before the dialog opened, restored on close. */
|
|
3436
3504
|
previousActive = null;
|
|
@@ -3573,7 +3641,7 @@ class StrctModal {
|
|
|
3573
3641
|
(items[0] ?? this.dialog())?.focus();
|
|
3574
3642
|
}
|
|
3575
3643
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctModal, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3576
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctModal, isStandalone: true, selector: "strct-modal", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, hideFooter: { classPropertyName: "hideFooter", publicName: "hideFooter", isSignal: true, isRequired: false, transformFunction: null }, chromeless: { classPropertyName: "chromeless", publicName: "chromeless", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", closed: "closed" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, ngImport: i0, template: `
|
|
3644
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctModal, isStandalone: true, selector: "strct-modal", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, hideFooter: { classPropertyName: "hideFooter", publicName: "hideFooter", isSignal: true, isRequired: false, transformFunction: null }, chromeless: { classPropertyName: "chromeless", publicName: "chromeless", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", closed: "closed" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "lazyContent", first: true, predicate: StrctModalContent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
3577
3645
|
@if (open()) {
|
|
3578
3646
|
<!-- Backdrop: pointer-only dismiss target. No role/tabindex — keyboard users
|
|
3579
3647
|
dismiss via Escape, and the focus trap makes the backdrop unreachable
|
|
@@ -3619,18 +3687,23 @@ class StrctModal {
|
|
|
3619
3687
|
</button>
|
|
3620
3688
|
</div>
|
|
3621
3689
|
}
|
|
3622
|
-
<div class="strct-modal__body"
|
|
3690
|
+
<div class="strct-modal__body">
|
|
3691
|
+
<ng-content />
|
|
3692
|
+
@if (lazyContent(); as lazy) {
|
|
3693
|
+
<ng-container [ngTemplateOutlet]="lazy.template" />
|
|
3694
|
+
}
|
|
3695
|
+
</div>
|
|
3623
3696
|
@if (!hideFooter() && !chromeless()) {
|
|
3624
3697
|
<div class="strct-modal__foot"><ng-content select="[strctModalFooter]" /></div>
|
|
3625
3698
|
}
|
|
3626
3699
|
</div>
|
|
3627
3700
|
</div>
|
|
3628
3701
|
}
|
|
3629
|
-
`, isInline: true, styles: [".strct-modal__overlay{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:strct-modal-fade .12s ease}@media(max-width:768px){.strct-modal__overlay{padding:var(--space-3)}}.strct-modal__dialog{width:100%;max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:var(--bg-1);border:1px solid var(--b2);border-radius:var(--radius-xl);box-shadow:var(--shadow-elevated);overflow:hidden;animation:strct-modal-rise .14s ease}.strct-modal__dialog--sm{max-width:min(480px,calc(100vw - 32px))}.strct-modal__dialog--md{max-width:min(640px,calc(100vw - 32px))}.strct-modal__dialog--lg{max-width:min(860px,calc(100vw - 32px))}.strct-modal__dialog--xl{max-width:min(1080px,calc(100vw - 32px))}.strct-modal__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--b1)}.strct-modal__head--drag{cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.strct-modal__overlay--glass{background:#00000061;-webkit-backdrop-filter:blur(10px) saturate(1.25);backdrop-filter:blur(10px) saturate(1.25)}.strct-modal__dialog--glass{background:color-mix(in srgb,var(--bg-1) 72%,transparent);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4)}.strct-modal__dialog--glass .strct-modal__foot{background:color-mix(in srgb,var(--bg-2) 55%,transparent)}.strct-modal__title{font-size:14px;font-weight:600;color:var(--t1)}.strct-modal__close{display:inline-flex;padding:4px;border:0;border-radius:5px;background:transparent;color:var(--t3);cursor:pointer}.strct-modal__close:hover{color:var(--t1);background:var(--bg-3)}.strct-modal__body{padding:var(--space-4);overflow-y:auto;color:var(--t2);font-size:13px}.strct-modal__dialog--chromeless{width:calc(232px + var(--strct-wiz-content-min,
|
|
3702
|
+
`, isInline: true, styles: [".strct-modal__overlay{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:strct-modal-fade .12s ease}@media(max-width:768px){.strct-modal__overlay{padding:var(--space-3)}}.strct-modal__dialog{width:100%;max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:var(--bg-1);border:1px solid var(--b2);border-radius:var(--radius-xl);box-shadow:var(--shadow-elevated);overflow:hidden;animation:strct-modal-rise .14s ease}.strct-modal__dialog--sm{max-width:min(480px,calc(100vw - 32px))}.strct-modal__dialog--md{max-width:min(640px,calc(100vw - 32px))}.strct-modal__dialog--lg{max-width:min(860px,calc(100vw - 32px))}.strct-modal__dialog--xl{max-width:min(1080px,calc(100vw - 32px))}.strct-modal__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--b1)}.strct-modal__head--drag{cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.strct-modal__overlay--glass{background:#00000061;-webkit-backdrop-filter:blur(10px) saturate(1.25);backdrop-filter:blur(10px) saturate(1.25)}.strct-modal__dialog--glass{background:color-mix(in srgb,var(--bg-1) 72%,transparent);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4)}.strct-modal__dialog--glass .strct-modal__foot{background:color-mix(in srgb,var(--bg-2) 55%,transparent)}.strct-modal__title{font-size:14px;font-weight:600;color:var(--t1)}.strct-modal__close{display:inline-flex;padding:4px;border:0;border-radius:5px;background:transparent;color:var(--t3);cursor:pointer}.strct-modal__close:hover{color:var(--t1);background:var(--bg-3)}.strct-modal__body{padding:var(--space-4);overflow-y:auto;color:var(--t2);font-size:13px}.strct-modal__dialog--chromeless{width:calc(232px + var(--strct-wiz-content-min, 864px) + 2px);max-width:calc(100vw - 32px)}.strct-modal__dialog--chromeless:has(.strct-wiz__layout--aside){width:calc(232px + var(--strct-wiz-content-min, 864px) + 280px + 2px)}.strct-modal__dialog--chromeless .strct-modal__body{padding:0;overflow:hidden;display:flex;flex-direction:column}.strct-modal__dialog--chromeless .strct-modal__body>*{flex:1;min-height:0}.strct-modal__foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--b1);background:var(--bg-2)}@keyframes strct-modal-fade{0%{opacity:0}}@keyframes strct-modal-rise{0%{opacity:0;transform:translateY(8px) scale(.98)}}@media(prefers-reduced-motion:reduce){.strct-modal__overlay,.strct-modal__dialog{animation:none}}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3630
3703
|
}
|
|
3631
3704
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctModal, decorators: [{
|
|
3632
3705
|
type: Component,
|
|
3633
|
-
args: [{ selector: 'strct-modal', changeDetection: ChangeDetectionStrategy.OnPush, imports: [StrctIcon], template: `
|
|
3706
|
+
args: [{ selector: 'strct-modal', changeDetection: ChangeDetectionStrategy.OnPush, imports: [StrctIcon, NgTemplateOutlet], template: `
|
|
3634
3707
|
@if (open()) {
|
|
3635
3708
|
<!-- Backdrop: pointer-only dismiss target. No role/tabindex — keyboard users
|
|
3636
3709
|
dismiss via Escape, and the focus trap makes the backdrop unreachable
|
|
@@ -3676,7 +3749,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
3676
3749
|
</button>
|
|
3677
3750
|
</div>
|
|
3678
3751
|
}
|
|
3679
|
-
<div class="strct-modal__body"
|
|
3752
|
+
<div class="strct-modal__body">
|
|
3753
|
+
<ng-content />
|
|
3754
|
+
@if (lazyContent(); as lazy) {
|
|
3755
|
+
<ng-container [ngTemplateOutlet]="lazy.template" />
|
|
3756
|
+
}
|
|
3757
|
+
</div>
|
|
3680
3758
|
@if (!hideFooter() && !chromeless()) {
|
|
3681
3759
|
<div class="strct-modal__foot"><ng-content select="[strctModalFooter]" /></div>
|
|
3682
3760
|
}
|
|
@@ -3685,8 +3763,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
3685
3763
|
}
|
|
3686
3764
|
`, host: {
|
|
3687
3765
|
'(document:keydown.escape)': 'onEscape()',
|
|
3688
|
-
}, styles: [".strct-modal__overlay{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:strct-modal-fade .12s ease}@media(max-width:768px){.strct-modal__overlay{padding:var(--space-3)}}.strct-modal__dialog{width:100%;max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:var(--bg-1);border:1px solid var(--b2);border-radius:var(--radius-xl);box-shadow:var(--shadow-elevated);overflow:hidden;animation:strct-modal-rise .14s ease}.strct-modal__dialog--sm{max-width:min(480px,calc(100vw - 32px))}.strct-modal__dialog--md{max-width:min(640px,calc(100vw - 32px))}.strct-modal__dialog--lg{max-width:min(860px,calc(100vw - 32px))}.strct-modal__dialog--xl{max-width:min(1080px,calc(100vw - 32px))}.strct-modal__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--b1)}.strct-modal__head--drag{cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.strct-modal__overlay--glass{background:#00000061;-webkit-backdrop-filter:blur(10px) saturate(1.25);backdrop-filter:blur(10px) saturate(1.25)}.strct-modal__dialog--glass{background:color-mix(in srgb,var(--bg-1) 72%,transparent);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4)}.strct-modal__dialog--glass .strct-modal__foot{background:color-mix(in srgb,var(--bg-2) 55%,transparent)}.strct-modal__title{font-size:14px;font-weight:600;color:var(--t1)}.strct-modal__close{display:inline-flex;padding:4px;border:0;border-radius:5px;background:transparent;color:var(--t3);cursor:pointer}.strct-modal__close:hover{color:var(--t1);background:var(--bg-3)}.strct-modal__body{padding:var(--space-4);overflow-y:auto;color:var(--t2);font-size:13px}.strct-modal__dialog--chromeless{width:calc(232px + var(--strct-wiz-content-min,
|
|
3689
|
-
}], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], hideFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideFooter", required: false }] }], chromeless: [{ type: i0.Input, args: [{ isSignal: true, alias: "chromeless", required: false }] }], closeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeLabel", required: false }] }], dismissible: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissible", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }], backdropClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "backdropClass", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
|
|
3766
|
+
}, styles: [".strct-modal__overlay{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:strct-modal-fade .12s ease}@media(max-width:768px){.strct-modal__overlay{padding:var(--space-3)}}.strct-modal__dialog{width:100%;max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:var(--bg-1);border:1px solid var(--b2);border-radius:var(--radius-xl);box-shadow:var(--shadow-elevated);overflow:hidden;animation:strct-modal-rise .14s ease}.strct-modal__dialog--sm{max-width:min(480px,calc(100vw - 32px))}.strct-modal__dialog--md{max-width:min(640px,calc(100vw - 32px))}.strct-modal__dialog--lg{max-width:min(860px,calc(100vw - 32px))}.strct-modal__dialog--xl{max-width:min(1080px,calc(100vw - 32px))}.strct-modal__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--b1)}.strct-modal__head--drag{cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.strct-modal__overlay--glass{background:#00000061;-webkit-backdrop-filter:blur(10px) saturate(1.25);backdrop-filter:blur(10px) saturate(1.25)}.strct-modal__dialog--glass{background:color-mix(in srgb,var(--bg-1) 72%,transparent);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4)}.strct-modal__dialog--glass .strct-modal__foot{background:color-mix(in srgb,var(--bg-2) 55%,transparent)}.strct-modal__title{font-size:14px;font-weight:600;color:var(--t1)}.strct-modal__close{display:inline-flex;padding:4px;border:0;border-radius:5px;background:transparent;color:var(--t3);cursor:pointer}.strct-modal__close:hover{color:var(--t1);background:var(--bg-3)}.strct-modal__body{padding:var(--space-4);overflow-y:auto;color:var(--t2);font-size:13px}.strct-modal__dialog--chromeless{width:calc(232px + var(--strct-wiz-content-min, 864px) + 2px);max-width:calc(100vw - 32px)}.strct-modal__dialog--chromeless:has(.strct-wiz__layout--aside){width:calc(232px + var(--strct-wiz-content-min, 864px) + 280px + 2px)}.strct-modal__dialog--chromeless .strct-modal__body{padding:0;overflow:hidden;display:flex;flex-direction:column}.strct-modal__dialog--chromeless .strct-modal__body>*{flex:1;min-height:0}.strct-modal__foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--b1);background:var(--bg-2)}@keyframes strct-modal-fade{0%{opacity:0}}@keyframes strct-modal-rise{0%{opacity:0;transform:translateY(8px) scale(.98)}}@media(prefers-reduced-motion:reduce){.strct-modal__overlay,.strct-modal__dialog{animation:none}}\n"] }]
|
|
3767
|
+
}], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], hideFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideFooter", required: false }] }], chromeless: [{ type: i0.Input, args: [{ isSignal: true, alias: "chromeless", required: false }] }], closeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeLabel", required: false }] }], dismissible: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissible", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }], backdropClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "backdropClass", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], lazyContent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => StrctModalContent), { isSignal: true }] }] } });
|
|
3690
3768
|
|
|
3691
3769
|
/** Marks the drawer's footer action area: `<ng-container strctDrawerFooter>…`. */
|
|
3692
3770
|
class StrctDrawerFooter {
|
|
@@ -4668,7 +4746,10 @@ class StrctWizard {
|
|
|
4668
4746
|
* ~720px of component width — it never flips horizontal.
|
|
4669
4747
|
*
|
|
4670
4748
|
* The default can be flipped app-wide via `provideStrctWizardDefaults`;
|
|
4671
|
-
* this input always wins when bound.
|
|
4749
|
+
* this input always wins when bound. **Tests:** a spec that renders a
|
|
4750
|
+
* component using `strct-wizard` must provide the same defaults the app
|
|
4751
|
+
* does, or it renders the horizontal layout — a different DOM, no rail,
|
|
4752
|
+
* no title.
|
|
4672
4753
|
*/
|
|
4673
4754
|
vertical = input(this.defaults?.vertical ?? false, { ...(ngDevMode ? { debugName: "vertical" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
4674
4755
|
/**
|
|
@@ -4678,7 +4759,8 @@ class StrctWizard {
|
|
|
4678
4759
|
* Size the host with width/height only; do not override its `display`.
|
|
4679
4760
|
*/
|
|
4680
4761
|
flush = input(false, { ...(ngDevMode ? { debugName: "flush" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
4681
|
-
/** Rail heading shown above the progress bar
|
|
4762
|
+
/** Rail heading shown above the progress bar. Vertical mode only — the
|
|
4763
|
+
* horizontal layout has no title band (a dev-mode warning says so). */
|
|
4682
4764
|
title = input('', /* @ts-ignore */
|
|
4683
4765
|
...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
4684
4766
|
/**
|
|
@@ -4730,6 +4812,8 @@ class StrctWizard {
|
|
|
4730
4812
|
canAdvance = computed(() => this.steps()[this.current()]?.canAdvance() ?? true, /* @ts-ignore */
|
|
4731
4813
|
...(ngDevMode ? [{ debugName: "canAdvance" }] : /* istanbul ignore next */ []));
|
|
4732
4814
|
constructor() {
|
|
4815
|
+
if (typeof ngDevMode !== 'undefined' && ngDevMode)
|
|
4816
|
+
this.diagnose();
|
|
4733
4817
|
effect(() => {
|
|
4734
4818
|
const idx = this.current();
|
|
4735
4819
|
this.steps().forEach((step, i) => step.setActive(i === idx));
|
|
@@ -4739,6 +4823,37 @@ class StrctWizard {
|
|
|
4739
4823
|
});
|
|
4740
4824
|
});
|
|
4741
4825
|
}
|
|
4826
|
+
/** Dev-mode warnings for inputs the current layout silently ignores. */
|
|
4827
|
+
diagnose() {
|
|
4828
|
+
if (!(typeof ngDevMode !== 'undefined' && ngDevMode))
|
|
4829
|
+
return;
|
|
4830
|
+
effect(() => {
|
|
4831
|
+
const title = this.title();
|
|
4832
|
+
if (title && !this.vertical()) {
|
|
4833
|
+
strctDevWarn('wizard:horizontal-title', `[strct-wizard] title="${title}" is not rendered: only the vertical layout ` +
|
|
4834
|
+
`has a title band. Set \`vertical\` — or, if the app provides ` +
|
|
4835
|
+
`provideStrctWizardDefaults({ vertical: true }), provide it here too ` +
|
|
4836
|
+
`(a test that omits it renders the horizontal wizard).`);
|
|
4837
|
+
}
|
|
4838
|
+
});
|
|
4839
|
+
// A chromeless dialog sizes itself from --strct-wiz-content-min read on the
|
|
4840
|
+
// DIALOG; set on the wizard, it widens the grid but not the dialog.
|
|
4841
|
+
const host = inject((ElementRef)).nativeElement;
|
|
4842
|
+
afterNextRender(() => {
|
|
4843
|
+
const dialog = host.closest('.strct-modal__dialog--chromeless');
|
|
4844
|
+
if (!dialog)
|
|
4845
|
+
return;
|
|
4846
|
+
const prop = '--strct-wiz-content-min';
|
|
4847
|
+
const own = getComputedStyle(host).getPropertyValue(prop).trim();
|
|
4848
|
+
const outer = getComputedStyle(dialog).getPropertyValue(prop).trim();
|
|
4849
|
+
if (own !== outer) {
|
|
4850
|
+
strctDevWarn('wizard:content-min-scope', `[strct-wizard] ${prop} is ${own || '(unset)'} on the wizard but ` +
|
|
4851
|
+
`${outer || '(unset — default 864px)'} on its chromeless dialog. The dialog ` +
|
|
4852
|
+
`reads the variable on itself, so its width ignores the wizard's value. Set ` +
|
|
4853
|
+
`it on the strct-modal or an ancestor instead.`);
|
|
4854
|
+
}
|
|
4855
|
+
});
|
|
4856
|
+
}
|
|
4742
4857
|
next() {
|
|
4743
4858
|
if (!this.isLast() && this.canAdvance()) {
|
|
4744
4859
|
this.current.update((i) => i + 1);
|
|
@@ -4867,7 +4982,7 @@ class StrctWizard {
|
|
|
4867
4982
|
</aside>
|
|
4868
4983
|
}
|
|
4869
4984
|
</div>
|
|
4870
|
-
`, isInline: true, styles: [".strct-wiz{display:block}.strct-wiz__steps{display:flex;align-items:center;gap:6px}.strct-wiz__step{display:flex;align-items:center;gap:8px}.strct-wiz__dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:600;color:var(--t2);background:var(--bg-3);border:1px solid var(--b2)}.strct-wiz__label{font-size:12px;color:var(--t2)}.strct-wiz__step--active .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc)}.strct-wiz__step--active .strct-wiz__label{color:var(--t1);font-weight:600}.strct-wiz__step--done .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc30)}.strct-wiz__sep{flex:1;height:1px;background:var(--b2);min-width:18px}.strct-wiz__content{margin:18px 0;padding:16px;min-height:80px;background:var(--bg-1);border:1px solid var(--b2);border-radius:8px;color:var(--t2);font-size:13px}.strct-wiz__foot{display:flex;justify-content:flex-end;gap:8px}.strct-wiz__cancel{margin-inline-end:auto}.strct-wiz__aside{display:none}.strct-wiz--vertical{container-type:inline-size}.strct-wiz__layout--v{display:grid;grid-template-columns:232px minmax(var(--strct-wiz-content-min,
|
|
4985
|
+
`, isInline: true, styles: [".strct-wiz{display:block}.strct-wiz__steps{display:flex;align-items:center;gap:6px}.strct-wiz__step{display:flex;align-items:center;gap:8px}.strct-wiz__dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:600;color:var(--t2);background:var(--bg-3);border:1px solid var(--b2)}.strct-wiz__label{font-size:12px;color:var(--t2)}.strct-wiz__step--active .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc)}.strct-wiz__step--active .strct-wiz__label{color:var(--t1);font-weight:600}.strct-wiz__step--done .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc30)}.strct-wiz__sep{flex:1;height:1px;background:var(--b2);min-width:18px}.strct-wiz__content{margin:18px 0;padding:16px;min-height:80px;background:var(--bg-1);border:1px solid var(--b2);border-radius:8px;color:var(--t2);font-size:13px}.strct-wiz__foot{display:flex;justify-content:flex-end;gap:8px}.strct-wiz__cancel{margin-inline-end:auto}.strct-wiz__aside{display:none}.strct-wiz--vertical{container-type:inline-size}.strct-wiz__layout--v{display:grid;grid-template-columns:232px minmax(var(--strct-wiz-content-min, 864px),1fr);border:1px solid var(--b2);border-radius:12px;background:var(--bg-1);overflow:hidden}.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:232px minmax(var(--strct-wiz-content-min, 864px),1fr) 280px}.strct-wiz__layout--v.strct-wiz__layout--aside .strct-wiz__aside{display:block;padding:20px 18px;background:var(--bg-2);border-inline-start:1px solid var(--b1);overflow-y:auto}.strct-wiz__layout--v .strct-wiz__main{display:flex;flex-direction:column;min-width:0}.strct-wiz__layout--v .strct-wiz__content{flex:1;margin:0;padding:20px 24px;border:0;border-radius:0;background:transparent;overflow-y:auto}.strct-wiz__layout--v .strct-wiz__foot{padding:13px 24px;border-top:1px solid var(--b1)}.strct-wiz__chead{box-sizing:border-box;height:var(--strct-wiz-header-h, 64px);padding:15px 24px 0;border-bottom:1px solid var(--b1);overflow:hidden}.strct-wiz__ctitle{margin:0;font-size:16px;font-weight:600;letter-spacing:-.2px;color:var(--t1);line-height:1.3}.strct-wiz__clede{margin:2px 0 0;font-size:12.5px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-wiz__rail{display:flex;flex-direction:column;padding:0 18px 16px;background:var(--bg-2);border-inline-end:1px solid var(--b1);min-width:0}.strct-wiz__railhead{box-sizing:border-box;height:var(--strct-wiz-header-h, 64px);flex:none;display:flex;flex-direction:column;justify-content:flex-end;padding-top:18px}.strct-wiz__vtitle{font-size:15px;font-weight:600;letter-spacing:-.2px;line-height:1.3;margin-bottom:auto}.strct-wiz__pbar{height:4px;border-radius:99px;background:var(--bg-a);overflow:hidden;flex:none}.strct-wiz__pbar i{display:block;height:100%;border-radius:99px;background:var(--acc);transition:width .4s cubic-bezier(.4,0,.2,1)}.strct-wiz__pcount{font-family:var(--mono);font-size:10.5px;letter-spacing:.4px;color:var(--t3);margin:7px 0 14px;font-variant-numeric:tabular-nums}.strct-wiz__vsteps{display:flex;flex-direction:column}.strct-wiz__vstep{display:grid;grid-template-columns:22px 1fr;gap:11px;align-items:start;width:100%;padding:8px 0;border:0;background:none;text-align:start;font:inherit;color:inherit;cursor:pointer}.strct-wiz__vstep:disabled{cursor:default;opacity:.55}.strct-wiz__ring{width:20px;height:20px;margin-top:1px;border-radius:50%;border:2px dashed var(--b3);display:grid;place-items:center;transition:border-color .2s,background .2s}.strct-wiz__vlabel{display:block;font-size:13px;color:var(--t2);transition:color .15s}.strct-wiz__vdesc{display:block;font-size:11px;color:var(--t3);margin-top:1px;opacity:0;height:0;overflow:hidden;transition:opacity .25s}.strct-wiz__vstep--done .strct-wiz__ring{border:0;background:var(--success)}.strct-wiz__vstep--done .strct-wiz__ring:after{content:\"\";width:8px;height:4px;border-left:2px solid var(--inv);border-bottom:2px solid var(--inv);transform:rotate(-45deg) translate(1px,-1px)}.strct-wiz__vstep--done .strct-wiz__vlabel{color:var(--t1)}.strct-wiz__vstep--active .strct-wiz__ring{border-style:solid;border-color:var(--acc);box-shadow:0 0 0 3px var(--acc18)}.strct-wiz__vstep--active .strct-wiz__ring:after{content:\"\";width:7px;height:7px;border-radius:50%;background:var(--acc)}.strct-wiz__vstep--active .strct-wiz__vlabel{color:var(--t1);font-weight:600}.strct-wiz__vstep--active .strct-wiz__vdesc{opacity:1;height:auto}.strct-wiz--flush{height:100%;min-height:0}.strct-wiz--flush .strct-wiz__layout--v{height:100%;border:0;border-radius:0;background:transparent}@container (max-width: 1375px){.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:232px minmax(var(--strct-wiz-content-min, 864px),1fr)}.strct-wiz__layout--v.strct-wiz__layout--aside .strct-wiz__aside{display:none}}@container (max-width: 1095px){.strct-wiz__layout--v,.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:232px minmax(0,1fr)}}@container (max-width: 700px){.strct-wiz__layout--v,.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:56px minmax(0,1fr)}.strct-wiz__rail{padding:18px 0 12px;align-items:center}.strct-wiz__chead{height:auto;padding:14px 18px 11px}.strct-wiz__railhead,.strct-wiz__pcount,.strct-wiz__vmeta{display:none}.strct-wiz__vsteps{gap:3px;align-items:center}.strct-wiz__vstep{grid-template-columns:22px;justify-items:center;position:relative;padding:7px 0}.strct-wiz__vstep:not(:last-child):after{content:\"\";position:absolute;left:50%;top:30px;height:10px;width:1.5px;background:var(--b3)}.strct-wiz__vstep--done:not(:last-child):after{background:var(--success);opacity:.6}.strct-wiz__layout--v .strct-wiz__content{padding:16px 18px}.strct-wiz__layout--v .strct-wiz__foot{padding:12px 18px}}@media(prefers-reduced-motion:reduce){.strct-wiz__pbar i,.strct-wiz__ring,.strct-wiz__vlabel,.strct-wiz__vdesc{transition:none}}\n"], dependencies: [{ kind: "component", type: StrctButton, selector: "button[strct-button], a[strct-button]", inputs: ["variant", "size", "solid", "block", "iconOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4871
4986
|
}
|
|
4872
4987
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctWizard, decorators: [{
|
|
4873
4988
|
type: Component,
|
|
@@ -4979,7 +5094,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
4979
5094
|
class: 'strct-wiz',
|
|
4980
5095
|
'[class.strct-wiz--vertical]': 'vertical()',
|
|
4981
5096
|
'[class.strct-wiz--flush]': 'flush()',
|
|
4982
|
-
}, styles: [".strct-wiz{display:block}.strct-wiz__steps{display:flex;align-items:center;gap:6px}.strct-wiz__step{display:flex;align-items:center;gap:8px}.strct-wiz__dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:600;color:var(--t2);background:var(--bg-3);border:1px solid var(--b2)}.strct-wiz__label{font-size:12px;color:var(--t2)}.strct-wiz__step--active .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc)}.strct-wiz__step--active .strct-wiz__label{color:var(--t1);font-weight:600}.strct-wiz__step--done .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc30)}.strct-wiz__sep{flex:1;height:1px;background:var(--b2);min-width:18px}.strct-wiz__content{margin:18px 0;padding:16px;min-height:80px;background:var(--bg-1);border:1px solid var(--b2);border-radius:8px;color:var(--t2);font-size:13px}.strct-wiz__foot{display:flex;justify-content:flex-end;gap:8px}.strct-wiz__cancel{margin-inline-end:auto}.strct-wiz__aside{display:none}.strct-wiz--vertical{container-type:inline-size}.strct-wiz__layout--v{display:grid;grid-template-columns:232px minmax(var(--strct-wiz-content-min,
|
|
5097
|
+
}, styles: [".strct-wiz{display:block}.strct-wiz__steps{display:flex;align-items:center;gap:6px}.strct-wiz__step{display:flex;align-items:center;gap:8px}.strct-wiz__dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:600;color:var(--t2);background:var(--bg-3);border:1px solid var(--b2)}.strct-wiz__label{font-size:12px;color:var(--t2)}.strct-wiz__step--active .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc)}.strct-wiz__step--active .strct-wiz__label{color:var(--t1);font-weight:600}.strct-wiz__step--done .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc30)}.strct-wiz__sep{flex:1;height:1px;background:var(--b2);min-width:18px}.strct-wiz__content{margin:18px 0;padding:16px;min-height:80px;background:var(--bg-1);border:1px solid var(--b2);border-radius:8px;color:var(--t2);font-size:13px}.strct-wiz__foot{display:flex;justify-content:flex-end;gap:8px}.strct-wiz__cancel{margin-inline-end:auto}.strct-wiz__aside{display:none}.strct-wiz--vertical{container-type:inline-size}.strct-wiz__layout--v{display:grid;grid-template-columns:232px minmax(var(--strct-wiz-content-min, 864px),1fr);border:1px solid var(--b2);border-radius:12px;background:var(--bg-1);overflow:hidden}.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:232px minmax(var(--strct-wiz-content-min, 864px),1fr) 280px}.strct-wiz__layout--v.strct-wiz__layout--aside .strct-wiz__aside{display:block;padding:20px 18px;background:var(--bg-2);border-inline-start:1px solid var(--b1);overflow-y:auto}.strct-wiz__layout--v .strct-wiz__main{display:flex;flex-direction:column;min-width:0}.strct-wiz__layout--v .strct-wiz__content{flex:1;margin:0;padding:20px 24px;border:0;border-radius:0;background:transparent;overflow-y:auto}.strct-wiz__layout--v .strct-wiz__foot{padding:13px 24px;border-top:1px solid var(--b1)}.strct-wiz__chead{box-sizing:border-box;height:var(--strct-wiz-header-h, 64px);padding:15px 24px 0;border-bottom:1px solid var(--b1);overflow:hidden}.strct-wiz__ctitle{margin:0;font-size:16px;font-weight:600;letter-spacing:-.2px;color:var(--t1);line-height:1.3}.strct-wiz__clede{margin:2px 0 0;font-size:12.5px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-wiz__rail{display:flex;flex-direction:column;padding:0 18px 16px;background:var(--bg-2);border-inline-end:1px solid var(--b1);min-width:0}.strct-wiz__railhead{box-sizing:border-box;height:var(--strct-wiz-header-h, 64px);flex:none;display:flex;flex-direction:column;justify-content:flex-end;padding-top:18px}.strct-wiz__vtitle{font-size:15px;font-weight:600;letter-spacing:-.2px;line-height:1.3;margin-bottom:auto}.strct-wiz__pbar{height:4px;border-radius:99px;background:var(--bg-a);overflow:hidden;flex:none}.strct-wiz__pbar i{display:block;height:100%;border-radius:99px;background:var(--acc);transition:width .4s cubic-bezier(.4,0,.2,1)}.strct-wiz__pcount{font-family:var(--mono);font-size:10.5px;letter-spacing:.4px;color:var(--t3);margin:7px 0 14px;font-variant-numeric:tabular-nums}.strct-wiz__vsteps{display:flex;flex-direction:column}.strct-wiz__vstep{display:grid;grid-template-columns:22px 1fr;gap:11px;align-items:start;width:100%;padding:8px 0;border:0;background:none;text-align:start;font:inherit;color:inherit;cursor:pointer}.strct-wiz__vstep:disabled{cursor:default;opacity:.55}.strct-wiz__ring{width:20px;height:20px;margin-top:1px;border-radius:50%;border:2px dashed var(--b3);display:grid;place-items:center;transition:border-color .2s,background .2s}.strct-wiz__vlabel{display:block;font-size:13px;color:var(--t2);transition:color .15s}.strct-wiz__vdesc{display:block;font-size:11px;color:var(--t3);margin-top:1px;opacity:0;height:0;overflow:hidden;transition:opacity .25s}.strct-wiz__vstep--done .strct-wiz__ring{border:0;background:var(--success)}.strct-wiz__vstep--done .strct-wiz__ring:after{content:\"\";width:8px;height:4px;border-left:2px solid var(--inv);border-bottom:2px solid var(--inv);transform:rotate(-45deg) translate(1px,-1px)}.strct-wiz__vstep--done .strct-wiz__vlabel{color:var(--t1)}.strct-wiz__vstep--active .strct-wiz__ring{border-style:solid;border-color:var(--acc);box-shadow:0 0 0 3px var(--acc18)}.strct-wiz__vstep--active .strct-wiz__ring:after{content:\"\";width:7px;height:7px;border-radius:50%;background:var(--acc)}.strct-wiz__vstep--active .strct-wiz__vlabel{color:var(--t1);font-weight:600}.strct-wiz__vstep--active .strct-wiz__vdesc{opacity:1;height:auto}.strct-wiz--flush{height:100%;min-height:0}.strct-wiz--flush .strct-wiz__layout--v{height:100%;border:0;border-radius:0;background:transparent}@container (max-width: 1375px){.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:232px minmax(var(--strct-wiz-content-min, 864px),1fr)}.strct-wiz__layout--v.strct-wiz__layout--aside .strct-wiz__aside{display:none}}@container (max-width: 1095px){.strct-wiz__layout--v,.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:232px minmax(0,1fr)}}@container (max-width: 700px){.strct-wiz__layout--v,.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:56px minmax(0,1fr)}.strct-wiz__rail{padding:18px 0 12px;align-items:center}.strct-wiz__chead{height:auto;padding:14px 18px 11px}.strct-wiz__railhead,.strct-wiz__pcount,.strct-wiz__vmeta{display:none}.strct-wiz__vsteps{gap:3px;align-items:center}.strct-wiz__vstep{grid-template-columns:22px;justify-items:center;position:relative;padding:7px 0}.strct-wiz__vstep:not(:last-child):after{content:\"\";position:absolute;left:50%;top:30px;height:10px;width:1.5px;background:var(--b3)}.strct-wiz__vstep--done:not(:last-child):after{background:var(--success);opacity:.6}.strct-wiz__layout--v .strct-wiz__content{padding:16px 18px}.strct-wiz__layout--v .strct-wiz__foot{padding:12px 18px}}@media(prefers-reduced-motion:reduce){.strct-wiz__pbar i,.strct-wiz__ring,.strct-wiz__vlabel,.strct-wiz__vdesc{transition:none}}\n"] }]
|
|
4983
5098
|
}], ctorParameters: () => [], propDecorators: { steps: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => StrctStep), { isSignal: true }] }], asideDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => StrctWizardAside), { isSignal: true }] }], current: [{ type: i0.Input, args: [{ isSignal: true, alias: "current", required: false }] }, { type: i0.Output, args: ["currentChange"] }], vertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "vertical", required: false }] }], flush: [{ type: i0.Input, args: [{ isSignal: true, alias: "flush", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], contentHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentHeader", required: false }] }], finishLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "finishLabel", required: false }] }], backLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "backLabel", required: false }] }], nextLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextLabel", required: false }] }], cancelLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "cancelLabel", required: false }] }], submittingLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "submittingLabel", required: false }] }], progressLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "progressLabel", required: false }] }], stepsLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepsLabel", required: false }] }], submitting: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitting", required: false }] }], cancelable: [{ type: i0.Input, args: [{ isSignal: true, alias: "cancelable", required: false }] }], finished: [{ type: i0.Output, args: ["finished"] }], cancelled: [{ type: i0.Output, args: ["cancelled"] }], stepChange: [{ type: i0.Output, args: ["stepChange"] }] } });
|
|
4984
5099
|
|
|
4985
5100
|
/**
|
|
@@ -10492,7 +10607,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
10492
10607
|
* Per-column cell template for `strct-table` / `strct-datagrid`. The column key
|
|
10493
10608
|
* is the directive value; the row, value and column are the template context:
|
|
10494
10609
|
*
|
|
10495
|
-
* <ng-template strctCell="status" let-row let-value="value">
|
|
10610
|
+
* <ng-template strctCell="status" let-row let-value="value"> (let-row="row" also works)
|
|
10496
10611
|
* <strct-badge [status]="row['success'] ? 'success' : 'critical'">{{ value }}</strct-badge>
|
|
10497
10612
|
* </ng-template>
|
|
10498
10613
|
*/
|
|
@@ -10576,6 +10691,7 @@ class StrctTable {
|
|
|
10576
10691
|
[ngTemplateOutlet]="tpl"
|
|
10577
10692
|
[ngTemplateOutletContext]="{
|
|
10578
10693
|
$implicit: row,
|
|
10694
|
+
row,
|
|
10579
10695
|
value: row[col.key],
|
|
10580
10696
|
column: col,
|
|
10581
10697
|
}"
|
|
@@ -10632,6 +10748,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
10632
10748
|
[ngTemplateOutlet]="tpl"
|
|
10633
10749
|
[ngTemplateOutletContext]="{
|
|
10634
10750
|
$implicit: row,
|
|
10751
|
+
row,
|
|
10635
10752
|
value: row[col.key],
|
|
10636
10753
|
column: col,
|
|
10637
10754
|
}"
|
|
@@ -10809,7 +10926,7 @@ const UTIL_W = { detail: 36, expand: 36, sel: 40 };
|
|
|
10809
10926
|
const STICKY_FALLBACK_W = 120;
|
|
10810
10927
|
/**
|
|
10811
10928
|
* Marks the expandable-row detail template. The row is the template's implicit
|
|
10812
|
-
* context: `<ng-template strctRowDetail let-row> … {{ row['name'] }} … </ng-template>`.
|
|
10929
|
+
* context (`let-row`, or `let-row="row"`): `<ng-template strctRowDetail let-row> … {{ row['name'] }} … </ng-template>`.
|
|
10813
10930
|
*/
|
|
10814
10931
|
class StrctRowDetailDef {
|
|
10815
10932
|
template = inject(TemplateRef);
|
|
@@ -11603,6 +11720,55 @@ class StrctDatagrid {
|
|
|
11603
11720
|
somePageSelected = computed(() => !this.allPageSelected() &&
|
|
11604
11721
|
this.selectionRows().some((r) => this.selected().has(this.idOf(r))), /* @ts-ignore */
|
|
11605
11722
|
...(ngDevMode ? [{ debugName: "somePageSelected" }] : /* istanbul ignore next */ []));
|
|
11723
|
+
/** Dev-mode check that row identities can do their job (see util/dev-warn). */
|
|
11724
|
+
diagnoseIdentity(rowId, rows, init, lazy) {
|
|
11725
|
+
if (!(typeof ngDevMode !== 'undefined' && ngDevMode))
|
|
11726
|
+
return;
|
|
11727
|
+
if (rows.length === 0)
|
|
11728
|
+
return;
|
|
11729
|
+
const label = rowId == null ? '' : typeof rowId === 'function' ? 'rowId (function)' : `rowId="${rowId}"`;
|
|
11730
|
+
if (rowId != null) {
|
|
11731
|
+
const seen = new Set();
|
|
11732
|
+
const dupes = new Set();
|
|
11733
|
+
let unresolved = 0;
|
|
11734
|
+
for (const r of rows) {
|
|
11735
|
+
const raw = typeof rowId === 'function' ? rowId(r) : r[rowId];
|
|
11736
|
+
if (raw == null)
|
|
11737
|
+
unresolved++;
|
|
11738
|
+
else if (seen.has(raw))
|
|
11739
|
+
dupes.add(raw);
|
|
11740
|
+
else
|
|
11741
|
+
seen.add(raw);
|
|
11742
|
+
}
|
|
11743
|
+
if (dupes.size > 0) {
|
|
11744
|
+
const sample = [...dupes]
|
|
11745
|
+
.slice(0, 3)
|
|
11746
|
+
.map((v) => JSON.stringify(v))
|
|
11747
|
+
.join(', ');
|
|
11748
|
+
strctDevWarn(`datagrid:dupe:${label}`, `[strct-datagrid] ${label} resolves to the same value for more than one row ` +
|
|
11749
|
+
`(${sample}). Selection and expansion key on this value, so those rows ` +
|
|
11750
|
+
`will behave as one. Give each row a distinct value, or drop rowId to key ` +
|
|
11751
|
+
`on the row object.`);
|
|
11752
|
+
}
|
|
11753
|
+
if (unresolved > 0) {
|
|
11754
|
+
strctDevWarn(`datagrid:unresolved:${label}`, `[strct-datagrid] ${label} does not resolve for ${unresolved} of ${rows.length} ` +
|
|
11755
|
+
`rows. Those rows fall back to object identity, so their selection and ` +
|
|
11756
|
+
`expansion will not survive a data refresh. Check the field name, or give ` +
|
|
11757
|
+
`every row a value.`);
|
|
11758
|
+
}
|
|
11759
|
+
}
|
|
11760
|
+
// Lazy mode seeds ids for rows on other pages, so a miss there is normal.
|
|
11761
|
+
if (!lazy && init && init.length > 0) {
|
|
11762
|
+
const ids = new Set(rows.map((r) => this.idOf(r)));
|
|
11763
|
+
if (!init.some((v) => ids.has(v))) {
|
|
11764
|
+
strctDevWarn(`datagrid:init:${label}`, `[strct-datagrid] initialSelection has ${init.length} value(s), none of which ` +
|
|
11765
|
+
(rowId == null
|
|
11766
|
+
? `is one of the rows — with no rowId, the values must be the row objects themselves. `
|
|
11767
|
+
: `matches any row's ${label}. `) +
|
|
11768
|
+
`The pre-selection will be empty.`);
|
|
11769
|
+
}
|
|
11770
|
+
}
|
|
11771
|
+
}
|
|
11606
11772
|
/** Resolve a row's stable identity: its `rowId` value, or the row object
|
|
11607
11773
|
* itself when there is no `rowId` or it resolves to null/undefined. */
|
|
11608
11774
|
idOf(row) {
|
|
@@ -11654,6 +11820,17 @@ class StrctDatagrid {
|
|
|
11654
11820
|
return;
|
|
11655
11821
|
untracked(() => this.selected.set(new Set(init)));
|
|
11656
11822
|
});
|
|
11823
|
+
// Dev mode only: say so when rowId or initialSelection cannot do what they
|
|
11824
|
+
// were given to do. In production the effect is never registered.
|
|
11825
|
+
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
11826
|
+
effect(() => {
|
|
11827
|
+
const rowId = this.rowId();
|
|
11828
|
+
const rows = this.rows();
|
|
11829
|
+
const init = this.initialSelection();
|
|
11830
|
+
const lazy = this.lazy();
|
|
11831
|
+
untracked(() => this.diagnoseIdentity(rowId, rows, init, lazy));
|
|
11832
|
+
});
|
|
11833
|
+
}
|
|
11657
11834
|
// Server-side mode: announce what to load whenever page / sort / pageSize
|
|
11658
11835
|
// change (and once on init, so the consumer fetches the first page).
|
|
11659
11836
|
effect(() => {
|
|
@@ -12340,6 +12517,7 @@ class StrctDatagrid {
|
|
|
12340
12517
|
[ngTemplateOutlet]="tpl"
|
|
12341
12518
|
[ngTemplateOutletContext]="{
|
|
12342
12519
|
$implicit: row,
|
|
12520
|
+
row,
|
|
12343
12521
|
value: row[col.key],
|
|
12344
12522
|
column: col,
|
|
12345
12523
|
}"
|
|
@@ -12368,7 +12546,7 @@ class StrctDatagrid {
|
|
|
12368
12546
|
<div class="strct-dg__detail">
|
|
12369
12547
|
<ng-container
|
|
12370
12548
|
[ngTemplateOutlet]="detailDef()!.template"
|
|
12371
|
-
[ngTemplateOutletContext]="{ $implicit: row }"
|
|
12549
|
+
[ngTemplateOutletContext]="{ $implicit: row, row }"
|
|
12372
12550
|
/>
|
|
12373
12551
|
</div>
|
|
12374
12552
|
</td>
|
|
@@ -12406,7 +12584,7 @@ class StrctDatagrid {
|
|
|
12406
12584
|
<div class="strct-dg__pane-body">
|
|
12407
12585
|
<ng-container
|
|
12408
12586
|
[ngTemplateOutlet]="detailDef()!.template"
|
|
12409
|
-
[ngTemplateOutletContext]="{ $implicit: activeRow() }"
|
|
12587
|
+
[ngTemplateOutletContext]="{ $implicit: activeRow(), row: activeRow() }"
|
|
12410
12588
|
/>
|
|
12411
12589
|
</div>
|
|
12412
12590
|
</aside>
|
|
@@ -12829,6 +13007,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
12829
13007
|
[ngTemplateOutlet]="tpl"
|
|
12830
13008
|
[ngTemplateOutletContext]="{
|
|
12831
13009
|
$implicit: row,
|
|
13010
|
+
row,
|
|
12832
13011
|
value: row[col.key],
|
|
12833
13012
|
column: col,
|
|
12834
13013
|
}"
|
|
@@ -12857,7 +13036,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
12857
13036
|
<div class="strct-dg__detail">
|
|
12858
13037
|
<ng-container
|
|
12859
13038
|
[ngTemplateOutlet]="detailDef()!.template"
|
|
12860
|
-
[ngTemplateOutletContext]="{ $implicit: row }"
|
|
13039
|
+
[ngTemplateOutletContext]="{ $implicit: row, row }"
|
|
12861
13040
|
/>
|
|
12862
13041
|
</div>
|
|
12863
13042
|
</td>
|
|
@@ -12895,7 +13074,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
12895
13074
|
<div class="strct-dg__pane-body">
|
|
12896
13075
|
<ng-container
|
|
12897
13076
|
[ngTemplateOutlet]="detailDef()!.template"
|
|
12898
|
-
[ngTemplateOutletContext]="{ $implicit: activeRow() }"
|
|
13077
|
+
[ngTemplateOutletContext]="{ $implicit: activeRow(), row: activeRow() }"
|
|
12899
13078
|
/>
|
|
12900
13079
|
</div>
|
|
12901
13080
|
</aside>
|
|
@@ -21573,5 +21752,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
21573
21752
|
* Generated bundle index. Do not edit.
|
|
21574
21753
|
*/
|
|
21575
21754
|
|
|
21576
|
-
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
21755
|
+
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
21577
21756
|
//# sourceMappingURL=akcelik-strct.mjs.map
|