@forgeroute/ui 0.4.39 → 0.4.41
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/forgeroute-ui-messaging.mjs +4 -2
- package/fesm2022/forgeroute-ui-messaging.mjs.map +1 -1
- package/fesm2022/forgeroute-ui-stripe.mjs +743 -5
- package/fesm2022/forgeroute-ui-stripe.mjs.map +1 -1
- package/fesm2022/forgeroute-ui.mjs +505 -65
- package/fesm2022/forgeroute-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/forgeroute-ui-messaging.d.ts +4 -4
- package/types/forgeroute-ui-stripe.d.ts +246 -2
- package/types/forgeroute-ui.d.ts +192 -25
|
@@ -608,7 +608,7 @@ var PaginationComponent = class PaginationComponent {
|
|
|
608
608
|
}
|
|
609
609
|
`,
|
|
610
610
|
isInline: true,
|
|
611
|
-
styles: [".pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:12px;flex-wrap:wrap;background
|
|
611
|
+
styles: [".pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:12px;flex-wrap:wrap;background:var(--ui-pagination-bg, #fff);border:1px solid #e2e8f0;border-top:none;border-radius:0 0 10px 10px}:host(.pagination-detached) .pagination{border:1px solid #e2e8f0;border-radius:10px;margin-top:4px}:host(.pagination-embedded) .pagination{background:transparent;border:none;border-radius:0;padding:0;margin-top:0}.pagination-info{font-size:.8125rem;color:#64748b}.pagination-controls{display:flex;align-items:center;gap:4px}.pagination-nav{width:32px;height:32px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#334155;font-family:inherit;transition:background .1s}.pagination-nav:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.pagination-nav:disabled{opacity:.4;cursor:default}.pagination-nav:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.pagination-page{min-width:32px;height:32px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#334155;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:inherit;transition:background .1s,border-color .1s}.pagination-page:hover{background:#f8fafc;border-color:#cbd5e1}.pagination-page.active{background:#2563eb;color:#fff;border-color:#2563eb}.pagination-page:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.pagination-ellipsis{padding:0 4px;color:#64748b;font-size:.8125rem}@media(max-width:640px),(pointer:coarse){.pagination-controls{flex-wrap:wrap;justify-content:center}.pagination-nav{width:44px;height:44px}.pagination-page{min-width:44px;height:44px}}@media(max-width:480px){.pagination{justify-content:center;padding:10px 12px}.pagination-info{width:100%;text-align:center}}\n"],
|
|
612
612
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
613
613
|
});
|
|
614
614
|
}
|
|
@@ -650,7 +650,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
650
650
|
</nav>
|
|
651
651
|
}
|
|
652
652
|
`,
|
|
653
|
-
styles: [".pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:12px;flex-wrap:wrap;background
|
|
653
|
+
styles: [".pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:12px;flex-wrap:wrap;background:var(--ui-pagination-bg, #fff);border:1px solid #e2e8f0;border-top:none;border-radius:0 0 10px 10px}:host(.pagination-detached) .pagination{border:1px solid #e2e8f0;border-radius:10px;margin-top:4px}:host(.pagination-embedded) .pagination{background:transparent;border:none;border-radius:0;padding:0;margin-top:0}.pagination-info{font-size:.8125rem;color:#64748b}.pagination-controls{display:flex;align-items:center;gap:4px}.pagination-nav{width:32px;height:32px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#334155;font-family:inherit;transition:background .1s}.pagination-nav:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.pagination-nav:disabled{opacity:.4;cursor:default}.pagination-nav:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.pagination-page{min-width:32px;height:32px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#334155;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:inherit;transition:background .1s,border-color .1s}.pagination-page:hover{background:#f8fafc;border-color:#cbd5e1}.pagination-page.active{background:#2563eb;color:#fff;border-color:#2563eb}.pagination-page:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.pagination-ellipsis{padding:0 4px;color:#64748b;font-size:.8125rem}@media(max-width:640px),(pointer:coarse){.pagination-controls{flex-wrap:wrap;justify-content:center}.pagination-nav{width:44px;height:44px}.pagination-page{min-width:44px;height:44px}}@media(max-width:480px){.pagination{justify-content:center;padding:10px 12px}.pagination-info{width:100%;text-align:center}}\n"]
|
|
654
654
|
}]
|
|
655
655
|
}],
|
|
656
656
|
propDecorators: {
|
|
@@ -8160,6 +8160,7 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
8160
8160
|
this.editIcon = input(true, ...ngDevMode ? [{ debugName: "editIcon" }] : /* istanbul ignore next */ []);
|
|
8161
8161
|
this.editAriaLabel = input("", ...ngDevMode ? [{ debugName: "editAriaLabel" }] : /* istanbul ignore next */ []);
|
|
8162
8162
|
this.fill = input(false, ...ngDevMode ? [{ debugName: "fill" }] : /* istanbul ignore next */ []);
|
|
8163
|
+
this.maxBodyHeight = input("", ...ngDevMode ? [{ debugName: "maxBodyHeight" }] : /* istanbul ignore next */ []);
|
|
8163
8164
|
this.selectable = input(false, ...ngDevMode ? [{ debugName: "selectable" }] : /* istanbul ignore next */ []);
|
|
8164
8165
|
this.selected = model(false, ...ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []);
|
|
8165
8166
|
this.selectedColor = input("#3b82f6", ...ngDevMode ? [{ debugName: "selectedColor" }] : /* istanbul ignore next */ []);
|
|
@@ -8342,6 +8343,13 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
8342
8343
|
isRequired: false,
|
|
8343
8344
|
transformFunction: null
|
|
8344
8345
|
},
|
|
8346
|
+
maxBodyHeight: {
|
|
8347
|
+
classPropertyName: "maxBodyHeight",
|
|
8348
|
+
publicName: "maxBodyHeight",
|
|
8349
|
+
isSignal: true,
|
|
8350
|
+
isRequired: false,
|
|
8351
|
+
transformFunction: null
|
|
8352
|
+
},
|
|
8345
8353
|
selectable: {
|
|
8346
8354
|
classPropertyName: "selectable",
|
|
8347
8355
|
publicName: "selectable",
|
|
@@ -8390,7 +8398,7 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
8390
8398
|
<div class="dc" [class.dc-fill]="fill()" [class.dc-has-text-color]="!!textColor()" [class.dc-has-bg]="!!((selectable() && selected() && selectedBackground()) || background())" [class.dc-selectable]="selectable()" [class.dc-selected]="selectable() && selected()"
|
|
8391
8399
|
[style.outline-color]="selectable() && selected() ? selectedColor() : null"
|
|
8392
8400
|
[style.background]="(selectable() && selected() && selectedBackground()) || background() || null" (click)="onCardClick($event)"
|
|
8393
|
-
[style.color]="textColor() || null" [style.--dc-text]="textColor() || null">
|
|
8401
|
+
[style.color]="textColor() || null" [style.--dc-text]="textColor() || null" [style.--dc-body-max-height]="maxBodyHeight() || null">
|
|
8394
8402
|
@if (showHeader()) {
|
|
8395
8403
|
<div class="dc-header" [class.collapsible]="collapsible()" [class.open]="isOpen()" [style.background]="headerBackground() || null" (click)="onHeaderClick($event)">
|
|
8396
8404
|
@if (collapsible()) {
|
|
@@ -8433,7 +8441,7 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
8433
8441
|
</div>
|
|
8434
8442
|
`,
|
|
8435
8443
|
isInline: true,
|
|
8436
|
-
styles: [":host{display:block;margin-bottom:16px}:host(:last-child){margin-bottom:0}:host(.dc-fill-host){height:100%;margin-bottom:0}.dc.dc-fill{height:100%;box-sizing:border-box;display:flex;flex-direction:column}.dc.dc-fill .dc-body-wrap{flex:1 1 auto;min-height:0}.dc.dc-fill .dc-body{display:flex;flex-direction:column}.dc-selectable{cursor:pointer}.dc-selected{outline:2px solid #3b82f6;outline-offset:-1px}.dc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dc-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:14px 18px}.dc-header.open{border-bottom:1px solid #f1f5f9}.dc-has-bg .dc-header.open{border-bottom-color:#94a3b859}.dc-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}@media(hover:hover){.dc-header.collapsible:hover{background:#f8fafc}}.dc-chevron{flex-shrink:0;color:var(--dc-text, #64748b)}.dc-chevron svg{transition:transform .2s}.dc-chevron svg.rotated{transform:rotate(-90deg)}.dc-header-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.dc-title{font-size:.8125rem;font-weight:800;letter-spacing:.07em;color:var(--dc-text, #1e293b);line-height:1.3;text-transform:uppercase}.dc-title--as-written{text-transform:none}.dc-subtitle{font-size:.8125rem;color:var(--dc-text, #475569)}.dc-has-text-color .dc-subtitle{opacity:.8}.dc-has-text-color .dc-header.open{border-bottom-color:#94a3b859}.dc-edit{flex-shrink:0;margin-left:auto}.dc-edit-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-family:inherit;font-size:.8rem;font-weight:500;line-height:1.4;color:#64748b;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.dc-edit-action:hover{background:#f1f5f9;color:#1e293b}.dc-edit-action:focus-visible{outline:2px solid var(--ui-focus, #3b82f6);outline-offset:2px}@media(pointer:coarse),(max-width:480px){.dc-edit-action{min-height:44px}}.dc-body-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.dc-body-wrap.collapsed{grid-template-rows:0fr}.dc-body{padding:16px 18px;min-height:0;overflow:hidden}.dc-footer{padding:10px 18px;border-top:1px solid #f1f5f9}.dc-footer:empty,.dc-footer.dc-footer--hidden{display:none}.dc-has-bg .dc-footer{border-top-color:#94a3b859}@media(max-width:480px){.dc-footer{padding:10px 14px}.dc-header{padding:12px 14px}.dc-body{padding:14px}.dc-edit{margin-left:0}}@media(prefers-reduced-motion:reduce){.dc-body-wrap,.dc-chevron svg{transition:none}}\n"],
|
|
8444
|
+
styles: [":host{display:block;margin-bottom:16px}:host(:last-child){margin-bottom:0}:host(.dc-fill-host){height:100%;margin-bottom:0}.dc.dc-fill{height:100%;box-sizing:border-box;display:flex;flex-direction:column}.dc.dc-fill .dc-body-wrap{flex:1 1 auto;min-height:0}.dc.dc-fill .dc-body{display:flex;flex-direction:column}.dc-selectable{cursor:pointer}.dc-selected{outline:2px solid #3b82f6;outline-offset:-1px}.dc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dc-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:14px 18px}.dc-header.open{border-bottom:1px solid #f1f5f9}.dc-has-bg .dc-header.open{border-bottom-color:#94a3b859}.dc-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}@media(hover:hover){.dc-header.collapsible:hover{background:#f8fafc}}.dc-chevron{flex-shrink:0;color:var(--dc-text, #64748b)}.dc-chevron svg{transition:transform .2s}.dc-chevron svg.rotated{transform:rotate(-90deg)}.dc-header-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.dc-title{font-size:.8125rem;font-weight:800;letter-spacing:.07em;color:var(--dc-text, #1e293b);line-height:1.3;text-transform:uppercase}.dc-title--as-written{text-transform:none}.dc-subtitle{font-size:.8125rem;color:var(--dc-text, #475569)}.dc-has-text-color .dc-subtitle{opacity:.8}.dc-has-text-color .dc-header.open{border-bottom-color:#94a3b859}.dc-edit{flex-shrink:0;margin-left:auto}.dc-edit-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-family:inherit;font-size:.8rem;font-weight:500;line-height:1.4;color:#64748b;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.dc-edit-action:hover{background:#f1f5f9;color:#1e293b}.dc-edit-action:focus-visible{outline:2px solid var(--ui-focus, #3b82f6);outline-offset:2px}@media(pointer:coarse),(max-width:480px){.dc-edit-action{min-height:44px}}.dc-body-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.dc-body-wrap.collapsed{grid-template-rows:0fr}.dc-body{padding:16px 18px;min-height:0;overflow-x:hidden;overflow-y:auto;max-height:var(--dc-body-max-height, none)}.dc-footer{padding:10px 18px;border-top:1px solid #f1f5f9}.dc-footer:empty,.dc-footer.dc-footer--hidden{display:none}.dc-has-bg .dc-footer{border-top-color:#94a3b859}@media(max-width:480px){.dc-footer{padding:10px 14px}.dc-header{padding:12px 14px}.dc-body{padding:14px}.dc-edit{margin-left:0}}@media(prefers-reduced-motion:reduce){.dc-body-wrap,.dc-chevron svg{transition:none}}\n"],
|
|
8437
8445
|
dependencies: [{
|
|
8438
8446
|
kind: "component",
|
|
8439
8447
|
type: ButtonComponent,
|
|
@@ -8491,7 +8499,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
8491
8499
|
<div class="dc" [class.dc-fill]="fill()" [class.dc-has-text-color]="!!textColor()" [class.dc-has-bg]="!!((selectable() && selected() && selectedBackground()) || background())" [class.dc-selectable]="selectable()" [class.dc-selected]="selectable() && selected()"
|
|
8492
8500
|
[style.outline-color]="selectable() && selected() ? selectedColor() : null"
|
|
8493
8501
|
[style.background]="(selectable() && selected() && selectedBackground()) || background() || null" (click)="onCardClick($event)"
|
|
8494
|
-
[style.color]="textColor() || null" [style.--dc-text]="textColor() || null">
|
|
8502
|
+
[style.color]="textColor() || null" [style.--dc-text]="textColor() || null" [style.--dc-body-max-height]="maxBodyHeight() || null">
|
|
8495
8503
|
@if (showHeader()) {
|
|
8496
8504
|
<div class="dc-header" [class.collapsible]="collapsible()" [class.open]="isOpen()" [style.background]="headerBackground() || null" (click)="onHeaderClick($event)">
|
|
8497
8505
|
@if (collapsible()) {
|
|
@@ -8533,7 +8541,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
8533
8541
|
<div class="dc-footer" [class.dc-footer--hidden]="!isOpen()" [style.background]="footerBackground() || null"><ng-content select="[card-footer]" /></div>
|
|
8534
8542
|
</div>
|
|
8535
8543
|
`,
|
|
8536
|
-
styles: [":host{display:block;margin-bottom:16px}:host(:last-child){margin-bottom:0}:host(.dc-fill-host){height:100%;margin-bottom:0}.dc.dc-fill{height:100%;box-sizing:border-box;display:flex;flex-direction:column}.dc.dc-fill .dc-body-wrap{flex:1 1 auto;min-height:0}.dc.dc-fill .dc-body{display:flex;flex-direction:column}.dc-selectable{cursor:pointer}.dc-selected{outline:2px solid #3b82f6;outline-offset:-1px}.dc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dc-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:14px 18px}.dc-header.open{border-bottom:1px solid #f1f5f9}.dc-has-bg .dc-header.open{border-bottom-color:#94a3b859}.dc-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}@media(hover:hover){.dc-header.collapsible:hover{background:#f8fafc}}.dc-chevron{flex-shrink:0;color:var(--dc-text, #64748b)}.dc-chevron svg{transition:transform .2s}.dc-chevron svg.rotated{transform:rotate(-90deg)}.dc-header-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.dc-title{font-size:.8125rem;font-weight:800;letter-spacing:.07em;color:var(--dc-text, #1e293b);line-height:1.3;text-transform:uppercase}.dc-title--as-written{text-transform:none}.dc-subtitle{font-size:.8125rem;color:var(--dc-text, #475569)}.dc-has-text-color .dc-subtitle{opacity:.8}.dc-has-text-color .dc-header.open{border-bottom-color:#94a3b859}.dc-edit{flex-shrink:0;margin-left:auto}.dc-edit-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-family:inherit;font-size:.8rem;font-weight:500;line-height:1.4;color:#64748b;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.dc-edit-action:hover{background:#f1f5f9;color:#1e293b}.dc-edit-action:focus-visible{outline:2px solid var(--ui-focus, #3b82f6);outline-offset:2px}@media(pointer:coarse),(max-width:480px){.dc-edit-action{min-height:44px}}.dc-body-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.dc-body-wrap.collapsed{grid-template-rows:0fr}.dc-body{padding:16px 18px;min-height:0;overflow:hidden}.dc-footer{padding:10px 18px;border-top:1px solid #f1f5f9}.dc-footer:empty,.dc-footer.dc-footer--hidden{display:none}.dc-has-bg .dc-footer{border-top-color:#94a3b859}@media(max-width:480px){.dc-footer{padding:10px 14px}.dc-header{padding:12px 14px}.dc-body{padding:14px}.dc-edit{margin-left:0}}@media(prefers-reduced-motion:reduce){.dc-body-wrap,.dc-chevron svg{transition:none}}\n"]
|
|
8544
|
+
styles: [":host{display:block;margin-bottom:16px}:host(:last-child){margin-bottom:0}:host(.dc-fill-host){height:100%;margin-bottom:0}.dc.dc-fill{height:100%;box-sizing:border-box;display:flex;flex-direction:column}.dc.dc-fill .dc-body-wrap{flex:1 1 auto;min-height:0}.dc.dc-fill .dc-body{display:flex;flex-direction:column}.dc-selectable{cursor:pointer}.dc-selected{outline:2px solid #3b82f6;outline-offset:-1px}.dc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dc-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:14px 18px}.dc-header.open{border-bottom:1px solid #f1f5f9}.dc-has-bg .dc-header.open{border-bottom-color:#94a3b859}.dc-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}@media(hover:hover){.dc-header.collapsible:hover{background:#f8fafc}}.dc-chevron{flex-shrink:0;color:var(--dc-text, #64748b)}.dc-chevron svg{transition:transform .2s}.dc-chevron svg.rotated{transform:rotate(-90deg)}.dc-header-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.dc-title{font-size:.8125rem;font-weight:800;letter-spacing:.07em;color:var(--dc-text, #1e293b);line-height:1.3;text-transform:uppercase}.dc-title--as-written{text-transform:none}.dc-subtitle{font-size:.8125rem;color:var(--dc-text, #475569)}.dc-has-text-color .dc-subtitle{opacity:.8}.dc-has-text-color .dc-header.open{border-bottom-color:#94a3b859}.dc-edit{flex-shrink:0;margin-left:auto}.dc-edit-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-family:inherit;font-size:.8rem;font-weight:500;line-height:1.4;color:#64748b;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.dc-edit-action:hover{background:#f1f5f9;color:#1e293b}.dc-edit-action:focus-visible{outline:2px solid var(--ui-focus, #3b82f6);outline-offset:2px}@media(pointer:coarse),(max-width:480px){.dc-edit-action{min-height:44px}}.dc-body-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.dc-body-wrap.collapsed{grid-template-rows:0fr}.dc-body{padding:16px 18px;min-height:0;overflow-x:hidden;overflow-y:auto;max-height:var(--dc-body-max-height, none)}.dc-footer{padding:10px 18px;border-top:1px solid #f1f5f9}.dc-footer:empty,.dc-footer.dc-footer--hidden{display:none}.dc-has-bg .dc-footer{border-top-color:#94a3b859}@media(max-width:480px){.dc-footer{padding:10px 14px}.dc-header{padding:12px 14px}.dc-body{padding:14px}.dc-edit{margin-left:0}}@media(prefers-reduced-motion:reduce){.dc-body-wrap,.dc-chevron svg{transition:none}}\n"]
|
|
8537
8545
|
}]
|
|
8538
8546
|
}],
|
|
8539
8547
|
propDecorators: {
|
|
@@ -8696,6 +8704,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
8696
8704
|
required: false
|
|
8697
8705
|
}]
|
|
8698
8706
|
}],
|
|
8707
|
+
maxBodyHeight: [{
|
|
8708
|
+
type: i0.Input,
|
|
8709
|
+
args: [{
|
|
8710
|
+
isSignal: true,
|
|
8711
|
+
alias: "maxBodyHeight",
|
|
8712
|
+
required: false
|
|
8713
|
+
}]
|
|
8714
|
+
}],
|
|
8699
8715
|
selectable: [{
|
|
8700
8716
|
type: i0.Input,
|
|
8701
8717
|
args: [{
|
|
@@ -8922,6 +8938,7 @@ var OptionCardComponent = class OptionCardComponent {
|
|
|
8922
8938
|
"editIcon",
|
|
8923
8939
|
"editAriaLabel",
|
|
8924
8940
|
"fill",
|
|
8941
|
+
"maxBodyHeight",
|
|
8925
8942
|
"selectable",
|
|
8926
8943
|
"selected",
|
|
8927
8944
|
"selectedColor",
|
|
@@ -11082,6 +11099,17 @@ var DataTableComponent = class DataTableComponent {
|
|
|
11082
11099
|
});
|
|
11083
11100
|
return true;
|
|
11084
11101
|
}
|
|
11102
|
+
_actionKeyLabel(key) {
|
|
11103
|
+
const words = key.replace(/([a-z0-9])([A-Z])/g, "$1 $2").split(/[\s_-]+/).filter(Boolean).join(" ").toLowerCase();
|
|
11104
|
+
return words.charAt(0).toUpperCase() + words.slice(1);
|
|
11105
|
+
}
|
|
11106
|
+
_isActionEligible(def, row) {
|
|
11107
|
+
try {
|
|
11108
|
+
return !!def.eligible(row);
|
|
11109
|
+
} catch {
|
|
11110
|
+
return false;
|
|
11111
|
+
}
|
|
11112
|
+
}
|
|
11085
11113
|
_bulkOptionsFor(def) {
|
|
11086
11114
|
const opts = this._getOptionsForField(def.field);
|
|
11087
11115
|
return def.exclude?.length ? opts.filter((o) => !this._isBulkExcluded(def, o.value)) : opts;
|
|
@@ -11142,7 +11170,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
11142
11170
|
this._visibleColumns.set([]);
|
|
11143
11171
|
}
|
|
11144
11172
|
_hostConfirm(def, ctx, skippedNote, fallback) {
|
|
11145
|
-
const fn = typeof def.confirm === "function" ? def.confirm : def.confirm?.[ctx.targetValue];
|
|
11173
|
+
const fn = typeof def.confirm === "function" ? def.confirm : def.action ? void 0 : def.confirm?.[ctx.targetValue];
|
|
11146
11174
|
if (!fn) return null;
|
|
11147
11175
|
const out = fn(ctx);
|
|
11148
11176
|
const copy = typeof out === "string" ? { message: out } : out;
|
|
@@ -11156,6 +11184,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
11156
11184
|
};
|
|
11157
11185
|
}
|
|
11158
11186
|
_bulkBlockedReason(def) {
|
|
11187
|
+
if (def.action) return def.eligible && this._actionSplit(def).eligible.length === 0 ? `None of the selected rows qualify for ${def.label.toLowerCase()}.` : "";
|
|
11159
11188
|
if (def.type !== "delete" || !def.deletable) return "";
|
|
11160
11189
|
return this._deleteSplit(def).deletable.length === 0 ? "None of the selected rows can be deleted." : "";
|
|
11161
11190
|
}
|
|
@@ -11173,7 +11202,96 @@ var DataTableComponent = class DataTableComponent {
|
|
|
11173
11202
|
blocked: selected.filter((r) => !def.deletable(r))
|
|
11174
11203
|
};
|
|
11175
11204
|
}
|
|
11205
|
+
_actionSplit(def) {
|
|
11206
|
+
const selected = this._items().filter((i) => this._selectedIds().has(i["id"]));
|
|
11207
|
+
if (!def.eligible) return {
|
|
11208
|
+
eligible: selected,
|
|
11209
|
+
refused: []
|
|
11210
|
+
};
|
|
11211
|
+
const ok = selected.map((r) => this._isActionEligible(def, r));
|
|
11212
|
+
return {
|
|
11213
|
+
eligible: selected.filter((_, i) => ok[i]),
|
|
11214
|
+
refused: selected.filter((_, i) => !ok[i])
|
|
11215
|
+
};
|
|
11216
|
+
}
|
|
11217
|
+
async _runDirectAction(def) {
|
|
11218
|
+
if (this._confirmingAction || this._runningAction()) return;
|
|
11219
|
+
const split = this._actionSplit(def);
|
|
11220
|
+
if (split.eligible.length === 0) return;
|
|
11221
|
+
const ids = split.eligible.map((r) => r["id"]);
|
|
11222
|
+
const skippedCount = split.refused.length;
|
|
11223
|
+
const lower = def.label.toLowerCase();
|
|
11224
|
+
const skippedNote = skippedCount === 0 ? "" : skippedCount === 1 ? ` 1 selected row doesn't qualify for ${lower} and will be skipped.` : ` ${skippedCount} selected rows don't qualify for ${lower} and will be skipped.`;
|
|
11225
|
+
const variant = def.variant === "danger" ? "danger" : "primary";
|
|
11226
|
+
this._confirmingAction = true;
|
|
11227
|
+
let confirmed = false;
|
|
11228
|
+
try {
|
|
11229
|
+
const defaultCopy = {
|
|
11230
|
+
title: def.label,
|
|
11231
|
+
message: `${def.label} for ${ids.length} ${this._countLabel(ids.length)}?${skippedNote}`,
|
|
11232
|
+
confirmLabel: def.label,
|
|
11233
|
+
variant
|
|
11234
|
+
};
|
|
11235
|
+
const hostCopy = def.confirm ? this._hostConfirm(def, {
|
|
11236
|
+
count: ids.length,
|
|
11237
|
+
skippedAlready: 0,
|
|
11238
|
+
skippedBlocked: skippedCount,
|
|
11239
|
+
selectedCount: this._selectedIds().size,
|
|
11240
|
+
itemLabel: this.itemLabel(),
|
|
11241
|
+
itemLabelPlural: this.itemLabelPlural() || pluralize(this.itemLabel()),
|
|
11242
|
+
columnLabel: def.label,
|
|
11243
|
+
targetValue: "",
|
|
11244
|
+
targetLabel: "",
|
|
11245
|
+
rows: split.eligible,
|
|
11246
|
+
skippedRows: split.refused
|
|
11247
|
+
}, skippedNote, {
|
|
11248
|
+
title: defaultCopy.title,
|
|
11249
|
+
confirmLabel: defaultCopy.confirmLabel,
|
|
11250
|
+
variant
|
|
11251
|
+
}) : null;
|
|
11252
|
+
confirmed = await this._confirmSvc.confirm(hostCopy ?? defaultCopy);
|
|
11253
|
+
} catch {
|
|
11254
|
+
confirmed = false;
|
|
11255
|
+
} finally {
|
|
11256
|
+
this._confirmingAction = false;
|
|
11257
|
+
}
|
|
11258
|
+
if (!confirmed) return;
|
|
11259
|
+
this._runningAction.set(def.type);
|
|
11260
|
+
const done = def.doneLabel?.trim() || "updated";
|
|
11261
|
+
const url = `${this.config.baseUrl}${this.endpoint()}/bulk/${def.type.slice(7)}`;
|
|
11262
|
+
this.http.post(url, { ids }).pipe(takeUntilDestroyed(this.destroyRef)).subscribe({
|
|
11263
|
+
next: (r) => {
|
|
11264
|
+
this._runningAction.set(null);
|
|
11265
|
+
const count = r == null ? ids.length : r.updated ?? r.deleted ?? 0;
|
|
11266
|
+
const totalSkipped = skippedCount + (r?.skipped ?? 0);
|
|
11267
|
+
const notAllowed = r?.notAllowed ?? 0;
|
|
11268
|
+
const msg = totalSkipped > 0 || notAllowed > 0 ? [
|
|
11269
|
+
`${count} ${done}`,
|
|
11270
|
+
totalSkipped > 0 ? `${totalSkipped} skipped` : "",
|
|
11271
|
+
notAllowed > 0 ? `${notAllowed} not allowed` : ""
|
|
11272
|
+
].filter(Boolean).join(", ") + "." : `${count} ${this.itemLabel()}(s) ${done}.`;
|
|
11273
|
+
const serverMsg = humanReadableMessage(r?.message);
|
|
11274
|
+
if (serverMsg && count === 0) this._toast.error(serverMsg);
|
|
11275
|
+
else this._toast.show(serverMsg ? `${msg} ${serverMsg}` : msg);
|
|
11276
|
+
this.clearSelection();
|
|
11277
|
+
this.refresh();
|
|
11278
|
+
this.bulkAction.emit({
|
|
11279
|
+
type: def.type,
|
|
11280
|
+
ids,
|
|
11281
|
+
skippedCount
|
|
11282
|
+
});
|
|
11283
|
+
},
|
|
11284
|
+
error: (err) => {
|
|
11285
|
+
this._runningAction.set(null);
|
|
11286
|
+
this._toast.error(err?.error?.message ?? "Something went wrong. Please try again.");
|
|
11287
|
+
}
|
|
11288
|
+
});
|
|
11289
|
+
}
|
|
11176
11290
|
onBulkActionClick(def) {
|
|
11291
|
+
if (def.action) {
|
|
11292
|
+
this._runDirectAction(def);
|
|
11293
|
+
return;
|
|
11294
|
+
}
|
|
11177
11295
|
if (def.type === "delete") {
|
|
11178
11296
|
const split = this._deleteSplit(def);
|
|
11179
11297
|
if (def.deletable && split.deletable.length === 0) return;
|
|
@@ -11291,6 +11409,8 @@ var DataTableComponent = class DataTableComponent {
|
|
|
11291
11409
|
variant: "primary"
|
|
11292
11410
|
}) : null;
|
|
11293
11411
|
confirmed = await this._confirmSvc.confirm(hostCopy ?? defaultCopy);
|
|
11412
|
+
} catch {
|
|
11413
|
+
confirmed = false;
|
|
11294
11414
|
} finally {
|
|
11295
11415
|
this._confirmingBulk = false;
|
|
11296
11416
|
}
|
|
@@ -11614,6 +11734,18 @@ var DataTableComponent = class DataTableComponent {
|
|
|
11614
11734
|
...confirm ? { confirm } : {},
|
|
11615
11735
|
...deletable ? { deletable } : {}
|
|
11616
11736
|
};
|
|
11737
|
+
if (typeof entry !== "string" && entry.action) {
|
|
11738
|
+
const label = entry.label?.trim() || this._actionKeyLabel(key);
|
|
11739
|
+
return {
|
|
11740
|
+
type: `action-${key}`,
|
|
11741
|
+
label,
|
|
11742
|
+
variant: entry.variant === "danger" ? "danger" : "secondary",
|
|
11743
|
+
action: true,
|
|
11744
|
+
...entry.eligible ? { eligible: entry.eligible } : {},
|
|
11745
|
+
...entry.doneLabel ? { doneLabel: entry.doneLabel } : {},
|
|
11746
|
+
...confirm ? { confirm } : {}
|
|
11747
|
+
};
|
|
11748
|
+
}
|
|
11617
11749
|
const exclude = typeof entry === "string" ? [] : entry.exclude ?? [];
|
|
11618
11750
|
const col = this.columns().find((c) => c.key === key);
|
|
11619
11751
|
const allowedFrom = typeof entry === "string" ? void 0 : entry.allowedFrom;
|
|
@@ -11630,7 +11762,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
11630
11762
|
...canChange ? { canChange } : {},
|
|
11631
11763
|
...confirm ? { confirm } : {}
|
|
11632
11764
|
};
|
|
11633
|
-
}).filter((def) => !def.field || !def.exclude?.length || this._bulkOptionsFor(def).length > 0), ...ngDevMode ? [{ debugName: "_bulkDefs" }] : /* istanbul ignore next */ []);
|
|
11765
|
+
}).filter((def) => !def.field || !def.exclude?.length || this._bulkOptionsFor(def).length > 0).filter((def, i, all) => !def.action || all.findIndex((d) => d.type === def.type) === i), ...ngDevMode ? [{ debugName: "_bulkDefs" }] : /* istanbul ignore next */ []);
|
|
11634
11766
|
this._activeBulkType = signal(null, ...ngDevMode ? [{ debugName: "_activeBulkType" }] : /* istanbul ignore next */ []);
|
|
11635
11767
|
this._applyingBulk = signal(false, ...ngDevMode ? [{ debugName: "_applyingBulk" }] : /* istanbul ignore next */ []);
|
|
11636
11768
|
this._deletingBulk = signal(false, ...ngDevMode ? [{ debugName: "_deletingBulk" }] : /* istanbul ignore next */ []);
|
|
@@ -11670,6 +11802,8 @@ var DataTableComponent = class DataTableComponent {
|
|
|
11670
11802
|
});
|
|
11671
11803
|
return out;
|
|
11672
11804
|
}, ...ngDevMode ? [{ debugName: "_rowNameSuffix" }] : /* istanbul ignore next */ []);
|
|
11805
|
+
this._runningAction = signal(null, ...ngDevMode ? [{ debugName: "_runningAction" }] : /* istanbul ignore next */ []);
|
|
11806
|
+
this._confirmingAction = false;
|
|
11673
11807
|
this._confirmingBulk = false;
|
|
11674
11808
|
this._rowDeleteTarget = signal(null, ...ngDevMode ? [{ debugName: "_rowDeleteTarget" }] : /* istanbul ignore next */ []);
|
|
11675
11809
|
this._rowDeleting = signal(false, ...ngDevMode ? [{ debugName: "_rowDeleting" }] : /* istanbul ignore next */ []);
|
|
@@ -11806,6 +11940,14 @@ var DataTableComponent = class DataTableComponent {
|
|
|
11806
11940
|
if (this.page()) this._loadSavedViews();
|
|
11807
11941
|
this._fetchCounts();
|
|
11808
11942
|
}
|
|
11943
|
+
_retryAfterError() {
|
|
11944
|
+
if (this._search()) {
|
|
11945
|
+
this._search.set("");
|
|
11946
|
+
this._page.set(1);
|
|
11947
|
+
this._fetchCounts();
|
|
11948
|
+
}
|
|
11949
|
+
this.load();
|
|
11950
|
+
}
|
|
11809
11951
|
onSearchChange(val) {
|
|
11810
11952
|
if (val === this._search()) return;
|
|
11811
11953
|
this._search.set(val);
|
|
@@ -12542,8 +12684,8 @@ var DataTableComponent = class DataTableComponent {
|
|
|
12542
12684
|
<div class="dt-host">
|
|
12543
12685
|
|
|
12544
12686
|
<!-- ── HEADER ──────────────────────────────────────────────── -->
|
|
12545
|
-
@if (!_hasLoaded()) {
|
|
12546
|
-
<!-- Skeleton header: shaped to match real controls -->
|
|
12687
|
+
@if (!_hasLoaded() && !_error()) {
|
|
12688
|
+
<!-- Skeleton header: shaped to match real controls (only while the first load is running: a failed first load keeps no placeholder bars) -->
|
|
12547
12689
|
@if (_showHeader()) {
|
|
12548
12690
|
<div class="dt-sk-toolbar">
|
|
12549
12691
|
<div class="dt-sk-toolbar-left">
|
|
@@ -12578,14 +12720,14 @@ var DataTableComponent = class DataTableComponent {
|
|
|
12578
12720
|
@if (tableTitle()) {
|
|
12579
12721
|
<h3 class="dt-title">{{ tableTitle() }}</h3>
|
|
12580
12722
|
}
|
|
12581
|
-
@if (showSearch() && !_emptyUnfiltered()) {
|
|
12723
|
+
@if (showSearch() && !_emptyUnfiltered() && !_error()) {
|
|
12582
12724
|
<ui-search-input
|
|
12583
12725
|
[value]="_search()"
|
|
12584
12726
|
[placeholder]="_effectiveSearchPlaceholder()"
|
|
12585
|
-
[loading]="_searchLoading()"
|
|
12727
|
+
[loading]="_searchLoading() && !_error()"
|
|
12586
12728
|
(searchChange)="onSearchChange($event)" />
|
|
12587
12729
|
}
|
|
12588
|
-
@if (_effectiveTabs().length && !_emptyUnfiltered()) {
|
|
12730
|
+
@if (_effectiveTabs().length && !_emptyUnfiltered() && !_error()) {
|
|
12589
12731
|
<ui-quick-filter-tabs
|
|
12590
12732
|
[tabs]="_effectiveTabs()"
|
|
12591
12733
|
[counts]="_tabCounts()"
|
|
@@ -12628,8 +12770,8 @@ var DataTableComponent = class DataTableComponent {
|
|
|
12628
12770
|
} @else {
|
|
12629
12771
|
@for (def of _bulkDefs(); track def.type) {
|
|
12630
12772
|
<ui-button [variant]="def.variant ?? 'secondary'" size="sm"
|
|
12631
|
-
[loading]="def.type === 'delete' && _deletingBulk()"
|
|
12632
|
-
[disabled]="_deletingBulk() || !!_bulkBlockedReason(def)"
|
|
12773
|
+
[loading]="(def.type === 'delete' && _deletingBulk()) || (!!def.action && _runningAction() === def.type)"
|
|
12774
|
+
[disabled]="_deletingBulk() || !!_runningAction() || !!_bulkBlockedReason(def)"
|
|
12633
12775
|
[ariaLabel]="_bulkBlockedReason(def) ? def.label + ' — ' + _bulkBlockedReason(def) : undefined"
|
|
12634
12776
|
[attr.title]="_bulkBlockedReason(def) || null"
|
|
12635
12777
|
(click)="onBulkActionClick(def)">{{ def.label }}</ui-button>
|
|
@@ -12759,7 +12901,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
12759
12901
|
@else if (_error()) {
|
|
12760
12902
|
<tr>
|
|
12761
12903
|
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0) + (_reorderOn() ? 1 : 0)" class="dt-state-cell">
|
|
12762
|
-
<ui-error-state [message]="_error()!" [retryLabel]="_retryLabel()" (retry)="
|
|
12904
|
+
<ui-error-state [message]="_error()!" [retryLabel]="_retryLabel()" (retry)="_retryAfterError()" />
|
|
12763
12905
|
</td>
|
|
12764
12906
|
</tr>
|
|
12765
12907
|
}
|
|
@@ -13021,7 +13163,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13021
13163
|
}
|
|
13022
13164
|
|
|
13023
13165
|
} @else if (_error()) {
|
|
13024
|
-
<ui-error-state [message]="_error()!" [retryLabel]="_retryLabel()" (retry)="
|
|
13166
|
+
<ui-error-state [message]="_error()!" [retryLabel]="_retryLabel()" (retry)="_retryAfterError()" />
|
|
13025
13167
|
|
|
13026
13168
|
} @else if (_items().length === 0 && !_hasActiveFilters()) {
|
|
13027
13169
|
<ui-empty-state iconType="table" [message]="emptyMessage()" />
|
|
@@ -13221,7 +13363,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13221
13363
|
</div>
|
|
13222
13364
|
`,
|
|
13223
13365
|
isInline: true,
|
|
13224
|
-
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#94a3b8}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;align-items:stretch}.dt-header-left,.dt-header-right{width:100%}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1}.dt-bulk-actions{width:100%}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#64748b;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 12px;font-family:inherit;font-size:1rem;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"],
|
|
13366
|
+
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#94a3b8}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;align-items:stretch}.dt-header-left,.dt-header-right{width:100%}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1}.dt-bulk-actions{width:100%}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#64748b;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 12px;font-family:inherit;font-size:1rem;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"],
|
|
13225
13367
|
dependencies: [
|
|
13226
13368
|
{
|
|
13227
13369
|
kind: "directive",
|
|
@@ -13609,8 +13751,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13609
13751
|
<div class="dt-host">
|
|
13610
13752
|
|
|
13611
13753
|
<!-- ── HEADER ──────────────────────────────────────────────── -->
|
|
13612
|
-
@if (!_hasLoaded()) {
|
|
13613
|
-
<!-- Skeleton header: shaped to match real controls -->
|
|
13754
|
+
@if (!_hasLoaded() && !_error()) {
|
|
13755
|
+
<!-- Skeleton header: shaped to match real controls (only while the first load is running: a failed first load keeps no placeholder bars) -->
|
|
13614
13756
|
@if (_showHeader()) {
|
|
13615
13757
|
<div class="dt-sk-toolbar">
|
|
13616
13758
|
<div class="dt-sk-toolbar-left">
|
|
@@ -13645,14 +13787,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13645
13787
|
@if (tableTitle()) {
|
|
13646
13788
|
<h3 class="dt-title">{{ tableTitle() }}</h3>
|
|
13647
13789
|
}
|
|
13648
|
-
@if (showSearch() && !_emptyUnfiltered()) {
|
|
13790
|
+
@if (showSearch() && !_emptyUnfiltered() && !_error()) {
|
|
13649
13791
|
<ui-search-input
|
|
13650
13792
|
[value]="_search()"
|
|
13651
13793
|
[placeholder]="_effectiveSearchPlaceholder()"
|
|
13652
|
-
[loading]="_searchLoading()"
|
|
13794
|
+
[loading]="_searchLoading() && !_error()"
|
|
13653
13795
|
(searchChange)="onSearchChange($event)" />
|
|
13654
13796
|
}
|
|
13655
|
-
@if (_effectiveTabs().length && !_emptyUnfiltered()) {
|
|
13797
|
+
@if (_effectiveTabs().length && !_emptyUnfiltered() && !_error()) {
|
|
13656
13798
|
<ui-quick-filter-tabs
|
|
13657
13799
|
[tabs]="_effectiveTabs()"
|
|
13658
13800
|
[counts]="_tabCounts()"
|
|
@@ -13695,8 +13837,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13695
13837
|
} @else {
|
|
13696
13838
|
@for (def of _bulkDefs(); track def.type) {
|
|
13697
13839
|
<ui-button [variant]="def.variant ?? 'secondary'" size="sm"
|
|
13698
|
-
[loading]="def.type === 'delete' && _deletingBulk()"
|
|
13699
|
-
[disabled]="_deletingBulk() || !!_bulkBlockedReason(def)"
|
|
13840
|
+
[loading]="(def.type === 'delete' && _deletingBulk()) || (!!def.action && _runningAction() === def.type)"
|
|
13841
|
+
[disabled]="_deletingBulk() || !!_runningAction() || !!_bulkBlockedReason(def)"
|
|
13700
13842
|
[ariaLabel]="_bulkBlockedReason(def) ? def.label + ' — ' + _bulkBlockedReason(def) : undefined"
|
|
13701
13843
|
[attr.title]="_bulkBlockedReason(def) || null"
|
|
13702
13844
|
(click)="onBulkActionClick(def)">{{ def.label }}</ui-button>
|
|
@@ -13826,7 +13968,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13826
13968
|
@else if (_error()) {
|
|
13827
13969
|
<tr>
|
|
13828
13970
|
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0) + (_reorderOn() ? 1 : 0)" class="dt-state-cell">
|
|
13829
|
-
<ui-error-state [message]="_error()!" [retryLabel]="_retryLabel()" (retry)="
|
|
13971
|
+
<ui-error-state [message]="_error()!" [retryLabel]="_retryLabel()" (retry)="_retryAfterError()" />
|
|
13830
13972
|
</td>
|
|
13831
13973
|
</tr>
|
|
13832
13974
|
}
|
|
@@ -14088,7 +14230,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14088
14230
|
}
|
|
14089
14231
|
|
|
14090
14232
|
} @else if (_error()) {
|
|
14091
|
-
<ui-error-state [message]="_error()!" [retryLabel]="_retryLabel()" (retry)="
|
|
14233
|
+
<ui-error-state [message]="_error()!" [retryLabel]="_retryLabel()" (retry)="_retryAfterError()" />
|
|
14092
14234
|
|
|
14093
14235
|
} @else if (_items().length === 0 && !_hasActiveFilters()) {
|
|
14094
14236
|
<ui-empty-state iconType="table" [message]="emptyMessage()" />
|
|
@@ -14287,7 +14429,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14287
14429
|
}
|
|
14288
14430
|
</div>
|
|
14289
14431
|
`,
|
|
14290
|
-
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#94a3b8}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;align-items:stretch}.dt-header-left,.dt-header-right{width:100%}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1}.dt-bulk-actions{width:100%}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#64748b;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 12px;font-family:inherit;font-size:1rem;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"]
|
|
14432
|
+
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#94a3b8}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;align-items:stretch}.dt-header-left,.dt-header-right{width:100%}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1}.dt-bulk-actions{width:100%}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#64748b;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 12px;font-family:inherit;font-size:1rem;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"]
|
|
14291
14433
|
}]
|
|
14292
14434
|
}],
|
|
14293
14435
|
ctorParameters: () => [],
|
|
@@ -18067,6 +18209,7 @@ var AlertComponent = class AlertComponent {
|
|
|
18067
18209
|
this.quiet = input(false, ...ngDevMode ? [{ debugName: "quiet" }] : /* istanbul ignore next */ []);
|
|
18068
18210
|
this.compact = input(false, ...ngDevMode ? [{ debugName: "compact" }] : /* istanbul ignore next */ []);
|
|
18069
18211
|
this.inline = input(false, ...ngDevMode ? [{ debugName: "inline" }] : /* istanbul ignore next */ []);
|
|
18212
|
+
this.fill = input(false, ...ngDevMode ? [{ debugName: "fill" }] : /* istanbul ignore next */ []);
|
|
18070
18213
|
this.dismissed = output();
|
|
18071
18214
|
}
|
|
18072
18215
|
static {
|
|
@@ -18135,12 +18278,19 @@ var AlertComponent = class AlertComponent {
|
|
|
18135
18278
|
isSignal: true,
|
|
18136
18279
|
isRequired: false,
|
|
18137
18280
|
transformFunction: null
|
|
18281
|
+
},
|
|
18282
|
+
fill: {
|
|
18283
|
+
classPropertyName: "fill",
|
|
18284
|
+
publicName: "fill",
|
|
18285
|
+
isSignal: true,
|
|
18286
|
+
isRequired: false,
|
|
18287
|
+
transformFunction: null
|
|
18138
18288
|
}
|
|
18139
18289
|
},
|
|
18140
18290
|
outputs: { dismissed: "dismissed" },
|
|
18141
18291
|
ngImport: i0,
|
|
18142
18292
|
template: `
|
|
18143
|
-
<div class="alert" [class]="'alert alert--' + variant()" [class.alert--compact]="compact()" [attr.role]="quiet() ? null : (variant() === 'danger' ? 'alert' : 'status')">
|
|
18293
|
+
<div class="alert" [class]="'alert alert--' + variant()" [class.alert--compact]="compact()" [class.alert--fill]="fill()" [attr.role]="quiet() ? null : (variant() === 'danger' ? 'alert' : 'status')">
|
|
18144
18294
|
<div class="alert-content">
|
|
18145
18295
|
@if (title()) { <div class="alert-title">{{ title() }}</div> }
|
|
18146
18296
|
<div class="alert-body" [class.alert-body--inline]="inline()"><ng-content /></div>
|
|
@@ -18155,7 +18305,7 @@ var AlertComponent = class AlertComponent {
|
|
|
18155
18305
|
</div>
|
|
18156
18306
|
`,
|
|
18157
18307
|
isInline: true,
|
|
18158
|
-
styles: [":host{display:block}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border-left:4px solid transparent;font-size:13px;line-height:1.5}.alert--info{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.alert--success{background:#dcfce7;border-color:#22c55e;color:#14532d}.alert--warning{background:#ffedd5;border-color:#f97316;color:#7c2d12}.alert--danger{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.alert--neutral{background:#f1f5f9;border-color:#64748b;color:#334155}.alert--compact{padding:8px 12px;gap:8px;font-size:12.5px;line-height:1.4}.alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.alert-title{font-weight:700}.alert-body{opacity:.9;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.alert-body--inline{display:block}.alert-body--inline>*{vertical-align:middle}.alert-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px;border-radius:4px;color:inherit;opacity:.6;display:flex;align-items:center;transition:opacity .15s}.alert-dismiss:hover{opacity:1}.alert-dismiss:focus-visible{outline:2px solid currentColor;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.alert-dismiss{position:relative}.alert-dismiss:after{content:\"\";position:absolute;inset:-13px}}\n"],
|
|
18308
|
+
styles: [":host{display:block}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border-left:4px solid transparent;font-size:13px;line-height:1.5}.alert--info{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.alert--success{background:#dcfce7;border-color:#22c55e;color:#14532d}.alert--warning{background:#ffedd5;border-color:#f97316;color:#7c2d12}.alert--danger{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.alert--neutral{background:#f1f5f9;border-color:#64748b;color:#334155}.alert--fill{height:100%;box-sizing:border-box}.alert--compact{padding:8px 12px;gap:8px;font-size:12.5px;line-height:1.4}.alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.alert-title{font-weight:700}.alert-body{opacity:.9;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.alert-body--inline{display:block}.alert-body--inline>*{vertical-align:middle}.alert-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px;border-radius:4px;color:inherit;opacity:.6;display:flex;align-items:center;transition:opacity .15s}.alert-dismiss:hover{opacity:1}.alert-dismiss:focus-visible{outline:2px solid currentColor;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.alert-dismiss{position:relative}.alert-dismiss:after{content:\"\";position:absolute;inset:-13px}}\n"],
|
|
18159
18309
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
18160
18310
|
});
|
|
18161
18311
|
}
|
|
@@ -18172,7 +18322,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
18172
18322
|
standalone: true,
|
|
18173
18323
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18174
18324
|
template: `
|
|
18175
|
-
<div class="alert" [class]="'alert alert--' + variant()" [class.alert--compact]="compact()" [attr.role]="quiet() ? null : (variant() === 'danger' ? 'alert' : 'status')">
|
|
18325
|
+
<div class="alert" [class]="'alert alert--' + variant()" [class.alert--compact]="compact()" [class.alert--fill]="fill()" [attr.role]="quiet() ? null : (variant() === 'danger' ? 'alert' : 'status')">
|
|
18176
18326
|
<div class="alert-content">
|
|
18177
18327
|
@if (title()) { <div class="alert-title">{{ title() }}</div> }
|
|
18178
18328
|
<div class="alert-body" [class.alert-body--inline]="inline()"><ng-content /></div>
|
|
@@ -18186,7 +18336,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
18186
18336
|
}
|
|
18187
18337
|
</div>
|
|
18188
18338
|
`,
|
|
18189
|
-
styles: [":host{display:block}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border-left:4px solid transparent;font-size:13px;line-height:1.5}.alert--info{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.alert--success{background:#dcfce7;border-color:#22c55e;color:#14532d}.alert--warning{background:#ffedd5;border-color:#f97316;color:#7c2d12}.alert--danger{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.alert--neutral{background:#f1f5f9;border-color:#64748b;color:#334155}.alert--compact{padding:8px 12px;gap:8px;font-size:12.5px;line-height:1.4}.alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.alert-title{font-weight:700}.alert-body{opacity:.9;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.alert-body--inline{display:block}.alert-body--inline>*{vertical-align:middle}.alert-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px;border-radius:4px;color:inherit;opacity:.6;display:flex;align-items:center;transition:opacity .15s}.alert-dismiss:hover{opacity:1}.alert-dismiss:focus-visible{outline:2px solid currentColor;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.alert-dismiss{position:relative}.alert-dismiss:after{content:\"\";position:absolute;inset:-13px}}\n"]
|
|
18339
|
+
styles: [":host{display:block}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border-left:4px solid transparent;font-size:13px;line-height:1.5}.alert--info{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.alert--success{background:#dcfce7;border-color:#22c55e;color:#14532d}.alert--warning{background:#ffedd5;border-color:#f97316;color:#7c2d12}.alert--danger{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.alert--neutral{background:#f1f5f9;border-color:#64748b;color:#334155}.alert--fill{height:100%;box-sizing:border-box}.alert--compact{padding:8px 12px;gap:8px;font-size:12.5px;line-height:1.4}.alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.alert-title{font-weight:700}.alert-body{opacity:.9;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.alert-body--inline{display:block}.alert-body--inline>*{vertical-align:middle}.alert-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px;border-radius:4px;color:inherit;opacity:.6;display:flex;align-items:center;transition:opacity .15s}.alert-dismiss:hover{opacity:1}.alert-dismiss:focus-visible{outline:2px solid currentColor;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.alert-dismiss{position:relative}.alert-dismiss:after{content:\"\";position:absolute;inset:-13px}}\n"]
|
|
18190
18340
|
}]
|
|
18191
18341
|
}],
|
|
18192
18342
|
propDecorators: {
|
|
@@ -18246,6 +18396,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
18246
18396
|
required: false
|
|
18247
18397
|
}]
|
|
18248
18398
|
}],
|
|
18399
|
+
fill: [{
|
|
18400
|
+
type: i0.Input,
|
|
18401
|
+
args: [{
|
|
18402
|
+
isSignal: true,
|
|
18403
|
+
alias: "fill",
|
|
18404
|
+
required: false
|
|
18405
|
+
}]
|
|
18406
|
+
}],
|
|
18249
18407
|
dismissed: [{
|
|
18250
18408
|
type: i0.Output,
|
|
18251
18409
|
args: ["dismissed"]
|
|
@@ -18819,7 +18977,8 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
18819
18977
|
"dismissAriaLabel",
|
|
18820
18978
|
"quiet",
|
|
18821
18979
|
"compact",
|
|
18822
|
-
"inline"
|
|
18980
|
+
"inline",
|
|
18981
|
+
"fill"
|
|
18823
18982
|
],
|
|
18824
18983
|
outputs: ["dismissed"]
|
|
18825
18984
|
},
|
|
@@ -25209,12 +25368,17 @@ var DropdownComponent = class DropdownComponent {
|
|
|
25209
25368
|
this.menuWidth = input("200px", ...ngDevMode ? [{ debugName: "menuWidth" }] : /* istanbul ignore next */ []);
|
|
25210
25369
|
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
25211
25370
|
this.itemClick = output();
|
|
25371
|
+
this.align = input("auto", ...ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []);
|
|
25212
25372
|
this.open = signal(false, ...ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []);
|
|
25213
25373
|
this.loading = signal(false, ...ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []);
|
|
25374
|
+
this.alignEnd = signal(false, ...ngDevMode ? [{ debugName: "alignEnd" }] : /* istanbul ignore next */ []);
|
|
25375
|
+
this.openUp = signal(false, ...ngDevMode ? [{ debugName: "openUp" }] : /* istanbul ignore next */ []);
|
|
25376
|
+
this.menuMaxHeight = signal(null, ...ngDevMode ? [{ debugName: "menuMaxHeight" }] : /* istanbul ignore next */ []);
|
|
25214
25377
|
this._loaded = signal(null, ...ngDevMode ? [{ debugName: "_loaded" }] : /* istanbul ignore next */ []);
|
|
25215
25378
|
this._id = Math.random().toString(36).slice(2);
|
|
25216
25379
|
this._host = inject(ElementRef);
|
|
25217
25380
|
this._cdr = inject(ChangeDetectorRef);
|
|
25381
|
+
this._injector = inject(Injector);
|
|
25218
25382
|
this._pendingFocus = null;
|
|
25219
25383
|
this._typeahead = "";
|
|
25220
25384
|
this._typeaheadTimer = null;
|
|
@@ -25328,13 +25492,45 @@ var DropdownComponent = class DropdownComponent {
|
|
|
25328
25492
|
_setOpen(next) {
|
|
25329
25493
|
if (this.open() === next) return;
|
|
25330
25494
|
this.open.set(next);
|
|
25331
|
-
if (next)
|
|
25332
|
-
|
|
25495
|
+
if (next) {
|
|
25496
|
+
_activeDropdownId.set(this._id);
|
|
25497
|
+
afterNextRender(() => this._place(), { injector: this._injector });
|
|
25498
|
+
} else {
|
|
25333
25499
|
this._pendingFocus = null;
|
|
25334
25500
|
this._typeahead = "";
|
|
25335
25501
|
if (_activeDropdownId() === this._id) _activeDropdownId.set("");
|
|
25502
|
+
this.alignEnd.set(false);
|
|
25503
|
+
this.openUp.set(false);
|
|
25504
|
+
this.menuMaxHeight.set(null);
|
|
25336
25505
|
}
|
|
25337
25506
|
}
|
|
25507
|
+
_place() {
|
|
25508
|
+
const host = this._host.nativeElement;
|
|
25509
|
+
const trigger = host.querySelector(".dd-trigger");
|
|
25510
|
+
const menu = host.querySelector(".dd-menu");
|
|
25511
|
+
if (!trigger || !menu || typeof window === "undefined") return;
|
|
25512
|
+
const MARGIN = 16, GAP = 6;
|
|
25513
|
+
this.alignEnd.set(false);
|
|
25514
|
+
this.openUp.set(false);
|
|
25515
|
+
this.menuMaxHeight.set(null);
|
|
25516
|
+
this._cdr.detectChanges();
|
|
25517
|
+
const t = trigger.getBoundingClientRect();
|
|
25518
|
+
const vw = document.documentElement.clientWidth || window.innerWidth;
|
|
25519
|
+
const vh = window.innerHeight;
|
|
25520
|
+
const width = menu.offsetWidth;
|
|
25521
|
+
const naturalHeight = menu.scrollHeight + 2;
|
|
25522
|
+
const mode = this.align();
|
|
25523
|
+
const fitsStart = t.left + width <= vw - MARGIN;
|
|
25524
|
+
const fitsEnd = t.right - width >= MARGIN;
|
|
25525
|
+
const end = mode === "end" || mode === "auto" && !fitsStart && (fitsEnd || t.right > vw / 2);
|
|
25526
|
+
const below = vh - t.bottom - GAP - MARGIN;
|
|
25527
|
+
const above = t.top - GAP - MARGIN;
|
|
25528
|
+
const up = naturalHeight > below && above > below;
|
|
25529
|
+
this.alignEnd.set(end);
|
|
25530
|
+
this.openUp.set(up);
|
|
25531
|
+
this.menuMaxHeight.set(Math.max(160, Math.floor(up ? above : below)));
|
|
25532
|
+
this._cdr.markForCheck();
|
|
25533
|
+
}
|
|
25338
25534
|
_openAndFocus(which) {
|
|
25339
25535
|
this._pendingFocus = which;
|
|
25340
25536
|
this._setOpen(true);
|
|
@@ -25445,6 +25641,13 @@ var DropdownComponent = class DropdownComponent {
|
|
|
25445
25641
|
isSignal: true,
|
|
25446
25642
|
isRequired: false,
|
|
25447
25643
|
transformFunction: null
|
|
25644
|
+
},
|
|
25645
|
+
align: {
|
|
25646
|
+
classPropertyName: "align",
|
|
25647
|
+
publicName: "align",
|
|
25648
|
+
isSignal: true,
|
|
25649
|
+
isRequired: false,
|
|
25650
|
+
transformFunction: null
|
|
25448
25651
|
}
|
|
25449
25652
|
},
|
|
25450
25653
|
outputs: { itemClick: "itemClick" },
|
|
@@ -25456,18 +25659,18 @@ var DropdownComponent = class DropdownComponent {
|
|
|
25456
25659
|
template: `
|
|
25457
25660
|
<div class="dd-wrapper">
|
|
25458
25661
|
@if (variant() === 'badge') {
|
|
25459
|
-
<button class="dd-trigger dd-trigger-badge" [class.dd-active]="active()" [attr.id]="triggerId" [attr.aria-label]="_ariaLabel()" [attr.aria-expanded]="open()" aria-haspopup="menu" [attr.aria-controls]="open() ? menuId : null" (click)="toggle($event)" (keydown)="onTriggerKeydown($event)" (keyup)="onTriggerKeyup($event)">
|
|
25662
|
+
<button class="dd-trigger dd-trigger-badge" [class.dd-active]="active()" [class.dd-open]="open()" [attr.id]="triggerId" [attr.aria-label]="_ariaLabel()" [attr.aria-expanded]="open()" aria-haspopup="menu" [attr.aria-controls]="open() ? menuId : null" (click)="toggle($event)" (keydown)="onTriggerKeydown($event)" (keyup)="onTriggerKeyup($event)">
|
|
25460
25663
|
{{ label() }}
|
|
25461
|
-
<svg width="
|
|
25664
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
|
|
25462
25665
|
</button>
|
|
25463
25666
|
} @else {
|
|
25464
|
-
<button class="dd-trigger dd-trigger-btn" [class.dd-active]="active()" [attr.id]="triggerId" [attr.aria-label]="_ariaLabel()" [attr.aria-expanded]="open()" aria-haspopup="menu" [attr.aria-controls]="open() ? menuId : null" (click)="toggle($event)" (keydown)="onTriggerKeydown($event)" (keyup)="onTriggerKeyup($event)">
|
|
25667
|
+
<button class="dd-trigger dd-trigger-btn" [class.dd-active]="active()" [class.dd-open]="open()" [attr.id]="triggerId" [attr.aria-label]="_ariaLabel()" [attr.aria-expanded]="open()" aria-haspopup="menu" [attr.aria-controls]="open() ? menuId : null" (click)="toggle($event)" (keydown)="onTriggerKeydown($event)" (keyup)="onTriggerKeyup($event)">
|
|
25465
25668
|
{{ label() }}
|
|
25466
|
-
<svg width="
|
|
25669
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
|
|
25467
25670
|
</button>
|
|
25468
25671
|
}
|
|
25469
25672
|
@if (open()) {
|
|
25470
|
-
<div class="dd-menu" role="menu" [attr.id]="menuId" [attr.aria-label]="_ariaLabel()" [attr.aria-labelledby]="_ariaLabel() ? null : triggerId" [style.min-width]="menuWidth()" (click)="$event.stopPropagation()" (keydown)="onMenuKeydown($event)">
|
|
25673
|
+
<div class="dd-menu" role="menu" [attr.id]="menuId" [attr.aria-label]="_ariaLabel()" [attr.aria-labelledby]="_ariaLabel() ? null : triggerId" [style.min-width]="menuWidth()" [class.dd-menu-end]="alignEnd()" [class.dd-menu-up]="openUp()" [style.max-height.px]="menuMaxHeight()" (click)="$event.stopPropagation()" (keydown)="onMenuKeydown($event)">
|
|
25471
25674
|
@if (loading()) {
|
|
25472
25675
|
<div class="dd-loading">
|
|
25473
25676
|
<span class="dd-spinner"></span>
|
|
@@ -25476,7 +25679,10 @@ var DropdownComponent = class DropdownComponent {
|
|
|
25476
25679
|
} @else {
|
|
25477
25680
|
@for (item of displayItems(); track item.value) {
|
|
25478
25681
|
<button type="button" class="dd-item" role="menuitem" tabindex="-1" [disabled]="item.disabled === true" [class.dd-item-active]="activeValue() === item.value" (click)="select(item)">
|
|
25479
|
-
|
|
25682
|
+
@if (item.icon) {
|
|
25683
|
+
<svg class="dd-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path [attr.d]="item.icon" /></svg>
|
|
25684
|
+
}
|
|
25685
|
+
<span class="dd-label">{{ item.label }}</span>
|
|
25480
25686
|
@if (item.count !== undefined) {
|
|
25481
25687
|
<span class="dd-count">{{ item.count }}</span>
|
|
25482
25688
|
}
|
|
@@ -25488,7 +25694,7 @@ var DropdownComponent = class DropdownComponent {
|
|
|
25488
25694
|
</div>
|
|
25489
25695
|
`,
|
|
25490
25696
|
isInline: true,
|
|
25491
|
-
styles: [":host{display:inline-flex}.dd-wrapper{position:relative;display:inline-flex}.dd-trigger{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:inherit;transition:all .15s ease}.dd-trigger:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.dd-trigger-badge{padding:6px 14px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#64748b}.dd-trigger-badge:hover{background:#f8fafc;border-color:#94a3b8}.dd-trigger-badge.dd-active{background:#1e293b;color:#fff;border-color:#1e293b}.dd-trigger-btn{padding:6px
|
|
25697
|
+
styles: [":host{display:inline-flex}.dd-wrapper{position:relative;display:inline-flex}.dd-trigger{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:inherit;transition:all .15s ease}.dd-trigger:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.dd-trigger-badge{padding:6px 14px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#64748b}.dd-trigger-badge:hover{background:#f8fafc;border-color:#94a3b8}.dd-trigger-badge.dd-active{background:#1e293b;color:#fff;border-color:#1e293b}.dd-trigger-btn{padding:6px 10px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#334155;transition:background .1s,border-color .1s}.dd-trigger-btn:hover{background:#f8fafc}.dd-trigger-btn.dd-open{border-color:#1e293b;background:#f8fafc}.dd-trigger-btn.dd-active{background:#1e293b;color:#fff;border-color:#1e293b}.dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:9999;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 4px 6px #0000000a,0 12px 28px #0000001a;max-height:70vh;overflow-y:auto;overflow-x:hidden;padding:0;max-width:calc(100vw - 32px);box-sizing:border-box}.dd-menu.dd-menu-end{left:auto;right:0}.dd-menu.dd-menu-up{top:auto;bottom:calc(100% + 6px)}.dd-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;background:none;font-size:.875rem;font-weight:400;color:#1e293b;cursor:pointer;font-family:inherit;text-align:left;transition:background .1s;border-bottom:1px solid #f1f5f9;box-sizing:border-box}.dd-item:last-child{border-bottom:none}.dd-item:hover{background:#f8fafc}.dd-item:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.dd-item.dd-item-active{background:#eff6ff;color:#2563eb}.dd-item:disabled{opacity:.5;cursor:not-allowed;background:none}.dd-icon{flex-shrink:0;color:#64748b}.dd-label{min-width:0}.dd-count{font-size:.6875rem;font-weight:700;margin-left:auto;background:#f1f5f9;color:#64748b;padding:1px 7px;border-radius:999px;flex-shrink:0}.dd-loading{display:flex;align-items:center;gap:8px;padding:12px;color:#64748b;font-size:.8125rem}.dd-spinner{width:14px;height:14px;border-radius:50%;flex-shrink:0;border:2px solid #e2e8f0;border-top-color:#64748b;animation:dd-spin .6s linear infinite}@keyframes dd-spin{to{transform:rotate(360deg)}}@media(pointer:coarse),(max-width:768px){.dd-trigger-badge,.dd-trigger-btn,.dd-item{min-height:44px}}@media(prefers-reduced-motion:reduce){.dd-spinner{animation-duration:2s}}\n"],
|
|
25492
25698
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
25493
25699
|
});
|
|
25494
25700
|
}
|
|
@@ -25511,18 +25717,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
25511
25717
|
template: `
|
|
25512
25718
|
<div class="dd-wrapper">
|
|
25513
25719
|
@if (variant() === 'badge') {
|
|
25514
|
-
<button class="dd-trigger dd-trigger-badge" [class.dd-active]="active()" [attr.id]="triggerId" [attr.aria-label]="_ariaLabel()" [attr.aria-expanded]="open()" aria-haspopup="menu" [attr.aria-controls]="open() ? menuId : null" (click)="toggle($event)" (keydown)="onTriggerKeydown($event)" (keyup)="onTriggerKeyup($event)">
|
|
25720
|
+
<button class="dd-trigger dd-trigger-badge" [class.dd-active]="active()" [class.dd-open]="open()" [attr.id]="triggerId" [attr.aria-label]="_ariaLabel()" [attr.aria-expanded]="open()" aria-haspopup="menu" [attr.aria-controls]="open() ? menuId : null" (click)="toggle($event)" (keydown)="onTriggerKeydown($event)" (keyup)="onTriggerKeyup($event)">
|
|
25515
25721
|
{{ label() }}
|
|
25516
|
-
<svg width="
|
|
25722
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
|
|
25517
25723
|
</button>
|
|
25518
25724
|
} @else {
|
|
25519
|
-
<button class="dd-trigger dd-trigger-btn" [class.dd-active]="active()" [attr.id]="triggerId" [attr.aria-label]="_ariaLabel()" [attr.aria-expanded]="open()" aria-haspopup="menu" [attr.aria-controls]="open() ? menuId : null" (click)="toggle($event)" (keydown)="onTriggerKeydown($event)" (keyup)="onTriggerKeyup($event)">
|
|
25725
|
+
<button class="dd-trigger dd-trigger-btn" [class.dd-active]="active()" [class.dd-open]="open()" [attr.id]="triggerId" [attr.aria-label]="_ariaLabel()" [attr.aria-expanded]="open()" aria-haspopup="menu" [attr.aria-controls]="open() ? menuId : null" (click)="toggle($event)" (keydown)="onTriggerKeydown($event)" (keyup)="onTriggerKeyup($event)">
|
|
25520
25726
|
{{ label() }}
|
|
25521
|
-
<svg width="
|
|
25727
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
|
|
25522
25728
|
</button>
|
|
25523
25729
|
}
|
|
25524
25730
|
@if (open()) {
|
|
25525
|
-
<div class="dd-menu" role="menu" [attr.id]="menuId" [attr.aria-label]="_ariaLabel()" [attr.aria-labelledby]="_ariaLabel() ? null : triggerId" [style.min-width]="menuWidth()" (click)="$event.stopPropagation()" (keydown)="onMenuKeydown($event)">
|
|
25731
|
+
<div class="dd-menu" role="menu" [attr.id]="menuId" [attr.aria-label]="_ariaLabel()" [attr.aria-labelledby]="_ariaLabel() ? null : triggerId" [style.min-width]="menuWidth()" [class.dd-menu-end]="alignEnd()" [class.dd-menu-up]="openUp()" [style.max-height.px]="menuMaxHeight()" (click)="$event.stopPropagation()" (keydown)="onMenuKeydown($event)">
|
|
25526
25732
|
@if (loading()) {
|
|
25527
25733
|
<div class="dd-loading">
|
|
25528
25734
|
<span class="dd-spinner"></span>
|
|
@@ -25531,7 +25737,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
25531
25737
|
} @else {
|
|
25532
25738
|
@for (item of displayItems(); track item.value) {
|
|
25533
25739
|
<button type="button" class="dd-item" role="menuitem" tabindex="-1" [disabled]="item.disabled === true" [class.dd-item-active]="activeValue() === item.value" (click)="select(item)">
|
|
25534
|
-
|
|
25740
|
+
@if (item.icon) {
|
|
25741
|
+
<svg class="dd-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path [attr.d]="item.icon" /></svg>
|
|
25742
|
+
}
|
|
25743
|
+
<span class="dd-label">{{ item.label }}</span>
|
|
25535
25744
|
@if (item.count !== undefined) {
|
|
25536
25745
|
<span class="dd-count">{{ item.count }}</span>
|
|
25537
25746
|
}
|
|
@@ -25542,7 +25751,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
25542
25751
|
}
|
|
25543
25752
|
</div>
|
|
25544
25753
|
`,
|
|
25545
|
-
styles: [":host{display:inline-flex}.dd-wrapper{position:relative;display:inline-flex}.dd-trigger{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:inherit;transition:all .15s ease}.dd-trigger:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.dd-trigger-badge{padding:6px 14px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#64748b}.dd-trigger-badge:hover{background:#f8fafc;border-color:#94a3b8}.dd-trigger-badge.dd-active{background:#1e293b;color:#fff;border-color:#1e293b}.dd-trigger-btn{padding:6px
|
|
25754
|
+
styles: [":host{display:inline-flex}.dd-wrapper{position:relative;display:inline-flex}.dd-trigger{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:inherit;transition:all .15s ease}.dd-trigger:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.dd-trigger-badge{padding:6px 14px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#64748b}.dd-trigger-badge:hover{background:#f8fafc;border-color:#94a3b8}.dd-trigger-badge.dd-active{background:#1e293b;color:#fff;border-color:#1e293b}.dd-trigger-btn{padding:6px 10px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#334155;transition:background .1s,border-color .1s}.dd-trigger-btn:hover{background:#f8fafc}.dd-trigger-btn.dd-open{border-color:#1e293b;background:#f8fafc}.dd-trigger-btn.dd-active{background:#1e293b;color:#fff;border-color:#1e293b}.dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:9999;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 4px 6px #0000000a,0 12px 28px #0000001a;max-height:70vh;overflow-y:auto;overflow-x:hidden;padding:0;max-width:calc(100vw - 32px);box-sizing:border-box}.dd-menu.dd-menu-end{left:auto;right:0}.dd-menu.dd-menu-up{top:auto;bottom:calc(100% + 6px)}.dd-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;background:none;font-size:.875rem;font-weight:400;color:#1e293b;cursor:pointer;font-family:inherit;text-align:left;transition:background .1s;border-bottom:1px solid #f1f5f9;box-sizing:border-box}.dd-item:last-child{border-bottom:none}.dd-item:hover{background:#f8fafc}.dd-item:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.dd-item.dd-item-active{background:#eff6ff;color:#2563eb}.dd-item:disabled{opacity:.5;cursor:not-allowed;background:none}.dd-icon{flex-shrink:0;color:#64748b}.dd-label{min-width:0}.dd-count{font-size:.6875rem;font-weight:700;margin-left:auto;background:#f1f5f9;color:#64748b;padding:1px 7px;border-radius:999px;flex-shrink:0}.dd-loading{display:flex;align-items:center;gap:8px;padding:12px;color:#64748b;font-size:.8125rem}.dd-spinner{width:14px;height:14px;border-radius:50%;flex-shrink:0;border:2px solid #e2e8f0;border-top-color:#64748b;animation:dd-spin .6s linear infinite}@keyframes dd-spin{to{transform:rotate(360deg)}}@media(pointer:coarse),(max-width:768px){.dd-trigger-badge,.dd-trigger-btn,.dd-item{min-height:44px}}@media(prefers-reduced-motion:reduce){.dd-spinner{animation-duration:2s}}\n"]
|
|
25546
25755
|
}]
|
|
25547
25756
|
}],
|
|
25548
25757
|
ctorParameters: () => [],
|
|
@@ -25614,6 +25823,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
25614
25823
|
itemClick: [{
|
|
25615
25824
|
type: i0.Output,
|
|
25616
25825
|
args: ["itemClick"]
|
|
25826
|
+
}],
|
|
25827
|
+
align: [{
|
|
25828
|
+
type: i0.Input,
|
|
25829
|
+
args: [{
|
|
25830
|
+
isSignal: true,
|
|
25831
|
+
alias: "align",
|
|
25832
|
+
required: false
|
|
25833
|
+
}]
|
|
25617
25834
|
}]
|
|
25618
25835
|
}
|
|
25619
25836
|
});
|
|
@@ -27940,7 +28157,7 @@ var ListComponent = class ListComponent {
|
|
|
27940
28157
|
}
|
|
27941
28158
|
`,
|
|
27942
28159
|
isInline: true,
|
|
27943
|
-
styles: ["ui-list{display:block;min-width:0}.ul-list{margin:0;padding:0;min-width:0}.ul-list--unordered{list-style:none}.ul-list--ordered{list-style:decimal;-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.ul-list--ordered>.ul-item::marker{color:var(--text-secondary, #64748b);font-size:.875rem}.ul-item{min-width:0;transition:background-color .4s ease}.ul-item.ul-item--moved{background-color:var(--surface-hover, #f1f5f9)}.ul-list:not(.ul-list--grid)>.ul-item+.ul-item{margin-top:var(--ul-gap, 0px)}.ul-row{display:flex;align-items:center;gap:8px;min-width:0}.ul-content{flex:1 1 auto;min-width:0;word-break:break-word;overflow-wrap:anywhere}.ul-controls{display:flex;flex:0 0 auto;align-items:center;gap:2px}.ul-item--nav{cursor:pointer;border-radius:10px;transition:background-color .12s ease}.ul-item--nav:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.ul-item--nav:hover{background:var(--surface-hover, #f8fafc)}.ul-item--nav:hover:has(>.ul-row>.ul-content>ui-list-item.li-bordered){background:transparent}.ul-item--nav>.ul-row{padding-inline-end:8px}.ul-item--nav:hover .ul-chevron{color:#0f172a;transform:translate(2px)}.ul-chevron{flex:0 0 auto;color:#94a3b8;transition:color .15s ease,transform .15s ease}@media(prefers-reduced-motion:reduce){.ul-chevron{transition:none;transform:none!important}}.ul-list.ul-list--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--ul-min, 130px),100%),1fr));gap:var(--ul-gap, 12px);list-style:none;-webkit-padding-start:0;padding-inline-start:0}.ul-list--grid>.ul-item>.ul-row{flex-direction:column;align-items:stretch;gap:6px}.ul-list--grid>.ul-item>.ul-row>.ul-controls{align-self:center}@media(pointer:coarse),(max-width:480px){.ul-controls{gap:16px}}.ul-item--draggable{-webkit-user-select:none;user-select:none;-webkit-user-drag:element}@media(hover:hover)and (pointer:fine){.ul-item--draggable{cursor:grab}.ul-item--draggable:active{cursor:grabbing}}.ul-item--draggable:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:6px}.ul-item--draggable:focus:not(:focus-visible){outline:none}ui-list .ul-item--draggable img,ui-list .ul-item--draggable ui-image-preview{pointer-events:none;-webkit-user-drag:none}.ul-item--dragging{opacity:.5}.ul-item--over{outline:2px dashed #3b82f6;outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){.ul-item{transition:none}}@media(forced-colors:active){.ul-item.ul-item--moved{outline:2px solid Highlight;outline-offset:-2px}}@media(forced-colors:active){.ul-item.ul-item--dragging{outline:2px dotted Highlight;outline-offset:2px}.ul-item.ul-item--over{outline:2px dashed Highlight;outline-offset:2px}.ul-item--draggable:focus{outline:2px solid Highlight;outline-offset:2px}}.ul-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"],
|
|
28160
|
+
styles: ["ui-list{display:block;min-width:0}.ul-list{margin:0;padding:0;min-width:0}.ul-list--unordered{list-style:none}.ul-list--ordered{list-style:decimal;-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.ul-list--ordered>.ul-item::marker{color:var(--text-secondary, #64748b);font-size:.875rem}.ul-item{min-width:0;transition:background-color .4s ease}.ul-item.ul-item--moved{background-color:var(--surface-hover, #f1f5f9)}.ul-list:not(.ul-list--grid)>.ul-item+.ul-item{margin-top:var(--ul-gap, 0px)}.ul-list:not(.ul-list--grid)>.ul-item:not(:last-child)>.ul-row>.ul-content>ui-list-item:not(.li-bordered) .li-row{border-bottom:1px solid var(--border, #e2e8f0)}.ul-row{display:flex;align-items:center;gap:8px;min-width:0}.ul-content{flex:1 1 auto;min-width:0;word-break:break-word;overflow-wrap:anywhere}.ul-controls{display:flex;flex:0 0 auto;align-items:center;gap:2px}.ul-item--nav{cursor:pointer;border-radius:10px;transition:background-color .12s ease}.ul-item--nav:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.ul-item--nav:hover{background:var(--surface-hover, #f8fafc)}.ul-item--nav:hover:has(>.ul-row>.ul-content>ui-list-item.li-bordered){background:transparent}.ul-item--nav>.ul-row{padding-inline-end:8px}.ul-item--nav:hover .ul-chevron{color:#0f172a;transform:translate(2px)}.ul-chevron{flex:0 0 auto;color:#94a3b8;transition:color .15s ease,transform .15s ease}@media(prefers-reduced-motion:reduce){.ul-chevron{transition:none;transform:none!important}}.ul-list.ul-list--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--ul-min, 130px),100%),1fr));gap:var(--ul-gap, 12px);list-style:none;-webkit-padding-start:0;padding-inline-start:0}.ul-list--grid>.ul-item>.ul-row{flex-direction:column;align-items:stretch;gap:6px}.ul-list--grid>.ul-item>.ul-row>.ul-controls{align-self:center}@media(pointer:coarse),(max-width:480px){.ul-controls{gap:16px}}.ul-item--draggable{-webkit-user-select:none;user-select:none;-webkit-user-drag:element}@media(hover:hover)and (pointer:fine){.ul-item--draggable{cursor:grab}.ul-item--draggable:active{cursor:grabbing}}.ul-item--draggable:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:6px}.ul-item--draggable:focus:not(:focus-visible){outline:none}ui-list .ul-item--draggable img,ui-list .ul-item--draggable ui-image-preview{pointer-events:none;-webkit-user-drag:none}.ul-item--dragging{opacity:.5}.ul-item--over{outline:2px dashed #3b82f6;outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){.ul-item{transition:none}}@media(forced-colors:active){.ul-item.ul-item--moved{outline:2px solid Highlight;outline-offset:-2px}}@media(forced-colors:active){.ul-item.ul-item--dragging{outline:2px dotted Highlight;outline-offset:2px}.ul-item.ul-item--over{outline:2px dashed Highlight;outline-offset:2px}.ul-item--draggable:focus{outline:2px solid Highlight;outline-offset:2px}}.ul-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"],
|
|
27944
28161
|
dependencies: [{
|
|
27945
28162
|
kind: "directive",
|
|
27946
28163
|
type: NgTemplateOutlet,
|
|
@@ -28068,7 +28285,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28068
28285
|
<div class="ul-sr" role="status" aria-live="polite" aria-atomic="true">{{ announcement() }}</div>
|
|
28069
28286
|
}
|
|
28070
28287
|
`,
|
|
28071
|
-
styles: ["ui-list{display:block;min-width:0}.ul-list{margin:0;padding:0;min-width:0}.ul-list--unordered{list-style:none}.ul-list--ordered{list-style:decimal;-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.ul-list--ordered>.ul-item::marker{color:var(--text-secondary, #64748b);font-size:.875rem}.ul-item{min-width:0;transition:background-color .4s ease}.ul-item.ul-item--moved{background-color:var(--surface-hover, #f1f5f9)}.ul-list:not(.ul-list--grid)>.ul-item+.ul-item{margin-top:var(--ul-gap, 0px)}.ul-row{display:flex;align-items:center;gap:8px;min-width:0}.ul-content{flex:1 1 auto;min-width:0;word-break:break-word;overflow-wrap:anywhere}.ul-controls{display:flex;flex:0 0 auto;align-items:center;gap:2px}.ul-item--nav{cursor:pointer;border-radius:10px;transition:background-color .12s ease}.ul-item--nav:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.ul-item--nav:hover{background:var(--surface-hover, #f8fafc)}.ul-item--nav:hover:has(>.ul-row>.ul-content>ui-list-item.li-bordered){background:transparent}.ul-item--nav>.ul-row{padding-inline-end:8px}.ul-item--nav:hover .ul-chevron{color:#0f172a;transform:translate(2px)}.ul-chevron{flex:0 0 auto;color:#94a3b8;transition:color .15s ease,transform .15s ease}@media(prefers-reduced-motion:reduce){.ul-chevron{transition:none;transform:none!important}}.ul-list.ul-list--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--ul-min, 130px),100%),1fr));gap:var(--ul-gap, 12px);list-style:none;-webkit-padding-start:0;padding-inline-start:0}.ul-list--grid>.ul-item>.ul-row{flex-direction:column;align-items:stretch;gap:6px}.ul-list--grid>.ul-item>.ul-row>.ul-controls{align-self:center}@media(pointer:coarse),(max-width:480px){.ul-controls{gap:16px}}.ul-item--draggable{-webkit-user-select:none;user-select:none;-webkit-user-drag:element}@media(hover:hover)and (pointer:fine){.ul-item--draggable{cursor:grab}.ul-item--draggable:active{cursor:grabbing}}.ul-item--draggable:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:6px}.ul-item--draggable:focus:not(:focus-visible){outline:none}ui-list .ul-item--draggable img,ui-list .ul-item--draggable ui-image-preview{pointer-events:none;-webkit-user-drag:none}.ul-item--dragging{opacity:.5}.ul-item--over{outline:2px dashed #3b82f6;outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){.ul-item{transition:none}}@media(forced-colors:active){.ul-item.ul-item--moved{outline:2px solid Highlight;outline-offset:-2px}}@media(forced-colors:active){.ul-item.ul-item--dragging{outline:2px dotted Highlight;outline-offset:2px}.ul-item.ul-item--over{outline:2px dashed Highlight;outline-offset:2px}.ul-item--draggable:focus{outline:2px solid Highlight;outline-offset:2px}}.ul-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"]
|
|
28288
|
+
styles: ["ui-list{display:block;min-width:0}.ul-list{margin:0;padding:0;min-width:0}.ul-list--unordered{list-style:none}.ul-list--ordered{list-style:decimal;-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.ul-list--ordered>.ul-item::marker{color:var(--text-secondary, #64748b);font-size:.875rem}.ul-item{min-width:0;transition:background-color .4s ease}.ul-item.ul-item--moved{background-color:var(--surface-hover, #f1f5f9)}.ul-list:not(.ul-list--grid)>.ul-item+.ul-item{margin-top:var(--ul-gap, 0px)}.ul-list:not(.ul-list--grid)>.ul-item:not(:last-child)>.ul-row>.ul-content>ui-list-item:not(.li-bordered) .li-row{border-bottom:1px solid var(--border, #e2e8f0)}.ul-row{display:flex;align-items:center;gap:8px;min-width:0}.ul-content{flex:1 1 auto;min-width:0;word-break:break-word;overflow-wrap:anywhere}.ul-controls{display:flex;flex:0 0 auto;align-items:center;gap:2px}.ul-item--nav{cursor:pointer;border-radius:10px;transition:background-color .12s ease}.ul-item--nav:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.ul-item--nav:hover{background:var(--surface-hover, #f8fafc)}.ul-item--nav:hover:has(>.ul-row>.ul-content>ui-list-item.li-bordered){background:transparent}.ul-item--nav>.ul-row{padding-inline-end:8px}.ul-item--nav:hover .ul-chevron{color:#0f172a;transform:translate(2px)}.ul-chevron{flex:0 0 auto;color:#94a3b8;transition:color .15s ease,transform .15s ease}@media(prefers-reduced-motion:reduce){.ul-chevron{transition:none;transform:none!important}}.ul-list.ul-list--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--ul-min, 130px),100%),1fr));gap:var(--ul-gap, 12px);list-style:none;-webkit-padding-start:0;padding-inline-start:0}.ul-list--grid>.ul-item>.ul-row{flex-direction:column;align-items:stretch;gap:6px}.ul-list--grid>.ul-item>.ul-row>.ul-controls{align-self:center}@media(pointer:coarse),(max-width:480px){.ul-controls{gap:16px}}.ul-item--draggable{-webkit-user-select:none;user-select:none;-webkit-user-drag:element}@media(hover:hover)and (pointer:fine){.ul-item--draggable{cursor:grab}.ul-item--draggable:active{cursor:grabbing}}.ul-item--draggable:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:6px}.ul-item--draggable:focus:not(:focus-visible){outline:none}ui-list .ul-item--draggable img,ui-list .ul-item--draggable ui-image-preview{pointer-events:none;-webkit-user-drag:none}.ul-item--dragging{opacity:.5}.ul-item--over{outline:2px dashed #3b82f6;outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){.ul-item{transition:none}}@media(forced-colors:active){.ul-item.ul-item--moved{outline:2px solid Highlight;outline-offset:-2px}}@media(forced-colors:active){.ul-item.ul-item--dragging{outline:2px dotted Highlight;outline-offset:2px}.ul-item.ul-item--over{outline:2px dashed Highlight;outline-offset:2px}.ul-item--draggable:focus{outline:2px solid Highlight;outline-offset:2px}}.ul-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"]
|
|
28072
28289
|
}]
|
|
28073
28290
|
}],
|
|
28074
28291
|
propDecorators: {
|
|
@@ -30567,7 +30784,7 @@ var AppShellComponent = class AppShellComponent {
|
|
|
30567
30784
|
<ui-confirm-outlet />
|
|
30568
30785
|
`,
|
|
30569
30786
|
isInline: true,
|
|
30570
|
-
styles: [":host{display:contents}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:199}.sidebar{width:256px;background:var(--shell-bg, linear-gradient(175deg, #0f172a 0%, #111827 100%));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;padding:0 20px;min-height:64px;border-bottom:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent);box-sizing:border-box}.brand-default{display:flex;align-items:center;gap:10px}.brand-text{font-size:1.125rem;font-weight:700;color:var(--shell-text, #fff);letter-spacing:-.01em}.sidebar-nav{padding:6px 0 8px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent) transparent}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent);border-radius:2px}.nav-group{margin-bottom:6px}.nav-group-label{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;font-size:.6875rem;font-weight:700;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.12em;background:none;border:none;cursor:pointer;transition:color .15s;text-align:left;border-radius:6px;background:color-mix(in srgb,var(--shell-text, #fff) 10%,transparent);margin:6px 4px 4px;width:calc(100% - 8px);box-sizing:border-box}.nav-group-label:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.nav-group-label:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-1px}.chevron{flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);opacity:.85}.chevron.collapsed{transform:rotate(-90deg)}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 32px;color:color-mix(in srgb,var(--shell-text, #fff) 95%,transparent);font-size:.9375rem;font-weight:500;text-decoration:none;border-left:2px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent);background:color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.sidebar-nav a.active{color:var(--shell-text, #fff);background:#60a5fa21;border-left-color:#60a5fa;font-weight:600}.sidebar-nav a:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-2px}.nav-icon{display:flex;align-items:center;flex-shrink:0}.nav-label{flex:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;margin-left:auto}.sidebar-footer{padding:10px 14px;border-top:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#60a5fa38,#60a5fa14);border:1px solid rgba(96,165,250,.18);color:color-mix(in srgb,var(--shell-text, #fff) 88%,transparent);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:.8125rem;font-weight:600;color:var(--shell-text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.6875rem;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.btn-logout{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.btn-logout:hover{color:#f87171;background:#f871711a}.btn-logout:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.brand-full{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{display:none}.shell.collapsed .brand-mark{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:var(--shell-text, #fff);background:color-mix(in srgb,var(--shell-text, #fff) 15%,transparent)}.rail-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;border-radius:8px;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);transition:background .15s,color .15s}.rail-toggle:hover{background:color-mix(in srgb,var(--shell-text, #fff) 12%,transparent);color:var(--shell-text, #fff)}.rail-toggle:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.rail-divider{display:none}@media(min-width:1025px){.rail-toggle{display:flex}.sidebar{transition:width .2s cubic-bezier(.4,0,.2,1)}.shell.collapsed .sidebar{width:68px}.shell.collapsed .sidebar-header{flex-direction:column;justify-content:center;gap:4px;padding:8px 0}.shell.collapsed .brand-full{flex:none;width:44px;height:44px;overflow:hidden;border-radius:10px;justify-content:center}.shell.collapsed .brand-text{display:none}.shell.collapsed .rail-toggle{margin-left:0}.shell.collapsed .nav-group-label{display:none}.shell.collapsed .rail-divider{display:block;height:1px;margin:8px 14px;background:color-mix(in srgb,var(--shell-text, #fff) 20%,transparent)}.shell.collapsed .nav-group:first-child .rail-divider{display:none}.shell.collapsed .sidebar-nav a{position:relative;justify-content:center;padding:10px 0;margin:0 8px 2px;border-left:none;border-radius:8px}.shell.collapsed .sidebar-nav a.active{box-shadow:inset 3px 0 #60a5fa}.shell.collapsed .nav-label{display:none}.shell.collapsed .nav-badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;margin:0}.shell.collapsed .sidebar-footer{padding:10px 8px}.shell.collapsed .user-info{flex-direction:column;gap:8px}.shell.collapsed .user-details{display:none}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{display:flex;align-items:center;gap:8px;padding:0 24px;background:#fff;box-shadow:0 1px 3px #00000012,0 1px #0000000a;min-height:64px;box-sizing:border-box;position:relative;z-index:50}.hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;cursor:pointer;color:#374151;border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.hamburger:hover{background:#f3f4f6}.hamburger:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.page-title:focus{outline:none}.read-only-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#fef9c3;color:#854d0e;border:1px solid #fde68a;white-space:nowrap}.header-start{display:flex;align-items:center;min-width:0;margin-left:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.header-start:empty{display:none}.header-start::-webkit-scrollbar{display:none}.header-end{display:flex;align-items:center;margin-left:auto}.content{flex:1;overflow-y:auto;padding:
|
|
30787
|
+
styles: [":host{display:contents}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:199}.sidebar{width:256px;background:var(--shell-bg, linear-gradient(175deg, #0f172a 0%, #111827 100%));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;padding:0 20px;min-height:64px;border-bottom:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent);box-sizing:border-box}.brand-default{display:flex;align-items:center;gap:10px}.brand-text{font-size:1.125rem;font-weight:700;color:var(--shell-text, #fff);letter-spacing:-.01em}.sidebar-nav{padding:6px 0 8px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent) transparent}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent);border-radius:2px}.nav-group{margin-bottom:6px}.nav-group-label{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;font-size:.6875rem;font-weight:700;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.12em;background:none;border:none;cursor:pointer;transition:color .15s;text-align:left;border-radius:6px;background:color-mix(in srgb,var(--shell-text, #fff) 10%,transparent);margin:6px 4px 4px;width:calc(100% - 8px);box-sizing:border-box}.nav-group-label:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.nav-group-label:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-1px}.chevron{flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);opacity:.85}.chevron.collapsed{transform:rotate(-90deg)}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 32px;color:color-mix(in srgb,var(--shell-text, #fff) 95%,transparent);font-size:.9375rem;font-weight:500;text-decoration:none;border-left:2px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent);background:color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.sidebar-nav a.active{color:var(--shell-text, #fff);background:#60a5fa21;border-left-color:#60a5fa;font-weight:600}.sidebar-nav a:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-2px}.nav-icon{display:flex;align-items:center;flex-shrink:0}.nav-label{flex:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;margin-left:auto}.sidebar-footer{padding:10px 14px;border-top:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#60a5fa38,#60a5fa14);border:1px solid rgba(96,165,250,.18);color:color-mix(in srgb,var(--shell-text, #fff) 88%,transparent);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:.8125rem;font-weight:600;color:var(--shell-text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.6875rem;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.btn-logout{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.btn-logout:hover{color:#f87171;background:#f871711a}.btn-logout:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.brand-full{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{display:none}.shell.collapsed .brand-mark{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:var(--shell-text, #fff);background:color-mix(in srgb,var(--shell-text, #fff) 15%,transparent)}.rail-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;border-radius:8px;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);transition:background .15s,color .15s}.rail-toggle:hover{background:color-mix(in srgb,var(--shell-text, #fff) 12%,transparent);color:var(--shell-text, #fff)}.rail-toggle:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.rail-divider{display:none}@media(min-width:1025px){.rail-toggle{display:flex}.sidebar{transition:width .2s cubic-bezier(.4,0,.2,1)}.shell.collapsed .sidebar{width:68px}.shell.collapsed .sidebar-header{flex-direction:column;justify-content:center;gap:4px;padding:8px 0}.shell.collapsed .brand-full{flex:none;width:44px;height:44px;overflow:hidden;border-radius:10px;justify-content:center}.shell.collapsed .brand-text{display:none}.shell.collapsed .rail-toggle{margin-left:0}.shell.collapsed .nav-group-label{display:none}.shell.collapsed .rail-divider{display:block;height:1px;margin:8px 14px;background:color-mix(in srgb,var(--shell-text, #fff) 20%,transparent)}.shell.collapsed .nav-group:first-child .rail-divider{display:none}.shell.collapsed .sidebar-nav a{position:relative;justify-content:center;padding:10px 0;margin:0 8px 2px;border-left:none;border-radius:8px}.shell.collapsed .sidebar-nav a.active{box-shadow:inset 3px 0 #60a5fa}.shell.collapsed .nav-label{display:none}.shell.collapsed .nav-badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;margin:0}.shell.collapsed .sidebar-footer{padding:10px 8px}.shell.collapsed .user-info{flex-direction:column;gap:8px}.shell.collapsed .user-details{display:none}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{display:flex;align-items:center;gap:8px;padding:0 24px;background:#fff;box-shadow:0 1px 3px #00000012,0 1px #0000000a;min-height:64px;box-sizing:border-box;position:relative;z-index:50}.hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;cursor:pointer;color:#374151;border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.hamburger:hover{background:#f3f4f6}.hamburger:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.page-title:focus{outline:none}.read-only-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#fef9c3;color:#854d0e;border:1px solid #fde68a;white-space:nowrap}.header-start{display:flex;align-items:center;min-width:0;margin-left:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.header-start:empty{display:none}.header-start::-webkit-scrollbar{display:none}.header-end{display:flex;align-items:center;margin-left:auto}.content{--shell-content-padding: 24px;flex:1;overflow-y:auto;padding:var(--shell-content-padding);background:#f7f8f6;display:flex;flex-direction:column;box-sizing:border-box;min-height:0}.content>*{flex:1;min-height:0;display:flex;flex-direction:column}@media(max-width:1024px){.hamburger{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 32px #0000004d}.shell.sidebar-open .sidebar{transform:translate(0)}.shell.sidebar-open .sidebar-backdrop{display:block}.main-area{width:100%}.top-header{padding:0 16px;gap:4px}.content{--shell-content-padding: 16px}}@media(max-width:480px){.page-title{font-size:1.0625rem}.content{--shell-content-padding: 12px}}@media(pointer:coarse),(max-width:480px){.sidebar-nav a,.nav-group-label{min-height:44px}.btn-logout,.hamburger,.rail-toggle{min-width:44px;min-height:44px}}@media(prefers-reduced-motion:reduce){.chevron,.sidebar-nav a,.sidebar{transition:none!important}}\n"],
|
|
30571
30788
|
dependencies: [
|
|
30572
30789
|
{
|
|
30573
30790
|
kind: "directive",
|
|
@@ -30828,7 +31045,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
30828
31045
|
<!-- Global confirm overlay — position:fixed so it overlays without affecting layout -->
|
|
30829
31046
|
<ui-confirm-outlet />
|
|
30830
31047
|
`,
|
|
30831
|
-
styles: [":host{display:contents}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:199}.sidebar{width:256px;background:var(--shell-bg, linear-gradient(175deg, #0f172a 0%, #111827 100%));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;padding:0 20px;min-height:64px;border-bottom:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent);box-sizing:border-box}.brand-default{display:flex;align-items:center;gap:10px}.brand-text{font-size:1.125rem;font-weight:700;color:var(--shell-text, #fff);letter-spacing:-.01em}.sidebar-nav{padding:6px 0 8px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent) transparent}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent);border-radius:2px}.nav-group{margin-bottom:6px}.nav-group-label{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;font-size:.6875rem;font-weight:700;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.12em;background:none;border:none;cursor:pointer;transition:color .15s;text-align:left;border-radius:6px;background:color-mix(in srgb,var(--shell-text, #fff) 10%,transparent);margin:6px 4px 4px;width:calc(100% - 8px);box-sizing:border-box}.nav-group-label:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.nav-group-label:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-1px}.chevron{flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);opacity:.85}.chevron.collapsed{transform:rotate(-90deg)}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 32px;color:color-mix(in srgb,var(--shell-text, #fff) 95%,transparent);font-size:.9375rem;font-weight:500;text-decoration:none;border-left:2px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent);background:color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.sidebar-nav a.active{color:var(--shell-text, #fff);background:#60a5fa21;border-left-color:#60a5fa;font-weight:600}.sidebar-nav a:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-2px}.nav-icon{display:flex;align-items:center;flex-shrink:0}.nav-label{flex:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;margin-left:auto}.sidebar-footer{padding:10px 14px;border-top:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#60a5fa38,#60a5fa14);border:1px solid rgba(96,165,250,.18);color:color-mix(in srgb,var(--shell-text, #fff) 88%,transparent);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:.8125rem;font-weight:600;color:var(--shell-text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.6875rem;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.btn-logout{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.btn-logout:hover{color:#f87171;background:#f871711a}.btn-logout:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.brand-full{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{display:none}.shell.collapsed .brand-mark{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:var(--shell-text, #fff);background:color-mix(in srgb,var(--shell-text, #fff) 15%,transparent)}.rail-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;border-radius:8px;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);transition:background .15s,color .15s}.rail-toggle:hover{background:color-mix(in srgb,var(--shell-text, #fff) 12%,transparent);color:var(--shell-text, #fff)}.rail-toggle:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.rail-divider{display:none}@media(min-width:1025px){.rail-toggle{display:flex}.sidebar{transition:width .2s cubic-bezier(.4,0,.2,1)}.shell.collapsed .sidebar{width:68px}.shell.collapsed .sidebar-header{flex-direction:column;justify-content:center;gap:4px;padding:8px 0}.shell.collapsed .brand-full{flex:none;width:44px;height:44px;overflow:hidden;border-radius:10px;justify-content:center}.shell.collapsed .brand-text{display:none}.shell.collapsed .rail-toggle{margin-left:0}.shell.collapsed .nav-group-label{display:none}.shell.collapsed .rail-divider{display:block;height:1px;margin:8px 14px;background:color-mix(in srgb,var(--shell-text, #fff) 20%,transparent)}.shell.collapsed .nav-group:first-child .rail-divider{display:none}.shell.collapsed .sidebar-nav a{position:relative;justify-content:center;padding:10px 0;margin:0 8px 2px;border-left:none;border-radius:8px}.shell.collapsed .sidebar-nav a.active{box-shadow:inset 3px 0 #60a5fa}.shell.collapsed .nav-label{display:none}.shell.collapsed .nav-badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;margin:0}.shell.collapsed .sidebar-footer{padding:10px 8px}.shell.collapsed .user-info{flex-direction:column;gap:8px}.shell.collapsed .user-details{display:none}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{display:flex;align-items:center;gap:8px;padding:0 24px;background:#fff;box-shadow:0 1px 3px #00000012,0 1px #0000000a;min-height:64px;box-sizing:border-box;position:relative;z-index:50}.hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;cursor:pointer;color:#374151;border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.hamburger:hover{background:#f3f4f6}.hamburger:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.page-title:focus{outline:none}.read-only-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#fef9c3;color:#854d0e;border:1px solid #fde68a;white-space:nowrap}.header-start{display:flex;align-items:center;min-width:0;margin-left:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.header-start:empty{display:none}.header-start::-webkit-scrollbar{display:none}.header-end{display:flex;align-items:center;margin-left:auto}.content{flex:1;overflow-y:auto;padding:
|
|
31048
|
+
styles: [":host{display:contents}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:199}.sidebar{width:256px;background:var(--shell-bg, linear-gradient(175deg, #0f172a 0%, #111827 100%));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;padding:0 20px;min-height:64px;border-bottom:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent);box-sizing:border-box}.brand-default{display:flex;align-items:center;gap:10px}.brand-text{font-size:1.125rem;font-weight:700;color:var(--shell-text, #fff);letter-spacing:-.01em}.sidebar-nav{padding:6px 0 8px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent) transparent}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent);border-radius:2px}.nav-group{margin-bottom:6px}.nav-group-label{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;font-size:.6875rem;font-weight:700;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.12em;background:none;border:none;cursor:pointer;transition:color .15s;text-align:left;border-radius:6px;background:color-mix(in srgb,var(--shell-text, #fff) 10%,transparent);margin:6px 4px 4px;width:calc(100% - 8px);box-sizing:border-box}.nav-group-label:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.nav-group-label:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-1px}.chevron{flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);opacity:.85}.chevron.collapsed{transform:rotate(-90deg)}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 32px;color:color-mix(in srgb,var(--shell-text, #fff) 95%,transparent);font-size:.9375rem;font-weight:500;text-decoration:none;border-left:2px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent);background:color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.sidebar-nav a.active{color:var(--shell-text, #fff);background:#60a5fa21;border-left-color:#60a5fa;font-weight:600}.sidebar-nav a:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-2px}.nav-icon{display:flex;align-items:center;flex-shrink:0}.nav-label{flex:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;margin-left:auto}.sidebar-footer{padding:10px 14px;border-top:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#60a5fa38,#60a5fa14);border:1px solid rgba(96,165,250,.18);color:color-mix(in srgb,var(--shell-text, #fff) 88%,transparent);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:.8125rem;font-weight:600;color:var(--shell-text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.6875rem;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.btn-logout{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.btn-logout:hover{color:#f87171;background:#f871711a}.btn-logout:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.brand-full{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{display:none}.shell.collapsed .brand-mark{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:var(--shell-text, #fff);background:color-mix(in srgb,var(--shell-text, #fff) 15%,transparent)}.rail-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;border-radius:8px;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);transition:background .15s,color .15s}.rail-toggle:hover{background:color-mix(in srgb,var(--shell-text, #fff) 12%,transparent);color:var(--shell-text, #fff)}.rail-toggle:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.rail-divider{display:none}@media(min-width:1025px){.rail-toggle{display:flex}.sidebar{transition:width .2s cubic-bezier(.4,0,.2,1)}.shell.collapsed .sidebar{width:68px}.shell.collapsed .sidebar-header{flex-direction:column;justify-content:center;gap:4px;padding:8px 0}.shell.collapsed .brand-full{flex:none;width:44px;height:44px;overflow:hidden;border-radius:10px;justify-content:center}.shell.collapsed .brand-text{display:none}.shell.collapsed .rail-toggle{margin-left:0}.shell.collapsed .nav-group-label{display:none}.shell.collapsed .rail-divider{display:block;height:1px;margin:8px 14px;background:color-mix(in srgb,var(--shell-text, #fff) 20%,transparent)}.shell.collapsed .nav-group:first-child .rail-divider{display:none}.shell.collapsed .sidebar-nav a{position:relative;justify-content:center;padding:10px 0;margin:0 8px 2px;border-left:none;border-radius:8px}.shell.collapsed .sidebar-nav a.active{box-shadow:inset 3px 0 #60a5fa}.shell.collapsed .nav-label{display:none}.shell.collapsed .nav-badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;margin:0}.shell.collapsed .sidebar-footer{padding:10px 8px}.shell.collapsed .user-info{flex-direction:column;gap:8px}.shell.collapsed .user-details{display:none}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{display:flex;align-items:center;gap:8px;padding:0 24px;background:#fff;box-shadow:0 1px 3px #00000012,0 1px #0000000a;min-height:64px;box-sizing:border-box;position:relative;z-index:50}.hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;cursor:pointer;color:#374151;border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.hamburger:hover{background:#f3f4f6}.hamburger:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.page-title:focus{outline:none}.read-only-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#fef9c3;color:#854d0e;border:1px solid #fde68a;white-space:nowrap}.header-start{display:flex;align-items:center;min-width:0;margin-left:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.header-start:empty{display:none}.header-start::-webkit-scrollbar{display:none}.header-end{display:flex;align-items:center;margin-left:auto}.content{--shell-content-padding: 24px;flex:1;overflow-y:auto;padding:var(--shell-content-padding);background:#f7f8f6;display:flex;flex-direction:column;box-sizing:border-box;min-height:0}.content>*{flex:1;min-height:0;display:flex;flex-direction:column}@media(max-width:1024px){.hamburger{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 32px #0000004d}.shell.sidebar-open .sidebar{transform:translate(0)}.shell.sidebar-open .sidebar-backdrop{display:block}.main-area{width:100%}.top-header{padding:0 16px;gap:4px}.content{--shell-content-padding: 16px}}@media(max-width:480px){.page-title{font-size:1.0625rem}.content{--shell-content-padding: 12px}}@media(pointer:coarse),(max-width:480px){.sidebar-nav a,.nav-group-label{min-height:44px}.btn-logout,.hamburger,.rail-toggle{min-width:44px;min-height:44px}}@media(prefers-reduced-motion:reduce){.chevron,.sidebar-nav a,.sidebar{transition:none!important}}\n"]
|
|
30832
31049
|
}]
|
|
30833
31050
|
}],
|
|
30834
31051
|
propDecorators: {
|
|
@@ -36131,6 +36348,110 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
36131
36348
|
}]
|
|
36132
36349
|
}
|
|
36133
36350
|
});
|
|
36351
|
+
var FixedFooterComponent = class FixedFooterComponent {
|
|
36352
|
+
constructor() {
|
|
36353
|
+
this.align = input("end", ...ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []);
|
|
36354
|
+
this.ariaLabel = input("Page actions", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
36355
|
+
this.elevated = input(true, ...ngDevMode ? [{ debugName: "elevated" }] : /* istanbul ignore next */ []);
|
|
36356
|
+
}
|
|
36357
|
+
static {
|
|
36358
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
36359
|
+
minVersion: "12.0.0",
|
|
36360
|
+
version: "22.2.2",
|
|
36361
|
+
ngImport: i0,
|
|
36362
|
+
type: FixedFooterComponent,
|
|
36363
|
+
deps: [],
|
|
36364
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
36365
|
+
});
|
|
36366
|
+
}
|
|
36367
|
+
static {
|
|
36368
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
36369
|
+
minVersion: "17.1.0",
|
|
36370
|
+
version: "22.2.2",
|
|
36371
|
+
type: FixedFooterComponent,
|
|
36372
|
+
isStandalone: true,
|
|
36373
|
+
selector: "ui-fixed-footer",
|
|
36374
|
+
inputs: {
|
|
36375
|
+
align: {
|
|
36376
|
+
classPropertyName: "align",
|
|
36377
|
+
publicName: "align",
|
|
36378
|
+
isSignal: true,
|
|
36379
|
+
isRequired: false,
|
|
36380
|
+
transformFunction: null
|
|
36381
|
+
},
|
|
36382
|
+
ariaLabel: {
|
|
36383
|
+
classPropertyName: "ariaLabel",
|
|
36384
|
+
publicName: "ariaLabel",
|
|
36385
|
+
isSignal: true,
|
|
36386
|
+
isRequired: false,
|
|
36387
|
+
transformFunction: null
|
|
36388
|
+
},
|
|
36389
|
+
elevated: {
|
|
36390
|
+
classPropertyName: "elevated",
|
|
36391
|
+
publicName: "elevated",
|
|
36392
|
+
isSignal: true,
|
|
36393
|
+
isRequired: false,
|
|
36394
|
+
transformFunction: null
|
|
36395
|
+
}
|
|
36396
|
+
},
|
|
36397
|
+
host: {
|
|
36398
|
+
attributes: { "role": "region" },
|
|
36399
|
+
properties: { "attr.aria-label": "ariaLabel()" }
|
|
36400
|
+
},
|
|
36401
|
+
ngImport: i0,
|
|
36402
|
+
template: `<div class="uff" [class.uff-elevated]="elevated()" [attr.data-align]="align()"><ng-content /></div>`,
|
|
36403
|
+
isInline: true,
|
|
36404
|
+
styles: [":host{display:block;position:-webkit-sticky;position:sticky;bottom:calc(-1 * var(--shell-content-padding, 0px));z-index:10;flex-shrink:0;margin:0 calc(-1 * var(--shell-content-padding, 0px)) calc(-1 * var(--shell-content-padding, 0px))}.uff{box-sizing:border-box;display:flex;align-items:center;flex-wrap:wrap;gap:12px;justify-content:flex-end;padding:var(--ui-footer-pad-y, 20px) max(var(--shell-content-padding, 0px),16px);background:var(--ui-footer-bg, #fff);border-top:1px solid var(--ui-footer-border, #e2e8f0)}.uff-elevated{box-shadow:0 -4px 12px #0f172a0f}.uff[data-align=start]{justify-content:flex-start}.uff[data-align=center]{justify-content:center}.uff[data-align=between]{justify-content:space-between}@media(max-width:1024px){.uff{padding-top:var(--ui-footer-pad-y, 16px);padding-bottom:var(--ui-footer-pad-y, 16px)}}@media(max-width:480px){.uff{padding-top:var(--ui-footer-pad-y, 14px);padding-bottom:var(--ui-footer-pad-y, 14px)}}\n"],
|
|
36405
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
36406
|
+
});
|
|
36407
|
+
}
|
|
36408
|
+
};
|
|
36409
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
36410
|
+
minVersion: "12.0.0",
|
|
36411
|
+
version: "22.2.2",
|
|
36412
|
+
ngImport: i0,
|
|
36413
|
+
type: FixedFooterComponent,
|
|
36414
|
+
decorators: [{
|
|
36415
|
+
type: Component,
|
|
36416
|
+
args: [{
|
|
36417
|
+
selector: "ui-fixed-footer",
|
|
36418
|
+
standalone: true,
|
|
36419
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
36420
|
+
host: {
|
|
36421
|
+
role: "region",
|
|
36422
|
+
"[attr.aria-label]": "ariaLabel()"
|
|
36423
|
+
},
|
|
36424
|
+
template: `<div class="uff" [class.uff-elevated]="elevated()" [attr.data-align]="align()"><ng-content /></div>`,
|
|
36425
|
+
styles: [":host{display:block;position:-webkit-sticky;position:sticky;bottom:calc(-1 * var(--shell-content-padding, 0px));z-index:10;flex-shrink:0;margin:0 calc(-1 * var(--shell-content-padding, 0px)) calc(-1 * var(--shell-content-padding, 0px))}.uff{box-sizing:border-box;display:flex;align-items:center;flex-wrap:wrap;gap:12px;justify-content:flex-end;padding:var(--ui-footer-pad-y, 20px) max(var(--shell-content-padding, 0px),16px);background:var(--ui-footer-bg, #fff);border-top:1px solid var(--ui-footer-border, #e2e8f0)}.uff-elevated{box-shadow:0 -4px 12px #0f172a0f}.uff[data-align=start]{justify-content:flex-start}.uff[data-align=center]{justify-content:center}.uff[data-align=between]{justify-content:space-between}@media(max-width:1024px){.uff{padding-top:var(--ui-footer-pad-y, 16px);padding-bottom:var(--ui-footer-pad-y, 16px)}}@media(max-width:480px){.uff{padding-top:var(--ui-footer-pad-y, 14px);padding-bottom:var(--ui-footer-pad-y, 14px)}}\n"]
|
|
36426
|
+
}]
|
|
36427
|
+
}],
|
|
36428
|
+
propDecorators: {
|
|
36429
|
+
align: [{
|
|
36430
|
+
type: i0.Input,
|
|
36431
|
+
args: [{
|
|
36432
|
+
isSignal: true,
|
|
36433
|
+
alias: "align",
|
|
36434
|
+
required: false
|
|
36435
|
+
}]
|
|
36436
|
+
}],
|
|
36437
|
+
ariaLabel: [{
|
|
36438
|
+
type: i0.Input,
|
|
36439
|
+
args: [{
|
|
36440
|
+
isSignal: true,
|
|
36441
|
+
alias: "ariaLabel",
|
|
36442
|
+
required: false
|
|
36443
|
+
}]
|
|
36444
|
+
}],
|
|
36445
|
+
elevated: [{
|
|
36446
|
+
type: i0.Input,
|
|
36447
|
+
args: [{
|
|
36448
|
+
isSignal: true,
|
|
36449
|
+
alias: "elevated",
|
|
36450
|
+
required: false
|
|
36451
|
+
}]
|
|
36452
|
+
}]
|
|
36453
|
+
}
|
|
36454
|
+
});
|
|
36134
36455
|
var BoardCardDirective = class BoardCardDirective {
|
|
36135
36456
|
constructor() {
|
|
36136
36457
|
this.typeFrom = input("", {
|
|
@@ -42748,6 +43069,34 @@ const SETUP_INTEGRATIONS = {
|
|
|
42748
43069
|
connectEndpoint: "/integrations/twilio/connect"
|
|
42749
43070
|
}
|
|
42750
43071
|
},
|
|
43072
|
+
stripe: {
|
|
43073
|
+
key: "stripe",
|
|
43074
|
+
letter: "S",
|
|
43075
|
+
color: "#635bff",
|
|
43076
|
+
title: "Stripe",
|
|
43077
|
+
icon: "bank",
|
|
43078
|
+
description: "Accept card and bank payments from your customers. Payouts go straight to your Stripe account.",
|
|
43079
|
+
statusEndpoint: "/integrations/stripe/status",
|
|
43080
|
+
connectedDetail: (s) => str(s["accountName"]) ? `Connected — ${str(s["accountName"])}` : "Connected",
|
|
43081
|
+
connect: {
|
|
43082
|
+
type: "oauth",
|
|
43083
|
+
authorizeEndpoint: "/integrations/stripe/connect"
|
|
43084
|
+
}
|
|
43085
|
+
},
|
|
43086
|
+
square: {
|
|
43087
|
+
key: "square",
|
|
43088
|
+
letter: "S",
|
|
43089
|
+
color: "#111827",
|
|
43090
|
+
title: "Square",
|
|
43091
|
+
icon: "bank",
|
|
43092
|
+
description: "Accept card and bank payments from your customers. Payouts go straight to your Square account.",
|
|
43093
|
+
statusEndpoint: "/integrations/square/status",
|
|
43094
|
+
connectedDetail: (s) => str(s["merchantId"]) ? `Connected — merchant ${str(s["merchantId"])}` : "Connected",
|
|
43095
|
+
connect: {
|
|
43096
|
+
type: "oauth",
|
|
43097
|
+
authorizeEndpoint: "/integrations/square/connect"
|
|
43098
|
+
}
|
|
43099
|
+
},
|
|
42751
43100
|
gmail: {
|
|
42752
43101
|
key: "gmail",
|
|
42753
43102
|
letter: "G",
|
|
@@ -42950,6 +43299,7 @@ const DEFAULT_TEXTS = {
|
|
|
42950
43299
|
selectSource: "Select",
|
|
42951
43300
|
connected: "Connected",
|
|
42952
43301
|
importMore: "Import more",
|
|
43302
|
+
downloadSample: "Download CSV Template",
|
|
42953
43303
|
importRequired: "Import your data to continue, or skip this step.",
|
|
42954
43304
|
importErrorsTitle: (errors) => `${errors} row${errors === 1 ? "" : "s"} could not be imported`,
|
|
42955
43305
|
importErrorsText: (_imported, errors) => `Nothing was imported yet. Fix the ${errors === 1 ? "row" : "rows"} listed in the import window in your file, then import the whole file again to continue.`,
|
|
@@ -42998,6 +43348,7 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
42998
43348
|
this.split = computed(() => this.current().kind !== "custom" && !!this.current().splitLayout && !!this.templateFor(this.current().key), ...ngDevMode ? [{ debugName: "split" }] : /* istanbul ignore next */ []);
|
|
42999
43349
|
this.steps = input.required(...ngDevMode ? [{ debugName: "steps" }] : /* istanbul ignore next */ []);
|
|
43000
43350
|
this.texts = input({}, ...ngDevMode ? [{ debugName: "texts" }] : /* istanbul ignore next */ []);
|
|
43351
|
+
this.initialStep = input("", ...ngDevMode ? [{ debugName: "initialStep" }] : /* istanbul ignore next */ []);
|
|
43001
43352
|
this.finished = output();
|
|
43002
43353
|
this.exited = output();
|
|
43003
43354
|
this.stepChange = output();
|
|
@@ -43017,6 +43368,9 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43017
43368
|
this.importErrors = signal({}, ...ngDevMode ? [{ debugName: "importErrors" }] : /* istanbul ignore next */ []);
|
|
43018
43369
|
this.statuses = signal({}, ...ngDevMode ? [{ debugName: "statuses" }] : /* istanbul ignore next */ []);
|
|
43019
43370
|
this.busy = signal(false, ...ngDevMode ? [{ debugName: "busy" }] : /* istanbul ignore next */ []);
|
|
43371
|
+
this.connecting = signal("", ...ngDevMode ? [{ debugName: "connecting" }] : /* istanbul ignore next */ []);
|
|
43372
|
+
this.pendingTab = null;
|
|
43373
|
+
this.connectTabOpened = false;
|
|
43020
43374
|
this.api = {
|
|
43021
43375
|
saveAndContinue: () => this.saveAndContinue(),
|
|
43022
43376
|
busy: () => this.busy(),
|
|
@@ -43067,10 +43421,21 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43067
43421
|
mq.addEventListener("change", on);
|
|
43068
43422
|
this.destroyRef.onDestroy(() => mq.removeEventListener("change", on));
|
|
43069
43423
|
}
|
|
43424
|
+
if (typeof document !== "undefined") {
|
|
43425
|
+
const onVisible = () => {
|
|
43426
|
+
if (document.visibilityState !== "visible" || !this.connectTabOpened || this.current().kind !== "integrations") return;
|
|
43427
|
+
this.connectTabOpened = false;
|
|
43428
|
+
this.loadStatuses(this.current().integrations ?? []);
|
|
43429
|
+
};
|
|
43430
|
+
document.addEventListener("visibilitychange", onVisible);
|
|
43431
|
+
this.destroyRef.onDestroy(() => document.removeEventListener("visibilitychange", onVisible));
|
|
43432
|
+
}
|
|
43070
43433
|
effect(() => {
|
|
43071
43434
|
const steps = this.allSteps();
|
|
43072
43435
|
untracked(() => {
|
|
43073
|
-
if (
|
|
43436
|
+
if (steps.some((s) => s.key === this.currentKey())) return;
|
|
43437
|
+
const wanted = !this.currentKey() ? this.initialStep() : "";
|
|
43438
|
+
this.enter(wanted && steps.some((s) => s.key === wanted) ? wanted : steps[0].key);
|
|
43074
43439
|
});
|
|
43075
43440
|
});
|
|
43076
43441
|
}
|
|
@@ -43158,6 +43523,9 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43158
43523
|
importer.onSourceSelected(source);
|
|
43159
43524
|
importer.confirmSource();
|
|
43160
43525
|
}
|
|
43526
|
+
downloadSample() {
|
|
43527
|
+
this.importers()[0]?.downloadTemplate();
|
|
43528
|
+
}
|
|
43161
43529
|
openImport(key) {
|
|
43162
43530
|
if (this.steps().findIndex((s) => s.key === key) < 0) return;
|
|
43163
43531
|
this.importers()[0]?.openImport();
|
|
@@ -43224,10 +43592,11 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43224
43592
|
return st?.connected ? i.connectedDetail ? i.connectedDetail(st) : this.t().connected : i.description;
|
|
43225
43593
|
}
|
|
43226
43594
|
connect(i) {
|
|
43227
|
-
if (this.busy()) return;
|
|
43595
|
+
if (this.busy() || this.connecting()) return;
|
|
43228
43596
|
this.error.set("");
|
|
43229
43597
|
this.areaCodeOpen.set("");
|
|
43230
43598
|
this.areaCode.set("");
|
|
43599
|
+
if (i.connect.type === "oauth" && i.connect.newTab) this.pendingTab = this.openTab();
|
|
43231
43600
|
if (!i.beforeConnect) {
|
|
43232
43601
|
this.startConnect(i);
|
|
43233
43602
|
return;
|
|
@@ -43238,21 +43607,59 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43238
43607
|
this.startConnect(i);
|
|
43239
43608
|
}, (e) => {
|
|
43240
43609
|
this.busy.set(false);
|
|
43610
|
+
this.closePendingTab();
|
|
43241
43611
|
this.error.set(this.messageOf(e, this.t().connectIntegrationFailed(i.title)));
|
|
43242
43612
|
});
|
|
43243
43613
|
}
|
|
43614
|
+
openTab() {
|
|
43615
|
+
const tab = window.open("", "_blank");
|
|
43616
|
+
if (tab) try {
|
|
43617
|
+
tab.opener = null;
|
|
43618
|
+
} catch {}
|
|
43619
|
+
return tab;
|
|
43620
|
+
}
|
|
43621
|
+
closePendingTab() {
|
|
43622
|
+
try {
|
|
43623
|
+
this.pendingTab?.close();
|
|
43624
|
+
} catch {}
|
|
43625
|
+
this.pendingTab = null;
|
|
43626
|
+
}
|
|
43244
43627
|
startConnect(i) {
|
|
43245
43628
|
if (i.connect.type === "area-code") {
|
|
43246
43629
|
this.areaCodeOpen.set(i.key);
|
|
43247
43630
|
return;
|
|
43248
43631
|
}
|
|
43632
|
+
this.connecting.set(i.key);
|
|
43249
43633
|
this.http.get(this.apiBase + i.connect.authorizeEndpoint).pipe(takeUntilDestroyed(this.destroyRef)).subscribe({
|
|
43250
43634
|
next: (res) => {
|
|
43251
|
-
|
|
43635
|
+
this.connecting.set("");
|
|
43636
|
+
const url = res?.url ?? res?.authUrl;
|
|
43637
|
+
if (!url) {
|
|
43638
|
+
this.closePendingTab();
|
|
43639
|
+
return;
|
|
43640
|
+
}
|
|
43641
|
+
if (!this.isWebAddress(url)) {
|
|
43642
|
+
this.closePendingTab();
|
|
43643
|
+
this.error.set(this.t().connectIntegrationFailed(i.title));
|
|
43644
|
+
return;
|
|
43645
|
+
}
|
|
43646
|
+
this.redirect(url);
|
|
43252
43647
|
},
|
|
43253
|
-
error: () =>
|
|
43648
|
+
error: () => {
|
|
43649
|
+
this.connecting.set("");
|
|
43650
|
+
this.closePendingTab();
|
|
43651
|
+
this.error.set(this.t().connectIntegrationFailed(i.title));
|
|
43652
|
+
}
|
|
43254
43653
|
});
|
|
43255
43654
|
}
|
|
43655
|
+
isWebAddress(url) {
|
|
43656
|
+
try {
|
|
43657
|
+
const p = new URL(url, window.location.origin).protocol;
|
|
43658
|
+
return p === "https:" || p === "http:";
|
|
43659
|
+
} catch {
|
|
43660
|
+
return false;
|
|
43661
|
+
}
|
|
43662
|
+
}
|
|
43256
43663
|
iconD(name) {
|
|
43257
43664
|
return iconPath(name) ?? "";
|
|
43258
43665
|
}
|
|
@@ -43260,6 +43667,16 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43260
43667
|
return (i.connect.type === "area-code" ? i.connect.areaCodeLabel : void 0) ?? this.t().areaCode;
|
|
43261
43668
|
}
|
|
43262
43669
|
redirect(url) {
|
|
43670
|
+
const tab = this.pendingTab;
|
|
43671
|
+
this.pendingTab = null;
|
|
43672
|
+
if (tab && !tab.closed) {
|
|
43673
|
+
tab.location.href = url;
|
|
43674
|
+
this.connectTabOpened = true;
|
|
43675
|
+
return;
|
|
43676
|
+
}
|
|
43677
|
+
this.navigateHere(url);
|
|
43678
|
+
}
|
|
43679
|
+
navigateHere(url) {
|
|
43263
43680
|
window.location.href = url;
|
|
43264
43681
|
}
|
|
43265
43682
|
submitAreaCode(i) {
|
|
@@ -43311,6 +43728,13 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43311
43728
|
isSignal: true,
|
|
43312
43729
|
isRequired: false,
|
|
43313
43730
|
transformFunction: null
|
|
43731
|
+
},
|
|
43732
|
+
initialStep: {
|
|
43733
|
+
classPropertyName: "initialStep",
|
|
43734
|
+
publicName: "initialStep",
|
|
43735
|
+
isSignal: true,
|
|
43736
|
+
isRequired: false,
|
|
43737
|
+
transformFunction: null
|
|
43314
43738
|
}
|
|
43315
43739
|
},
|
|
43316
43740
|
outputs: {
|
|
@@ -43446,6 +43870,9 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43446
43870
|
</ui-alert>
|
|
43447
43871
|
} @else {
|
|
43448
43872
|
@if (imp.hint) { <p class="sw-hint">{{ imp.hint }}</p> }
|
|
43873
|
+
@if (imp.config.importFields?.length) {
|
|
43874
|
+
<ui-button variant="link" [attr.data-testid]="'download-sample-' + current().key" (click)="downloadSample()">{{ imp.templateLabel || t().downloadSample }}</ui-button>
|
|
43875
|
+
}
|
|
43449
43876
|
@if (imp.sources?.length) {
|
|
43450
43877
|
<ui-import-source-grid appearance="card" [disabled]="busy()" [actionLabel]="t().selectSource" [sources]="imp.sources!" [ariaLabel]="'Select your ' + imp.config.entityName + ' source'" (sourceSelect)="startImport(current().key, $event)" />
|
|
43451
43878
|
} @else {
|
|
@@ -43456,11 +43883,11 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43456
43883
|
}
|
|
43457
43884
|
}
|
|
43458
43885
|
@case ('integrations') {
|
|
43459
|
-
<div class="sw-provider-grid">
|
|
43886
|
+
<div class="sw-provider-grid" [class.sw-provider-grid--single]="(current().integrations?.length ?? 0) <= 1" data-testid="wizard-provider-grid">
|
|
43460
43887
|
@for (it of current().integrations ?? []; track it.key) {
|
|
43461
43888
|
<ui-option-card class="sw-integration" [attr.data-testid]="'integration-' + it.key" [title]="it.title" [description]="detailFor(it)" [letter]="it.letter || ''"
|
|
43462
43889
|
[icon]="it.letter ? '' : (it.icon ?? 'link')" [color]="it.color || '#64748b'" [actionLabel]="isConnected(it) ? t().reconnect : t().connect"
|
|
43463
|
-
[actionTestId]="'integration-pick-' + it.key" (action)="connect(it)">
|
|
43890
|
+
[actionTestId]="'integration-pick-' + it.key" [actionLoading]="connecting() === it.key" [disabled]="!!connecting()" (action)="connect(it)">
|
|
43464
43891
|
@if (areaCodeOpen() === it.key) {
|
|
43465
43892
|
<div class="sw-area-code" [attr.data-testid]="'area-code-' + it.key">
|
|
43466
43893
|
<ui-text-input [label]="areaCodeLabelFor(it)" [maxlength]="3" inputmode="numeric" [ngModel]="areaCode()" (ngModelChange)="areaCode.set($event ?? '')" [inputTestId]="'area-code-input-' + it.key" />
|
|
@@ -43486,7 +43913,7 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43486
43913
|
</div>
|
|
43487
43914
|
`,
|
|
43488
43915
|
isInline: true,
|
|
43489
|
-
styles: [".sw-page{display:flex;min-height:100vh;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sw-sidebar{width:260px;min-width:260px;background:#faf9f7;border-right:1px solid #e5e2dc;display:flex;flex-direction:column;justify-content:space-between;padding:28px 20px}.sw-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.sw-brand-text{font-size:1.125rem;font-weight:700;color:#1e293b}.sw-step-nav{display:block}.sw-sidebar-bottom{margin-top:24px}.sw-progress-text{display:block;margin-top:8px;font-size:.75rem;color:#64748b}.sw-content{flex:1;min-width:0;background:#fff;display:flex;flex-direction:column;overflow-y:auto}.sw-content-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 32px;border-bottom:1px solid #f1f5f9}.sw-step-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0}.sw-step-content{max-width:780px;padding:16px 48px 60px}.sw-intro{margin-bottom:24px}.sw-step-number{font-size:1.25rem;font-weight:800;line-height:1}.sw-split-tabs{display:block;margin-bottom:16px}.sw-hint.sw-continue-hint{margin:14px 0 0}.sw-extra-status{font-size:.8125rem;color:#64748b;margin:12px 0 0}.sw-extra-status:empty{display:none}.sw-hint{font-size:.8125rem;line-height:1.5;color:#64748b;margin:0 0 16px}.sw-import-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px}.sw-tag{font-size:.6875rem;font-weight:700;letter-spacing:1px;color:#6b7280}.sw-provider-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px}@media(max-width:768px){.sw-provider-grid{grid-template-columns:1fr}}.sw-provider-grid .sw-integration{margin-bottom:0}.sw-area-code{display:flex;align-items:flex-end;gap:12px;margin-top:12px;max-width:320px}.sw-area-code ui-text-input{flex:1}.sw-content ui-alert{display:block;margin-bottom:16px}.sw-card{display:block}.sw-header-action{margin-left:auto;min-width:0;max-width:100%}.sw-step-actions{display:flex;justify-content:space-between;align-items:center}.sw-ico{flex-shrink:0;vertical-align:-2px}.sw-actions-right{display:flex;align-items:center;gap:16px;margin-left:auto}.sw-summary{display:block}.sw-done-hint{margin:16px 0 0}@media(max-width:768px){.sw-step-actions{flex-direction:column-reverse;align-items:stretch;gap:10px}.sw-actions-right{flex-direction:column-reverse;align-items:stretch;gap:10px;margin-left:0}.sw-page{flex-direction:column}.sw-sidebar{width:100%;min-width:unset;padding:16px}.sw-brand{margin-bottom:12px}.sw-sidebar-bottom{display:none}.sw-step-content{padding:12px 20px 40px}}\n"],
|
|
43916
|
+
styles: [".sw-page{display:flex;min-height:100vh;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sw-sidebar{width:260px;min-width:260px;background:#faf9f7;border-right:1px solid #e5e2dc;display:flex;flex-direction:column;justify-content:space-between;padding:28px 20px}.sw-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.sw-brand-text{font-size:1.125rem;font-weight:700;color:#1e293b}.sw-step-nav{display:block}.sw-sidebar-bottom{margin-top:24px}.sw-progress-text{display:block;margin-top:8px;font-size:.75rem;color:#64748b}.sw-content{flex:1;min-width:0;background:#fff;display:flex;flex-direction:column;overflow-y:auto}.sw-content-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 32px;border-bottom:1px solid #f1f5f9}.sw-step-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0}.sw-step-content{max-width:780px;padding:16px 48px 60px}.sw-intro{margin-bottom:24px}.sw-step-number{font-size:1.25rem;font-weight:800;line-height:1}.sw-split-tabs{display:block;margin-bottom:16px}.sw-hint.sw-continue-hint{margin:14px 0 0}.sw-extra-status{font-size:.8125rem;color:#64748b;margin:12px 0 0}.sw-extra-status:empty{display:none}.sw-hint{font-size:.8125rem;line-height:1.5;color:#64748b;margin:0 0 16px}.sw-import-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px}.sw-tag{font-size:.6875rem;font-weight:700;letter-spacing:1px;color:#6b7280}.sw-provider-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px}.sw-provider-grid--single{grid-template-columns:1fr}@media(max-width:768px){.sw-provider-grid{grid-template-columns:1fr}}.sw-provider-grid .sw-integration{margin-bottom:0}.sw-area-code{display:flex;align-items:flex-end;gap:12px;margin-top:12px;max-width:320px}.sw-area-code ui-text-input{flex:1}.sw-content ui-alert{display:block;margin-bottom:16px}.sw-card{display:block}.sw-header-action{margin-left:auto;min-width:0;max-width:100%}.sw-step-actions{display:flex;justify-content:space-between;align-items:center}.sw-ico{flex-shrink:0;vertical-align:-2px}.sw-actions-right{display:flex;align-items:center;gap:16px;margin-left:auto}.sw-summary{display:block}.sw-done-hint{margin:16px 0 0}@media(max-width:768px){.sw-step-actions{flex-direction:column-reverse;align-items:stretch;gap:10px}.sw-actions-right{flex-direction:column-reverse;align-items:stretch;gap:10px;margin-left:0}.sw-page{flex-direction:column}.sw-sidebar{width:100%;min-width:unset;padding:16px}.sw-brand{margin-bottom:12px}.sw-sidebar-bottom{display:none}.sw-step-content{padding:12px 20px 40px}}\n"],
|
|
43490
43917
|
dependencies: [
|
|
43491
43918
|
{
|
|
43492
43919
|
kind: "directive",
|
|
@@ -43537,7 +43964,8 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43537
43964
|
"dismissAriaLabel",
|
|
43538
43965
|
"quiet",
|
|
43539
43966
|
"compact",
|
|
43540
|
-
"inline"
|
|
43967
|
+
"inline",
|
|
43968
|
+
"fill"
|
|
43541
43969
|
],
|
|
43542
43970
|
outputs: ["dismissed"]
|
|
43543
43971
|
},
|
|
@@ -43613,6 +44041,7 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43613
44041
|
"editIcon",
|
|
43614
44042
|
"editAriaLabel",
|
|
43615
44043
|
"fill",
|
|
44044
|
+
"maxBodyHeight",
|
|
43616
44045
|
"selectable",
|
|
43617
44046
|
"selected",
|
|
43618
44047
|
"selectedColor",
|
|
@@ -43921,6 +44350,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
43921
44350
|
</ui-alert>
|
|
43922
44351
|
} @else {
|
|
43923
44352
|
@if (imp.hint) { <p class="sw-hint">{{ imp.hint }}</p> }
|
|
44353
|
+
@if (imp.config.importFields?.length) {
|
|
44354
|
+
<ui-button variant="link" [attr.data-testid]="'download-sample-' + current().key" (click)="downloadSample()">{{ imp.templateLabel || t().downloadSample }}</ui-button>
|
|
44355
|
+
}
|
|
43924
44356
|
@if (imp.sources?.length) {
|
|
43925
44357
|
<ui-import-source-grid appearance="card" [disabled]="busy()" [actionLabel]="t().selectSource" [sources]="imp.sources!" [ariaLabel]="'Select your ' + imp.config.entityName + ' source'" (sourceSelect)="startImport(current().key, $event)" />
|
|
43926
44358
|
} @else {
|
|
@@ -43931,11 +44363,11 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
43931
44363
|
}
|
|
43932
44364
|
}
|
|
43933
44365
|
@case ('integrations') {
|
|
43934
|
-
<div class="sw-provider-grid">
|
|
44366
|
+
<div class="sw-provider-grid" [class.sw-provider-grid--single]="(current().integrations?.length ?? 0) <= 1" data-testid="wizard-provider-grid">
|
|
43935
44367
|
@for (it of current().integrations ?? []; track it.key) {
|
|
43936
44368
|
<ui-option-card class="sw-integration" [attr.data-testid]="'integration-' + it.key" [title]="it.title" [description]="detailFor(it)" [letter]="it.letter || ''"
|
|
43937
44369
|
[icon]="it.letter ? '' : (it.icon ?? 'link')" [color]="it.color || '#64748b'" [actionLabel]="isConnected(it) ? t().reconnect : t().connect"
|
|
43938
|
-
[actionTestId]="'integration-pick-' + it.key" (action)="connect(it)">
|
|
44370
|
+
[actionTestId]="'integration-pick-' + it.key" [actionLoading]="connecting() === it.key" [disabled]="!!connecting()" (action)="connect(it)">
|
|
43939
44371
|
@if (areaCodeOpen() === it.key) {
|
|
43940
44372
|
<div class="sw-area-code" [attr.data-testid]="'area-code-' + it.key">
|
|
43941
44373
|
<ui-text-input [label]="areaCodeLabelFor(it)" [maxlength]="3" inputmode="numeric" [ngModel]="areaCode()" (ngModelChange)="areaCode.set($event ?? '')" [inputTestId]="'area-code-input-' + it.key" />
|
|
@@ -43960,7 +44392,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
43960
44392
|
</main>
|
|
43961
44393
|
</div>
|
|
43962
44394
|
`,
|
|
43963
|
-
styles: [".sw-page{display:flex;min-height:100vh;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sw-sidebar{width:260px;min-width:260px;background:#faf9f7;border-right:1px solid #e5e2dc;display:flex;flex-direction:column;justify-content:space-between;padding:28px 20px}.sw-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.sw-brand-text{font-size:1.125rem;font-weight:700;color:#1e293b}.sw-step-nav{display:block}.sw-sidebar-bottom{margin-top:24px}.sw-progress-text{display:block;margin-top:8px;font-size:.75rem;color:#64748b}.sw-content{flex:1;min-width:0;background:#fff;display:flex;flex-direction:column;overflow-y:auto}.sw-content-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 32px;border-bottom:1px solid #f1f5f9}.sw-step-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0}.sw-step-content{max-width:780px;padding:16px 48px 60px}.sw-intro{margin-bottom:24px}.sw-step-number{font-size:1.25rem;font-weight:800;line-height:1}.sw-split-tabs{display:block;margin-bottom:16px}.sw-hint.sw-continue-hint{margin:14px 0 0}.sw-extra-status{font-size:.8125rem;color:#64748b;margin:12px 0 0}.sw-extra-status:empty{display:none}.sw-hint{font-size:.8125rem;line-height:1.5;color:#64748b;margin:0 0 16px}.sw-import-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px}.sw-tag{font-size:.6875rem;font-weight:700;letter-spacing:1px;color:#6b7280}.sw-provider-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px}@media(max-width:768px){.sw-provider-grid{grid-template-columns:1fr}}.sw-provider-grid .sw-integration{margin-bottom:0}.sw-area-code{display:flex;align-items:flex-end;gap:12px;margin-top:12px;max-width:320px}.sw-area-code ui-text-input{flex:1}.sw-content ui-alert{display:block;margin-bottom:16px}.sw-card{display:block}.sw-header-action{margin-left:auto;min-width:0;max-width:100%}.sw-step-actions{display:flex;justify-content:space-between;align-items:center}.sw-ico{flex-shrink:0;vertical-align:-2px}.sw-actions-right{display:flex;align-items:center;gap:16px;margin-left:auto}.sw-summary{display:block}.sw-done-hint{margin:16px 0 0}@media(max-width:768px){.sw-step-actions{flex-direction:column-reverse;align-items:stretch;gap:10px}.sw-actions-right{flex-direction:column-reverse;align-items:stretch;gap:10px;margin-left:0}.sw-page{flex-direction:column}.sw-sidebar{width:100%;min-width:unset;padding:16px}.sw-brand{margin-bottom:12px}.sw-sidebar-bottom{display:none}.sw-step-content{padding:12px 20px 40px}}\n"]
|
|
44395
|
+
styles: [".sw-page{display:flex;min-height:100vh;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sw-sidebar{width:260px;min-width:260px;background:#faf9f7;border-right:1px solid #e5e2dc;display:flex;flex-direction:column;justify-content:space-between;padding:28px 20px}.sw-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.sw-brand-text{font-size:1.125rem;font-weight:700;color:#1e293b}.sw-step-nav{display:block}.sw-sidebar-bottom{margin-top:24px}.sw-progress-text{display:block;margin-top:8px;font-size:.75rem;color:#64748b}.sw-content{flex:1;min-width:0;background:#fff;display:flex;flex-direction:column;overflow-y:auto}.sw-content-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 32px;border-bottom:1px solid #f1f5f9}.sw-step-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0}.sw-step-content{max-width:780px;padding:16px 48px 60px}.sw-intro{margin-bottom:24px}.sw-step-number{font-size:1.25rem;font-weight:800;line-height:1}.sw-split-tabs{display:block;margin-bottom:16px}.sw-hint.sw-continue-hint{margin:14px 0 0}.sw-extra-status{font-size:.8125rem;color:#64748b;margin:12px 0 0}.sw-extra-status:empty{display:none}.sw-hint{font-size:.8125rem;line-height:1.5;color:#64748b;margin:0 0 16px}.sw-import-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px}.sw-tag{font-size:.6875rem;font-weight:700;letter-spacing:1px;color:#6b7280}.sw-provider-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px}.sw-provider-grid--single{grid-template-columns:1fr}@media(max-width:768px){.sw-provider-grid{grid-template-columns:1fr}}.sw-provider-grid .sw-integration{margin-bottom:0}.sw-area-code{display:flex;align-items:flex-end;gap:12px;margin-top:12px;max-width:320px}.sw-area-code ui-text-input{flex:1}.sw-content ui-alert{display:block;margin-bottom:16px}.sw-card{display:block}.sw-header-action{margin-left:auto;min-width:0;max-width:100%}.sw-step-actions{display:flex;justify-content:space-between;align-items:center}.sw-ico{flex-shrink:0;vertical-align:-2px}.sw-actions-right{display:flex;align-items:center;gap:16px;margin-left:auto}.sw-summary{display:block}.sw-done-hint{margin:16px 0 0}@media(max-width:768px){.sw-step-actions{flex-direction:column-reverse;align-items:stretch;gap:10px}.sw-actions-right{flex-direction:column-reverse;align-items:stretch;gap:10px;margin-left:0}.sw-page{flex-direction:column}.sw-sidebar{width:100%;min-width:unset;padding:16px}.sw-brand{margin-bottom:12px}.sw-sidebar-bottom{display:none}.sw-step-content{padding:12px 20px 40px}}\n"]
|
|
43964
44396
|
}]
|
|
43965
44397
|
}],
|
|
43966
44398
|
ctorParameters: () => [],
|
|
@@ -43981,6 +44413,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
43981
44413
|
required: false
|
|
43982
44414
|
}]
|
|
43983
44415
|
}],
|
|
44416
|
+
initialStep: [{
|
|
44417
|
+
type: i0.Input,
|
|
44418
|
+
args: [{
|
|
44419
|
+
isSignal: true,
|
|
44420
|
+
alias: "initialStep",
|
|
44421
|
+
required: false
|
|
44422
|
+
}]
|
|
44423
|
+
}],
|
|
43984
44424
|
finished: [{
|
|
43985
44425
|
type: i0.Output,
|
|
43986
44426
|
args: ["finished"]
|
|
@@ -46731,6 +47171,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
46731
47171
|
}]
|
|
46732
47172
|
}
|
|
46733
47173
|
});
|
|
46734
|
-
export { ActionBarComponent, AlertComponent, AppShellComponent, AudioPlayerComponent, AvatarComponent, BADGE_VARIANT_STYLES, BadgeComponent, BarRowComponent, BoardCardDirective, BoardComponent, BulkMessagePanelComponent, BusinessHoursComponent, ButtonComponent, CalendarComponent, CardListItemComponent, CheckboxComponent, CheckboxTrailingDirective, ChipComponent, ChipGroupComponent, ColorInputComponent, ColumnFilterComponent, ColumnsComponent, ComboboxComponent, ConfirmOutletComponent, ConfirmService, ContactPickerComponent, DEFAULT_EMAIL_TEMPLATE_BLOCK_GROUPS, DEFAULT_EMAIL_TEMPLATE_VARIABLE_GROUPS, DEFAULT_PASSWORD_RULES, DROPDOWN_GROUP, DataTableComponent, DateInputComponent, DateRangePickerComponent, DatetimeInputComponent, DetailCardComponent, DiscountSelectorComponent, DividerComponent, DropdownComponent, EMAIL_BLOCK_DRAG_TYPE, EMAIL_TEMPLATE_MAX_BODY, EMAIL_TEMPLATE_MAX_TEXT, EMAIL_TEMPLATE_START_TEXT, EmailTemplateEditorComponent, EmptyStateComponent, ErrorComponent, ErrorStateComponent, FORGEROUTE_CONFIG, FadeComponent, FileInputComponent, FormColSpanDirective, FormComponent, FormRowComponent, FormSectionComponent, HintComponent, IDX_BEHAVIOR_SIGNALS, INTEGRATION_CATALOG, INTEGRATION_FIELD_DEFS, INTEGRATION_GROUP_ORDER, INTEGRATION_OPTION_DEFS, IconComponent, ImageComponent, ImageGalleryComponent, ImageGalleryDialogComponent, ImagePreviewComponent, ImageRepositionComponent, ImportExportComponent, ImportSourceGridComponent, KpiCardComponent, LAYOUT_GAP_PX, ListComponent, ListItemComponent, LiveRegionComponent, MAX_EMAIL_ADDRESS_LENGTH, ModalComponent, MoreMenuComponent, MultiSelectComponent, NOTES_MAX_LENGTH, NotesComponent, OptionCardComponent, PHONE_NUMBER_AREA_CODE_LENGTH, PHONE_NUMBER_ZIP_LENGTH, PageComponent, PaginationComponent, PanelInfoListComponent, PasswordRequirementsComponent, PdfHotspotComponent, PhoneNumberPickerComponent, PillTabsComponent, ProgressBarComponent, ProgressRingComponent, QrCodeComponent, QuickFilterTabsComponent, RICH_TEXT_OPTIONS, RadioComponent, RadioGroupComponent, RadioMatrixComponent, RadioOptionContentDirective, ReadonlyFieldsetComponent, RichTextEditorComponent, SEMANTIC_BADGE_MAP, SETUP_DONE_KEY, SETUP_INTEGRATIONS, SearchInputComponent, SectionHeaderComponent, SelectComponent, SetupWizardComponent, SetupWizardStepDirective, SetupWizardStepHeaderDirective, ShowComponent, SidePanelComponent, SidebarLayoutComponent, SignaturePadComponent, SkeletonComponent, StackComponent, StarComponent, StepperComponent, TableToolbarComponent, TextComponent, TextInputComponent, TextareaInputComponent, TimeInputComponent, TimelineComponent, ToastComponent, ToastService, ToggleBadgeComponent, ToggleComponent, TooltipDirective, US_STATES, UiFieldValidity, acceptLabel, appShellGroupsStorageKey, autoVariant, blockHasContent, buildDefaultSchedule, buildPreviewDocument, buildVideoBlockHtml, builtInActionIcon, businessTimeOptions, createFieldReveal, decodeFilterValues, digitsOnly, downloadBlob, encodeFilterValue, encodeFilterValues, errorContextInterceptor, escapeHtml, fileMatchesAccept, formatAddress, formatCategoryLabel, formatCurrency, formatFileSize, formatIsoDate, formatIsoDateTime, formatTime, formatVideoDuration, getEligibleIds, getEligibleOptions, getErrorMessage, humanReadableMessage, iconPath, insideEditorBlock, integrationPlainText, integrationsForApp, integrationsOnlyFor, isBlockDrag, isValidEmailAddress, isWebUrl, isoKey, issueToErrors, maxLengthIssue, normalizeHexColor, parseBizHours, parseIso, parseTime, passwordMeetsRules, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours, serializedTextLength, setupIntegrations, splitIntro };
|
|
47174
|
+
export { ActionBarComponent, AlertComponent, AppShellComponent, AudioPlayerComponent, AvatarComponent, BADGE_VARIANT_STYLES, BadgeComponent, BarRowComponent, BoardCardDirective, BoardComponent, BulkMessagePanelComponent, BusinessHoursComponent, ButtonComponent, CalendarComponent, CardListItemComponent, CheckboxComponent, CheckboxTrailingDirective, ChipComponent, ChipGroupComponent, ColorInputComponent, ColumnFilterComponent, ColumnsComponent, ComboboxComponent, ConfirmOutletComponent, ConfirmService, ContactPickerComponent, DEFAULT_EMAIL_TEMPLATE_BLOCK_GROUPS, DEFAULT_EMAIL_TEMPLATE_VARIABLE_GROUPS, DEFAULT_PASSWORD_RULES, DROPDOWN_GROUP, DataTableComponent, DateInputComponent, DateRangePickerComponent, DatetimeInputComponent, DetailCardComponent, DiscountSelectorComponent, DividerComponent, DropdownComponent, EMAIL_BLOCK_DRAG_TYPE, EMAIL_TEMPLATE_MAX_BODY, EMAIL_TEMPLATE_MAX_TEXT, EMAIL_TEMPLATE_START_TEXT, EmailTemplateEditorComponent, EmptyStateComponent, ErrorComponent, ErrorStateComponent, FORGEROUTE_CONFIG, FadeComponent, FileInputComponent, FixedFooterComponent, FormColSpanDirective, FormComponent, FormRowComponent, FormSectionComponent, HintComponent, IDX_BEHAVIOR_SIGNALS, INTEGRATION_CATALOG, INTEGRATION_FIELD_DEFS, INTEGRATION_GROUP_ORDER, INTEGRATION_OPTION_DEFS, IconComponent, ImageComponent, ImageGalleryComponent, ImageGalleryDialogComponent, ImagePreviewComponent, ImageRepositionComponent, ImportExportComponent, ImportSourceGridComponent, KpiCardComponent, LAYOUT_GAP_PX, ListComponent, ListItemComponent, LiveRegionComponent, MAX_EMAIL_ADDRESS_LENGTH, ModalComponent, MoreMenuComponent, MultiSelectComponent, NOTES_MAX_LENGTH, NotesComponent, OptionCardComponent, PHONE_NUMBER_AREA_CODE_LENGTH, PHONE_NUMBER_ZIP_LENGTH, PageComponent, PaginationComponent, PanelInfoListComponent, PasswordRequirementsComponent, PdfHotspotComponent, PhoneNumberPickerComponent, PillTabsComponent, ProgressBarComponent, ProgressRingComponent, QrCodeComponent, QuickFilterTabsComponent, RICH_TEXT_OPTIONS, RadioComponent, RadioGroupComponent, RadioMatrixComponent, RadioOptionContentDirective, ReadonlyFieldsetComponent, RichTextEditorComponent, SEMANTIC_BADGE_MAP, SETUP_DONE_KEY, SETUP_INTEGRATIONS, SearchInputComponent, SectionHeaderComponent, SelectComponent, SetupWizardComponent, SetupWizardStepDirective, SetupWizardStepHeaderDirective, ShowComponent, SidePanelComponent, SidebarLayoutComponent, SignaturePadComponent, SkeletonComponent, StackComponent, StarComponent, StepperComponent, TableToolbarComponent, TextComponent, TextInputComponent, TextareaInputComponent, TimeInputComponent, TimelineComponent, ToastComponent, ToastService, ToggleBadgeComponent, ToggleComponent, TooltipDirective, US_STATES, UiFieldValidity, acceptLabel, appShellGroupsStorageKey, autoVariant, blockHasContent, buildDefaultSchedule, buildPreviewDocument, buildVideoBlockHtml, builtInActionIcon, businessTimeOptions, createFieldReveal, decodeFilterValues, digitsOnly, downloadBlob, encodeFilterValue, encodeFilterValues, errorContextInterceptor, escapeHtml, fileMatchesAccept, formatAddress, formatCategoryLabel, formatCurrency, formatFileSize, formatIsoDate, formatIsoDateTime, formatTime, formatVideoDuration, getEligibleIds, getEligibleOptions, getErrorMessage, humanReadableMessage, iconPath, insideEditorBlock, integrationPlainText, integrationsForApp, integrationsOnlyFor, isBlockDrag, isValidEmailAddress, isWebUrl, isoKey, issueToErrors, maxLengthIssue, normalizeHexColor, parseBizHours, parseIso, parseTime, passwordMeetsRules, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours, serializedTextLength, setupIntegrations, splitIntro };
|
|
46735
47175
|
|
|
46736
47176
|
//# sourceMappingURL=forgeroute-ui.mjs.map
|