@forgeroute/ui 0.4.72 → 0.4.73
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 +11 -2
- package/fesm2022/forgeroute-ui-messaging.mjs.map +1 -1
- package/fesm2022/forgeroute-ui-pdf.mjs +2 -0
- package/fesm2022/forgeroute-ui-pdf.mjs.map +1 -1
- package/fesm2022/forgeroute-ui-stripe.mjs +4 -0
- package/fesm2022/forgeroute-ui-stripe.mjs.map +1 -1
- package/fesm2022/forgeroute-ui.mjs +883 -170
- package/fesm2022/forgeroute-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/forgeroute-ui-messaging.d.ts +1 -1
- package/types/forgeroute-ui-stripe.d.ts +1 -1
- package/types/forgeroute-ui.d.ts +389 -29
|
@@ -3827,6 +3827,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3827
3827
|
}
|
|
3828
3828
|
});
|
|
3829
3829
|
var ButtonComponent = class ButtonComponent {
|
|
3830
|
+
focus(options) {
|
|
3831
|
+
this._hostEl.nativeElement.querySelector("button.btn, a.btn")?.focus(options);
|
|
3832
|
+
}
|
|
3830
3833
|
constructor() {
|
|
3831
3834
|
this.variant = input("primary", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
|
|
3832
3835
|
this.routerLink = input(null, ...ngDevMode ? [{ debugName: "routerLink" }] : /* istanbul ignore next */ []);
|
|
@@ -3878,6 +3881,7 @@ var ButtonComponent = class ButtonComponent {
|
|
|
3878
3881
|
this.ariaExpanded = input(void 0, ...ngDevMode ? [{ debugName: "ariaExpanded" }] : /* istanbul ignore next */ []);
|
|
3879
3882
|
this.ariaPressed = input(void 0, ...ngDevMode ? [{ debugName: "ariaPressed" }] : /* istanbul ignore next */ []);
|
|
3880
3883
|
this.ariaDescribedBy = input(void 0, ...ngDevMode ? [{ debugName: "ariaDescribedBy" }] : /* istanbul ignore next */ []);
|
|
3884
|
+
this._hostEl = inject(ElementRef);
|
|
3881
3885
|
effect((onCleanup) => {
|
|
3882
3886
|
const below = this.shortBelow();
|
|
3883
3887
|
if (!this.shortLabel() || typeof below !== "number" || !Number.isFinite(below) || typeof window === "undefined" || typeof window.matchMedia !== "function") {
|
|
@@ -4640,8 +4644,12 @@ const EXTRA_ICONS = {
|
|
|
4640
4644
|
"bank": "M3 21h18 M3 10h18 M5 6l7-3 7 3 M4 10v11 M20 10v11 M8 14v3 M12 14v3 M16 14v3",
|
|
4641
4645
|
"unlink": "M18.84 12.25l1.72-1.71a5 5 0 0 0-7.07-7.07l-1.72 1.71 M5.17 11.75l-1.72 1.71a5 5 0 0 0 7.07 7.07l1.71-1.71 M3 3l18 18",
|
|
4642
4646
|
"send": "M22 2L11 13 M22 2l-7 20-4-9-9-4 20-7z",
|
|
4643
|
-
"refresh": "M23 4v6h-6 M1 20v-6h6 M3.51 9a9 9 0 0 1 14.85-3.36L23 10 M1 14l4.64 4.36A9 9 0 0 0 20.49 15"
|
|
4647
|
+
"refresh": "M23 4v6h-6 M1 20v-6h6 M3.51 9a9 9 0 0 1 14.85-3.36L23 10 M1 14l4.64 4.36A9 9 0 0 0 20.49 15",
|
|
4648
|
+
"search": "M11 3a8 8 0 1 0 0 16 8 8 0 0 0 0-16z M21 21l-4.35-4.35",
|
|
4649
|
+
"cup": "M18 8h1a4 4 0 0 1 0 8h-1 M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z M6 1v3 M10 1v3 M14 1v3",
|
|
4650
|
+
"wrench": "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"
|
|
4644
4651
|
};
|
|
4652
|
+
const ICON_NAMES = Object.freeze(Object.keys(EXTRA_ICONS));
|
|
4645
4653
|
function iconPath(name) {
|
|
4646
4654
|
return Object.prototype.hasOwnProperty.call(EXTRA_ICONS, name) ? EXTRA_ICONS[name] : builtInActionIcon(name);
|
|
4647
4655
|
}
|
|
@@ -5063,6 +5071,9 @@ var TextInputComponent = class TextInputComponent {
|
|
|
5063
5071
|
static {
|
|
5064
5072
|
this._EMAIL_RE = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
5065
5073
|
}
|
|
5074
|
+
focus(options) {
|
|
5075
|
+
this._fieldEl()?.nativeElement.focus(options);
|
|
5076
|
+
}
|
|
5066
5077
|
constructor() {
|
|
5067
5078
|
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
5068
5079
|
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
@@ -5070,6 +5081,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
5070
5081
|
this.inputName = input("", ...ngDevMode ? [{ debugName: "inputName" }] : /* istanbul ignore next */ []);
|
|
5071
5082
|
this.placeholder = input("", ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
|
|
5072
5083
|
this.prefix = input("", ...ngDevMode ? [{ debugName: "prefix" }] : /* istanbul ignore next */ []);
|
|
5084
|
+
this.leadingIcon = input("", ...ngDevMode ? [{ debugName: "leadingIcon" }] : /* istanbul ignore next */ []);
|
|
5073
5085
|
this.revealable = input(false, ...ngDevMode ? [{ debugName: "revealable" }] : /* istanbul ignore next */ []);
|
|
5074
5086
|
this.passwordRequirements = input(false, ...ngDevMode ? [{ debugName: "passwordRequirements" }] : /* istanbul ignore next */ []);
|
|
5075
5087
|
this.passwordRules = input(void 0, ...ngDevMode ? [{ debugName: "passwordRules" }] : /* istanbul ignore next */ []);
|
|
@@ -5103,7 +5115,16 @@ var TextInputComponent = class TextInputComponent {
|
|
|
5103
5115
|
this.disabled = computed(() => this._disabledInput() || this._cvaDisabled(), ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
5104
5116
|
this._value = signal("", ...ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []);
|
|
5105
5117
|
this._reveal = createFieldReveal(this.showErrors);
|
|
5106
|
-
this.
|
|
5118
|
+
this._leadingD = computed(() => {
|
|
5119
|
+
const key = this.leadingIcon().trim();
|
|
5120
|
+
return key ? iconPath(key) ?? null : null;
|
|
5121
|
+
}, ...ngDevMode ? [{ debugName: "_leadingD" }] : /* istanbul ignore next */ []);
|
|
5122
|
+
this._prefixPadding = computed(() => {
|
|
5123
|
+
const icon = !!this._leadingD();
|
|
5124
|
+
if (this.prefix()) return icon ? `calc(36px + ${this.prefix().length}ch + 6px)` : `calc(12px + ${this.prefix().length}ch + 6px)`;
|
|
5125
|
+
return icon ? "36px" : null;
|
|
5126
|
+
}, ...ngDevMode ? [{ debugName: "_prefixPadding" }] : /* istanbul ignore next */ []);
|
|
5127
|
+
this._fieldEl = viewChild("field", ...ngDevMode ? [{ debugName: "_fieldEl" }] : /* istanbul ignore next */ []);
|
|
5107
5128
|
this._numeric = computed(() => this.valueType() === "number" && this.type() === "number", ...ngDevMode ? [{ debugName: "_numeric" }] : /* istanbul ignore next */ []);
|
|
5108
5129
|
this._stepAttr = computed(() => {
|
|
5109
5130
|
const step = this.step();
|
|
@@ -5348,6 +5369,13 @@ var TextInputComponent = class TextInputComponent {
|
|
|
5348
5369
|
isRequired: false,
|
|
5349
5370
|
transformFunction: null
|
|
5350
5371
|
},
|
|
5372
|
+
leadingIcon: {
|
|
5373
|
+
classPropertyName: "leadingIcon",
|
|
5374
|
+
publicName: "leadingIcon",
|
|
5375
|
+
isSignal: true,
|
|
5376
|
+
isRequired: false,
|
|
5377
|
+
transformFunction: null
|
|
5378
|
+
},
|
|
5351
5379
|
revealable: {
|
|
5352
5380
|
classPropertyName: "revealable",
|
|
5353
5381
|
publicName: "revealable",
|
|
@@ -5525,11 +5553,18 @@ var TextInputComponent = class TextInputComponent {
|
|
|
5525
5553
|
useExisting: forwardRef(() => TextInputComponent)
|
|
5526
5554
|
}
|
|
5527
5555
|
],
|
|
5556
|
+
viewQueries: [{
|
|
5557
|
+
propertyName: "_fieldEl",
|
|
5558
|
+
first: true,
|
|
5559
|
+
predicate: ["field"],
|
|
5560
|
+
descendants: true,
|
|
5561
|
+
isSignal: true
|
|
5562
|
+
}],
|
|
5528
5563
|
usesOnChanges: true,
|
|
5529
5564
|
ngImport: i0,
|
|
5530
5565
|
template: `
|
|
5531
5566
|
<div class="ti-field" [class.ti-error]="_activeError()" [class.ti-disabled]="disabled()"
|
|
5532
|
-
[class.ti-prefixed]="!!prefix() || _revealable()" [style.--ti-input-row]="(prefix() || _revealable()) ? (label() ? 2 : 1) : null">
|
|
5567
|
+
[class.ti-prefixed]="!!prefix() || _revealable() || !!_leadingD()" [style.--ti-input-row]="(prefix() || _revealable() || _leadingD()) ? (label() ? 2 : 1) : null">
|
|
5533
5568
|
@if (label()) {
|
|
5534
5569
|
<div class="ti-label-row">
|
|
5535
5570
|
<label class="ti-label" [for]="_inputId">
|
|
@@ -5540,6 +5575,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
5540
5575
|
</div>
|
|
5541
5576
|
}
|
|
5542
5577
|
<input
|
|
5578
|
+
#field
|
|
5543
5579
|
class="ti-input"
|
|
5544
5580
|
[style.padding-left]="_prefixPadding()"
|
|
5545
5581
|
[style.padding-right]="_revealable() ? '44px' : null"
|
|
@@ -5563,9 +5599,13 @@ var TextInputComponent = class TextInputComponent {
|
|
|
5563
5599
|
(focus)="onFocus()"
|
|
5564
5600
|
(blur)="onBlur()"
|
|
5565
5601
|
/>
|
|
5602
|
+
@if (_leadingD(); as d) {
|
|
5603
|
+
<!-- Optional leading icon (library source 2026-11-04): decorative, laid over the input's left padding by the same grid as the prefix. -->
|
|
5604
|
+
<svg class="ti-leading-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="d" /></svg>
|
|
5605
|
+
}
|
|
5566
5606
|
@if (prefix()) {
|
|
5567
5607
|
<!-- Optional leading mark ("$"): a sibling after the input, laid over it by the grid of .ti-prefixed, so toggling it never recreates the input (focus and caret stay). -->
|
|
5568
|
-
<span class="ti-prefix" aria-hidden="true">{{ prefix() }}</span>
|
|
5608
|
+
<span class="ti-prefix" aria-hidden="true" [style.margin-left]="_leadingD() ? '36px' : null">{{ prefix() }}</span>
|
|
5569
5609
|
}
|
|
5570
5610
|
@if (_revealable()) {
|
|
5571
5611
|
<!-- Show / hide toggle laid over the end of the input by the grid of .ti-prefixed. The name stays "Show password"; aria-pressed carries the state. -->
|
|
@@ -5587,7 +5627,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
5587
5627
|
</div>
|
|
5588
5628
|
`,
|
|
5589
5629
|
isInline: true,
|
|
5590
|
-
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ti-required{color:#dc2626;margin-left:2px}.ti-prefixed{display:grid;grid-template-columns:minmax(0,1fr)}.ti-prefixed .ti-input{grid-row:var(--ti-input-row);grid-column:1}.ti-prefix{grid-row:var(--ti-input-row);grid-column:1;justify-self:start;align-self:center;margin-left:12px;font-size:.875rem;line-height:1;color:#64748b;pointer-events:none}@media(pointer:coarse),(max-width:480px){.ti-prefix{font-size:1rem}}.ti-disabled .ti-prefix{opacity:.5}.ti-reveal{grid-row:var(--ti-input-row);grid-column:1;justify-self:end;align-self:center;margin-right:6px;position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:#64748b;cursor:pointer}.ti-reveal:hover:not(:disabled){color:#1e293b;background:#f1f5f9}.ti-reveal:focus-visible{outline:2px solid #3b82f6;outline-offset:0}.ti-reveal:disabled{opacity:.5;cursor:not-allowed}@media(pointer:coarse),(max-width:480px){.ti-reveal{width:44px;height:44px;margin-right:0}}.ti-input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #7c8ba1;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.ti-input::placeholder{color:#64748b;opacity:1}.ti-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.ti-input:read-only{background:#f8fafc;cursor:default}.ti-error .ti-input{border-color:#ef4444}.ti-error .ti-input:focus{box-shadow:0 0 0 3px #ef44441f}.ti-disabled .ti-input{opacity:.5;cursor:not-allowed}.ti-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.ti-desc-error{color:#dc2626}@media(pointer:coarse),(max-width:480px){.ti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.ti-input{min-height:44px}}\n"],
|
|
5630
|
+
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ti-required{color:#dc2626;margin-left:2px}.ti-prefixed{display:grid;grid-template-columns:minmax(0,1fr)}.ti-prefixed .ti-input{grid-row:var(--ti-input-row);grid-column:1}.ti-prefix{grid-row:var(--ti-input-row);grid-column:1;justify-self:start;align-self:center;margin-left:12px;font-size:.875rem;line-height:1;color:#64748b;pointer-events:none}@media(pointer:coarse),(max-width:480px){.ti-prefix{font-size:1rem}}.ti-disabled .ti-prefix{opacity:.5}.ti-leading-icon{grid-row:var(--ti-input-row);grid-column:1;justify-self:start;align-self:center;margin-left:12px;color:#64748b;pointer-events:none}.ti-disabled .ti-leading-icon{opacity:.5}.ti-reveal{grid-row:var(--ti-input-row);grid-column:1;justify-self:end;align-self:center;margin-right:6px;position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:#64748b;cursor:pointer}.ti-reveal:hover:not(:disabled){color:#1e293b;background:#f1f5f9}.ti-reveal:focus-visible{outline:2px solid #3b82f6;outline-offset:0}.ti-reveal:disabled{opacity:.5;cursor:not-allowed}@media(pointer:coarse),(max-width:480px){.ti-reveal{width:44px;height:44px;margin-right:0}}.ti-input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #7c8ba1;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.ti-input::placeholder{color:#64748b;opacity:1}.ti-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.ti-input:read-only{background:#f8fafc;cursor:default}.ti-error .ti-input{border-color:#ef4444}.ti-error .ti-input:focus{box-shadow:0 0 0 3px #ef44441f}.ti-disabled .ti-input{opacity:.5;cursor:not-allowed}.ti-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.ti-desc-error{color:#dc2626}@media(pointer:coarse),(max-width:480px){.ti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.ti-input{min-height:44px}}\n"],
|
|
5591
5631
|
dependencies: [{
|
|
5592
5632
|
kind: "component",
|
|
5593
5633
|
type: PasswordRequirementsComponent,
|
|
@@ -5632,7 +5672,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5632
5672
|
],
|
|
5633
5673
|
template: `
|
|
5634
5674
|
<div class="ti-field" [class.ti-error]="_activeError()" [class.ti-disabled]="disabled()"
|
|
5635
|
-
[class.ti-prefixed]="!!prefix() || _revealable()" [style.--ti-input-row]="(prefix() || _revealable()) ? (label() ? 2 : 1) : null">
|
|
5675
|
+
[class.ti-prefixed]="!!prefix() || _revealable() || !!_leadingD()" [style.--ti-input-row]="(prefix() || _revealable() || _leadingD()) ? (label() ? 2 : 1) : null">
|
|
5636
5676
|
@if (label()) {
|
|
5637
5677
|
<div class="ti-label-row">
|
|
5638
5678
|
<label class="ti-label" [for]="_inputId">
|
|
@@ -5643,6 +5683,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5643
5683
|
</div>
|
|
5644
5684
|
}
|
|
5645
5685
|
<input
|
|
5686
|
+
#field
|
|
5646
5687
|
class="ti-input"
|
|
5647
5688
|
[style.padding-left]="_prefixPadding()"
|
|
5648
5689
|
[style.padding-right]="_revealable() ? '44px' : null"
|
|
@@ -5666,9 +5707,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5666
5707
|
(focus)="onFocus()"
|
|
5667
5708
|
(blur)="onBlur()"
|
|
5668
5709
|
/>
|
|
5710
|
+
@if (_leadingD(); as d) {
|
|
5711
|
+
<!-- Optional leading icon (library source 2026-11-04): decorative, laid over the input's left padding by the same grid as the prefix. -->
|
|
5712
|
+
<svg class="ti-leading-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="d" /></svg>
|
|
5713
|
+
}
|
|
5669
5714
|
@if (prefix()) {
|
|
5670
5715
|
<!-- Optional leading mark ("$"): a sibling after the input, laid over it by the grid of .ti-prefixed, so toggling it never recreates the input (focus and caret stay). -->
|
|
5671
|
-
<span class="ti-prefix" aria-hidden="true">{{ prefix() }}</span>
|
|
5716
|
+
<span class="ti-prefix" aria-hidden="true" [style.margin-left]="_leadingD() ? '36px' : null">{{ prefix() }}</span>
|
|
5672
5717
|
}
|
|
5673
5718
|
@if (_revealable()) {
|
|
5674
5719
|
<!-- Show / hide toggle laid over the end of the input by the grid of .ti-prefixed. The name stays "Show password"; aria-pressed carries the state. -->
|
|
@@ -5689,7 +5734,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5689
5734
|
}
|
|
5690
5735
|
</div>
|
|
5691
5736
|
`,
|
|
5692
|
-
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ti-required{color:#dc2626;margin-left:2px}.ti-prefixed{display:grid;grid-template-columns:minmax(0,1fr)}.ti-prefixed .ti-input{grid-row:var(--ti-input-row);grid-column:1}.ti-prefix{grid-row:var(--ti-input-row);grid-column:1;justify-self:start;align-self:center;margin-left:12px;font-size:.875rem;line-height:1;color:#64748b;pointer-events:none}@media(pointer:coarse),(max-width:480px){.ti-prefix{font-size:1rem}}.ti-disabled .ti-prefix{opacity:.5}.ti-reveal{grid-row:var(--ti-input-row);grid-column:1;justify-self:end;align-self:center;margin-right:6px;position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:#64748b;cursor:pointer}.ti-reveal:hover:not(:disabled){color:#1e293b;background:#f1f5f9}.ti-reveal:focus-visible{outline:2px solid #3b82f6;outline-offset:0}.ti-reveal:disabled{opacity:.5;cursor:not-allowed}@media(pointer:coarse),(max-width:480px){.ti-reveal{width:44px;height:44px;margin-right:0}}.ti-input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #7c8ba1;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.ti-input::placeholder{color:#64748b;opacity:1}.ti-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.ti-input:read-only{background:#f8fafc;cursor:default}.ti-error .ti-input{border-color:#ef4444}.ti-error .ti-input:focus{box-shadow:0 0 0 3px #ef44441f}.ti-disabled .ti-input{opacity:.5;cursor:not-allowed}.ti-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.ti-desc-error{color:#dc2626}@media(pointer:coarse),(max-width:480px){.ti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.ti-input{min-height:44px}}\n"]
|
|
5737
|
+
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ti-required{color:#dc2626;margin-left:2px}.ti-prefixed{display:grid;grid-template-columns:minmax(0,1fr)}.ti-prefixed .ti-input{grid-row:var(--ti-input-row);grid-column:1}.ti-prefix{grid-row:var(--ti-input-row);grid-column:1;justify-self:start;align-self:center;margin-left:12px;font-size:.875rem;line-height:1;color:#64748b;pointer-events:none}@media(pointer:coarse),(max-width:480px){.ti-prefix{font-size:1rem}}.ti-disabled .ti-prefix{opacity:.5}.ti-leading-icon{grid-row:var(--ti-input-row);grid-column:1;justify-self:start;align-self:center;margin-left:12px;color:#64748b;pointer-events:none}.ti-disabled .ti-leading-icon{opacity:.5}.ti-reveal{grid-row:var(--ti-input-row);grid-column:1;justify-self:end;align-self:center;margin-right:6px;position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:#64748b;cursor:pointer}.ti-reveal:hover:not(:disabled){color:#1e293b;background:#f1f5f9}.ti-reveal:focus-visible{outline:2px solid #3b82f6;outline-offset:0}.ti-reveal:disabled{opacity:.5;cursor:not-allowed}@media(pointer:coarse),(max-width:480px){.ti-reveal{width:44px;height:44px;margin-right:0}}.ti-input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #7c8ba1;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.ti-input::placeholder{color:#64748b;opacity:1}.ti-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.ti-input:read-only{background:#f8fafc;cursor:default}.ti-error .ti-input{border-color:#ef4444}.ti-error .ti-input:focus{box-shadow:0 0 0 3px #ef44441f}.ti-disabled .ti-input{opacity:.5;cursor:not-allowed}.ti-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.ti-desc-error{color:#dc2626}@media(pointer:coarse),(max-width:480px){.ti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.ti-input{min-height:44px}}\n"]
|
|
5693
5738
|
}]
|
|
5694
5739
|
}],
|
|
5695
5740
|
ctorParameters: () => [],
|
|
@@ -5742,6 +5787,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5742
5787
|
required: false
|
|
5743
5788
|
}]
|
|
5744
5789
|
}],
|
|
5790
|
+
leadingIcon: [{
|
|
5791
|
+
type: i0.Input,
|
|
5792
|
+
args: [{
|
|
5793
|
+
isSignal: true,
|
|
5794
|
+
alias: "leadingIcon",
|
|
5795
|
+
required: false
|
|
5796
|
+
}]
|
|
5797
|
+
}],
|
|
5745
5798
|
revealable: [{
|
|
5746
5799
|
type: i0.Input,
|
|
5747
5800
|
args: [{
|
|
@@ -5933,6 +5986,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5933
5986
|
alias: "disabled",
|
|
5934
5987
|
required: false
|
|
5935
5988
|
}]
|
|
5989
|
+
}],
|
|
5990
|
+
_fieldEl: [{
|
|
5991
|
+
type: i0.ViewChild,
|
|
5992
|
+
args: ["field", { isSignal: true }]
|
|
5936
5993
|
}]
|
|
5937
5994
|
}
|
|
5938
5995
|
});
|
|
@@ -6274,7 +6331,7 @@ var TableToolbarComponent = class TableToolbarComponent {
|
|
|
6274
6331
|
</ui-modal>
|
|
6275
6332
|
`,
|
|
6276
6333
|
isInline: true,
|
|
6277
|
-
styles: [":host{display:inline-flex;max-width:100%}.toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.toolbar-item{position:relative}.toolbar-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#334155;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .1s,border-color .1s}.toolbar-btn:hover{background:#f8fafc}.toolbar-btn.toolbar-btn-active{border-color:#1e293b;background:#f8fafc}.toolbar-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.toolbar-badge{display:inline-flex;align-items:center;justify-content:center;background:#1e293b;color:#fff;border-radius:999px;font-size:.625rem;font-weight:700;min-width:16px;height:16px;padding:0 4px}.toolbar-primary-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;border:none;background:#2563eb;color:#fff;font-size:.8125rem;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .1s}.toolbar-primary-btn:hover{background:#1d4ed8}.toolbar-primary-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.more-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:200;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 4px 6px #0000000a,0 12px 28px #0000001a;min-width:200px;overflow:hidden}.more-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:none;border:none;border-bottom:1px solid #f1f5f9;font-size:.875rem;color:#1e293b;font-family:inherit;text-align:left;cursor:pointer;transition:background .1s}.more-option:last-child{border-bottom:none}.more-option:hover{background:#f8fafc}.more-option:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.more-badge{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;background:#1e293b;color:#fff;border-radius:999px;font-size:.625rem;font-weight:700;min-width:16px;height:16px;padding:0 4px}.more-divider{height:1px;background:#f1f5f9;margin:2px 0}.more-view-name{font-size:.75rem;color:#64748b;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-list{display:grid;grid-template-columns:1fr 1fr;max-height:340px;overflow-y:auto}@media(max-width:480px){.col-list{grid-template-columns:1fr}}@media(max-width:1024px){.toolbar-btn{padding:8px 12px}.toolbar-primary-btn{padding:8px 14px}}@media(pointer:coarse){.toolbar-btn,.toolbar-primary-btn{min-height:44px}}@media(max-width:640px){:host{display:flex;width:100
|
|
6334
|
+
styles: [":host{display:inline-flex;max-width:100%}.toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.toolbar-item{position:relative}.toolbar-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#334155;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .1s,border-color .1s}.toolbar-btn:hover{background:#f8fafc}.toolbar-btn.toolbar-btn-active{border-color:#1e293b;background:#f8fafc}.toolbar-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.toolbar-badge{display:inline-flex;align-items:center;justify-content:center;background:#1e293b;color:#fff;border-radius:999px;font-size:.625rem;font-weight:700;min-width:16px;height:16px;padding:0 4px}.toolbar-primary-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;border:none;background:#2563eb;color:#fff;font-size:.8125rem;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .1s}.toolbar-primary-btn:hover{background:#1d4ed8}.toolbar-primary-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.more-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:200;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 4px 6px #0000000a,0 12px 28px #0000001a;min-width:200px;overflow:hidden}.more-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:none;border:none;border-bottom:1px solid #f1f5f9;font-size:.875rem;color:#1e293b;font-family:inherit;text-align:left;cursor:pointer;transition:background .1s}.more-option:last-child{border-bottom:none}.more-option:hover{background:#f8fafc}.more-option:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.more-badge{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;background:#1e293b;color:#fff;border-radius:999px;font-size:.625rem;font-weight:700;min-width:16px;height:16px;padding:0 4px}.more-divider{height:1px;background:#f1f5f9;margin:2px 0}.more-view-name{font-size:.75rem;color:#64748b;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-list{display:grid;grid-template-columns:1fr 1fr;max-height:340px;overflow-y:auto}@media(max-width:480px){.col-list{grid-template-columns:1fr}}@media(max-width:1024px){.toolbar-btn{padding:8px 12px}.toolbar-primary-btn{padding:8px 14px}}@media(pointer:coarse){.toolbar-btn,.toolbar-primary-btn{min-height:44px}}@media(max-width:640px){:host{display:flex;width:100%;min-width:0}.toolbar{width:100%;min-width:0;justify-content:flex-end;flex-wrap:wrap}.toolbar-btn{padding:10px 12px;font-size:.8125rem;min-height:44px}.toolbar-primary-btn{padding:10px 14px;font-size:.8125rem;min-height:44px}.toolbar-btn,.toolbar-primary-btn{max-width:100%;white-space:normal;text-align:center;justify-content:center;line-height:1.25;overflow-wrap:anywhere}.toolbar-item{min-width:0;max-width:100%;display:flex}.more-dropdown{max-height:calc(100vh - 140px);overflow-y:auto}.more-option{padding:12px 16px;font-size:.9375rem}}.col-option{display:flex;padding:9px 4px;border-bottom:1px solid #f1f5f9;transition:background .1s;border-radius:6px}.col-option:hover{background:#f8fafc}.col-option:nth-last-child(-n+2){border-bottom:none}.view-list{max-height:360px;overflow-y:auto;margin:0 -24px}.view-empty{padding:16px 24px;font-size:.9rem;color:#94a3b8;margin:0}.view-option{display:flex;align-items:center;padding-right:16px;border-bottom:1px solid #f1f5f9;transition:background .1s}.view-option:last-child{border-bottom:none}.view-option:hover{background:#f8fafc}.view-option.view-active{background:#eff6ff}.view-select-btn{flex:1;padding:12px 8px 12px 24px;background:none;border:none;font-size:.9rem;color:#334155;cursor:pointer;font-family:inherit;text-align:left}.view-delete-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:5px;background:none;border:none;cursor:pointer;color:#94a3b8}.view-delete-btn:hover{color:#dc2626;background:#fef2f2}\n"],
|
|
6278
6335
|
dependencies: [
|
|
6279
6336
|
{
|
|
6280
6337
|
kind: "ngmodule",
|
|
@@ -6398,6 +6455,7 @@ var TableToolbarComponent = class TableToolbarComponent {
|
|
|
6398
6455
|
"inputName",
|
|
6399
6456
|
"placeholder",
|
|
6400
6457
|
"prefix",
|
|
6458
|
+
"leadingIcon",
|
|
6401
6459
|
"revealable",
|
|
6402
6460
|
"passwordRequirements",
|
|
6403
6461
|
"passwordRules",
|
|
@@ -6594,7 +6652,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
6594
6652
|
<ui-button modal-footer-right variant="primary" size="sm" [disabled]="!_saveViewName.trim()" (click)="confirmSaveName()"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"/></svg> Save</ui-button>
|
|
6595
6653
|
</ui-modal>
|
|
6596
6654
|
`,
|
|
6597
|
-
styles: [":host{display:inline-flex;max-width:100%}.toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.toolbar-item{position:relative}.toolbar-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#334155;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .1s,border-color .1s}.toolbar-btn:hover{background:#f8fafc}.toolbar-btn.toolbar-btn-active{border-color:#1e293b;background:#f8fafc}.toolbar-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.toolbar-badge{display:inline-flex;align-items:center;justify-content:center;background:#1e293b;color:#fff;border-radius:999px;font-size:.625rem;font-weight:700;min-width:16px;height:16px;padding:0 4px}.toolbar-primary-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;border:none;background:#2563eb;color:#fff;font-size:.8125rem;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .1s}.toolbar-primary-btn:hover{background:#1d4ed8}.toolbar-primary-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.more-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:200;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 4px 6px #0000000a,0 12px 28px #0000001a;min-width:200px;overflow:hidden}.more-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:none;border:none;border-bottom:1px solid #f1f5f9;font-size:.875rem;color:#1e293b;font-family:inherit;text-align:left;cursor:pointer;transition:background .1s}.more-option:last-child{border-bottom:none}.more-option:hover{background:#f8fafc}.more-option:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.more-badge{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;background:#1e293b;color:#fff;border-radius:999px;font-size:.625rem;font-weight:700;min-width:16px;height:16px;padding:0 4px}.more-divider{height:1px;background:#f1f5f9;margin:2px 0}.more-view-name{font-size:.75rem;color:#64748b;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-list{display:grid;grid-template-columns:1fr 1fr;max-height:340px;overflow-y:auto}@media(max-width:480px){.col-list{grid-template-columns:1fr}}@media(max-width:1024px){.toolbar-btn{padding:8px 12px}.toolbar-primary-btn{padding:8px 14px}}@media(pointer:coarse){.toolbar-btn,.toolbar-primary-btn{min-height:44px}}@media(max-width:640px){:host{display:flex;width:100
|
|
6655
|
+
styles: [":host{display:inline-flex;max-width:100%}.toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.toolbar-item{position:relative}.toolbar-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#334155;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .1s,border-color .1s}.toolbar-btn:hover{background:#f8fafc}.toolbar-btn.toolbar-btn-active{border-color:#1e293b;background:#f8fafc}.toolbar-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.toolbar-badge{display:inline-flex;align-items:center;justify-content:center;background:#1e293b;color:#fff;border-radius:999px;font-size:.625rem;font-weight:700;min-width:16px;height:16px;padding:0 4px}.toolbar-primary-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;border:none;background:#2563eb;color:#fff;font-size:.8125rem;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .1s}.toolbar-primary-btn:hover{background:#1d4ed8}.toolbar-primary-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.more-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:200;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 4px 6px #0000000a,0 12px 28px #0000001a;min-width:200px;overflow:hidden}.more-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:none;border:none;border-bottom:1px solid #f1f5f9;font-size:.875rem;color:#1e293b;font-family:inherit;text-align:left;cursor:pointer;transition:background .1s}.more-option:last-child{border-bottom:none}.more-option:hover{background:#f8fafc}.more-option:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.more-badge{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;background:#1e293b;color:#fff;border-radius:999px;font-size:.625rem;font-weight:700;min-width:16px;height:16px;padding:0 4px}.more-divider{height:1px;background:#f1f5f9;margin:2px 0}.more-view-name{font-size:.75rem;color:#64748b;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-list{display:grid;grid-template-columns:1fr 1fr;max-height:340px;overflow-y:auto}@media(max-width:480px){.col-list{grid-template-columns:1fr}}@media(max-width:1024px){.toolbar-btn{padding:8px 12px}.toolbar-primary-btn{padding:8px 14px}}@media(pointer:coarse){.toolbar-btn,.toolbar-primary-btn{min-height:44px}}@media(max-width:640px){:host{display:flex;width:100%;min-width:0}.toolbar{width:100%;min-width:0;justify-content:flex-end;flex-wrap:wrap}.toolbar-btn{padding:10px 12px;font-size:.8125rem;min-height:44px}.toolbar-primary-btn{padding:10px 14px;font-size:.8125rem;min-height:44px}.toolbar-btn,.toolbar-primary-btn{max-width:100%;white-space:normal;text-align:center;justify-content:center;line-height:1.25;overflow-wrap:anywhere}.toolbar-item{min-width:0;max-width:100%;display:flex}.more-dropdown{max-height:calc(100vh - 140px);overflow-y:auto}.more-option{padding:12px 16px;font-size:.9375rem}}.col-option{display:flex;padding:9px 4px;border-bottom:1px solid #f1f5f9;transition:background .1s;border-radius:6px}.col-option:hover{background:#f8fafc}.col-option:nth-last-child(-n+2){border-bottom:none}.view-list{max-height:360px;overflow-y:auto;margin:0 -24px}.view-empty{padding:16px 24px;font-size:.9rem;color:#94a3b8;margin:0}.view-option{display:flex;align-items:center;padding-right:16px;border-bottom:1px solid #f1f5f9;transition:background .1s}.view-option:last-child{border-bottom:none}.view-option:hover{background:#f8fafc}.view-option.view-active{background:#eff6ff}.view-select-btn{flex:1;padding:12px 8px 12px 24px;background:none;border:none;font-size:.9rem;color:#334155;cursor:pointer;font-family:inherit;text-align:left}.view-delete-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:5px;background:none;border:none;cursor:pointer;color:#94a3b8}.view-delete-btn:hover{color:#dc2626;background:#fef2f2}\n"]
|
|
6598
6656
|
}]
|
|
6599
6657
|
}],
|
|
6600
6658
|
propDecorators: {
|
|
@@ -7475,6 +7533,7 @@ var SelectComponent = class SelectComponent {
|
|
|
7475
7533
|
constructor() {
|
|
7476
7534
|
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
7477
7535
|
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
7536
|
+
this.labelHidden = input(false, ...ngDevMode ? [{ debugName: "labelHidden" }] : /* istanbul ignore next */ []);
|
|
7478
7537
|
this.inputName = input("", ...ngDevMode ? [{ debugName: "inputName" }] : /* istanbul ignore next */ []);
|
|
7479
7538
|
this.placeholder = input("", ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
|
|
7480
7539
|
this.options = input([], ...ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []);
|
|
@@ -7507,6 +7566,7 @@ var SelectComponent = class SelectComponent {
|
|
|
7507
7566
|
this._activeError = computed(() => this.error() || (this._reveal.revealed() ? this.errorMessage() : ""), ...ngDevMode ? [{ debugName: "_activeError" }] : /* istanbul ignore next */ []);
|
|
7508
7567
|
this._onValidatorChange = () => {};
|
|
7509
7568
|
this._selectId = `sl-${Math.random().toString(36).slice(2, 8)}`;
|
|
7569
|
+
this._hostEl = inject(ElementRef);
|
|
7510
7570
|
this._onChange = (_) => {};
|
|
7511
7571
|
this._warned = false;
|
|
7512
7572
|
this._onTouched = () => {};
|
|
@@ -7523,6 +7583,9 @@ var SelectComponent = class SelectComponent {
|
|
|
7523
7583
|
registerOnValidatorChange(fn) {
|
|
7524
7584
|
this._onValidatorChange = fn;
|
|
7525
7585
|
}
|
|
7586
|
+
focus(options) {
|
|
7587
|
+
this._hostEl.nativeElement.querySelector("select")?.focus(options);
|
|
7588
|
+
}
|
|
7526
7589
|
_norm(key) {
|
|
7527
7590
|
if (this.valueType() !== "number") return key;
|
|
7528
7591
|
const t = key.trim();
|
|
@@ -7611,6 +7674,13 @@ var SelectComponent = class SelectComponent {
|
|
|
7611
7674
|
isRequired: false,
|
|
7612
7675
|
transformFunction: null
|
|
7613
7676
|
},
|
|
7677
|
+
labelHidden: {
|
|
7678
|
+
classPropertyName: "labelHidden",
|
|
7679
|
+
publicName: "labelHidden",
|
|
7680
|
+
isSignal: true,
|
|
7681
|
+
isRequired: false,
|
|
7682
|
+
transformFunction: null
|
|
7683
|
+
},
|
|
7614
7684
|
inputName: {
|
|
7615
7685
|
classPropertyName: "inputName",
|
|
7616
7686
|
publicName: "inputName",
|
|
@@ -7713,7 +7783,7 @@ var SelectComponent = class SelectComponent {
|
|
|
7713
7783
|
ngImport: i0,
|
|
7714
7784
|
template: `
|
|
7715
7785
|
<div class="sl-field" [class.sl-error]="_activeError()" [class.sl-disabled]="disabled()">
|
|
7716
|
-
@if (label()) {
|
|
7786
|
+
@if (label() && !labelHidden()) {
|
|
7717
7787
|
<label class="sl-label" [for]="_selectId">
|
|
7718
7788
|
{{ label() }}
|
|
7719
7789
|
@if (required()) { <span class="sl-required" aria-hidden="true">*</span> }
|
|
@@ -7726,7 +7796,7 @@ var SelectComponent = class SelectComponent {
|
|
|
7726
7796
|
[attr.name]="inputName() || null"
|
|
7727
7797
|
[disabled]="disabled()"
|
|
7728
7798
|
[attr.required]="required() || null"
|
|
7729
|
-
[attr.aria-label]="ariaLabel() || null"
|
|
7799
|
+
[attr.aria-label]="ariaLabel() || (labelHidden() ? label() : '') || null"
|
|
7730
7800
|
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
7731
7801
|
[attr.aria-describedby]="_describedBy() || null"
|
|
7732
7802
|
(change)="onChange($event)"
|
|
@@ -7785,7 +7855,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
7785
7855
|
],
|
|
7786
7856
|
template: `
|
|
7787
7857
|
<div class="sl-field" [class.sl-error]="_activeError()" [class.sl-disabled]="disabled()">
|
|
7788
|
-
@if (label()) {
|
|
7858
|
+
@if (label() && !labelHidden()) {
|
|
7789
7859
|
<label class="sl-label" [for]="_selectId">
|
|
7790
7860
|
{{ label() }}
|
|
7791
7861
|
@if (required()) { <span class="sl-required" aria-hidden="true">*</span> }
|
|
@@ -7798,7 +7868,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
7798
7868
|
[attr.name]="inputName() || null"
|
|
7799
7869
|
[disabled]="disabled()"
|
|
7800
7870
|
[attr.required]="required() || null"
|
|
7801
|
-
[attr.aria-label]="ariaLabel() || null"
|
|
7871
|
+
[attr.aria-label]="ariaLabel() || (labelHidden() ? label() : '') || null"
|
|
7802
7872
|
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
7803
7873
|
[attr.aria-describedby]="_describedBy() || null"
|
|
7804
7874
|
(change)="onChange($event)"
|
|
@@ -7843,6 +7913,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
7843
7913
|
required: false
|
|
7844
7914
|
}]
|
|
7845
7915
|
}],
|
|
7916
|
+
labelHidden: [{
|
|
7917
|
+
type: i0.Input,
|
|
7918
|
+
args: [{
|
|
7919
|
+
isSignal: true,
|
|
7920
|
+
alias: "labelHidden",
|
|
7921
|
+
required: false
|
|
7922
|
+
}]
|
|
7923
|
+
}],
|
|
7846
7924
|
inputName: [{
|
|
7847
7925
|
type: i0.Input,
|
|
7848
7926
|
args: [{
|
|
@@ -7952,6 +8030,7 @@ var ToastService = class ToastService {
|
|
|
7952
8030
|
this.dismissible = signal(false, ...ngDevMode ? [{ debugName: "dismissible" }] : /* istanbul ignore next */ []);
|
|
7953
8031
|
this.persistentLiveRegion = signal(false, ...ngDevMode ? [{ debugName: "persistentLiveRegion" }] : /* istanbul ignore next */ []);
|
|
7954
8032
|
this.details = signal(null, ...ngDevMode ? [{ debugName: "details" }] : /* istanbul ignore next */ []);
|
|
8033
|
+
this.repeatTick = signal(0, ...ngDevMode ? [{ debugName: "repeatTick" }] : /* istanbul ignore next */ []);
|
|
7955
8034
|
this.queuedCount = signal(0, ...ngDevMode ? [{ debugName: "queuedCount" }] : /* istanbul ignore next */ []);
|
|
7956
8035
|
this.queueDefault = signal(false, ...ngDevMode ? [{ debugName: "queueDefault" }] : /* istanbul ignore next */ []);
|
|
7957
8036
|
this.countdownDefault = signal(false, ...ngDevMode ? [{ debugName: "countdownDefault" }] : /* istanbul ignore next */ []);
|
|
@@ -8069,6 +8148,12 @@ var ToastService = class ToastService {
|
|
|
8069
8148
|
duration: options.duration ?? defaultDuration,
|
|
8070
8149
|
details
|
|
8071
8150
|
};
|
|
8151
|
+
if (options.repeat && this.message() === msg && this.type() === type) {
|
|
8152
|
+
this._clearAdvance();
|
|
8153
|
+
this.repeatTick.update((n) => n + 1);
|
|
8154
|
+
this._present(pending);
|
|
8155
|
+
return;
|
|
8156
|
+
}
|
|
8072
8157
|
const queue = options.queue ?? this.queueDefault();
|
|
8073
8158
|
const busy = this.message() !== null || this._advanceTimer !== null;
|
|
8074
8159
|
if (queue && busy) {
|
|
@@ -8202,6 +8287,7 @@ var ToastComponent = class ToastComponent {
|
|
|
8202
8287
|
this.countdownLabel = input("Dismissing in {n}s", ...ngDevMode ? [{ debugName: "countdownLabel" }] : /* istanbul ignore next */ []);
|
|
8203
8288
|
this.queueLabel = input("+{n} more", ...ngDevMode ? [{ debugName: "queueLabel" }] : /* istanbul ignore next */ []);
|
|
8204
8289
|
this.action = output();
|
|
8290
|
+
this.repeatKeys = computed(() => [this.toast.repeatTick()], ...ngDevMode ? [{ debugName: "repeatKeys" }] : /* istanbul ignore next */ []);
|
|
8205
8291
|
this.isRich = computed(() => {
|
|
8206
8292
|
const d = this.toast.details();
|
|
8207
8293
|
return !!d && (!!d.title || d.actions.length > 0 || d.countdown);
|
|
@@ -8217,6 +8303,7 @@ var ToastComponent = class ToastComponent {
|
|
|
8217
8303
|
const m = this._adoptedMessage();
|
|
8218
8304
|
return m !== null && m === this.toast.message();
|
|
8219
8305
|
}, ...ngDevMode ? [{ debugName: "adopted" }] : /* istanbul ignore next */ []);
|
|
8306
|
+
this._lastRepeatTick = this.toast.repeatTick();
|
|
8220
8307
|
this._wasWaiting = false;
|
|
8221
8308
|
this._hover = false;
|
|
8222
8309
|
this._focus = false;
|
|
@@ -8237,7 +8324,13 @@ var ToastComponent = class ToastComponent {
|
|
|
8237
8324
|
effect(() => {
|
|
8238
8325
|
const host = this.isHost();
|
|
8239
8326
|
const msg = this.toast.message();
|
|
8327
|
+
const tick = this.toast.repeatTick();
|
|
8240
8328
|
untracked(() => {
|
|
8329
|
+
if (tick !== this._lastRepeatTick) {
|
|
8330
|
+
this._lastRepeatTick = tick;
|
|
8331
|
+
if (host) this._adoptedMessage.set(null);
|
|
8332
|
+
this._focus = false;
|
|
8333
|
+
}
|
|
8241
8334
|
if (msg === null) {
|
|
8242
8335
|
this._hover = false;
|
|
8243
8336
|
this._focus = false;
|
|
@@ -8337,6 +8430,7 @@ var ToastComponent = class ToastComponent {
|
|
|
8337
8430
|
}
|
|
8338
8431
|
|
|
8339
8432
|
<ng-template #card>
|
|
8433
|
+
@for (k of repeatKeys(); track k) {
|
|
8340
8434
|
<div
|
|
8341
8435
|
class="t-toast"
|
|
8342
8436
|
[class.t-rich]="isRich()"
|
|
@@ -8397,6 +8491,7 @@ var ToastComponent = class ToastComponent {
|
|
|
8397
8491
|
}
|
|
8398
8492
|
}
|
|
8399
8493
|
</div>
|
|
8494
|
+
}
|
|
8400
8495
|
</ng-template>
|
|
8401
8496
|
`,
|
|
8402
8497
|
isInline: true,
|
|
@@ -8441,6 +8536,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
8441
8536
|
}
|
|
8442
8537
|
|
|
8443
8538
|
<ng-template #card>
|
|
8539
|
+
@for (k of repeatKeys(); track k) {
|
|
8444
8540
|
<div
|
|
8445
8541
|
class="t-toast"
|
|
8446
8542
|
[class.t-rich]="isRich()"
|
|
@@ -8501,6 +8597,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
8501
8597
|
}
|
|
8502
8598
|
}
|
|
8503
8599
|
</div>
|
|
8600
|
+
}
|
|
8504
8601
|
</ng-template>
|
|
8505
8602
|
`,
|
|
8506
8603
|
styles: [".t-live{position:absolute;width:0;height:0;margin:0;padding:0;overflow:visible}.t-toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);background:#047857;color:#fff;padding:11px 20px;border-radius:12px;font-size:.875rem;font-weight:500;z-index:9999;box-shadow:0 4px 16px #0000002e;animation:t-in .28s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));overflow-wrap:anywhere;word-break:break-word}.t-error{background:#dc2626}.t-info{background:#2563eb}.t-adopted{animation:none}.t-text{min-width:0}.t-close{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:-4px -10px -4px 0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.t-close:after{content:\"\";position:absolute;inset:-8px}.t-close:hover{background:#fff3}.t-close:focus-visible{outline:2px solid #fff;outline-offset:1px}.t-rich{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;column-gap:8px;row-gap:10px;min-width:min(320px,calc(100vw - 32px))}.t-rich>svg:first-child{margin-top:2px}.t-content{display:flex;flex-direction:column;gap:2px;min-width:0}.t-title{font-weight:700}.t-queue{grid-column:1 / -1;justify-self:end;font-size:.75rem;font-weight:600;padding:1px 8px;border-radius:999px;background:#ffffff38}.t-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.t-action{min-height:32px;padding:6px 14px;border-radius:8px;font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;color:#fff;background:#ffffff2e;border:1px solid rgba(255,255,255,.6)}.t-action:hover:not(:disabled){background:#ffffff4d}.t-action:focus-visible{outline:2px solid #fff;outline-offset:2px}.t-action:disabled{opacity:.5;cursor:not-allowed}.t-action-primary{background:#fff;color:#0f172a;border-color:#fff}.t-action-primary:hover:not(:disabled){background:#f1f5f9}.t-action-danger{background:#7f1d1d;border-color:#ffffffb3}.t-action-danger:hover:not(:disabled){background:#991b1b}.t-countdown{grid-column:1 / -1;display:flex;flex-direction:column;gap:4px}.t-countdown-bar{height:4px;border-radius:2px;background:#ffffff47;overflow:hidden}.t-countdown-fill{height:100%;background:#fff;transition:width .2s linear}.t-countdown-label{font-size:.75rem;opacity:.85;font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.t-countdown-fill{transition:none}}@media(pointer:coarse),(max-width:480px){.t-action{min-height:44px}}@keyframes t-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(prefers-reduced-motion:reduce){.t-toast{animation:none}}@media(max-width:480px){.t-toast{bottom:max(16px,env(safe-area-inset-bottom,16px));font-size:.8125rem;padding:10px 16px}}\n"]
|
|
@@ -8636,6 +8733,7 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
8636
8733
|
this.background = input("", ...ngDevMode ? [{ debugName: "background" }] : /* istanbul ignore next */ []);
|
|
8637
8734
|
this.headerBackground = input("", ...ngDevMode ? [{ debugName: "headerBackground" }] : /* istanbul ignore next */ []);
|
|
8638
8735
|
this.footerBackground = input("", ...ngDevMode ? [{ debugName: "footerBackground" }] : /* istanbul ignore next */ []);
|
|
8736
|
+
this.footerAlign = input("start", ...ngDevMode ? [{ debugName: "footerAlign" }] : /* istanbul ignore next */ []);
|
|
8639
8737
|
this.textColor = input("", ...ngDevMode ? [{ debugName: "textColor" }] : /* istanbul ignore next */ []);
|
|
8640
8738
|
this.showHeader = input(true, ...ngDevMode ? [{ debugName: "showHeader" }] : /* istanbul ignore next */ []);
|
|
8641
8739
|
this.collapsible = input(true, ...ngDevMode ? [{ debugName: "collapsible" }] : /* istanbul ignore next */ []);
|
|
@@ -8760,6 +8858,13 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
8760
8858
|
isRequired: false,
|
|
8761
8859
|
transformFunction: null
|
|
8762
8860
|
},
|
|
8861
|
+
footerAlign: {
|
|
8862
|
+
classPropertyName: "footerAlign",
|
|
8863
|
+
publicName: "footerAlign",
|
|
8864
|
+
isSignal: true,
|
|
8865
|
+
isRequired: false,
|
|
8866
|
+
transformFunction: null
|
|
8867
|
+
},
|
|
8763
8868
|
textColor: {
|
|
8764
8869
|
classPropertyName: "textColor",
|
|
8765
8870
|
publicName: "textColor",
|
|
@@ -8924,11 +9029,11 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
8924
9029
|
<ng-content />
|
|
8925
9030
|
</div>
|
|
8926
9031
|
</div>
|
|
8927
|
-
<div class="dc-footer" [class.dc-footer--hidden]="!isOpen()" [style.background]="footerBackground() || null"><ng-content select="[card-footer]" /></div>
|
|
9032
|
+
<div class="dc-footer" [class.dc-footer--hidden]="!isOpen()" [class.dc-footer--end]="footerAlign() === 'end'" [style.background]="footerBackground() || null"><ng-content select="[card-footer]" /></div>
|
|
8928
9033
|
</div>
|
|
8929
9034
|
`,
|
|
8930
9035
|
isInline: true,
|
|
8931
|
-
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{box-sizing:border-box;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"],
|
|
9036
|
+
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{box-sizing:border-box;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-footer.dc-footer--end:not(:empty):not(.dc-footer--hidden){display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.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"],
|
|
8932
9037
|
dependencies: [{
|
|
8933
9038
|
kind: "component",
|
|
8934
9039
|
type: ButtonComponent,
|
|
@@ -9025,10 +9130,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
9025
9130
|
<ng-content />
|
|
9026
9131
|
</div>
|
|
9027
9132
|
</div>
|
|
9028
|
-
<div class="dc-footer" [class.dc-footer--hidden]="!isOpen()" [style.background]="footerBackground() || null"><ng-content select="[card-footer]" /></div>
|
|
9133
|
+
<div class="dc-footer" [class.dc-footer--hidden]="!isOpen()" [class.dc-footer--end]="footerAlign() === 'end'" [style.background]="footerBackground() || null"><ng-content select="[card-footer]" /></div>
|
|
9029
9134
|
</div>
|
|
9030
9135
|
`,
|
|
9031
|
-
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{box-sizing:border-box;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"]
|
|
9136
|
+
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{box-sizing:border-box;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-footer.dc-footer--end:not(:empty):not(.dc-footer--hidden){display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.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"]
|
|
9032
9137
|
}]
|
|
9033
9138
|
}],
|
|
9034
9139
|
propDecorators: {
|
|
@@ -9104,6 +9209,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
9104
9209
|
required: false
|
|
9105
9210
|
}]
|
|
9106
9211
|
}],
|
|
9212
|
+
footerAlign: [{
|
|
9213
|
+
type: i0.Input,
|
|
9214
|
+
args: [{
|
|
9215
|
+
isSignal: true,
|
|
9216
|
+
alias: "footerAlign",
|
|
9217
|
+
required: false
|
|
9218
|
+
}]
|
|
9219
|
+
}],
|
|
9107
9220
|
textColor: [{
|
|
9108
9221
|
type: i0.Input,
|
|
9109
9222
|
args: [{
|
|
@@ -9415,6 +9528,7 @@ var OptionCardComponent = class OptionCardComponent {
|
|
|
9415
9528
|
"background",
|
|
9416
9529
|
"headerBackground",
|
|
9417
9530
|
"footerBackground",
|
|
9531
|
+
"footerAlign",
|
|
9418
9532
|
"textColor",
|
|
9419
9533
|
"showHeader",
|
|
9420
9534
|
"collapsible",
|
|
@@ -10622,6 +10736,7 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
10622
10736
|
inputs: [
|
|
10623
10737
|
"label",
|
|
10624
10738
|
"ariaLabel",
|
|
10739
|
+
"labelHidden",
|
|
10625
10740
|
"inputName",
|
|
10626
10741
|
"placeholder",
|
|
10627
10742
|
"options",
|
|
@@ -10984,73 +11099,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10984
11099
|
}]
|
|
10985
11100
|
}
|
|
10986
11101
|
});
|
|
10987
|
-
var ConfirmService = class ConfirmService {
|
|
10988
|
-
constructor() {
|
|
10989
|
-
this._open = signal(false, ...ngDevMode ? [{ debugName: "_open" }] : /* istanbul ignore next */ []);
|
|
10990
|
-
this._active = signal(null, ...ngDevMode ? [{ debugName: "_active" }] : /* istanbul ignore next */ []);
|
|
10991
|
-
this._resolve = null;
|
|
10992
|
-
this.open = this._open.asReadonly();
|
|
10993
|
-
this.active = this._active.asReadonly();
|
|
10994
|
-
this._outlets = signal([], ...ngDevMode ? [{ debugName: "_outlets" }] : /* istanbul ignore next */ []);
|
|
10995
|
-
this.primaryOutlet = computed(() => this._outlets()[0] ?? null, ...ngDevMode ? [{ debugName: "primaryOutlet" }] : /* istanbul ignore next */ []);
|
|
10996
|
-
}
|
|
10997
|
-
registerOutlet(outlet) {
|
|
10998
|
-
this._outlets.update((list) => [...list, outlet]);
|
|
10999
|
-
}
|
|
11000
|
-
unregisterOutlet(outlet) {
|
|
11001
|
-
this._outlets.update((list) => list.filter((o) => o !== outlet));
|
|
11002
|
-
}
|
|
11003
|
-
confirm(config) {
|
|
11004
|
-
return new Promise((resolve) => {
|
|
11005
|
-
this._resolve = resolve;
|
|
11006
|
-
this._active.set({
|
|
11007
|
-
title: config.title,
|
|
11008
|
-
message: config.message,
|
|
11009
|
-
confirmLabel: config.confirmLabel ?? "Confirm",
|
|
11010
|
-
cancelLabel: config.cancelLabel ?? "Cancel",
|
|
11011
|
-
variant: config.variant ?? "danger",
|
|
11012
|
-
details: config.details ?? []
|
|
11013
|
-
});
|
|
11014
|
-
this._open.set(true);
|
|
11015
|
-
});
|
|
11016
|
-
}
|
|
11017
|
-
dismiss(confirmed) {
|
|
11018
|
-
this._open.set(false);
|
|
11019
|
-
const res = this._resolve;
|
|
11020
|
-
this._resolve = null;
|
|
11021
|
-
this._active.set(null);
|
|
11022
|
-
res?.(confirmed);
|
|
11023
|
-
}
|
|
11024
|
-
static {
|
|
11025
|
-
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
11026
|
-
minVersion: "12.0.0",
|
|
11027
|
-
version: "22.2.2",
|
|
11028
|
-
ngImport: i0,
|
|
11029
|
-
type: ConfirmService,
|
|
11030
|
-
deps: [],
|
|
11031
|
-
target: i0.ɵɵFactoryTarget.Injectable
|
|
11032
|
-
});
|
|
11033
|
-
}
|
|
11034
|
-
static {
|
|
11035
|
-
this.ɵprov = i0.ɵɵngDeclareInjectable({
|
|
11036
|
-
minVersion: "12.0.0",
|
|
11037
|
-
version: "22.2.2",
|
|
11038
|
-
ngImport: i0,
|
|
11039
|
-
type: ConfirmService,
|
|
11040
|
-
providedIn: "root"
|
|
11041
|
-
});
|
|
11042
|
-
}
|
|
11043
|
-
};
|
|
11044
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
11045
|
-
minVersion: "12.0.0",
|
|
11046
|
-
version: "22.2.2",
|
|
11047
|
-
ngImport: i0,
|
|
11048
|
-
type: ConfirmService,
|
|
11049
|
-
decorators: [{
|
|
11050
|
-
type: Injectable,
|
|
11051
|
-
args: [{ providedIn: "root" }]
|
|
11052
|
-
}]
|
|
11053
|
-
});
|
|
11054
11102
|
var ConfirmOutletComponent = class ConfirmOutletComponent {
|
|
11055
11103
|
constructor() {
|
|
11056
11104
|
this.svc = inject(ConfirmService);
|
|
@@ -11088,6 +11136,7 @@ var ConfirmOutletComponent = class ConfirmOutletComponent {
|
|
|
11088
11136
|
@if (_isPrimary() && svc.active()) {
|
|
11089
11137
|
<ui-modal
|
|
11090
11138
|
data-testid="confirm-modal"
|
|
11139
|
+
dialogTestId="confirm-dialog"
|
|
11091
11140
|
[open]="svc.open()"
|
|
11092
11141
|
[title]="svc.active()!.title"
|
|
11093
11142
|
maxWidth="420px"
|
|
@@ -11186,6 +11235,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11186
11235
|
@if (_isPrimary() && svc.active()) {
|
|
11187
11236
|
<ui-modal
|
|
11188
11237
|
data-testid="confirm-modal"
|
|
11238
|
+
dialogTestId="confirm-dialog"
|
|
11189
11239
|
[open]="svc.open()"
|
|
11190
11240
|
[title]="svc.active()!.title"
|
|
11191
11241
|
maxWidth="420px"
|
|
@@ -11215,6 +11265,107 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11215
11265
|
}]
|
|
11216
11266
|
}]
|
|
11217
11267
|
});
|
|
11268
|
+
var ConfirmService = class ConfirmService {
|
|
11269
|
+
constructor() {
|
|
11270
|
+
this._appRef = inject(ApplicationRef);
|
|
11271
|
+
this._envInjector = inject(EnvironmentInjector);
|
|
11272
|
+
this._doc = inject(DOCUMENT);
|
|
11273
|
+
this._browser = isPlatformBrowser(inject(PLATFORM_ID));
|
|
11274
|
+
this._open = signal(false, ...ngDevMode ? [{ debugName: "_open" }] : /* istanbul ignore next */ []);
|
|
11275
|
+
this._active = signal(null, ...ngDevMode ? [{ debugName: "_active" }] : /* istanbul ignore next */ []);
|
|
11276
|
+
this._resolve = null;
|
|
11277
|
+
this.open = this._open.asReadonly();
|
|
11278
|
+
this.active = this._active.asReadonly();
|
|
11279
|
+
this._outlets = signal([], ...ngDevMode ? [{ debugName: "_outlets" }] : /* istanbul ignore next */ []);
|
|
11280
|
+
this.primaryOutlet = computed(() => this._outlets()[0] ?? null, ...ngDevMode ? [{ debugName: "primaryOutlet" }] : /* istanbul ignore next */ []);
|
|
11281
|
+
this._auto = null;
|
|
11282
|
+
this._retireAutoOnDismiss = false;
|
|
11283
|
+
}
|
|
11284
|
+
registerOutlet(outlet) {
|
|
11285
|
+
this._outlets.update((list) => [...list, outlet]);
|
|
11286
|
+
if (this._auto && outlet !== this._auto.instance) {
|
|
11287
|
+
if (this._open()) this._retireAutoOnDismiss = true;
|
|
11288
|
+
else this._destroyAuto();
|
|
11289
|
+
}
|
|
11290
|
+
}
|
|
11291
|
+
unregisterOutlet(outlet) {
|
|
11292
|
+
this._outlets.update((list) => list.filter((o) => o !== outlet));
|
|
11293
|
+
}
|
|
11294
|
+
ngOnDestroy() {
|
|
11295
|
+
this._destroyAuto();
|
|
11296
|
+
}
|
|
11297
|
+
_ensureOutlet() {
|
|
11298
|
+
if (this._outlets().length > 0) return;
|
|
11299
|
+
if (!this._browser) return;
|
|
11300
|
+
const body = this._doc.body;
|
|
11301
|
+
const ref = createComponent(ConfirmOutletComponent, { environmentInjector: this._envInjector });
|
|
11302
|
+
this._appRef.attachView(ref.hostView);
|
|
11303
|
+
body.appendChild(ref.location.nativeElement);
|
|
11304
|
+
this._auto = ref;
|
|
11305
|
+
ref.changeDetectorRef.detectChanges();
|
|
11306
|
+
}
|
|
11307
|
+
_destroyAuto() {
|
|
11308
|
+
const ref = this._auto;
|
|
11309
|
+
if (!ref) return;
|
|
11310
|
+
this._auto = null;
|
|
11311
|
+
this._retireAutoOnDismiss = false;
|
|
11312
|
+
const el = ref.location.nativeElement;
|
|
11313
|
+
ref.destroy();
|
|
11314
|
+
el.remove();
|
|
11315
|
+
}
|
|
11316
|
+
confirm(config) {
|
|
11317
|
+
return new Promise((resolve) => {
|
|
11318
|
+
this._resolve = resolve;
|
|
11319
|
+
this._active.set({
|
|
11320
|
+
title: config.title,
|
|
11321
|
+
message: config.message,
|
|
11322
|
+
confirmLabel: config.confirmLabel ?? "Confirm",
|
|
11323
|
+
cancelLabel: config.cancelLabel ?? "Cancel",
|
|
11324
|
+
variant: config.variant ?? "danger",
|
|
11325
|
+
details: config.details ?? []
|
|
11326
|
+
});
|
|
11327
|
+
this._open.set(true);
|
|
11328
|
+
this._ensureOutlet();
|
|
11329
|
+
});
|
|
11330
|
+
}
|
|
11331
|
+
dismiss(confirmed) {
|
|
11332
|
+
this._open.set(false);
|
|
11333
|
+
const res = this._resolve;
|
|
11334
|
+
this._resolve = null;
|
|
11335
|
+
this._active.set(null);
|
|
11336
|
+
res?.(confirmed);
|
|
11337
|
+
if (this._retireAutoOnDismiss) this._destroyAuto();
|
|
11338
|
+
}
|
|
11339
|
+
static {
|
|
11340
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
11341
|
+
minVersion: "12.0.0",
|
|
11342
|
+
version: "22.2.2",
|
|
11343
|
+
ngImport: i0,
|
|
11344
|
+
type: ConfirmService,
|
|
11345
|
+
deps: [],
|
|
11346
|
+
target: i0.ɵɵFactoryTarget.Injectable
|
|
11347
|
+
});
|
|
11348
|
+
}
|
|
11349
|
+
static {
|
|
11350
|
+
this.ɵprov = i0.ɵɵngDeclareInjectable({
|
|
11351
|
+
minVersion: "12.0.0",
|
|
11352
|
+
version: "22.2.2",
|
|
11353
|
+
ngImport: i0,
|
|
11354
|
+
type: ConfirmService,
|
|
11355
|
+
providedIn: "root"
|
|
11356
|
+
});
|
|
11357
|
+
}
|
|
11358
|
+
};
|
|
11359
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
11360
|
+
minVersion: "12.0.0",
|
|
11361
|
+
version: "22.2.2",
|
|
11362
|
+
ngImport: i0,
|
|
11363
|
+
type: ConfirmService,
|
|
11364
|
+
decorators: [{
|
|
11365
|
+
type: Injectable,
|
|
11366
|
+
args: [{ providedIn: "root" }]
|
|
11367
|
+
}]
|
|
11368
|
+
});
|
|
11218
11369
|
var EmptyStateComponent = class EmptyStateComponent {
|
|
11219
11370
|
constructor() {
|
|
11220
11371
|
this.message = input("", ...ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []);
|
|
@@ -11443,6 +11594,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11443
11594
|
});
|
|
11444
11595
|
var ErrorStateComponent = class ErrorStateComponent {
|
|
11445
11596
|
constructor() {
|
|
11597
|
+
this.title = input("", ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
|
|
11446
11598
|
this.message = input("", ...ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []);
|
|
11447
11599
|
this.retryLabel = input("Try again", ...ngDevMode ? [{ debugName: "retryLabel" }] : /* istanbul ignore next */ []);
|
|
11448
11600
|
this.retrying = input(false, ...ngDevMode ? [{ debugName: "retrying" }] : /* istanbul ignore next */ []);
|
|
@@ -11466,6 +11618,13 @@ var ErrorStateComponent = class ErrorStateComponent {
|
|
|
11466
11618
|
isStandalone: true,
|
|
11467
11619
|
selector: "ui-error-state",
|
|
11468
11620
|
inputs: {
|
|
11621
|
+
title: {
|
|
11622
|
+
classPropertyName: "title",
|
|
11623
|
+
publicName: "title",
|
|
11624
|
+
isSignal: true,
|
|
11625
|
+
isRequired: false,
|
|
11626
|
+
transformFunction: null
|
|
11627
|
+
},
|
|
11469
11628
|
message: {
|
|
11470
11629
|
classPropertyName: "message",
|
|
11471
11630
|
publicName: "message",
|
|
@@ -11499,6 +11658,9 @@ var ErrorStateComponent = class ErrorStateComponent {
|
|
|
11499
11658
|
<line x1="12" y1="16" x2="12.01" y2="16" stroke-width="2.5"/>
|
|
11500
11659
|
</svg>
|
|
11501
11660
|
</div>
|
|
11661
|
+
@if (title()) {
|
|
11662
|
+
<p class="es-title">{{ title() }}</p>
|
|
11663
|
+
}
|
|
11502
11664
|
<p class="es-message">{{ message() || 'Something went wrong. Please try again.' }}</p>
|
|
11503
11665
|
@if (retryLabel()) {
|
|
11504
11666
|
<ui-button variant="secondary" size="sm" [loading]="retrying()" (click)="retry.emit()">
|
|
@@ -11508,7 +11670,7 @@ var ErrorStateComponent = class ErrorStateComponent {
|
|
|
11508
11670
|
</div>
|
|
11509
11671
|
`,
|
|
11510
11672
|
isInline: true,
|
|
11511
|
-
styles: [":host{display:flex;flex:1}.es-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;text-align:center;flex:1;min-height:160px}.es-icon{width:56px;height:56px;border-radius:50%;background:#fee2e2;color:#ef4444;display:flex;align-items:center;justify-content:center;flex-shrink:0}.es-message{margin:0;font-size:.875rem;color:#64748b;max-width:360px;line-height:1.5}\n"],
|
|
11673
|
+
styles: [":host{display:flex;flex:1}.es-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;text-align:center;flex:1;min-height:160px}.es-icon{width:56px;height:56px;border-radius:50%;background:#fee2e2;color:#ef4444;display:flex;align-items:center;justify-content:center;flex-shrink:0}.es-title{margin:0;font-size:1rem;font-weight:600;color:#1e293b;line-height:1.4}.es-message{margin:0;font-size:.875rem;color:#64748b;max-width:360px;line-height:1.5}\n"],
|
|
11512
11674
|
dependencies: [{
|
|
11513
11675
|
kind: "component",
|
|
11514
11676
|
type: ButtonComponent,
|
|
@@ -11564,6 +11726,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11564
11726
|
<line x1="12" y1="16" x2="12.01" y2="16" stroke-width="2.5"/>
|
|
11565
11727
|
</svg>
|
|
11566
11728
|
</div>
|
|
11729
|
+
@if (title()) {
|
|
11730
|
+
<p class="es-title">{{ title() }}</p>
|
|
11731
|
+
}
|
|
11567
11732
|
<p class="es-message">{{ message() || 'Something went wrong. Please try again.' }}</p>
|
|
11568
11733
|
@if (retryLabel()) {
|
|
11569
11734
|
<ui-button variant="secondary" size="sm" [loading]="retrying()" (click)="retry.emit()">
|
|
@@ -11572,10 +11737,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11572
11737
|
}
|
|
11573
11738
|
</div>
|
|
11574
11739
|
`,
|
|
11575
|
-
styles: [":host{display:flex;flex:1}.es-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;text-align:center;flex:1;min-height:160px}.es-icon{width:56px;height:56px;border-radius:50%;background:#fee2e2;color:#ef4444;display:flex;align-items:center;justify-content:center;flex-shrink:0}.es-message{margin:0;font-size:.875rem;color:#64748b;max-width:360px;line-height:1.5}\n"]
|
|
11740
|
+
styles: [":host{display:flex;flex:1}.es-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;text-align:center;flex:1;min-height:160px}.es-icon{width:56px;height:56px;border-radius:50%;background:#fee2e2;color:#ef4444;display:flex;align-items:center;justify-content:center;flex-shrink:0}.es-title{margin:0;font-size:1rem;font-weight:600;color:#1e293b;line-height:1.4}.es-message{margin:0;font-size:.875rem;color:#64748b;max-width:360px;line-height:1.5}\n"]
|
|
11576
11741
|
}]
|
|
11577
11742
|
}],
|
|
11578
11743
|
propDecorators: {
|
|
11744
|
+
title: [{
|
|
11745
|
+
type: i0.Input,
|
|
11746
|
+
args: [{
|
|
11747
|
+
isSignal: true,
|
|
11748
|
+
alias: "title",
|
|
11749
|
+
required: false
|
|
11750
|
+
}]
|
|
11751
|
+
}],
|
|
11579
11752
|
message: [{
|
|
11580
11753
|
type: i0.Input,
|
|
11581
11754
|
args: [{
|
|
@@ -12284,6 +12457,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
12284
12457
|
this.tabChange = output();
|
|
12285
12458
|
this.bulkAction = output();
|
|
12286
12459
|
this.bulkPanelClick = output();
|
|
12460
|
+
this.loaded = output();
|
|
12287
12461
|
this.rowDeleted = output();
|
|
12288
12462
|
this.reorderable = input(false, ...ngDevMode ? [{ debugName: "reorderable" }] : /* istanbul ignore next */ []);
|
|
12289
12463
|
this.rowReorder = output();
|
|
@@ -12312,7 +12486,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
12312
12486
|
const active = this._activeTab();
|
|
12313
12487
|
const keys = Object.keys(counts).length > 0 && active && !present.includes(active) ? [...present, active] : present;
|
|
12314
12488
|
if (!keys.length) return [];
|
|
12315
|
-
const toLabel = (s) => this._columnBadgeLabel(s) ?? (/[a-z]/.test(s) ? s : s.toLowerCase()).replace(/([a-z])([A-Z])/g, "$1 $2").replace(/-/g, " ").replace(
|
|
12489
|
+
const toLabel = (s) => this._columnBadgeLabel(s) ?? (/[a-z]/.test(s) ? s : s.toLowerCase()).replace(/([a-z])([A-Z])/g, "$1 $2").replace(/-/g, " ").replace(/(^|\s)\p{L}/gu, (c) => c.toUpperCase());
|
|
12316
12490
|
const singleValue = keys.length === 1;
|
|
12317
12491
|
return [{
|
|
12318
12492
|
value: "",
|
|
@@ -12653,6 +12827,10 @@ var DataTableComponent = class DataTableComponent {
|
|
|
12653
12827
|
}
|
|
12654
12828
|
this._loading.set(false);
|
|
12655
12829
|
this._searchLoading.set(false);
|
|
12830
|
+
this.loaded.emit({
|
|
12831
|
+
ok: response !== null,
|
|
12832
|
+
total: this._total()
|
|
12833
|
+
});
|
|
12656
12834
|
});
|
|
12657
12835
|
}
|
|
12658
12836
|
_countParams() {
|
|
@@ -13431,6 +13609,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13431
13609
|
tabChange: "tabChange",
|
|
13432
13610
|
bulkAction: "bulkAction",
|
|
13433
13611
|
bulkPanelClick: "bulkPanelClick",
|
|
13612
|
+
loaded: "loaded",
|
|
13434
13613
|
rowDeleted: "rowDeleted",
|
|
13435
13614
|
rowReorder: "rowReorder"
|
|
13436
13615
|
},
|
|
@@ -14393,6 +14572,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14393
14572
|
inputs: [
|
|
14394
14573
|
"label",
|
|
14395
14574
|
"ariaLabel",
|
|
14575
|
+
"labelHidden",
|
|
14396
14576
|
"inputName",
|
|
14397
14577
|
"placeholder",
|
|
14398
14578
|
"options",
|
|
@@ -14478,6 +14658,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14478
14658
|
type: ErrorStateComponent,
|
|
14479
14659
|
selector: "ui-error-state",
|
|
14480
14660
|
inputs: [
|
|
14661
|
+
"title",
|
|
14481
14662
|
"message",
|
|
14482
14663
|
"retryLabel",
|
|
14483
14664
|
"retrying"
|
|
@@ -15512,6 +15693,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15512
15693
|
type: i0.Output,
|
|
15513
15694
|
args: ["bulkPanelClick"]
|
|
15514
15695
|
}],
|
|
15696
|
+
loaded: [{
|
|
15697
|
+
type: i0.Output,
|
|
15698
|
+
args: ["loaded"]
|
|
15699
|
+
}],
|
|
15515
15700
|
rowDeleted: [{
|
|
15516
15701
|
type: i0.Output,
|
|
15517
15702
|
args: ["rowDeleted"]
|
|
@@ -15552,6 +15737,9 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
15552
15737
|
this.closed = output();
|
|
15553
15738
|
this.primaryClick = output();
|
|
15554
15739
|
this.titleId = `sp-title-${Math.random().toString(36).slice(2, 8)}`;
|
|
15740
|
+
this.bodyScrollable = signal(false, ...ngDevMode ? [{ debugName: "bodyScrollable" }] : /* istanbul ignore next */ []);
|
|
15741
|
+
this._bodyRef = viewChild("spBody", ...ngDevMode ? [{ debugName: "_bodyRef" }] : /* istanbul ignore next */ []);
|
|
15742
|
+
this._bodyObservers = null;
|
|
15555
15743
|
this._el = inject(ElementRef);
|
|
15556
15744
|
this._doc = inject(DOCUMENT);
|
|
15557
15745
|
this._overlays = inject(OverlayStack);
|
|
@@ -15561,6 +15749,10 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
15561
15749
|
this._stopIframeKeys = null;
|
|
15562
15750
|
this._interaction = inject(LastInteraction);
|
|
15563
15751
|
this._interaction.acquire(this._doc);
|
|
15752
|
+
effect(() => {
|
|
15753
|
+
const body = this._bodyRef()?.nativeElement ?? null;
|
|
15754
|
+
untracked(() => this._watchBody(body));
|
|
15755
|
+
});
|
|
15564
15756
|
effect(() => {
|
|
15565
15757
|
if (this.open()) {
|
|
15566
15758
|
this._overlays.push(this);
|
|
@@ -15588,6 +15780,41 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
15588
15780
|
}
|
|
15589
15781
|
});
|
|
15590
15782
|
}
|
|
15783
|
+
refreshScrollable() {
|
|
15784
|
+
const el = this._bodyRef()?.nativeElement;
|
|
15785
|
+
this.bodyScrollable.set(!!el && el.scrollHeight - el.clientHeight > 1);
|
|
15786
|
+
}
|
|
15787
|
+
_watchBody(body) {
|
|
15788
|
+
this._stopWatchingBody();
|
|
15789
|
+
if (!body) {
|
|
15790
|
+
this.bodyScrollable.set(false);
|
|
15791
|
+
return;
|
|
15792
|
+
}
|
|
15793
|
+
this.refreshScrollable();
|
|
15794
|
+
const ro = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(() => this.refreshScrollable());
|
|
15795
|
+
const mo = typeof MutationObserver === "undefined" ? null : new MutationObserver(() => {
|
|
15796
|
+
if (ro) for (const child of Array.from(body.children)) ro.observe(child);
|
|
15797
|
+
this.refreshScrollable();
|
|
15798
|
+
});
|
|
15799
|
+
if (ro) {
|
|
15800
|
+
ro.observe(body);
|
|
15801
|
+
for (const child of Array.from(body.children)) ro.observe(child);
|
|
15802
|
+
}
|
|
15803
|
+
mo?.observe(body, {
|
|
15804
|
+
childList: true,
|
|
15805
|
+
subtree: true,
|
|
15806
|
+
characterData: true
|
|
15807
|
+
});
|
|
15808
|
+
this._bodyObservers = {
|
|
15809
|
+
ro,
|
|
15810
|
+
mo
|
|
15811
|
+
};
|
|
15812
|
+
}
|
|
15813
|
+
_stopWatchingBody() {
|
|
15814
|
+
this._bodyObservers?.ro?.disconnect();
|
|
15815
|
+
this._bodyObservers?.mo?.disconnect();
|
|
15816
|
+
this._bodyObservers = null;
|
|
15817
|
+
}
|
|
15591
15818
|
onKeydown(event) {
|
|
15592
15819
|
if (!this.open() || !this._overlays.isTop(this)) return;
|
|
15593
15820
|
if (event.key === "Escape") {
|
|
@@ -15627,6 +15854,7 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
15627
15854
|
return tabbables(this._el.nativeElement);
|
|
15628
15855
|
}
|
|
15629
15856
|
ngOnDestroy() {
|
|
15857
|
+
this._stopWatchingBody();
|
|
15630
15858
|
this._interaction.release();
|
|
15631
15859
|
this._stopIframeKeys?.();
|
|
15632
15860
|
this._stopIframeKeys = null;
|
|
@@ -15750,6 +15978,13 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
15750
15978
|
primaryClick: "primaryClick"
|
|
15751
15979
|
},
|
|
15752
15980
|
host: { listeners: { "document:keydown": "onKeydown($event)" } },
|
|
15981
|
+
viewQueries: [{
|
|
15982
|
+
propertyName: "_bodyRef",
|
|
15983
|
+
first: true,
|
|
15984
|
+
predicate: ["spBody"],
|
|
15985
|
+
descendants: true,
|
|
15986
|
+
isSignal: true
|
|
15987
|
+
}],
|
|
15753
15988
|
ngImport: i0,
|
|
15754
15989
|
template: `
|
|
15755
15990
|
@if (open()) {
|
|
@@ -15778,7 +16013,12 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
15778
16013
|
</div>
|
|
15779
16014
|
|
|
15780
16015
|
<!-- Body -->
|
|
15781
|
-
<div
|
|
16016
|
+
<div
|
|
16017
|
+
class="sp-body"
|
|
16018
|
+
#spBody
|
|
16019
|
+
[attr.tabindex]="bodyScrollable() ? 0 : null"
|
|
16020
|
+
[attr.role]="bodyScrollable() ? 'group' : null"
|
|
16021
|
+
[attr.aria-labelledby]="bodyScrollable() ? titleId : null">
|
|
15782
16022
|
<ng-content />
|
|
15783
16023
|
</div>
|
|
15784
16024
|
|
|
@@ -15821,7 +16061,7 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
15821
16061
|
}
|
|
15822
16062
|
`,
|
|
15823
16063
|
isInline: true,
|
|
15824
|
-
styles: [".sp-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90;animation:sp-fade .2s ease}.sp-panel{position:fixed;top:0;right:0;bottom:var(--ui-kb, 0px);width:480px;max-width:100vw;max-height:100vh;max-height:var(--ui-vvh, 100dvh);background:#fff;z-index:100;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:sp-slide .25s ease}.sp-panel:focus{outline:none}.sp-focus-guard{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;outline:none}.sp-wide{width:620px}.sp-extra-wide{width:760px}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;gap:12px;flex-shrink:0;background:linear-gradient(135deg,#1e293b,#334155)}.sp-header-text{flex:1;min-width:0}.sp-title{font-size:1.125rem;font-weight:700;color:#fff;margin:0}.sp-subtitle{font-size:.8125rem;color:#94a3b8;margin:4px 0 0}.sp-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;cursor:pointer;color:#cbd5e1;transition:background .15s,border-color .15s}.sp-close:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.sp-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-body{padding:20px 24px 24px;flex:1;overflow-y:auto;overflow-x:hidden}.sp-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.sp-footer-extra{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px;min-width:0}.sp-footer-extra:empty{display:none}.sp-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:7px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .1s,border-color .1s,opacity .1s}.sp-btn:disabled{opacity:.5;cursor:default}.sp-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#475569}.sp-btn-cancel:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sp-btn-primary{background:var(--ui-accent, #2563eb);border:1px solid var(--ui-accent, #2563eb);color:var(--ui-on-accent, #fff)}.sp-btn-primary:hover:not(:disabled){background:var(--ui-accent-hover, #1d4ed8);border-color:var(--ui-accent-hover, #1d4ed8)}.sp-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.sp-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.sp-btn-warning{background:#d97706;border:1px solid #d97706;color:#fff}.sp-btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}.sp-spinner{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp-spin .55s linear infinite;flex-shrink:0}@media(max-width:768px){.sp-panel,.sp-wide,.sp-extra-wide{width:100vw}}@media(max-width:480px){.sp-panel,.sp-wide,.sp-extra-wide{inset:auto 0 0;width:100vw;max-height:90vh;max-height:min(90dvh,var(--ui-vvh, 100dvh));border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000026;animation:sp-up .25s ease}.sp-header{padding:16px 16px 14px}.sp-body{padding:16px}.sp-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media(pointer:coarse),(max-width:480px){.sp-close{position:relative}.sp-close:after{content:\"\";position:absolute;inset:-5px}.sp-btn{min-height:44px;justify-content:center}}@keyframes sp-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sp-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sp-backdrop,.sp-panel,.sp-wide,.sp-extra-wide{animation:none}.sp-spinner{animation-duration:2s}}\n"],
|
|
16064
|
+
styles: [".sp-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90;animation:sp-fade .2s ease}.sp-panel{position:fixed;top:0;right:0;bottom:var(--ui-kb, 0px);width:480px;max-width:100vw;max-height:100vh;max-height:var(--ui-vvh, 100dvh);background:#fff;z-index:100;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:sp-slide .25s ease}.sp-panel:focus{outline:none}.sp-focus-guard{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;outline:none}.sp-wide{width:620px}.sp-extra-wide{width:760px}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;gap:12px;flex-shrink:0;background:linear-gradient(135deg,#1e293b,#334155)}.sp-header-text{flex:1;min-width:0}.sp-title{font-size:1.125rem;font-weight:700;color:#fff;margin:0}.sp-subtitle{font-size:.8125rem;color:#94a3b8;margin:4px 0 0}.sp-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;cursor:pointer;color:#cbd5e1;transition:background .15s,border-color .15s}.sp-close:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.sp-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-body{padding:20px 24px 24px;flex:1;overflow-y:auto;overflow-x:hidden}.sp-body:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.sp-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.sp-footer-extra{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px;min-width:0}.sp-footer-extra:empty{display:none}.sp-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:7px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .1s,border-color .1s,opacity .1s}.sp-btn:disabled{opacity:.5;cursor:default}.sp-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#475569}.sp-btn-cancel:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sp-btn-primary{background:var(--ui-accent, #2563eb);border:1px solid var(--ui-accent, #2563eb);color:var(--ui-on-accent, #fff)}.sp-btn-primary:hover:not(:disabled){background:var(--ui-accent-hover, #1d4ed8);border-color:var(--ui-accent-hover, #1d4ed8)}.sp-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.sp-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.sp-btn-warning{background:#d97706;border:1px solid #d97706;color:#fff}.sp-btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}.sp-spinner{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp-spin .55s linear infinite;flex-shrink:0}@media(max-width:768px){.sp-panel,.sp-wide,.sp-extra-wide{width:100vw}}@media(max-width:480px){.sp-panel,.sp-wide,.sp-extra-wide{inset:auto 0 0;width:100vw;max-height:90vh;max-height:min(90dvh,var(--ui-vvh, 100dvh));border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000026;animation:sp-up .25s ease}.sp-header{padding:16px 16px 14px}.sp-body{padding:16px}.sp-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media(pointer:coarse),(max-width:480px){.sp-close{position:relative}.sp-close:after{content:\"\";position:absolute;inset:-5px}.sp-btn{min-height:44px;justify-content:center}}@keyframes sp-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sp-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sp-backdrop,.sp-panel,.sp-wide,.sp-extra-wide{animation:none}.sp-spinner{animation-duration:2s}}\n"],
|
|
15825
16065
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
15826
16066
|
});
|
|
15827
16067
|
}
|
|
@@ -15865,7 +16105,12 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15865
16105
|
</div>
|
|
15866
16106
|
|
|
15867
16107
|
<!-- Body -->
|
|
15868
|
-
<div
|
|
16108
|
+
<div
|
|
16109
|
+
class="sp-body"
|
|
16110
|
+
#spBody
|
|
16111
|
+
[attr.tabindex]="bodyScrollable() ? 0 : null"
|
|
16112
|
+
[attr.role]="bodyScrollable() ? 'group' : null"
|
|
16113
|
+
[attr.aria-labelledby]="bodyScrollable() ? titleId : null">
|
|
15869
16114
|
<ng-content />
|
|
15870
16115
|
</div>
|
|
15871
16116
|
|
|
@@ -15907,7 +16152,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15907
16152
|
</div>
|
|
15908
16153
|
}
|
|
15909
16154
|
`,
|
|
15910
|
-
styles: [".sp-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90;animation:sp-fade .2s ease}.sp-panel{position:fixed;top:0;right:0;bottom:var(--ui-kb, 0px);width:480px;max-width:100vw;max-height:100vh;max-height:var(--ui-vvh, 100dvh);background:#fff;z-index:100;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:sp-slide .25s ease}.sp-panel:focus{outline:none}.sp-focus-guard{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;outline:none}.sp-wide{width:620px}.sp-extra-wide{width:760px}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;gap:12px;flex-shrink:0;background:linear-gradient(135deg,#1e293b,#334155)}.sp-header-text{flex:1;min-width:0}.sp-title{font-size:1.125rem;font-weight:700;color:#fff;margin:0}.sp-subtitle{font-size:.8125rem;color:#94a3b8;margin:4px 0 0}.sp-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;cursor:pointer;color:#cbd5e1;transition:background .15s,border-color .15s}.sp-close:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.sp-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-body{padding:20px 24px 24px;flex:1;overflow-y:auto;overflow-x:hidden}.sp-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.sp-footer-extra{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px;min-width:0}.sp-footer-extra:empty{display:none}.sp-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:7px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .1s,border-color .1s,opacity .1s}.sp-btn:disabled{opacity:.5;cursor:default}.sp-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#475569}.sp-btn-cancel:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sp-btn-primary{background:var(--ui-accent, #2563eb);border:1px solid var(--ui-accent, #2563eb);color:var(--ui-on-accent, #fff)}.sp-btn-primary:hover:not(:disabled){background:var(--ui-accent-hover, #1d4ed8);border-color:var(--ui-accent-hover, #1d4ed8)}.sp-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.sp-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.sp-btn-warning{background:#d97706;border:1px solid #d97706;color:#fff}.sp-btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}.sp-spinner{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp-spin .55s linear infinite;flex-shrink:0}@media(max-width:768px){.sp-panel,.sp-wide,.sp-extra-wide{width:100vw}}@media(max-width:480px){.sp-panel,.sp-wide,.sp-extra-wide{inset:auto 0 0;width:100vw;max-height:90vh;max-height:min(90dvh,var(--ui-vvh, 100dvh));border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000026;animation:sp-up .25s ease}.sp-header{padding:16px 16px 14px}.sp-body{padding:16px}.sp-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media(pointer:coarse),(max-width:480px){.sp-close{position:relative}.sp-close:after{content:\"\";position:absolute;inset:-5px}.sp-btn{min-height:44px;justify-content:center}}@keyframes sp-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sp-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sp-backdrop,.sp-panel,.sp-wide,.sp-extra-wide{animation:none}.sp-spinner{animation-duration:2s}}\n"]
|
|
16155
|
+
styles: [".sp-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90;animation:sp-fade .2s ease}.sp-panel{position:fixed;top:0;right:0;bottom:var(--ui-kb, 0px);width:480px;max-width:100vw;max-height:100vh;max-height:var(--ui-vvh, 100dvh);background:#fff;z-index:100;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:sp-slide .25s ease}.sp-panel:focus{outline:none}.sp-focus-guard{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;outline:none}.sp-wide{width:620px}.sp-extra-wide{width:760px}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;gap:12px;flex-shrink:0;background:linear-gradient(135deg,#1e293b,#334155)}.sp-header-text{flex:1;min-width:0}.sp-title{font-size:1.125rem;font-weight:700;color:#fff;margin:0}.sp-subtitle{font-size:.8125rem;color:#94a3b8;margin:4px 0 0}.sp-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;cursor:pointer;color:#cbd5e1;transition:background .15s,border-color .15s}.sp-close:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.sp-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-body{padding:20px 24px 24px;flex:1;overflow-y:auto;overflow-x:hidden}.sp-body:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.sp-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.sp-footer-extra{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px;min-width:0}.sp-footer-extra:empty{display:none}.sp-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:7px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .1s,border-color .1s,opacity .1s}.sp-btn:disabled{opacity:.5;cursor:default}.sp-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#475569}.sp-btn-cancel:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sp-btn-primary{background:var(--ui-accent, #2563eb);border:1px solid var(--ui-accent, #2563eb);color:var(--ui-on-accent, #fff)}.sp-btn-primary:hover:not(:disabled){background:var(--ui-accent-hover, #1d4ed8);border-color:var(--ui-accent-hover, #1d4ed8)}.sp-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.sp-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.sp-btn-warning{background:#d97706;border:1px solid #d97706;color:#fff}.sp-btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}.sp-spinner{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp-spin .55s linear infinite;flex-shrink:0}@media(max-width:768px){.sp-panel,.sp-wide,.sp-extra-wide{width:100vw}}@media(max-width:480px){.sp-panel,.sp-wide,.sp-extra-wide{inset:auto 0 0;width:100vw;max-height:90vh;max-height:min(90dvh,var(--ui-vvh, 100dvh));border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000026;animation:sp-up .25s ease}.sp-header{padding:16px 16px 14px}.sp-body{padding:16px}.sp-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media(pointer:coarse),(max-width:480px){.sp-close{position:relative}.sp-close:after{content:\"\";position:absolute;inset:-5px}.sp-btn{min-height:44px;justify-content:center}}@keyframes sp-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sp-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sp-backdrop,.sp-panel,.sp-wide,.sp-extra-wide{animation:none}.sp-spinner{animation-duration:2s}}\n"]
|
|
15911
16156
|
}]
|
|
15912
16157
|
}],
|
|
15913
16158
|
ctorParameters: () => [],
|
|
@@ -16023,6 +16268,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
16023
16268
|
primaryClick: [{
|
|
16024
16269
|
type: i0.Output,
|
|
16025
16270
|
args: ["primaryClick"]
|
|
16271
|
+
}],
|
|
16272
|
+
_bodyRef: [{
|
|
16273
|
+
type: i0.ViewChild,
|
|
16274
|
+
args: ["spBody", { isSignal: true }]
|
|
16026
16275
|
}]
|
|
16027
16276
|
}
|
|
16028
16277
|
});
|
|
@@ -16680,6 +16929,7 @@ var ToggleComponent = class ToggleComponent {
|
|
|
16680
16929
|
this.hint = input("", ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
|
|
16681
16930
|
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
16682
16931
|
this.ariaDescribedBy = input("", ...ngDevMode ? [{ debugName: "ariaDescribedBy" }] : /* istanbul ignore next */ []);
|
|
16932
|
+
this.inputTestId = input("", ...ngDevMode ? [{ debugName: "inputTestId" }] : /* istanbul ignore next */ []);
|
|
16683
16933
|
this.checked = model(false, ...ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []);
|
|
16684
16934
|
this._disabledInput = input(false, {
|
|
16685
16935
|
...ngDevMode ? { debugName: "_disabledInput" } : /* istanbul ignore next */ {},
|
|
@@ -16769,6 +17019,13 @@ var ToggleComponent = class ToggleComponent {
|
|
|
16769
17019
|
isRequired: false,
|
|
16770
17020
|
transformFunction: null
|
|
16771
17021
|
},
|
|
17022
|
+
inputTestId: {
|
|
17023
|
+
classPropertyName: "inputTestId",
|
|
17024
|
+
publicName: "inputTestId",
|
|
17025
|
+
isSignal: true,
|
|
17026
|
+
isRequired: false,
|
|
17027
|
+
transformFunction: null
|
|
17028
|
+
},
|
|
16772
17029
|
checked: {
|
|
16773
17030
|
classPropertyName: "checked",
|
|
16774
17031
|
publicName: "checked",
|
|
@@ -16805,6 +17062,7 @@ var ToggleComponent = class ToggleComponent {
|
|
|
16805
17062
|
role="switch"
|
|
16806
17063
|
class="tg-input"
|
|
16807
17064
|
[id]="_inputId"
|
|
17065
|
+
[attr.data-testid]="inputTestId() || null"
|
|
16808
17066
|
[checked]="checked()"
|
|
16809
17067
|
[disabled]="disabled()"
|
|
16810
17068
|
[attr.aria-checked]="checked() ? 'true' : 'false'"
|
|
@@ -16853,6 +17111,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
16853
17111
|
role="switch"
|
|
16854
17112
|
class="tg-input"
|
|
16855
17113
|
[id]="_inputId"
|
|
17114
|
+
[attr.data-testid]="inputTestId() || null"
|
|
16856
17115
|
[checked]="checked()"
|
|
16857
17116
|
[disabled]="disabled()"
|
|
16858
17117
|
[attr.aria-checked]="checked() ? 'true' : 'false'"
|
|
@@ -16901,6 +17160,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
16901
17160
|
required: false
|
|
16902
17161
|
}]
|
|
16903
17162
|
}],
|
|
17163
|
+
inputTestId: [{
|
|
17164
|
+
type: i0.Input,
|
|
17165
|
+
args: [{
|
|
17166
|
+
isSignal: true,
|
|
17167
|
+
alias: "inputTestId",
|
|
17168
|
+
required: false
|
|
17169
|
+
}]
|
|
17170
|
+
}],
|
|
16904
17171
|
checked: [{
|
|
16905
17172
|
type: i0.Input,
|
|
16906
17173
|
args: [{
|
|
@@ -18006,6 +18273,7 @@ var BusinessHoursComponent = class BusinessHoursComponent {
|
|
|
18006
18273
|
inputs: [
|
|
18007
18274
|
"label",
|
|
18008
18275
|
"ariaLabel",
|
|
18276
|
+
"labelHidden",
|
|
18009
18277
|
"inputName",
|
|
18010
18278
|
"placeholder",
|
|
18011
18279
|
"options",
|
|
@@ -18208,6 +18476,7 @@ var RadioComponent = class RadioComponent {
|
|
|
18208
18476
|
constructor() {
|
|
18209
18477
|
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
18210
18478
|
this.description = input("", ...ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []);
|
|
18479
|
+
this.icon = input("", ...ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []);
|
|
18211
18480
|
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
18212
18481
|
this.testId = input("", ...ngDevMode ? [{ debugName: "testId" }] : /* istanbul ignore next */ []);
|
|
18213
18482
|
this.value = input("", ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
@@ -18221,6 +18490,11 @@ var RadioComponent = class RadioComponent {
|
|
|
18221
18490
|
alias: "disabled"
|
|
18222
18491
|
});
|
|
18223
18492
|
this.disabled = this._disabledInput;
|
|
18493
|
+
this._iconD = computed(() => {
|
|
18494
|
+
const v = this.icon().trim();
|
|
18495
|
+
if (!v) return null;
|
|
18496
|
+
return iconPath(v) ?? (/^[Mm][\d\s.,\-MmLlHhVvCcSsQqTtAaZz]+$/.test(v) ? v : null);
|
|
18497
|
+
}, ...ngDevMode ? [{ debugName: "_iconD" }] : /* istanbul ignore next */ []);
|
|
18224
18498
|
this.labelId = input("", ...ngDevMode ? [{ debugName: "labelId" }] : /* istanbul ignore next */ []);
|
|
18225
18499
|
this._generatedLabelId = `rd-${Math.random().toString(36).slice(2, 8)}-label`;
|
|
18226
18500
|
this._labelId = computed(() => this.labelId() || this._generatedLabelId, ...ngDevMode ? [{ debugName: "_labelId" }] : /* istanbul ignore next */ []);
|
|
@@ -18266,6 +18540,13 @@ var RadioComponent = class RadioComponent {
|
|
|
18266
18540
|
isRequired: false,
|
|
18267
18541
|
transformFunction: null
|
|
18268
18542
|
},
|
|
18543
|
+
icon: {
|
|
18544
|
+
classPropertyName: "icon",
|
|
18545
|
+
publicName: "icon",
|
|
18546
|
+
isSignal: true,
|
|
18547
|
+
isRequired: false,
|
|
18548
|
+
transformFunction: null
|
|
18549
|
+
},
|
|
18269
18550
|
ariaLabel: {
|
|
18270
18551
|
classPropertyName: "ariaLabel",
|
|
18271
18552
|
publicName: "ariaLabel",
|
|
@@ -18359,6 +18640,10 @@ var RadioComponent = class RadioComponent {
|
|
|
18359
18640
|
[attr.aria-controls]="controls() || null"
|
|
18360
18641
|
(change)="onChange($event)"
|
|
18361
18642
|
/>
|
|
18643
|
+
@if (_iconD(); as d) {
|
|
18644
|
+
<!-- Optional icon in front of the label (library source 2026-11-04): decorative, so the radio's accessible name is unchanged. -->
|
|
18645
|
+
<svg class="rd-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="d" /></svg>
|
|
18646
|
+
}
|
|
18362
18647
|
<span class="rd-text">
|
|
18363
18648
|
@if (label()) { <span class="rd-label" [id]="_labelId()">{{ label() }}</span> }
|
|
18364
18649
|
@if (description()) { <span class="rd-description" [id]="_descriptionId">{{ description() }}</span> }
|
|
@@ -18367,7 +18652,7 @@ var RadioComponent = class RadioComponent {
|
|
|
18367
18652
|
</label>
|
|
18368
18653
|
`,
|
|
18369
18654
|
isInline: true,
|
|
18370
|
-
styles: [":host{display:block}.rd-wrap{position:relative;display:inline-flex;align-items:flex-start;gap:9px;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.rd-wrap.rd-disabled{cursor:not-allowed;opacity:.5}.rd-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rd-wrap:has(.rd-hidden:focus-visible) .rd-dot{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.rd-wrap{position:relative}.rd-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:-2px;opacity:0;cursor:pointer;z-index:1}.rd-wrap.rd-disabled .rd-hidden{cursor:not-allowed}}.rd-dot{flex-shrink:0;width:20px;height:20px;box-sizing:border-box;border:2px solid #7c8ba1;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.rd-dot.rd-checked{background:#3b82f6;border-color:#3b82f6}.rd-dot.rd-invalid:not(.rd-checked){border-color:#ef4444}.rd-wrap:hover .rd-dot:not(.rd-checked):not(.rd-disabled){border-color:#3b82f6}.rd-core{width:8px;height:8px;border-radius:50%;background:#fff}@media(max-width:640px),(pointer:coarse){.rd-dot{position:relative}.rd-dot:after{content:\"\";position:absolute;inset:-12px}}.rd-text{display:flex;flex-direction:column;gap:2px}.rd-label{font-size:.875rem;color:#334155;line-height:1.4}.rd-description{font-size:.75rem;color:#64748b;line-height:1.4}\n"],
|
|
18655
|
+
styles: [":host{display:block}.rd-wrap{position:relative;display:inline-flex;align-items:flex-start;gap:9px;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.rd-wrap.rd-disabled{cursor:not-allowed;opacity:.5}.rd-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rd-wrap:has(.rd-hidden:focus-visible) .rd-dot{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.rd-wrap{position:relative}.rd-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:-2px;opacity:0;cursor:pointer;z-index:1}.rd-wrap.rd-disabled .rd-hidden{cursor:not-allowed}}.rd-dot{flex-shrink:0;width:20px;height:20px;box-sizing:border-box;border:2px solid #7c8ba1;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.rd-dot.rd-checked{background:#3b82f6;border-color:#3b82f6}.rd-dot.rd-invalid:not(.rd-checked){border-color:#ef4444}.rd-wrap:hover .rd-dot:not(.rd-checked):not(.rd-disabled){border-color:#3b82f6}.rd-core{width:8px;height:8px;border-radius:50%;background:#fff}@media(max-width:640px),(pointer:coarse){.rd-dot{position:relative}.rd-dot:after{content:\"\";position:absolute;inset:-12px}}.rd-icon{flex-shrink:0;margin-top:1px;color:#64748b}.rd-text{display:flex;flex-direction:column;gap:2px}.rd-label{font-size:.875rem;color:#334155;line-height:1.4}.rd-description{font-size:.75rem;color:#64748b;line-height:1.4}\n"],
|
|
18371
18656
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
18372
18657
|
});
|
|
18373
18658
|
}
|
|
@@ -18403,6 +18688,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
18403
18688
|
[attr.aria-controls]="controls() || null"
|
|
18404
18689
|
(change)="onChange($event)"
|
|
18405
18690
|
/>
|
|
18691
|
+
@if (_iconD(); as d) {
|
|
18692
|
+
<!-- Optional icon in front of the label (library source 2026-11-04): decorative, so the radio's accessible name is unchanged. -->
|
|
18693
|
+
<svg class="rd-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="d" /></svg>
|
|
18694
|
+
}
|
|
18406
18695
|
<span class="rd-text">
|
|
18407
18696
|
@if (label()) { <span class="rd-label" [id]="_labelId()">{{ label() }}</span> }
|
|
18408
18697
|
@if (description()) { <span class="rd-description" [id]="_descriptionId">{{ description() }}</span> }
|
|
@@ -18410,7 +18699,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
18410
18699
|
</span>
|
|
18411
18700
|
</label>
|
|
18412
18701
|
`,
|
|
18413
|
-
styles: [":host{display:block}.rd-wrap{position:relative;display:inline-flex;align-items:flex-start;gap:9px;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.rd-wrap.rd-disabled{cursor:not-allowed;opacity:.5}.rd-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rd-wrap:has(.rd-hidden:focus-visible) .rd-dot{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.rd-wrap{position:relative}.rd-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:-2px;opacity:0;cursor:pointer;z-index:1}.rd-wrap.rd-disabled .rd-hidden{cursor:not-allowed}}.rd-dot{flex-shrink:0;width:20px;height:20px;box-sizing:border-box;border:2px solid #7c8ba1;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.rd-dot.rd-checked{background:#3b82f6;border-color:#3b82f6}.rd-dot.rd-invalid:not(.rd-checked){border-color:#ef4444}.rd-wrap:hover .rd-dot:not(.rd-checked):not(.rd-disabled){border-color:#3b82f6}.rd-core{width:8px;height:8px;border-radius:50%;background:#fff}@media(max-width:640px),(pointer:coarse){.rd-dot{position:relative}.rd-dot:after{content:\"\";position:absolute;inset:-12px}}.rd-text{display:flex;flex-direction:column;gap:2px}.rd-label{font-size:.875rem;color:#334155;line-height:1.4}.rd-description{font-size:.75rem;color:#64748b;line-height:1.4}\n"]
|
|
18702
|
+
styles: [":host{display:block}.rd-wrap{position:relative;display:inline-flex;align-items:flex-start;gap:9px;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.rd-wrap.rd-disabled{cursor:not-allowed;opacity:.5}.rd-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rd-wrap:has(.rd-hidden:focus-visible) .rd-dot{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.rd-wrap{position:relative}.rd-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:-2px;opacity:0;cursor:pointer;z-index:1}.rd-wrap.rd-disabled .rd-hidden{cursor:not-allowed}}.rd-dot{flex-shrink:0;width:20px;height:20px;box-sizing:border-box;border:2px solid #7c8ba1;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.rd-dot.rd-checked{background:#3b82f6;border-color:#3b82f6}.rd-dot.rd-invalid:not(.rd-checked){border-color:#ef4444}.rd-wrap:hover .rd-dot:not(.rd-checked):not(.rd-disabled){border-color:#3b82f6}.rd-core{width:8px;height:8px;border-radius:50%;background:#fff}@media(max-width:640px),(pointer:coarse){.rd-dot{position:relative}.rd-dot:after{content:\"\";position:absolute;inset:-12px}}.rd-icon{flex-shrink:0;margin-top:1px;color:#64748b}.rd-text{display:flex;flex-direction:column;gap:2px}.rd-label{font-size:.875rem;color:#334155;line-height:1.4}.rd-description{font-size:.75rem;color:#64748b;line-height:1.4}\n"]
|
|
18414
18703
|
}]
|
|
18415
18704
|
}],
|
|
18416
18705
|
propDecorators: {
|
|
@@ -18430,6 +18719,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
18430
18719
|
required: false
|
|
18431
18720
|
}]
|
|
18432
18721
|
}],
|
|
18722
|
+
icon: [{
|
|
18723
|
+
type: i0.Input,
|
|
18724
|
+
args: [{
|
|
18725
|
+
isSignal: true,
|
|
18726
|
+
alias: "icon",
|
|
18727
|
+
required: false
|
|
18728
|
+
}]
|
|
18729
|
+
}],
|
|
18433
18730
|
ariaLabel: [{
|
|
18434
18731
|
type: i0.Input,
|
|
18435
18732
|
args: [{
|
|
@@ -18790,6 +19087,7 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
18790
19087
|
[value]="opt.value"
|
|
18791
19088
|
[label]="opt.label"
|
|
18792
19089
|
[description]="opt.description ?? ''"
|
|
19090
|
+
[icon]="opt.icon ?? ''"
|
|
18793
19091
|
[checked]="_value() === opt.value"
|
|
18794
19092
|
[disabled]="disabled() || !!opt.disabled"
|
|
18795
19093
|
[invalid]="!!_activeError()"
|
|
@@ -18819,6 +19117,7 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
18819
19117
|
inputs: [
|
|
18820
19118
|
"label",
|
|
18821
19119
|
"description",
|
|
19120
|
+
"icon",
|
|
18822
19121
|
"ariaLabel",
|
|
18823
19122
|
"testId",
|
|
18824
19123
|
"value",
|
|
@@ -18897,6 +19196,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
18897
19196
|
[value]="opt.value"
|
|
18898
19197
|
[label]="opt.label"
|
|
18899
19198
|
[description]="opt.description ?? ''"
|
|
19199
|
+
[icon]="opt.icon ?? ''"
|
|
18900
19200
|
[checked]="_value() === opt.value"
|
|
18901
19201
|
[disabled]="disabled() || !!opt.disabled"
|
|
18902
19202
|
[invalid]="!!_activeError()"
|
|
@@ -19700,6 +20000,7 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
19700
20000
|
"inputName",
|
|
19701
20001
|
"placeholder",
|
|
19702
20002
|
"prefix",
|
|
20003
|
+
"leadingIcon",
|
|
19703
20004
|
"revealable",
|
|
19704
20005
|
"passwordRequirements",
|
|
19705
20006
|
"passwordRules",
|
|
@@ -20196,6 +20497,146 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
20196
20497
|
}]
|
|
20197
20498
|
}
|
|
20198
20499
|
});
|
|
20500
|
+
function pillTabId(name, key) {
|
|
20501
|
+
return `${name}-${key}`;
|
|
20502
|
+
}
|
|
20503
|
+
function pillTabPanelId(name, key) {
|
|
20504
|
+
return `${name}-panel-${key}`;
|
|
20505
|
+
}
|
|
20506
|
+
var PillTabPanelDirective = class PillTabPanelDirective {
|
|
20507
|
+
constructor() {
|
|
20508
|
+
this.key = input.required({
|
|
20509
|
+
...ngDevMode ? { debugName: "key" } : /* istanbul ignore next */ {},
|
|
20510
|
+
alias: "uiTabPanel"
|
|
20511
|
+
});
|
|
20512
|
+
this.tabsName = input.required(...ngDevMode ? [{ debugName: "tabsName" }] : /* istanbul ignore next */ []);
|
|
20513
|
+
this.activeKey = input(null, ...ngDevMode ? [{ debugName: "activeKey" }] : /* istanbul ignore next */ []);
|
|
20514
|
+
this.tabbable = input(false, ...ngDevMode ? [{ debugName: "tabbable" }] : /* istanbul ignore next */ []);
|
|
20515
|
+
}
|
|
20516
|
+
panelId() {
|
|
20517
|
+
return pillTabPanelId(this.tabsName(), this.key());
|
|
20518
|
+
}
|
|
20519
|
+
tabId() {
|
|
20520
|
+
return pillTabId(this.tabsName(), this.key());
|
|
20521
|
+
}
|
|
20522
|
+
isHidden() {
|
|
20523
|
+
const a = this.activeKey();
|
|
20524
|
+
return a !== null && a !== this.key();
|
|
20525
|
+
}
|
|
20526
|
+
static {
|
|
20527
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
20528
|
+
minVersion: "12.0.0",
|
|
20529
|
+
version: "22.2.2",
|
|
20530
|
+
ngImport: i0,
|
|
20531
|
+
type: PillTabPanelDirective,
|
|
20532
|
+
deps: [],
|
|
20533
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
20534
|
+
});
|
|
20535
|
+
}
|
|
20536
|
+
static {
|
|
20537
|
+
this.ɵdir = i0.ɵɵngDeclareDirective({
|
|
20538
|
+
minVersion: "17.1.0",
|
|
20539
|
+
version: "22.2.2",
|
|
20540
|
+
type: PillTabPanelDirective,
|
|
20541
|
+
isStandalone: true,
|
|
20542
|
+
selector: "[uiTabPanel]",
|
|
20543
|
+
inputs: {
|
|
20544
|
+
key: {
|
|
20545
|
+
classPropertyName: "key",
|
|
20546
|
+
publicName: "uiTabPanel",
|
|
20547
|
+
isSignal: true,
|
|
20548
|
+
isRequired: true,
|
|
20549
|
+
transformFunction: null
|
|
20550
|
+
},
|
|
20551
|
+
tabsName: {
|
|
20552
|
+
classPropertyName: "tabsName",
|
|
20553
|
+
publicName: "tabsName",
|
|
20554
|
+
isSignal: true,
|
|
20555
|
+
isRequired: true,
|
|
20556
|
+
transformFunction: null
|
|
20557
|
+
},
|
|
20558
|
+
activeKey: {
|
|
20559
|
+
classPropertyName: "activeKey",
|
|
20560
|
+
publicName: "activeKey",
|
|
20561
|
+
isSignal: true,
|
|
20562
|
+
isRequired: false,
|
|
20563
|
+
transformFunction: null
|
|
20564
|
+
},
|
|
20565
|
+
tabbable: {
|
|
20566
|
+
classPropertyName: "tabbable",
|
|
20567
|
+
publicName: "tabbable",
|
|
20568
|
+
isSignal: true,
|
|
20569
|
+
isRequired: false,
|
|
20570
|
+
transformFunction: null
|
|
20571
|
+
}
|
|
20572
|
+
},
|
|
20573
|
+
host: {
|
|
20574
|
+
attributes: { "role": "tabpanel" },
|
|
20575
|
+
properties: {
|
|
20576
|
+
"id": "panelId()",
|
|
20577
|
+
"attr.aria-labelledby": "tabId()",
|
|
20578
|
+
"attr.hidden": "isHidden() ? '' : null",
|
|
20579
|
+
"attr.tabindex": "tabbable() ? 0 : null"
|
|
20580
|
+
}
|
|
20581
|
+
},
|
|
20582
|
+
ngImport: i0
|
|
20583
|
+
});
|
|
20584
|
+
}
|
|
20585
|
+
};
|
|
20586
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
20587
|
+
minVersion: "12.0.0",
|
|
20588
|
+
version: "22.2.2",
|
|
20589
|
+
ngImport: i0,
|
|
20590
|
+
type: PillTabPanelDirective,
|
|
20591
|
+
decorators: [{
|
|
20592
|
+
type: Directive,
|
|
20593
|
+
args: [{
|
|
20594
|
+
selector: "[uiTabPanel]",
|
|
20595
|
+
standalone: true,
|
|
20596
|
+
host: {
|
|
20597
|
+
role: "tabpanel",
|
|
20598
|
+
"[id]": "panelId()",
|
|
20599
|
+
"[attr.aria-labelledby]": "tabId()",
|
|
20600
|
+
"[attr.hidden]": "isHidden() ? '' : null",
|
|
20601
|
+
"[attr.tabindex]": "tabbable() ? 0 : null"
|
|
20602
|
+
}
|
|
20603
|
+
}]
|
|
20604
|
+
}],
|
|
20605
|
+
propDecorators: {
|
|
20606
|
+
key: [{
|
|
20607
|
+
type: i0.Input,
|
|
20608
|
+
args: [{
|
|
20609
|
+
isSignal: true,
|
|
20610
|
+
alias: "uiTabPanel",
|
|
20611
|
+
required: true
|
|
20612
|
+
}]
|
|
20613
|
+
}],
|
|
20614
|
+
tabsName: [{
|
|
20615
|
+
type: i0.Input,
|
|
20616
|
+
args: [{
|
|
20617
|
+
isSignal: true,
|
|
20618
|
+
alias: "tabsName",
|
|
20619
|
+
required: true
|
|
20620
|
+
}]
|
|
20621
|
+
}],
|
|
20622
|
+
activeKey: [{
|
|
20623
|
+
type: i0.Input,
|
|
20624
|
+
args: [{
|
|
20625
|
+
isSignal: true,
|
|
20626
|
+
alias: "activeKey",
|
|
20627
|
+
required: false
|
|
20628
|
+
}]
|
|
20629
|
+
}],
|
|
20630
|
+
tabbable: [{
|
|
20631
|
+
type: i0.Input,
|
|
20632
|
+
args: [{
|
|
20633
|
+
isSignal: true,
|
|
20634
|
+
alias: "tabbable",
|
|
20635
|
+
required: false
|
|
20636
|
+
}]
|
|
20637
|
+
}]
|
|
20638
|
+
}
|
|
20639
|
+
});
|
|
20199
20640
|
var PillTabsComponent = class PillTabsComponent {
|
|
20200
20641
|
constructor() {
|
|
20201
20642
|
this.host = inject(ElementRef);
|
|
@@ -20206,10 +20647,23 @@ var PillTabsComponent = class PillTabsComponent {
|
|
|
20206
20647
|
this.noWrap = input(false, ...ngDevMode ? [{ debugName: "noWrap" }] : /* istanbul ignore next */ []);
|
|
20207
20648
|
this.orientation = input("horizontal", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
|
|
20208
20649
|
this.vertical = () => this.orientation() === "vertical";
|
|
20650
|
+
this.controlsPanels = input(false, ...ngDevMode ? [{ debugName: "controlsPanels" }] : /* istanbul ignore next */ []);
|
|
20209
20651
|
this.tabChange = output();
|
|
20210
20652
|
this.canScrollStart = signal(false, ...ngDevMode ? [{ debugName: "canScrollStart" }] : /* istanbul ignore next */ []);
|
|
20211
20653
|
this.canScrollEnd = signal(false, ...ngDevMode ? [{ debugName: "canScrollEnd" }] : /* istanbul ignore next */ []);
|
|
20212
20654
|
const destroyRef = inject(DestroyRef);
|
|
20655
|
+
const warned = /* @__PURE__ */ new Set();
|
|
20656
|
+
effect(() => {
|
|
20657
|
+
const on = this.controlsPanels(), tabs = this.tabs(), name = this.name();
|
|
20658
|
+
if (!on || !isDevMode()) return;
|
|
20659
|
+
untracked(() => {
|
|
20660
|
+
for (const t of tabs) {
|
|
20661
|
+
if (!t.key.startsWith("panel-") || warned.has(name + "|" + t.key)) continue;
|
|
20662
|
+
warned.add(name + "|" + t.key);
|
|
20663
|
+
console.warn(`ui-pill-tabs "${name}": the tab key "${t.key}" starts with "panel-", so its id "${pillTabId(name, t.key)}" can equal the panel id of the key "${t.key.slice(6)}" (${pillTabPanelId(name, t.key.slice(6))}) when controlsPanels is on. Rename the key.`);
|
|
20664
|
+
}
|
|
20665
|
+
});
|
|
20666
|
+
});
|
|
20213
20667
|
effect(() => {
|
|
20214
20668
|
this.tabs();
|
|
20215
20669
|
queueMicrotask(() => this.updateOverflow());
|
|
@@ -20224,6 +20678,12 @@ var PillTabsComponent = class PillTabsComponent {
|
|
|
20224
20678
|
}
|
|
20225
20679
|
});
|
|
20226
20680
|
}
|
|
20681
|
+
tabId(key) {
|
|
20682
|
+
return pillTabId(this.name(), key);
|
|
20683
|
+
}
|
|
20684
|
+
panelId(key) {
|
|
20685
|
+
return pillTabPanelId(this.name(), key);
|
|
20686
|
+
}
|
|
20227
20687
|
updateOverflow() {
|
|
20228
20688
|
const el = this.host.nativeElement.querySelector(".pill-tabs");
|
|
20229
20689
|
if (!el) return;
|
|
@@ -20254,7 +20714,7 @@ var PillTabsComponent = class PillTabsComponent {
|
|
|
20254
20714
|
e.preventDefault();
|
|
20255
20715
|
const key = enabled[next].key;
|
|
20256
20716
|
this.select(key);
|
|
20257
|
-
this.host.nativeElement.querySelector(`#${CSS.escape(this.
|
|
20717
|
+
this.host.nativeElement.querySelector(`#${CSS.escape(this.tabId(key))}`)?.focus();
|
|
20258
20718
|
}
|
|
20259
20719
|
static {
|
|
20260
20720
|
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
@@ -20315,6 +20775,13 @@ var PillTabsComponent = class PillTabsComponent {
|
|
|
20315
20775
|
isSignal: true,
|
|
20316
20776
|
isRequired: false,
|
|
20317
20777
|
transformFunction: null
|
|
20778
|
+
},
|
|
20779
|
+
controlsPanels: {
|
|
20780
|
+
classPropertyName: "controlsPanels",
|
|
20781
|
+
publicName: "controlsPanels",
|
|
20782
|
+
isSignal: true,
|
|
20783
|
+
isRequired: false,
|
|
20784
|
+
transformFunction: null
|
|
20318
20785
|
}
|
|
20319
20786
|
},
|
|
20320
20787
|
outputs: { tabChange: "tabChange" },
|
|
@@ -20324,13 +20791,14 @@ var PillTabsComponent = class PillTabsComponent {
|
|
|
20324
20791
|
<div class="pill-tabs" [class.pill-tabs--nowrap]="noWrap()" [class.pill-tabs--vertical]="vertical()" role="tablist" [attr.aria-label]="ariaLabel()" [attr.aria-orientation]="vertical() ? 'vertical' : null" (keydown)="onKeydown($event)" (scroll)="updateOverflow()">
|
|
20325
20792
|
@for (tab of tabs(); track tab.key) {
|
|
20326
20793
|
<button type="button" class="pill-tab" role="tab"
|
|
20327
|
-
[id]="
|
|
20794
|
+
[id]="tabId(tab.key)"
|
|
20328
20795
|
[class.active]="activeKey() === tab.key"
|
|
20329
20796
|
[class.disabled]="tab.disabled"
|
|
20330
20797
|
[disabled]="tab.disabled ?? false"
|
|
20331
20798
|
[attr.aria-selected]="activeKey() === tab.key"
|
|
20332
20799
|
[attr.tabindex]="tabIndexFor(tab)"
|
|
20333
|
-
[attr.aria-describedby]="tab.info ?
|
|
20800
|
+
[attr.aria-describedby]="tab.info ? tabId(tab.key) + '-info' : null"
|
|
20801
|
+
[attr.aria-controls]="controlsPanels() ? panelId(tab.key) : null"
|
|
20334
20802
|
(click)="select(tab.key)">
|
|
20335
20803
|
<span>{{ tab.label }}</span>
|
|
20336
20804
|
@if (tab.count !== undefined) {
|
|
@@ -20340,7 +20808,7 @@ var PillTabsComponent = class PillTabsComponent {
|
|
|
20340
20808
|
<svg class="pill-info-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" data-testid="pill-info-icon">
|
|
20341
20809
|
<circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/>
|
|
20342
20810
|
</svg>
|
|
20343
|
-
<span class="pill-info-tip" role="tooltip" aria-hidden="true" [id]="
|
|
20811
|
+
<span class="pill-info-tip" role="tooltip" aria-hidden="true" [id]="tabId(tab.key) + '-info'" data-testid="pill-info-tip">{{ tab.info }}</span>
|
|
20344
20812
|
}
|
|
20345
20813
|
</button>
|
|
20346
20814
|
}
|
|
@@ -20371,13 +20839,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
20371
20839
|
<div class="pill-tabs" [class.pill-tabs--nowrap]="noWrap()" [class.pill-tabs--vertical]="vertical()" role="tablist" [attr.aria-label]="ariaLabel()" [attr.aria-orientation]="vertical() ? 'vertical' : null" (keydown)="onKeydown($event)" (scroll)="updateOverflow()">
|
|
20372
20840
|
@for (tab of tabs(); track tab.key) {
|
|
20373
20841
|
<button type="button" class="pill-tab" role="tab"
|
|
20374
|
-
[id]="
|
|
20842
|
+
[id]="tabId(tab.key)"
|
|
20375
20843
|
[class.active]="activeKey() === tab.key"
|
|
20376
20844
|
[class.disabled]="tab.disabled"
|
|
20377
20845
|
[disabled]="tab.disabled ?? false"
|
|
20378
20846
|
[attr.aria-selected]="activeKey() === tab.key"
|
|
20379
20847
|
[attr.tabindex]="tabIndexFor(tab)"
|
|
20380
|
-
[attr.aria-describedby]="tab.info ?
|
|
20848
|
+
[attr.aria-describedby]="tab.info ? tabId(tab.key) + '-info' : null"
|
|
20849
|
+
[attr.aria-controls]="controlsPanels() ? panelId(tab.key) : null"
|
|
20381
20850
|
(click)="select(tab.key)">
|
|
20382
20851
|
<span>{{ tab.label }}</span>
|
|
20383
20852
|
@if (tab.count !== undefined) {
|
|
@@ -20387,7 +20856,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
20387
20856
|
<svg class="pill-info-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" data-testid="pill-info-icon">
|
|
20388
20857
|
<circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/>
|
|
20389
20858
|
</svg>
|
|
20390
|
-
<span class="pill-info-tip" role="tooltip" aria-hidden="true" [id]="
|
|
20859
|
+
<span class="pill-info-tip" role="tooltip" aria-hidden="true" [id]="tabId(tab.key) + '-info'" data-testid="pill-info-tip">{{ tab.info }}</span>
|
|
20391
20860
|
}
|
|
20392
20861
|
</button>
|
|
20393
20862
|
}
|
|
@@ -20449,6 +20918,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
20449
20918
|
required: false
|
|
20450
20919
|
}]
|
|
20451
20920
|
}],
|
|
20921
|
+
controlsPanels: [{
|
|
20922
|
+
type: i0.Input,
|
|
20923
|
+
args: [{
|
|
20924
|
+
isSignal: true,
|
|
20925
|
+
alias: "controlsPanels",
|
|
20926
|
+
required: false
|
|
20927
|
+
}]
|
|
20928
|
+
}],
|
|
20452
20929
|
tabChange: [{
|
|
20453
20930
|
type: i0.Output,
|
|
20454
20931
|
args: ["tabChange"]
|
|
@@ -21338,6 +21815,7 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
21338
21815
|
this._activeError = computed(() => this.error() || (this._reveal.revealed() ? this.errorMessage() : ""), ...ngDevMode ? [{ debugName: "_activeError" }] : /* istanbul ignore next */ []);
|
|
21339
21816
|
this._onValidatorChange = () => {};
|
|
21340
21817
|
this._inputId = `ta-${Math.random().toString(36).slice(2, 8)}`;
|
|
21818
|
+
this._hostEl = inject(ElementRef);
|
|
21341
21819
|
this._onChange = (_) => {};
|
|
21342
21820
|
this._onTouched = () => {};
|
|
21343
21821
|
effect(() => {
|
|
@@ -21354,6 +21832,9 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
21354
21832
|
registerOnValidatorChange(fn) {
|
|
21355
21833
|
this._onValidatorChange = fn;
|
|
21356
21834
|
}
|
|
21835
|
+
focus(options) {
|
|
21836
|
+
this._hostEl.nativeElement.querySelector("textarea")?.focus(options);
|
|
21837
|
+
}
|
|
21357
21838
|
writeValue(val) {
|
|
21358
21839
|
this._value.set(val ?? "");
|
|
21359
21840
|
}
|
|
@@ -21984,6 +22465,7 @@ var BulkMessagePanelComponent = class BulkMessagePanelComponent {
|
|
|
21984
22465
|
"inputName",
|
|
21985
22466
|
"placeholder",
|
|
21986
22467
|
"prefix",
|
|
22468
|
+
"leadingIcon",
|
|
21987
22469
|
"revealable",
|
|
21988
22470
|
"passwordRequirements",
|
|
21989
22471
|
"passwordRules",
|
|
@@ -22630,6 +23112,7 @@ var BankAccountFormComponent = class BankAccountFormComponent {
|
|
|
22630
23112
|
inputs: [
|
|
22631
23113
|
"label",
|
|
22632
23114
|
"ariaLabel",
|
|
23115
|
+
"labelHidden",
|
|
22633
23116
|
"inputName",
|
|
22634
23117
|
"placeholder",
|
|
22635
23118
|
"options",
|
|
@@ -22655,6 +23138,7 @@ var BankAccountFormComponent = class BankAccountFormComponent {
|
|
|
22655
23138
|
"inputName",
|
|
22656
23139
|
"placeholder",
|
|
22657
23140
|
"prefix",
|
|
23141
|
+
"leadingIcon",
|
|
22658
23142
|
"revealable",
|
|
22659
23143
|
"passwordRequirements",
|
|
22660
23144
|
"passwordRules",
|
|
@@ -28351,6 +28835,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28351
28835
|
});
|
|
28352
28836
|
var ListItemComponent = class ListItemComponent {
|
|
28353
28837
|
constructor() {
|
|
28838
|
+
this.host = inject(ElementRef);
|
|
28354
28839
|
this.leading = input("none", ...ngDevMode ? [{ debugName: "leading" }] : /* istanbul ignore next */ []);
|
|
28355
28840
|
this.inputName = input("", ...ngDevMode ? [{ debugName: "inputName" }] : /* istanbul ignore next */ []);
|
|
28356
28841
|
this.inputId = input("", ...ngDevMode ? [{ debugName: "inputId" }] : /* istanbul ignore next */ []);
|
|
@@ -28360,6 +28845,8 @@ var ListItemComponent = class ListItemComponent {
|
|
|
28360
28845
|
this.interactive = input(true, ...ngDevMode ? [{ debugName: "interactive" }] : /* istanbul ignore next */ []);
|
|
28361
28846
|
this.alwaysShowBadge = input(false, ...ngDevMode ? [{ debugName: "alwaysShowBadge" }] : /* istanbul ignore next */ []);
|
|
28362
28847
|
this.wrapText = input(false, ...ngDevMode ? [{ debugName: "wrapText" }] : /* istanbul ignore next */ []);
|
|
28848
|
+
this.disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
28849
|
+
this.busy = input(false, ...ngDevMode ? [{ debugName: "busy" }] : /* istanbul ignore next */ []);
|
|
28363
28850
|
this.title = input("", ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
|
|
28364
28851
|
this.badge = input(null, ...ngDevMode ? [{ debugName: "badge" }] : /* istanbul ignore next */ []);
|
|
28365
28852
|
this.badgeVariant = input("green", ...ngDevMode ? [{ debugName: "badgeVariant" }] : /* istanbul ignore next */ []);
|
|
@@ -28369,6 +28856,7 @@ var ListItemComponent = class ListItemComponent {
|
|
|
28369
28856
|
this.iconD = () => this.icon() ? iconPath(this.icon()) ?? null : null;
|
|
28370
28857
|
this.select = output();
|
|
28371
28858
|
this.pressable = () => this.interactive() && this.leading() === "none";
|
|
28859
|
+
this.hasImage = signal(false, ...ngDevMode ? [{ debugName: "hasImage" }] : /* istanbul ignore next */ []);
|
|
28372
28860
|
this.visibleDetails = () => this.details().map((d) => typeof d === "string" ? {
|
|
28373
28861
|
text: d,
|
|
28374
28862
|
d: null,
|
|
@@ -28382,14 +28870,43 @@ var ListItemComponent = class ListItemComponent {
|
|
|
28382
28870
|
get _borderedClass() {
|
|
28383
28871
|
return this.bordered();
|
|
28384
28872
|
}
|
|
28873
|
+
get _disabledClass() {
|
|
28874
|
+
return this.disabled();
|
|
28875
|
+
}
|
|
28876
|
+
ngAfterContentChecked() {
|
|
28877
|
+
const kids = this.host.nativeElement.firstElementChild?.children;
|
|
28878
|
+
let has = false;
|
|
28879
|
+
if (kids) {
|
|
28880
|
+
for (let i = 0; i < kids.length; i++) if (kids[i].hasAttribute("list-item-image")) {
|
|
28881
|
+
has = true;
|
|
28882
|
+
break;
|
|
28883
|
+
}
|
|
28884
|
+
}
|
|
28885
|
+
if (has !== this.hasImage()) this.hasImage.set(has);
|
|
28886
|
+
}
|
|
28887
|
+
onInputClick(e) {
|
|
28888
|
+
if (this.disabled() || this.busy()) e.preventDefault();
|
|
28889
|
+
}
|
|
28890
|
+
onInputKey(e) {
|
|
28891
|
+
if ((this.disabled() || this.busy()) && (e.key === "ArrowUp" || e.key === "ArrowDown" || e.key === "ArrowLeft" || e.key === "ArrowRight")) e.preventDefault();
|
|
28892
|
+
}
|
|
28893
|
+
onInputChange(e) {
|
|
28894
|
+
const input = e.target;
|
|
28895
|
+
if (this.disabled() || this.busy()) {
|
|
28896
|
+
input.checked = this.checked();
|
|
28897
|
+
return;
|
|
28898
|
+
}
|
|
28899
|
+
this.select.emit();
|
|
28900
|
+
}
|
|
28385
28901
|
onRowClick(e) {
|
|
28386
|
-
if (!this.pressable()) return;
|
|
28902
|
+
if (!this.pressable() || this.disabled() || this.busy()) return;
|
|
28387
28903
|
if (e.target.closest("[list-item-action], [li-action]")) return;
|
|
28388
28904
|
this.select.emit();
|
|
28389
28905
|
}
|
|
28390
28906
|
onRowKey(e) {
|
|
28391
28907
|
if (!this.pressable() || e.target !== e.currentTarget) return;
|
|
28392
28908
|
e.preventDefault();
|
|
28909
|
+
if (this.disabled() || this.busy()) return;
|
|
28393
28910
|
this.select.emit();
|
|
28394
28911
|
}
|
|
28395
28912
|
static {
|
|
@@ -28473,6 +28990,20 @@ var ListItemComponent = class ListItemComponent {
|
|
|
28473
28990
|
isRequired: false,
|
|
28474
28991
|
transformFunction: null
|
|
28475
28992
|
},
|
|
28993
|
+
disabled: {
|
|
28994
|
+
classPropertyName: "disabled",
|
|
28995
|
+
publicName: "disabled",
|
|
28996
|
+
isSignal: true,
|
|
28997
|
+
isRequired: false,
|
|
28998
|
+
transformFunction: null
|
|
28999
|
+
},
|
|
29000
|
+
busy: {
|
|
29001
|
+
classPropertyName: "busy",
|
|
29002
|
+
publicName: "busy",
|
|
29003
|
+
isSignal: true,
|
|
29004
|
+
isRequired: false,
|
|
29005
|
+
transformFunction: null
|
|
29006
|
+
},
|
|
28476
29007
|
title: {
|
|
28477
29008
|
classPropertyName: "title",
|
|
28478
29009
|
publicName: "title",
|
|
@@ -28517,7 +29048,10 @@ var ListItemComponent = class ListItemComponent {
|
|
|
28517
29048
|
}
|
|
28518
29049
|
},
|
|
28519
29050
|
outputs: { select: "select" },
|
|
28520
|
-
host: { properties: {
|
|
29051
|
+
host: { properties: {
|
|
29052
|
+
"class.li-bordered": "this._borderedClass",
|
|
29053
|
+
"class.li-disabled": "this._disabledClass"
|
|
29054
|
+
} },
|
|
28521
29055
|
ngImport: i0,
|
|
28522
29056
|
template: `
|
|
28523
29057
|
<ng-template #tile>
|
|
@@ -28549,46 +29083,58 @@ var ListItemComponent = class ListItemComponent {
|
|
|
28549
29083
|
</ng-template>
|
|
28550
29084
|
|
|
28551
29085
|
<div class="li-row" [class.li-row--highlighted]="highlighted()" [class.li-row--pressable]="pressable()"
|
|
28552
|
-
[
|
|
29086
|
+
[class.li-row--disabled]="disabled()" [class.li-row--busy]="busy()"
|
|
29087
|
+
[attr.role]="pressable() ? 'button' : null" [attr.tabindex]="pressable() && !disabled() ? 0 : null"
|
|
29088
|
+
[attr.aria-disabled]="disabled() && pressable() ? 'true' : null" [attr.aria-busy]="busy() ? 'true' : null"
|
|
28553
29089
|
(click)="onRowClick($event)" (keydown.enter)="onRowKey($event)" (keydown.space)="onRowKey($event)" [class.li-row--static]="!interactive()" [class.li-row--wrap]="wrapText() || !interactive()">
|
|
28554
29090
|
|
|
28555
|
-
@if (
|
|
28556
|
-
<ng-container [ngTemplateOutlet]="tile" />
|
|
28557
|
-
<div class="li-body li-body--static">
|
|
28558
|
-
<ng-container [ngTemplateOutlet]="content" />
|
|
28559
|
-
</div>
|
|
28560
|
-
} @else {
|
|
28561
|
-
@if (leading() === 'radio') {
|
|
29091
|
+
@if (interactive() && leading() === 'radio') {
|
|
28562
29092
|
<input
|
|
28563
29093
|
type="radio"
|
|
28564
29094
|
class="li-input"
|
|
28565
29095
|
[id]="inputId()"
|
|
28566
29096
|
[name]="inputName()"
|
|
28567
29097
|
[checked]="checked()"
|
|
28568
|
-
|
|
29098
|
+
[disabled]="disabled()"
|
|
29099
|
+
(click)="onInputClick($event)"
|
|
29100
|
+
(keydown)="onInputKey($event)"
|
|
29101
|
+
(change)="onInputChange($event)"
|
|
28569
29102
|
/>
|
|
28570
|
-
} @else if (leading() === 'checkbox') {
|
|
29103
|
+
} @else if (interactive() && leading() === 'checkbox') {
|
|
28571
29104
|
<input
|
|
28572
29105
|
type="checkbox"
|
|
28573
29106
|
class="li-input"
|
|
28574
29107
|
[id]="inputId()"
|
|
28575
29108
|
[checked]="checked()"
|
|
28576
|
-
|
|
29109
|
+
[disabled]="disabled()"
|
|
29110
|
+
(click)="onInputClick($event)"
|
|
29111
|
+
(keydown)="onInputKey($event)"
|
|
29112
|
+
(change)="onInputChange($event)"
|
|
28577
29113
|
/>
|
|
28578
29114
|
}
|
|
28579
29115
|
|
|
28580
|
-
|
|
28581
|
-
<
|
|
28582
|
-
|
|
28583
|
-
|
|
29116
|
+
<!-- Leading image slot (library source 2026-11-04): a product photo in front of the text. Replaces the icon tile. -->
|
|
29117
|
+
<ng-content select="[list-item-image]" />
|
|
29118
|
+
@if (!hasImage()) { <ng-container [ngTemplateOutlet]="tile" /> }
|
|
29119
|
+
@if (!interactive()) {
|
|
29120
|
+
<div class="li-body li-body--static">
|
|
29121
|
+
<ng-container [ngTemplateOutlet]="content" />
|
|
29122
|
+
</div>
|
|
29123
|
+
} @else {
|
|
29124
|
+
<label class="li-body" [attr.for]="inputId() || null">
|
|
29125
|
+
<ng-container [ngTemplateOutlet]="content" />
|
|
29126
|
+
</label>
|
|
28584
29127
|
}
|
|
28585
29128
|
|
|
29129
|
+
@if (busy()) {
|
|
29130
|
+
<span class="li-spinner" aria-hidden="true"></span>
|
|
29131
|
+
}
|
|
28586
29132
|
<ng-content select="[list-item-action], [li-action]" />
|
|
28587
29133
|
|
|
28588
29134
|
</div>
|
|
28589
29135
|
`,
|
|
28590
29136
|
isInline: true,
|
|
28591
|
-
styles: ["ui-list-item{display:block}ui-list-item.li-bordered{border:1px solid var(--border, #e2e8f0);border-radius:12px;overflow:hidden;background:var(--surface, #fff);box-shadow:0 1px 2px #0f172a0a;margin-bottom:8px;transition:border-color .15s ease,box-shadow .15s ease}ui-list-item.li-bordered:last-child{margin-bottom:0}ui-list-item.li-bordered:hover{border-color:#cbd5e1;box-shadow:0 2px 6px #0f172a12}@media(prefers-reduced-motion:reduce){ui-list-item.li-bordered{transition:none}}.li-row{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s}.li-row:last-child{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}ui-list-item.li-bordered .li-row{border-bottom:none;padding:14px 16px}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-row.li-row--pressable{cursor:pointer}.li-row.li-row--pressable:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:-2px}.li-body.li-body--static{cursor:default}.li-row [list-item-action],.li-row [li-action]{flex-shrink:0;align-self:center}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px}.li-icon--slate{background:#f1f5f9;color:#475569}.li-icon--amber{background:#fef3c7;color:#b45309}.li-icon--orange{background:#ffedd5;color:#c2410c}.li-icon--red{background:#fee2e2;color:#b91c1c}.li-icon--blue{background:#dbeafe;color:#1d4ed8}.li-icon--green{background:#dcfce7;color:#15803d}.li-icon--purple{background:#f3e8ff;color:#7e22ce}.li-icon--teal{background:#ccfbf1;color:#0f766e}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:6px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.9375rem;font-weight:600;line-height:1.4;letter-spacing:-.005em;color:var(--text-primary, #0f172a)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-direction:column;gap:3px;font-size:.8125rem;line-height:1.4;color:var(--text-secondary, #64748b)}.li-detail{display:flex;align-items:center;gap:6px;min-width:0}.li-detail-icon{flex:0 0 auto;color:#94a3b8}.li-detail--warning,.li-detail--warning .li-detail-icon{color:#b45309}.li-detail--danger,.li-detail--danger .li-detail-icon{color:#b91c1c}.li-row--wrap .li-detail-text{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"],
|
|
29137
|
+
styles: ["ui-list-item{display:block}ui-list-item.li-bordered{border:1px solid var(--border, #e2e8f0);border-radius:12px;overflow:hidden;background:var(--surface, #fff);box-shadow:0 1px 2px #0f172a0a;margin-bottom:8px;transition:border-color .15s ease,box-shadow .15s ease}ui-list-item.li-bordered:last-child{margin-bottom:0}ui-list-item.li-bordered:hover{border-color:#cbd5e1;box-shadow:0 2px 6px #0f172a12}@media(prefers-reduced-motion:reduce){ui-list-item.li-bordered{transition:none}}.li-row{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s}.li-row:last-child{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}ui-list-item.li-bordered .li-row{border-bottom:none;padding:14px 16px}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-row.li-row--pressable{cursor:pointer}.li-row.li-row--pressable:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:-2px}.li-body.li-body--static{cursor:default}.li-row [list-item-action],.li-row [li-action]{flex-shrink:0;align-self:center}.li-row>[list-item-image]{flex:0 0 auto;align-self:center}.li-row.li-row--disabled,.li-row.li-row--disabled:hover{opacity:.72;cursor:not-allowed;background-color:var(--surface-muted, #f8fafc);background-image:repeating-linear-gradient(135deg,transparent 0,transparent 6px,rgba(100,116,139,.1) 6px,rgba(100,116,139,.1) 12px)}.li-row.li-row--disabled .li-body,.li-row.li-row--disabled .li-input,.li-row.li-row--disabled.li-row--pressable{cursor:not-allowed}ui-list-item.li-disabled.li-bordered,ui-list-item.li-disabled.li-bordered:hover{border-style:dashed;box-shadow:none}.li-row.li-row--busy,.li-row.li-row--busy .li-body{cursor:progress}.li-spinner{flex:0 0 auto;align-self:center;box-sizing:border-box;width:16px;height:16px;border:2px solid rgba(100,116,139,.3);border-top-color:var(--text-secondary, #475569);border-radius:50%;animation:li-spin .6s linear infinite}@keyframes li-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.li-spinner{animation-duration:2s}}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px}.li-icon--slate{background:#f1f5f9;color:#475569}.li-icon--amber{background:#fef3c7;color:#b45309}.li-icon--orange{background:#ffedd5;color:#c2410c}.li-icon--red{background:#fee2e2;color:#b91c1c}.li-icon--blue{background:#dbeafe;color:#1d4ed8}.li-icon--green{background:#dcfce7;color:#15803d}.li-icon--purple{background:#f3e8ff;color:#7e22ce}.li-icon--teal{background:#ccfbf1;color:#0f766e}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:6px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.9375rem;font-weight:600;line-height:1.4;letter-spacing:-.005em;color:var(--text-primary, #0f172a)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-direction:column;gap:3px;font-size:.8125rem;line-height:1.4;color:var(--text-secondary, #64748b)}.li-detail{display:flex;align-items:center;gap:6px;min-width:0}.li-detail-icon{flex:0 0 auto;color:#94a3b8}.li-detail--warning,.li-detail--warning .li-detail-icon{color:#b45309}.li-detail--danger,.li-detail--danger .li-detail-icon{color:#b91c1c}.li-row--wrap .li-detail-text{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"],
|
|
28592
29138
|
dependencies: [{
|
|
28593
29139
|
kind: "component",
|
|
28594
29140
|
type: BadgeComponent,
|
|
@@ -28652,45 +29198,57 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28652
29198
|
</ng-template>
|
|
28653
29199
|
|
|
28654
29200
|
<div class="li-row" [class.li-row--highlighted]="highlighted()" [class.li-row--pressable]="pressable()"
|
|
28655
|
-
[
|
|
29201
|
+
[class.li-row--disabled]="disabled()" [class.li-row--busy]="busy()"
|
|
29202
|
+
[attr.role]="pressable() ? 'button' : null" [attr.tabindex]="pressable() && !disabled() ? 0 : null"
|
|
29203
|
+
[attr.aria-disabled]="disabled() && pressable() ? 'true' : null" [attr.aria-busy]="busy() ? 'true' : null"
|
|
28656
29204
|
(click)="onRowClick($event)" (keydown.enter)="onRowKey($event)" (keydown.space)="onRowKey($event)" [class.li-row--static]="!interactive()" [class.li-row--wrap]="wrapText() || !interactive()">
|
|
28657
29205
|
|
|
28658
|
-
@if (
|
|
28659
|
-
<ng-container [ngTemplateOutlet]="tile" />
|
|
28660
|
-
<div class="li-body li-body--static">
|
|
28661
|
-
<ng-container [ngTemplateOutlet]="content" />
|
|
28662
|
-
</div>
|
|
28663
|
-
} @else {
|
|
28664
|
-
@if (leading() === 'radio') {
|
|
29206
|
+
@if (interactive() && leading() === 'radio') {
|
|
28665
29207
|
<input
|
|
28666
29208
|
type="radio"
|
|
28667
29209
|
class="li-input"
|
|
28668
29210
|
[id]="inputId()"
|
|
28669
29211
|
[name]="inputName()"
|
|
28670
29212
|
[checked]="checked()"
|
|
28671
|
-
|
|
29213
|
+
[disabled]="disabled()"
|
|
29214
|
+
(click)="onInputClick($event)"
|
|
29215
|
+
(keydown)="onInputKey($event)"
|
|
29216
|
+
(change)="onInputChange($event)"
|
|
28672
29217
|
/>
|
|
28673
|
-
} @else if (leading() === 'checkbox') {
|
|
29218
|
+
} @else if (interactive() && leading() === 'checkbox') {
|
|
28674
29219
|
<input
|
|
28675
29220
|
type="checkbox"
|
|
28676
29221
|
class="li-input"
|
|
28677
29222
|
[id]="inputId()"
|
|
28678
29223
|
[checked]="checked()"
|
|
28679
|
-
|
|
29224
|
+
[disabled]="disabled()"
|
|
29225
|
+
(click)="onInputClick($event)"
|
|
29226
|
+
(keydown)="onInputKey($event)"
|
|
29227
|
+
(change)="onInputChange($event)"
|
|
28680
29228
|
/>
|
|
28681
29229
|
}
|
|
28682
29230
|
|
|
28683
|
-
|
|
28684
|
-
<
|
|
28685
|
-
|
|
28686
|
-
|
|
29231
|
+
<!-- Leading image slot (library source 2026-11-04): a product photo in front of the text. Replaces the icon tile. -->
|
|
29232
|
+
<ng-content select="[list-item-image]" />
|
|
29233
|
+
@if (!hasImage()) { <ng-container [ngTemplateOutlet]="tile" /> }
|
|
29234
|
+
@if (!interactive()) {
|
|
29235
|
+
<div class="li-body li-body--static">
|
|
29236
|
+
<ng-container [ngTemplateOutlet]="content" />
|
|
29237
|
+
</div>
|
|
29238
|
+
} @else {
|
|
29239
|
+
<label class="li-body" [attr.for]="inputId() || null">
|
|
29240
|
+
<ng-container [ngTemplateOutlet]="content" />
|
|
29241
|
+
</label>
|
|
28687
29242
|
}
|
|
28688
29243
|
|
|
29244
|
+
@if (busy()) {
|
|
29245
|
+
<span class="li-spinner" aria-hidden="true"></span>
|
|
29246
|
+
}
|
|
28689
29247
|
<ng-content select="[list-item-action], [li-action]" />
|
|
28690
29248
|
|
|
28691
29249
|
</div>
|
|
28692
29250
|
`,
|
|
28693
|
-
styles: ["ui-list-item{display:block}ui-list-item.li-bordered{border:1px solid var(--border, #e2e8f0);border-radius:12px;overflow:hidden;background:var(--surface, #fff);box-shadow:0 1px 2px #0f172a0a;margin-bottom:8px;transition:border-color .15s ease,box-shadow .15s ease}ui-list-item.li-bordered:last-child{margin-bottom:0}ui-list-item.li-bordered:hover{border-color:#cbd5e1;box-shadow:0 2px 6px #0f172a12}@media(prefers-reduced-motion:reduce){ui-list-item.li-bordered{transition:none}}.li-row{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s}.li-row:last-child{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}ui-list-item.li-bordered .li-row{border-bottom:none;padding:14px 16px}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-row.li-row--pressable{cursor:pointer}.li-row.li-row--pressable:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:-2px}.li-body.li-body--static{cursor:default}.li-row [list-item-action],.li-row [li-action]{flex-shrink:0;align-self:center}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px}.li-icon--slate{background:#f1f5f9;color:#475569}.li-icon--amber{background:#fef3c7;color:#b45309}.li-icon--orange{background:#ffedd5;color:#c2410c}.li-icon--red{background:#fee2e2;color:#b91c1c}.li-icon--blue{background:#dbeafe;color:#1d4ed8}.li-icon--green{background:#dcfce7;color:#15803d}.li-icon--purple{background:#f3e8ff;color:#7e22ce}.li-icon--teal{background:#ccfbf1;color:#0f766e}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:6px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.9375rem;font-weight:600;line-height:1.4;letter-spacing:-.005em;color:var(--text-primary, #0f172a)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-direction:column;gap:3px;font-size:.8125rem;line-height:1.4;color:var(--text-secondary, #64748b)}.li-detail{display:flex;align-items:center;gap:6px;min-width:0}.li-detail-icon{flex:0 0 auto;color:#94a3b8}.li-detail--warning,.li-detail--warning .li-detail-icon{color:#b45309}.li-detail--danger,.li-detail--danger .li-detail-icon{color:#b91c1c}.li-row--wrap .li-detail-text{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"]
|
|
29251
|
+
styles: ["ui-list-item{display:block}ui-list-item.li-bordered{border:1px solid var(--border, #e2e8f0);border-radius:12px;overflow:hidden;background:var(--surface, #fff);box-shadow:0 1px 2px #0f172a0a;margin-bottom:8px;transition:border-color .15s ease,box-shadow .15s ease}ui-list-item.li-bordered:last-child{margin-bottom:0}ui-list-item.li-bordered:hover{border-color:#cbd5e1;box-shadow:0 2px 6px #0f172a12}@media(prefers-reduced-motion:reduce){ui-list-item.li-bordered{transition:none}}.li-row{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s}.li-row:last-child{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}ui-list-item.li-bordered .li-row{border-bottom:none;padding:14px 16px}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-row.li-row--pressable{cursor:pointer}.li-row.li-row--pressable:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:-2px}.li-body.li-body--static{cursor:default}.li-row [list-item-action],.li-row [li-action]{flex-shrink:0;align-self:center}.li-row>[list-item-image]{flex:0 0 auto;align-self:center}.li-row.li-row--disabled,.li-row.li-row--disabled:hover{opacity:.72;cursor:not-allowed;background-color:var(--surface-muted, #f8fafc);background-image:repeating-linear-gradient(135deg,transparent 0,transparent 6px,rgba(100,116,139,.1) 6px,rgba(100,116,139,.1) 12px)}.li-row.li-row--disabled .li-body,.li-row.li-row--disabled .li-input,.li-row.li-row--disabled.li-row--pressable{cursor:not-allowed}ui-list-item.li-disabled.li-bordered,ui-list-item.li-disabled.li-bordered:hover{border-style:dashed;box-shadow:none}.li-row.li-row--busy,.li-row.li-row--busy .li-body{cursor:progress}.li-spinner{flex:0 0 auto;align-self:center;box-sizing:border-box;width:16px;height:16px;border:2px solid rgba(100,116,139,.3);border-top-color:var(--text-secondary, #475569);border-radius:50%;animation:li-spin .6s linear infinite}@keyframes li-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.li-spinner{animation-duration:2s}}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px}.li-icon--slate{background:#f1f5f9;color:#475569}.li-icon--amber{background:#fef3c7;color:#b45309}.li-icon--orange{background:#ffedd5;color:#c2410c}.li-icon--red{background:#fee2e2;color:#b91c1c}.li-icon--blue{background:#dbeafe;color:#1d4ed8}.li-icon--green{background:#dcfce7;color:#15803d}.li-icon--purple{background:#f3e8ff;color:#7e22ce}.li-icon--teal{background:#ccfbf1;color:#0f766e}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:6px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.9375rem;font-weight:600;line-height:1.4;letter-spacing:-.005em;color:var(--text-primary, #0f172a)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-direction:column;gap:3px;font-size:.8125rem;line-height:1.4;color:var(--text-secondary, #64748b)}.li-detail{display:flex;align-items:center;gap:6px;min-width:0}.li-detail-icon{flex:0 0 auto;color:#94a3b8}.li-detail--warning,.li-detail--warning .li-detail-icon{color:#b45309}.li-detail--danger,.li-detail--danger .li-detail-icon{color:#b91c1c}.li-row--wrap .li-detail-text{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"]
|
|
28694
29252
|
}]
|
|
28695
29253
|
}],
|
|
28696
29254
|
propDecorators: {
|
|
@@ -28766,10 +29324,30 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28766
29324
|
required: false
|
|
28767
29325
|
}]
|
|
28768
29326
|
}],
|
|
29327
|
+
disabled: [{
|
|
29328
|
+
type: i0.Input,
|
|
29329
|
+
args: [{
|
|
29330
|
+
isSignal: true,
|
|
29331
|
+
alias: "disabled",
|
|
29332
|
+
required: false
|
|
29333
|
+
}]
|
|
29334
|
+
}],
|
|
29335
|
+
busy: [{
|
|
29336
|
+
type: i0.Input,
|
|
29337
|
+
args: [{
|
|
29338
|
+
isSignal: true,
|
|
29339
|
+
alias: "busy",
|
|
29340
|
+
required: false
|
|
29341
|
+
}]
|
|
29342
|
+
}],
|
|
28769
29343
|
_borderedClass: [{
|
|
28770
29344
|
type: HostBinding,
|
|
28771
29345
|
args: ["class.li-bordered"]
|
|
28772
29346
|
}],
|
|
29347
|
+
_disabledClass: [{
|
|
29348
|
+
type: HostBinding,
|
|
29349
|
+
args: ["class.li-disabled"]
|
|
29350
|
+
}],
|
|
28773
29351
|
title: [{
|
|
28774
29352
|
type: i0.Input,
|
|
28775
29353
|
args: [{
|
|
@@ -30066,6 +30644,7 @@ var ListComponent = class ListComponent {
|
|
|
30066
30644
|
this.injector = inject(Injector);
|
|
30067
30645
|
this.items = input([], ...ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []);
|
|
30068
30646
|
this.ordered = input(false, ...ngDevMode ? [{ debugName: "ordered" }] : /* istanbul ignore next */ []);
|
|
30647
|
+
this.bulleted = input(false, ...ngDevMode ? [{ debugName: "bulleted" }] : /* istanbul ignore next */ []);
|
|
30069
30648
|
this.layout = input("list", ...ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []);
|
|
30070
30649
|
this.gridMin = input(130, ...ngDevMode ? [{ debugName: "gridMin" }] : /* istanbul ignore next */ []);
|
|
30071
30650
|
this.gap = input(void 0, ...ngDevMode ? [{ debugName: "gap" }] : /* istanbul ignore next */ []);
|
|
@@ -30361,6 +30940,13 @@ var ListComponent = class ListComponent {
|
|
|
30361
30940
|
isRequired: false,
|
|
30362
30941
|
transformFunction: null
|
|
30363
30942
|
},
|
|
30943
|
+
bulleted: {
|
|
30944
|
+
classPropertyName: "bulleted",
|
|
30945
|
+
publicName: "bulleted",
|
|
30946
|
+
isSignal: true,
|
|
30947
|
+
isRequired: false,
|
|
30948
|
+
transformFunction: null
|
|
30949
|
+
},
|
|
30364
30950
|
layout: {
|
|
30365
30951
|
classPropertyName: "layout",
|
|
30366
30952
|
publicName: "layout",
|
|
@@ -30545,7 +31131,7 @@ var ListComponent = class ListComponent {
|
|
|
30545
31131
|
<ng-container [ngTemplateOutlet]="rowsTpl" />
|
|
30546
31132
|
</ol>
|
|
30547
31133
|
} @else {
|
|
30548
|
-
<ul class="ul-list ul-list--unordered" role="list" [class.ul-list--grid]="isGrid()"
|
|
31134
|
+
<ul class="ul-list ul-list--unordered" role="list" [class.ul-list--grid]="isGrid()" [class.ul-list--bulleted]="bulleted() && !isGrid()"
|
|
30549
31135
|
[style.--ul-gap]="gapCss()" [style.--ul-min.px]="isGrid() ? gridMin() : null"
|
|
30550
31136
|
[attr.aria-label]="ariaLabel() || null" [attr.aria-labelledby]="ariaLabelledby() || null"
|
|
30551
31137
|
(keydown)="onKeydown($event)" (click)="onClick($event)" (focusout)="onFocusOut($event)"
|
|
@@ -30565,7 +31151,7 @@ var ListComponent = class ListComponent {
|
|
|
30565
31151
|
}
|
|
30566
31152
|
`,
|
|
30567
31153
|
isInline: true,
|
|
30568
|
-
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-item--nav:has(>.ul-row>.ul-content>ui-list-item.li-bordered)>.ul-row{position:relative;padding-inline-end:0}.ul-item--nav:has(>.ul-row>.ul-content>ui-list-item.li-bordered)>.ul-row>.ul-chevron{position:absolute;inset-inline-end:12px;top:50%;margin-top:-10px;pointer-events:none}.ul-item--nav>.ul-row>.ul-content>ui-list-item.li-bordered .li-row{padding-inline-end:40px}.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"],
|
|
31154
|
+
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--unordered.ul-list--bulleted{list-style:disc;-webkit-padding-start:1.25rem;padding-inline-start:1.25rem}.ul-list--bulleted>.ul-item::marker{color:var(--text-secondary, #64748b)}.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-item--nav:has(>.ul-row>.ul-content>ui-list-item.li-bordered)>.ul-row{position:relative;padding-inline-end:0}.ul-item--nav:has(>.ul-row>.ul-content>ui-list-item.li-bordered)>.ul-row>.ul-chevron{position:absolute;inset-inline-end:12px;top:50%;margin-top:-10px;pointer-events:none}.ul-item--nav>.ul-row>.ul-content>ui-list-item.li-bordered .li-row{padding-inline-end:40px}.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"],
|
|
30569
31155
|
dependencies: [{
|
|
30570
31156
|
kind: "directive",
|
|
30571
31157
|
type: NgTemplateOutlet,
|
|
@@ -30674,7 +31260,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
30674
31260
|
<ng-container [ngTemplateOutlet]="rowsTpl" />
|
|
30675
31261
|
</ol>
|
|
30676
31262
|
} @else {
|
|
30677
|
-
<ul class="ul-list ul-list--unordered" role="list" [class.ul-list--grid]="isGrid()"
|
|
31263
|
+
<ul class="ul-list ul-list--unordered" role="list" [class.ul-list--grid]="isGrid()" [class.ul-list--bulleted]="bulleted() && !isGrid()"
|
|
30678
31264
|
[style.--ul-gap]="gapCss()" [style.--ul-min.px]="isGrid() ? gridMin() : null"
|
|
30679
31265
|
[attr.aria-label]="ariaLabel() || null" [attr.aria-labelledby]="ariaLabelledby() || null"
|
|
30680
31266
|
(keydown)="onKeydown($event)" (click)="onClick($event)" (focusout)="onFocusOut($event)"
|
|
@@ -30693,7 +31279,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
30693
31279
|
<div class="ul-sr" role="status" aria-live="polite" aria-atomic="true">{{ announcement() }}</div>
|
|
30694
31280
|
}
|
|
30695
31281
|
`,
|
|
30696
|
-
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-item--nav:has(>.ul-row>.ul-content>ui-list-item.li-bordered)>.ul-row{position:relative;padding-inline-end:0}.ul-item--nav:has(>.ul-row>.ul-content>ui-list-item.li-bordered)>.ul-row>.ul-chevron{position:absolute;inset-inline-end:12px;top:50%;margin-top:-10px;pointer-events:none}.ul-item--nav>.ul-row>.ul-content>ui-list-item.li-bordered .li-row{padding-inline-end:40px}.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"]
|
|
31282
|
+
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--unordered.ul-list--bulleted{list-style:disc;-webkit-padding-start:1.25rem;padding-inline-start:1.25rem}.ul-list--bulleted>.ul-item::marker{color:var(--text-secondary, #64748b)}.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-item--nav:has(>.ul-row>.ul-content>ui-list-item.li-bordered)>.ul-row{position:relative;padding-inline-end:0}.ul-item--nav:has(>.ul-row>.ul-content>ui-list-item.li-bordered)>.ul-row>.ul-chevron{position:absolute;inset-inline-end:12px;top:50%;margin-top:-10px;pointer-events:none}.ul-item--nav>.ul-row>.ul-content>ui-list-item.li-bordered .li-row{padding-inline-end:40px}.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"]
|
|
30697
31283
|
}]
|
|
30698
31284
|
}],
|
|
30699
31285
|
propDecorators: {
|
|
@@ -30713,6 +31299,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
30713
31299
|
required: false
|
|
30714
31300
|
}]
|
|
30715
31301
|
}],
|
|
31302
|
+
bulleted: [{
|
|
31303
|
+
type: i0.Input,
|
|
31304
|
+
args: [{
|
|
31305
|
+
isSignal: true,
|
|
31306
|
+
alias: "bulleted",
|
|
31307
|
+
required: false
|
|
31308
|
+
}]
|
|
31309
|
+
}],
|
|
30716
31310
|
layout: [{
|
|
30717
31311
|
type: i0.Input,
|
|
30718
31312
|
args: [{
|
|
@@ -35645,6 +36239,7 @@ var AddressInputComponent = class AddressInputComponent {
|
|
|
35645
36239
|
"inputName",
|
|
35646
36240
|
"placeholder",
|
|
35647
36241
|
"prefix",
|
|
36242
|
+
"leadingIcon",
|
|
35648
36243
|
"revealable",
|
|
35649
36244
|
"passwordRequirements",
|
|
35650
36245
|
"passwordRules",
|
|
@@ -35682,6 +36277,7 @@ var AddressInputComponent = class AddressInputComponent {
|
|
|
35682
36277
|
inputs: [
|
|
35683
36278
|
"label",
|
|
35684
36279
|
"ariaLabel",
|
|
36280
|
+
"labelHidden",
|
|
35685
36281
|
"inputName",
|
|
35686
36282
|
"placeholder",
|
|
35687
36283
|
"options",
|
|
@@ -36093,8 +36689,10 @@ var ImageComponent = class ImageComponent {
|
|
|
36093
36689
|
this.placeholder = input(true, ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
|
|
36094
36690
|
this.priority = input(false, ...ngDevMode ? [{ debugName: "priority" }] : /* istanbul ignore next */ []);
|
|
36095
36691
|
this.retryKey = input(null, ...ngDevMode ? [{ debugName: "retryKey" }] : /* istanbul ignore next */ []);
|
|
36692
|
+
this.interactive = input(false, ...ngDevMode ? [{ debugName: "interactive" }] : /* istanbul ignore next */ []);
|
|
36096
36693
|
this.loaded = output();
|
|
36097
36694
|
this.failed = output();
|
|
36695
|
+
this.activate = output();
|
|
36098
36696
|
this._failed = signal(false, ...ngDevMode ? [{ debugName: "_failed" }] : /* istanbul ignore next */ []);
|
|
36099
36697
|
this._url = computed(() => this.src()?.trim() || null, ...ngDevMode ? [{ debugName: "_url" }] : /* istanbul ignore next */ []);
|
|
36100
36698
|
this.radiusCss = computed(() => RADIUS_PX[this.radius()] ?? "0", ...ngDevMode ? [{ debugName: "radiusCss" }] : /* istanbul ignore next */ []);
|
|
@@ -36113,6 +36711,14 @@ var ImageComponent = class ImageComponent {
|
|
|
36113
36711
|
this._failed.set(true);
|
|
36114
36712
|
this.failed.emit();
|
|
36115
36713
|
}
|
|
36714
|
+
onActivate() {
|
|
36715
|
+
if (this.interactive()) this.activate.emit();
|
|
36716
|
+
}
|
|
36717
|
+
onKey(event) {
|
|
36718
|
+
if (!this.interactive()) return;
|
|
36719
|
+
event.preventDefault();
|
|
36720
|
+
this.activate.emit();
|
|
36721
|
+
}
|
|
36116
36722
|
static {
|
|
36117
36723
|
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
36118
36724
|
minVersion: "12.0.0",
|
|
@@ -36235,16 +36841,35 @@ var ImageComponent = class ImageComponent {
|
|
|
36235
36841
|
isSignal: true,
|
|
36236
36842
|
isRequired: false,
|
|
36237
36843
|
transformFunction: null
|
|
36844
|
+
},
|
|
36845
|
+
interactive: {
|
|
36846
|
+
classPropertyName: "interactive",
|
|
36847
|
+
publicName: "interactive",
|
|
36848
|
+
isSignal: true,
|
|
36849
|
+
isRequired: false,
|
|
36850
|
+
transformFunction: null
|
|
36238
36851
|
}
|
|
36239
36852
|
},
|
|
36240
36853
|
outputs: {
|
|
36241
36854
|
loaded: "loaded",
|
|
36242
|
-
failed: "failed"
|
|
36855
|
+
failed: "failed",
|
|
36856
|
+
activate: "activate"
|
|
36857
|
+
},
|
|
36858
|
+
host: {
|
|
36859
|
+
listeners: {
|
|
36860
|
+
"click": "onActivate()",
|
|
36861
|
+
"keydown.enter": "onKey($event)",
|
|
36862
|
+
"keydown.space": "onKey($event)"
|
|
36863
|
+
},
|
|
36864
|
+
properties: {
|
|
36865
|
+
"style.text-align": "align()",
|
|
36866
|
+
"class.im-block": "isBlock()",
|
|
36867
|
+
"class.im-interactive": "interactive()",
|
|
36868
|
+
"attr.role": "interactive() ? 'button' : null",
|
|
36869
|
+
"attr.tabindex": "interactive() ? 0 : null",
|
|
36870
|
+
"attr.aria-label": "interactive() ? (alt() || null) : null"
|
|
36871
|
+
}
|
|
36243
36872
|
},
|
|
36244
|
-
host: { properties: {
|
|
36245
|
-
"style.text-align": "align()",
|
|
36246
|
-
"class.im-block": "isBlock()"
|
|
36247
|
-
} },
|
|
36248
36873
|
ngImport: i0,
|
|
36249
36874
|
template: `
|
|
36250
36875
|
@if (_url() && !_failed()) {
|
|
@@ -36262,7 +36887,7 @@ var ImageComponent = class ImageComponent {
|
|
|
36262
36887
|
}
|
|
36263
36888
|
`,
|
|
36264
36889
|
isInline: true,
|
|
36265
|
-
styles: [":host{display:inline-block;max-width:100%;line-height:0}:host(.im-block){display:block}.im-img{display:inline-block;max-width:100%;height:auto;vertical-align:top}.im-bordered{border:1px solid #e2e8f0;box-sizing:border-box}.im-ph{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:48px;min-height:48px;background:#f1f5f9;color:#94a3b8;vertical-align:top}.im-ph svg{width:32px;height:32px;max-width:55%;max-height:55%}\n"],
|
|
36890
|
+
styles: [":host{display:inline-block;max-width:100%;line-height:0}:host(.im-block){display:block}:host(.im-interactive){cursor:pointer}:host(.im-interactive:focus-visible){outline:2px solid var(--ui-focus, #3b82f6);outline-offset:2px}.im-img{display:inline-block;max-width:100%;height:auto;vertical-align:top}.im-bordered{border:1px solid #e2e8f0;box-sizing:border-box}.im-ph{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:48px;min-height:48px;background:#f1f5f9;color:#94a3b8;vertical-align:top}.im-ph svg{width:32px;height:32px;max-width:55%;max-height:55%}\n"],
|
|
36266
36891
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
36267
36892
|
});
|
|
36268
36893
|
}
|
|
@@ -36280,7 +36905,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
36280
36905
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
36281
36906
|
host: {
|
|
36282
36907
|
"[style.text-align]": "align()",
|
|
36283
|
-
"[class.im-block]": "isBlock()"
|
|
36908
|
+
"[class.im-block]": "isBlock()",
|
|
36909
|
+
"[class.im-interactive]": "interactive()",
|
|
36910
|
+
"[attr.role]": "interactive() ? 'button' : null",
|
|
36911
|
+
"[attr.tabindex]": "interactive() ? 0 : null",
|
|
36912
|
+
"[attr.aria-label]": "interactive() ? (alt() || null) : null",
|
|
36913
|
+
"(click)": "onActivate()",
|
|
36914
|
+
"(keydown.enter)": "onKey($event)",
|
|
36915
|
+
"(keydown.space)": "onKey($event)"
|
|
36284
36916
|
},
|
|
36285
36917
|
template: `
|
|
36286
36918
|
@if (_url() && !_failed()) {
|
|
@@ -36297,7 +36929,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
36297
36929
|
</span>
|
|
36298
36930
|
}
|
|
36299
36931
|
`,
|
|
36300
|
-
styles: [":host{display:inline-block;max-width:100%;line-height:0}:host(.im-block){display:block}.im-img{display:inline-block;max-width:100%;height:auto;vertical-align:top}.im-bordered{border:1px solid #e2e8f0;box-sizing:border-box}.im-ph{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:48px;min-height:48px;background:#f1f5f9;color:#94a3b8;vertical-align:top}.im-ph svg{width:32px;height:32px;max-width:55%;max-height:55%}\n"]
|
|
36932
|
+
styles: [":host{display:inline-block;max-width:100%;line-height:0}:host(.im-block){display:block}:host(.im-interactive){cursor:pointer}:host(.im-interactive:focus-visible){outline:2px solid var(--ui-focus, #3b82f6);outline-offset:2px}.im-img{display:inline-block;max-width:100%;height:auto;vertical-align:top}.im-bordered{border:1px solid #e2e8f0;box-sizing:border-box}.im-ph{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:48px;min-height:48px;background:#f1f5f9;color:#94a3b8;vertical-align:top}.im-ph svg{width:32px;height:32px;max-width:55%;max-height:55%}\n"]
|
|
36301
36933
|
}]
|
|
36302
36934
|
}],
|
|
36303
36935
|
ctorParameters: () => [],
|
|
@@ -36422,6 +37054,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
36422
37054
|
required: false
|
|
36423
37055
|
}]
|
|
36424
37056
|
}],
|
|
37057
|
+
interactive: [{
|
|
37058
|
+
type: i0.Input,
|
|
37059
|
+
args: [{
|
|
37060
|
+
isSignal: true,
|
|
37061
|
+
alias: "interactive",
|
|
37062
|
+
required: false
|
|
37063
|
+
}]
|
|
37064
|
+
}],
|
|
36425
37065
|
loaded: [{
|
|
36426
37066
|
type: i0.Output,
|
|
36427
37067
|
args: ["loaded"]
|
|
@@ -36429,6 +37069,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
36429
37069
|
failed: [{
|
|
36430
37070
|
type: i0.Output,
|
|
36431
37071
|
args: ["failed"]
|
|
37072
|
+
}],
|
|
37073
|
+
activate: [{
|
|
37074
|
+
type: i0.Output,
|
|
37075
|
+
args: ["activate"]
|
|
36432
37076
|
}]
|
|
36433
37077
|
}
|
|
36434
37078
|
});
|
|
@@ -36773,9 +37417,14 @@ var ImageGalleryComponent = class ImageGalleryComponent {
|
|
|
36773
37417
|
"align",
|
|
36774
37418
|
"placeholder",
|
|
36775
37419
|
"priority",
|
|
36776
|
-
"retryKey"
|
|
37420
|
+
"retryKey",
|
|
37421
|
+
"interactive"
|
|
36777
37422
|
],
|
|
36778
|
-
outputs: [
|
|
37423
|
+
outputs: [
|
|
37424
|
+
"loaded",
|
|
37425
|
+
"failed",
|
|
37426
|
+
"activate"
|
|
37427
|
+
]
|
|
36779
37428
|
},
|
|
36780
37429
|
{
|
|
36781
37430
|
kind: "component",
|
|
@@ -36943,6 +37592,8 @@ var KpiCardComponent = class KpiCardComponent {
|
|
|
36943
37592
|
this.highlight = input(false, ...ngDevMode ? [{ debugName: "highlight" }] : /* istanbul ignore next */ []);
|
|
36944
37593
|
this.clickable = input(false, ...ngDevMode ? [{ debugName: "clickable" }] : /* istanbul ignore next */ []);
|
|
36945
37594
|
this.valueColor = input("default", ...ngDevMode ? [{ debugName: "valueColor" }] : /* istanbul ignore next */ []);
|
|
37595
|
+
this.loading = input(false, ...ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []);
|
|
37596
|
+
this.loadingLabel = input("Loading", ...ngDevMode ? [{ debugName: "loadingLabel" }] : /* istanbul ignore next */ []);
|
|
36946
37597
|
this.background = input("", ...ngDevMode ? [{ debugName: "background" }] : /* istanbul ignore next */ []);
|
|
36947
37598
|
this.progress = input(null, ...ngDevMode ? [{ debugName: "progress" }] : /* istanbul ignore next */ []);
|
|
36948
37599
|
this.progressMax = input(100, ...ngDevMode ? [{ debugName: "progressMax" }] : /* istanbul ignore next */ []);
|
|
@@ -37036,6 +37687,20 @@ var KpiCardComponent = class KpiCardComponent {
|
|
|
37036
37687
|
isRequired: false,
|
|
37037
37688
|
transformFunction: null
|
|
37038
37689
|
},
|
|
37690
|
+
loading: {
|
|
37691
|
+
classPropertyName: "loading",
|
|
37692
|
+
publicName: "loading",
|
|
37693
|
+
isSignal: true,
|
|
37694
|
+
isRequired: false,
|
|
37695
|
+
transformFunction: null
|
|
37696
|
+
},
|
|
37697
|
+
loadingLabel: {
|
|
37698
|
+
classPropertyName: "loadingLabel",
|
|
37699
|
+
publicName: "loadingLabel",
|
|
37700
|
+
isSignal: true,
|
|
37701
|
+
isRequired: false,
|
|
37702
|
+
transformFunction: null
|
|
37703
|
+
},
|
|
37039
37704
|
background: {
|
|
37040
37705
|
classPropertyName: "background",
|
|
37041
37706
|
publicName: "background",
|
|
@@ -37100,6 +37765,7 @@ var KpiCardComponent = class KpiCardComponent {
|
|
|
37100
37765
|
},
|
|
37101
37766
|
properties: {
|
|
37102
37767
|
"attr.role": "clickable() ? \"button\" : null",
|
|
37768
|
+
"attr.aria-busy": "loading() ? \"true\" : null",
|
|
37103
37769
|
"attr.tabindex": "clickable() ? 0 : null"
|
|
37104
37770
|
}
|
|
37105
37771
|
},
|
|
@@ -37112,18 +37778,26 @@ var KpiCardComponent = class KpiCardComponent {
|
|
|
37112
37778
|
@if (hasProgress()) {
|
|
37113
37779
|
<div class="kpi-top">
|
|
37114
37780
|
<span class="kpi-label">{{ label() }}</span>
|
|
37115
|
-
<ui-progress-ring class="kpi-ring" [value]="progress()!" [max]="progressMax()" [size]="progressSize()" [strokeWidth]="progressStrokeWidth()"
|
|
37781
|
+
<ui-progress-ring class="kpi-ring" [attr.aria-hidden]="loading() ? 'true' : null" [value]="progress()!" [max]="progressMax()" [size]="progressSize()" [strokeWidth]="progressStrokeWidth()"
|
|
37116
37782
|
[variant]="progressVariant()" [ariaLabel]="progressAriaLabel() || (label() + ' progress')" [valueText]="progressValueText()" />
|
|
37117
37783
|
</div>
|
|
37118
37784
|
} @else {
|
|
37119
37785
|
<span class="kpi-label">{{ label() }}</span>
|
|
37120
37786
|
}
|
|
37121
|
-
|
|
37122
|
-
|
|
37123
|
-
|
|
37124
|
-
|
|
37125
|
-
|
|
37126
|
-
|
|
37787
|
+
@if (loading()) {
|
|
37788
|
+
<span class="kpi-value kpi-value--loading" aria-hidden="true" data-testid="kpi-value-placeholder"><span class="kpi-bar"></span></span>
|
|
37789
|
+
<span class="kpi-loading-text">{{ loadingLabel() }}</span>
|
|
37790
|
+
@if (subtitle()) {
|
|
37791
|
+
<span class="kpi-subtitle kpi-subtitle--loading" aria-hidden="true" data-testid="kpi-subtitle-placeholder">{{ subtitle() }}</span>
|
|
37792
|
+
}
|
|
37793
|
+
} @else {
|
|
37794
|
+
<span class="kpi-value"
|
|
37795
|
+
[class.green-value]="highlight() || valueColor() === 'green'"
|
|
37796
|
+
[class.blue-value]="valueColor() === 'blue'"
|
|
37797
|
+
[class.red-value]="valueColor() === 'red'">{{ value() }}</span>
|
|
37798
|
+
@if (subtitle()) {
|
|
37799
|
+
<span class="kpi-subtitle">{{ subtitle() }}</span>
|
|
37800
|
+
}
|
|
37127
37801
|
}
|
|
37128
37802
|
<ng-content select="[kpi-footer]" />
|
|
37129
37803
|
@if (clickable()) {
|
|
@@ -37132,7 +37806,7 @@ var KpiCardComponent = class KpiCardComponent {
|
|
|
37132
37806
|
</div>
|
|
37133
37807
|
`,
|
|
37134
37808
|
isInline: true,
|
|
37135
|
-
styles: [":host{display:block;height:100%}.kpi-card{position:relative;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:4px;min-width:0;height:100%;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}:host(:focus){outline:none}:host(:focus-visible) .kpi-card{outline:2px solid #3b82f6;outline-offset:2px}.kpi-card.clickable{cursor:pointer}.kpi-card.clickable:hover{border-color:#93c5fd;box-shadow:0 2px 8px #3b82f614}.kpi-card.clickable:hover .kpi-arrow{color:#3b82f6;transform:translate(2px)}.kpi-arrow{position:absolute;bottom:14px;right:14px;color:#94a3b8;transition:color .15s ease,transform .15s ease}.kpi-icon{flex-shrink:0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.green-icon{background:#dcfce7;color:#16a34a}.blue-icon{background:#dbeafe;color:#2563eb}.amber-icon{background:#fef3c7;color:#d97706}.orange-icon{background:#ffedd5;color:#c2410c}.red-icon{background:#fee2e2;color:#dc2626}.slate-icon{background:#f1f5f9;color:#475569}.kpi-label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:36px;margin-bottom:4px}.kpi-ring{flex-shrink:0}.kpi-card.ring-corner .kpi-top{display:contents}.kpi-card.ring-corner .kpi-ring{position:absolute;top:12px;right:12px}.kpi-value{font-size:1.5rem;font-weight:700;color:#111827;line-height:1.1}.kpi-value.green-value{color:#16a34a}.kpi-value.blue-value{color:#3b82f6}.kpi-value.red-value{color:#dc2626}.kpi-subtitle{font-size:.75rem;color:#64748b;margin-top:2px}\n"],
|
|
37809
|
+
styles: [":host{display:block;height:100%}.kpi-card{position:relative;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:4px;min-width:0;height:100%;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}:host(:focus){outline:none}:host(:focus-visible) .kpi-card{outline:2px solid #3b82f6;outline-offset:2px}.kpi-card.clickable{cursor:pointer}.kpi-card.clickable:hover{border-color:#93c5fd;box-shadow:0 2px 8px #3b82f614}.kpi-card.clickable:hover .kpi-arrow{color:#3b82f6;transform:translate(2px)}.kpi-arrow{position:absolute;bottom:14px;right:14px;color:#94a3b8;transition:color .15s ease,transform .15s ease}.kpi-icon{flex-shrink:0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.green-icon{background:#dcfce7;color:#16a34a}.blue-icon{background:#dbeafe;color:#2563eb}.amber-icon{background:#fef3c7;color:#d97706}.orange-icon{background:#ffedd5;color:#c2410c}.red-icon{background:#fee2e2;color:#dc2626}.slate-icon{background:#f1f5f9;color:#475569}.kpi-label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:36px;margin-bottom:4px}.kpi-ring{flex-shrink:0}.kpi-card.ring-corner .kpi-top{display:contents}.kpi-card.ring-corner .kpi-ring{position:absolute;top:12px;right:12px}.kpi-value{font-size:1.5rem;font-weight:700;color:#111827;line-height:1.1}.kpi-value.green-value{color:#16a34a}.kpi-value.blue-value{color:#3b82f6}.kpi-value.red-value{color:#dc2626}.kpi-subtitle{font-size:.75rem;color:#64748b;margin-top:2px}.kpi-value--loading{display:flex;align-items:center;height:1.65rem}.kpi-bar{display:block;width:60%;max-width:8rem;height:1.1rem;border-radius:6px;background:#e2e8f0;animation:kpi-pulse 1.4s ease-in-out infinite}.kpi-subtitle--loading{align-self:flex-start;max-width:100%;border-radius:4px;background:#e2e8f0;color:transparent;-webkit-user-select:none;user-select:none;animation:kpi-pulse 1.4s ease-in-out infinite}.kpi-loading-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes kpi-pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.kpi-bar,.kpi-subtitle--loading{animation:none}}\n"],
|
|
37136
37810
|
dependencies: [{
|
|
37137
37811
|
kind: "component",
|
|
37138
37812
|
type: ProgressRingComponent,
|
|
@@ -37168,6 +37842,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
37168
37842
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
37169
37843
|
host: {
|
|
37170
37844
|
"[attr.role]": "clickable() ? \"button\" : null",
|
|
37845
|
+
"[attr.aria-busy]": "loading() ? \"true\" : null",
|
|
37171
37846
|
"[attr.tabindex]": "clickable() ? 0 : null",
|
|
37172
37847
|
"(keydown.enter)": "onActivateKey($event)",
|
|
37173
37848
|
"(keydown.space)": "onActivateKey($event)"
|
|
@@ -37180,18 +37855,26 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
37180
37855
|
@if (hasProgress()) {
|
|
37181
37856
|
<div class="kpi-top">
|
|
37182
37857
|
<span class="kpi-label">{{ label() }}</span>
|
|
37183
|
-
<ui-progress-ring class="kpi-ring" [value]="progress()!" [max]="progressMax()" [size]="progressSize()" [strokeWidth]="progressStrokeWidth()"
|
|
37858
|
+
<ui-progress-ring class="kpi-ring" [attr.aria-hidden]="loading() ? 'true' : null" [value]="progress()!" [max]="progressMax()" [size]="progressSize()" [strokeWidth]="progressStrokeWidth()"
|
|
37184
37859
|
[variant]="progressVariant()" [ariaLabel]="progressAriaLabel() || (label() + ' progress')" [valueText]="progressValueText()" />
|
|
37185
37860
|
</div>
|
|
37186
37861
|
} @else {
|
|
37187
37862
|
<span class="kpi-label">{{ label() }}</span>
|
|
37188
37863
|
}
|
|
37189
|
-
|
|
37190
|
-
|
|
37191
|
-
|
|
37192
|
-
|
|
37193
|
-
|
|
37194
|
-
|
|
37864
|
+
@if (loading()) {
|
|
37865
|
+
<span class="kpi-value kpi-value--loading" aria-hidden="true" data-testid="kpi-value-placeholder"><span class="kpi-bar"></span></span>
|
|
37866
|
+
<span class="kpi-loading-text">{{ loadingLabel() }}</span>
|
|
37867
|
+
@if (subtitle()) {
|
|
37868
|
+
<span class="kpi-subtitle kpi-subtitle--loading" aria-hidden="true" data-testid="kpi-subtitle-placeholder">{{ subtitle() }}</span>
|
|
37869
|
+
}
|
|
37870
|
+
} @else {
|
|
37871
|
+
<span class="kpi-value"
|
|
37872
|
+
[class.green-value]="highlight() || valueColor() === 'green'"
|
|
37873
|
+
[class.blue-value]="valueColor() === 'blue'"
|
|
37874
|
+
[class.red-value]="valueColor() === 'red'">{{ value() }}</span>
|
|
37875
|
+
@if (subtitle()) {
|
|
37876
|
+
<span class="kpi-subtitle">{{ subtitle() }}</span>
|
|
37877
|
+
}
|
|
37195
37878
|
}
|
|
37196
37879
|
<ng-content select="[kpi-footer]" />
|
|
37197
37880
|
@if (clickable()) {
|
|
@@ -37199,7 +37882,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
37199
37882
|
}
|
|
37200
37883
|
</div>
|
|
37201
37884
|
`,
|
|
37202
|
-
styles: [":host{display:block;height:100%}.kpi-card{position:relative;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:4px;min-width:0;height:100%;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}:host(:focus){outline:none}:host(:focus-visible) .kpi-card{outline:2px solid #3b82f6;outline-offset:2px}.kpi-card.clickable{cursor:pointer}.kpi-card.clickable:hover{border-color:#93c5fd;box-shadow:0 2px 8px #3b82f614}.kpi-card.clickable:hover .kpi-arrow{color:#3b82f6;transform:translate(2px)}.kpi-arrow{position:absolute;bottom:14px;right:14px;color:#94a3b8;transition:color .15s ease,transform .15s ease}.kpi-icon{flex-shrink:0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.green-icon{background:#dcfce7;color:#16a34a}.blue-icon{background:#dbeafe;color:#2563eb}.amber-icon{background:#fef3c7;color:#d97706}.orange-icon{background:#ffedd5;color:#c2410c}.red-icon{background:#fee2e2;color:#dc2626}.slate-icon{background:#f1f5f9;color:#475569}.kpi-label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:36px;margin-bottom:4px}.kpi-ring{flex-shrink:0}.kpi-card.ring-corner .kpi-top{display:contents}.kpi-card.ring-corner .kpi-ring{position:absolute;top:12px;right:12px}.kpi-value{font-size:1.5rem;font-weight:700;color:#111827;line-height:1.1}.kpi-value.green-value{color:#16a34a}.kpi-value.blue-value{color:#3b82f6}.kpi-value.red-value{color:#dc2626}.kpi-subtitle{font-size:.75rem;color:#64748b;margin-top:2px}\n"]
|
|
37885
|
+
styles: [":host{display:block;height:100%}.kpi-card{position:relative;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:4px;min-width:0;height:100%;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}:host(:focus){outline:none}:host(:focus-visible) .kpi-card{outline:2px solid #3b82f6;outline-offset:2px}.kpi-card.clickable{cursor:pointer}.kpi-card.clickable:hover{border-color:#93c5fd;box-shadow:0 2px 8px #3b82f614}.kpi-card.clickable:hover .kpi-arrow{color:#3b82f6;transform:translate(2px)}.kpi-arrow{position:absolute;bottom:14px;right:14px;color:#94a3b8;transition:color .15s ease,transform .15s ease}.kpi-icon{flex-shrink:0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.green-icon{background:#dcfce7;color:#16a34a}.blue-icon{background:#dbeafe;color:#2563eb}.amber-icon{background:#fef3c7;color:#d97706}.orange-icon{background:#ffedd5;color:#c2410c}.red-icon{background:#fee2e2;color:#dc2626}.slate-icon{background:#f1f5f9;color:#475569}.kpi-label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:36px;margin-bottom:4px}.kpi-ring{flex-shrink:0}.kpi-card.ring-corner .kpi-top{display:contents}.kpi-card.ring-corner .kpi-ring{position:absolute;top:12px;right:12px}.kpi-value{font-size:1.5rem;font-weight:700;color:#111827;line-height:1.1}.kpi-value.green-value{color:#16a34a}.kpi-value.blue-value{color:#3b82f6}.kpi-value.red-value{color:#dc2626}.kpi-subtitle{font-size:.75rem;color:#64748b;margin-top:2px}.kpi-value--loading{display:flex;align-items:center;height:1.65rem}.kpi-bar{display:block;width:60%;max-width:8rem;height:1.1rem;border-radius:6px;background:#e2e8f0;animation:kpi-pulse 1.4s ease-in-out infinite}.kpi-subtitle--loading{align-self:flex-start;max-width:100%;border-radius:4px;background:#e2e8f0;color:transparent;-webkit-user-select:none;user-select:none;animation:kpi-pulse 1.4s ease-in-out infinite}.kpi-loading-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes kpi-pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.kpi-bar,.kpi-subtitle--loading{animation:none}}\n"]
|
|
37203
37886
|
}]
|
|
37204
37887
|
}],
|
|
37205
37888
|
propDecorators: {
|
|
@@ -37267,6 +37950,22 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
37267
37950
|
required: false
|
|
37268
37951
|
}]
|
|
37269
37952
|
}],
|
|
37953
|
+
loading: [{
|
|
37954
|
+
type: i0.Input,
|
|
37955
|
+
args: [{
|
|
37956
|
+
isSignal: true,
|
|
37957
|
+
alias: "loading",
|
|
37958
|
+
required: false
|
|
37959
|
+
}]
|
|
37960
|
+
}],
|
|
37961
|
+
loadingLabel: [{
|
|
37962
|
+
type: i0.Input,
|
|
37963
|
+
args: [{
|
|
37964
|
+
isSignal: true,
|
|
37965
|
+
alias: "loadingLabel",
|
|
37966
|
+
required: false
|
|
37967
|
+
}]
|
|
37968
|
+
}],
|
|
37270
37969
|
background: [{
|
|
37271
37970
|
type: i0.Input,
|
|
37272
37971
|
args: [{
|
|
@@ -37578,7 +38277,8 @@ var DateRangePickerComponent = class DateRangePickerComponent {
|
|
|
37578
38277
|
"ariaLabel",
|
|
37579
38278
|
"name",
|
|
37580
38279
|
"noWrap",
|
|
37581
|
-
"orientation"
|
|
38280
|
+
"orientation",
|
|
38281
|
+
"controlsPanels"
|
|
37582
38282
|
],
|
|
37583
38283
|
outputs: ["tabChange"]
|
|
37584
38284
|
},
|
|
@@ -39550,6 +40250,7 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
39550
40250
|
inputs: [
|
|
39551
40251
|
"label",
|
|
39552
40252
|
"description",
|
|
40253
|
+
"icon",
|
|
39553
40254
|
"ariaLabel",
|
|
39554
40255
|
"testId",
|
|
39555
40256
|
"value",
|
|
@@ -45100,7 +45801,8 @@ var CalendarComponent = class CalendarComponent {
|
|
|
45100
45801
|
"ariaLabel",
|
|
45101
45802
|
"name",
|
|
45102
45803
|
"noWrap",
|
|
45103
|
-
"orientation"
|
|
45804
|
+
"orientation",
|
|
45805
|
+
"controlsPanels"
|
|
45104
45806
|
],
|
|
45105
45807
|
outputs: ["tabChange"]
|
|
45106
45808
|
},
|
|
@@ -49341,6 +50043,7 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
49341
50043
|
"background",
|
|
49342
50044
|
"headerBackground",
|
|
49343
50045
|
"footerBackground",
|
|
50046
|
+
"footerAlign",
|
|
49344
50047
|
"textColor",
|
|
49345
50048
|
"showHeader",
|
|
49346
50049
|
"collapsible",
|
|
@@ -49406,7 +50109,8 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
49406
50109
|
"ariaLabel",
|
|
49407
50110
|
"name",
|
|
49408
50111
|
"noWrap",
|
|
49409
|
-
"orientation"
|
|
50112
|
+
"orientation",
|
|
50113
|
+
"controlsPanels"
|
|
49410
50114
|
],
|
|
49411
50115
|
outputs: ["tabChange"]
|
|
49412
50116
|
},
|
|
@@ -49493,6 +50197,7 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
49493
50197
|
"inputName",
|
|
49494
50198
|
"placeholder",
|
|
49495
50199
|
"prefix",
|
|
50200
|
+
"leadingIcon",
|
|
49496
50201
|
"revealable",
|
|
49497
50202
|
"passwordRequirements",
|
|
49498
50203
|
"passwordRules",
|
|
@@ -51606,7 +52311,8 @@ var EmailTemplateEditorComponent = class EmailTemplateEditorComponent {
|
|
|
51606
52311
|
"ariaLabel",
|
|
51607
52312
|
"name",
|
|
51608
52313
|
"noWrap",
|
|
51609
|
-
"orientation"
|
|
52314
|
+
"orientation",
|
|
52315
|
+
"controlsPanels"
|
|
51610
52316
|
],
|
|
51611
52317
|
outputs: ["tabChange"]
|
|
51612
52318
|
},
|
|
@@ -51652,6 +52358,7 @@ var EmailTemplateEditorComponent = class EmailTemplateEditorComponent {
|
|
|
51652
52358
|
inputs: [
|
|
51653
52359
|
"label",
|
|
51654
52360
|
"ariaLabel",
|
|
52361
|
+
"labelHidden",
|
|
51655
52362
|
"inputName",
|
|
51656
52363
|
"placeholder",
|
|
51657
52364
|
"options",
|
|
@@ -51710,6 +52417,7 @@ var EmailTemplateEditorComponent = class EmailTemplateEditorComponent {
|
|
|
51710
52417
|
"inputName",
|
|
51711
52418
|
"placeholder",
|
|
51712
52419
|
"prefix",
|
|
52420
|
+
"leadingIcon",
|
|
51713
52421
|
"revealable",
|
|
51714
52422
|
"passwordRequirements",
|
|
51715
52423
|
"passwordRules",
|
|
@@ -55165,6 +55873,7 @@ var ConversationsComponent = class ConversationsComponent {
|
|
|
55165
55873
|
inputs: [
|
|
55166
55874
|
"items",
|
|
55167
55875
|
"ordered",
|
|
55876
|
+
"bulleted",
|
|
55168
55877
|
"layout",
|
|
55169
55878
|
"gridMin",
|
|
55170
55879
|
"gap",
|
|
@@ -58136,6 +58845,8 @@ var PaymentSidePanelComponent = class PaymentSidePanelComponent {
|
|
|
58136
58845
|
"highlight",
|
|
58137
58846
|
"clickable",
|
|
58138
58847
|
"valueColor",
|
|
58848
|
+
"loading",
|
|
58849
|
+
"loadingLabel",
|
|
58139
58850
|
"background",
|
|
58140
58851
|
"progress",
|
|
58141
58852
|
"progressMax",
|
|
@@ -58159,6 +58870,7 @@ var PaymentSidePanelComponent = class PaymentSidePanelComponent {
|
|
|
58159
58870
|
inputs: [
|
|
58160
58871
|
"label",
|
|
58161
58872
|
"ariaLabel",
|
|
58873
|
+
"labelHidden",
|
|
58162
58874
|
"inputName",
|
|
58163
58875
|
"placeholder",
|
|
58164
58876
|
"options",
|
|
@@ -58205,6 +58917,7 @@ var PaymentSidePanelComponent = class PaymentSidePanelComponent {
|
|
|
58205
58917
|
"inputName",
|
|
58206
58918
|
"placeholder",
|
|
58207
58919
|
"prefix",
|
|
58920
|
+
"leadingIcon",
|
|
58208
58921
|
"revealable",
|
|
58209
58922
|
"passwordRequirements",
|
|
58210
58923
|
"passwordRules",
|
|
@@ -58704,6 +59417,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
58704
59417
|
}]
|
|
58705
59418
|
}
|
|
58706
59419
|
});
|
|
58707
|
-
export { ALLOCATION_CUSTOM, ASCII_SPECIAL_PASSWORD_RULES, ActionBarComponent, AddressInputComponent, AlertComponent, AppShellComponent, AudioPlayerComponent, AvatarComponent, BADGE_VARIANT_STYLES, BadgeComponent, BankAccountFormComponent, BarRowComponent, BoardCardDirective, BoardComponent, BulkMessagePanelComponent, BusinessHoursComponent, ButtonComponent, COMMON_DETAIL_GROUP_STYLES, CalendarComponent, CardListItemComponent, CheckboxComponent, CheckboxTrailingDirective, ChipComponent, ChipGroupComponent, ColorInputComponent, ColumnFilterComponent, ColumnsComponent, ComboboxComponent, ConfirmOutletComponent, ConfirmService, ContactPickerComponent, ConversationRichBodyComponent, ConversationsComponent, DEFAULT_ALLOCATION_MODES, DEFAULT_BANK_ACCOUNT_TYPE_OPTIONS, DEFAULT_BANK_HOLDER_TYPE_OPTIONS, DEFAULT_BANK_MANDATE_TEXT, DEFAULT_EMAIL_TEMPLATE_BLOCK_GROUPS, DEFAULT_EMAIL_TEMPLATE_VARIABLE_GROUPS, DEFAULT_PASSWORD_RULES, DEFAULT_PAYMENT_METHODS, DETAIL_CARD_HEADER_BG, DETAIL_GROUP_HEADER_BG, 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, FillViewportDirective, 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, KeypadComponent, KpiCardComponent, LAYOUT_GAP_PX, LISTED_SPECIAL_PASSWORD_RULES, ListComponent, ListItemComponent, LiveRegionComponent, MAX_EMAIL_ADDRESS_LENGTH, MAX_PAYMENT_AMOUNT, MIN_PAYMENT_AMOUNT, ModalComponent, MoreMenuComponent, MultiSelectComponent, NOTES_MAX_LENGTH, NotesComponent, OfflineBannerComponent, OptionCardComponent, PASSWORD_MAX_LENGTH, PAYMENT_METHOD, PAYMENT_METHOD_PLUGIN, PHONE_NUMBER_AREA_CODE_LENGTH, PHONE_NUMBER_ZIP_LENGTH, PageComponent, PaginationComponent, PanelInfoListComponent, PasswordRequirementsComponent, PaymentCustomMethodComponent, PaymentMethodPlugin, PaymentSidePanelComponent, PdfHotspotComponent, PhoneNumberPickerComponent, PillTabsComponent, ProgressBarComponent, ProgressRingComponent, QrCodeComponent, QuickFilterTabsComponent, RICH_TEXT_OPTIONS, RadioComponent, RadioGroupComponent, RadioMatrixComponent, RadioOptionContentDirective, ReadonlyFieldsetComponent, ReminderAlertsComponent, RichTextEditorComponent, SEMANTIC_BADGE_MAP, SETUP_DONE_KEY, SETUP_INTEGRATIONS, SearchInputComponent, SectionHeaderComponent, SelectComponent, SetupWizardComponent, SetupWizardStepDirective, SetupWizardStepHeaderDirective, ShareMenuComponent, ShowComponent, SidePanelComponent, SidebarLayoutComponent, SignaturePadComponent, SkeletonComponent, SnackbarComponent, SnackbarService, StackComponent, StarComponent, StepperComponent, TableToolbarComponent, TextComponent, TextInputComponent, TextTemplatePickerComponent, TextareaInputComponent, TimeInputComponent, TimelineComponent, ToastComponent, ToastService, ToggleBadgeComponent, ToggleComponent, TooltipDirective, US_LOCATIONS, US_STATES, US_STATE_OPTIONS, US_ZIP_PATTERN, UiFieldValidity, acceptLabel, appShellGroupsStorageKey, autoVariant, blockHasContent, buildDefaultSchedule, buildPreviewDocument, buildVideoBlockHtml, builtInActionIcon, businessTimeOptions, callHost, conversationDateLabel, conversationHtmlToText, conversationInitial, conversationMessageStatusLabel, conversationMessageStatusMark, createFieldReveal, createPasswordPolicyValidator, decodeFilterValues, digitsOnly, downloadBlob, emailShareUrl, emptyAddress, encodeFilterValue, encodeFilterValues, errorContextInterceptor, escapeHtml, facebookShareUrl, fileMatchesAccept, fileNameFromContentDisposition, formatAddress, formatAddressValue, formatAddressValueOneLine, formatCategoryLabel, formatConversationPhone, formatConversationTime, formatCurrency, formatDuration, formatFileSize, formatIsoDate, formatIsoDateTime, formatMessageTime, formatPhone, formatPhoneDisplay, formatShortDate, formatTime, formatVideoDuration, getEligibleIds, getEligibleOptions, getErrorMessage, getInitials, gmailShareUrl, groupMessagesByDay, hostErrorMessage, humanReadableMessage, iconPath, insideEditorBlock, integrationPlainText, integrationsForApp, integrationsOnlyFor, isBlockDrag, isEmptyAddress, isValidAmount, isValidEmailAddress, isValidZip, isWebUrl, isoKey, issueToErrors, last4Error, linkedInShareUrl, maxLengthIssue, mergeDescribedBy, normalizeAddress, normalizeHexColor, outlookShareUrl, parseAddressOneLine, parseAddressValue, parseBizHours, parseIso, parseTime, passwordMeetsRules, periodGroup, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours, serializedTextLength, setupIntegrations, splitIntro, terminalTimeoutText, terminalVerdict, todayInTimezone, truncateConversationText, xShareUrl };
|
|
59420
|
+
export { ALLOCATION_CUSTOM, ASCII_SPECIAL_PASSWORD_RULES, ActionBarComponent, AddressInputComponent, AlertComponent, AppShellComponent, AudioPlayerComponent, AvatarComponent, BADGE_VARIANT_STYLES, BadgeComponent, BankAccountFormComponent, BarRowComponent, BoardCardDirective, BoardComponent, BulkMessagePanelComponent, BusinessHoursComponent, ButtonComponent, COMMON_DETAIL_GROUP_STYLES, CalendarComponent, CardListItemComponent, CheckboxComponent, CheckboxTrailingDirective, ChipComponent, ChipGroupComponent, ColorInputComponent, ColumnFilterComponent, ColumnsComponent, ComboboxComponent, ConfirmOutletComponent, ConfirmService, ContactPickerComponent, ConversationRichBodyComponent, ConversationsComponent, DEFAULT_ALLOCATION_MODES, DEFAULT_BANK_ACCOUNT_TYPE_OPTIONS, DEFAULT_BANK_HOLDER_TYPE_OPTIONS, DEFAULT_BANK_MANDATE_TEXT, DEFAULT_EMAIL_TEMPLATE_BLOCK_GROUPS, DEFAULT_EMAIL_TEMPLATE_VARIABLE_GROUPS, DEFAULT_PASSWORD_RULES, DEFAULT_PAYMENT_METHODS, DETAIL_CARD_HEADER_BG, DETAIL_GROUP_HEADER_BG, 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, FillViewportDirective, FixedFooterComponent, FormColSpanDirective, FormComponent, FormRowComponent, FormSectionComponent, HintComponent, ICON_NAMES, IDX_BEHAVIOR_SIGNALS, INTEGRATION_CATALOG, INTEGRATION_FIELD_DEFS, INTEGRATION_GROUP_ORDER, INTEGRATION_OPTION_DEFS, IconComponent, ImageComponent, ImageGalleryComponent, ImageGalleryDialogComponent, ImagePreviewComponent, ImageRepositionComponent, ImportExportComponent, ImportSourceGridComponent, KeypadComponent, KpiCardComponent, LAYOUT_GAP_PX, LISTED_SPECIAL_PASSWORD_RULES, ListComponent, ListItemComponent, LiveRegionComponent, MAX_EMAIL_ADDRESS_LENGTH, MAX_PAYMENT_AMOUNT, MIN_PAYMENT_AMOUNT, ModalComponent, MoreMenuComponent, MultiSelectComponent, NOTES_MAX_LENGTH, NotesComponent, OfflineBannerComponent, OptionCardComponent, PASSWORD_MAX_LENGTH, PAYMENT_METHOD, PAYMENT_METHOD_PLUGIN, PHONE_NUMBER_AREA_CODE_LENGTH, PHONE_NUMBER_ZIP_LENGTH, PageComponent, PaginationComponent, PanelInfoListComponent, PasswordRequirementsComponent, PaymentCustomMethodComponent, PaymentMethodPlugin, PaymentSidePanelComponent, PdfHotspotComponent, PhoneNumberPickerComponent, PillTabPanelDirective, PillTabsComponent, ProgressBarComponent, ProgressRingComponent, QrCodeComponent, QuickFilterTabsComponent, RICH_TEXT_OPTIONS, RadioComponent, RadioGroupComponent, RadioMatrixComponent, RadioOptionContentDirective, ReadonlyFieldsetComponent, ReminderAlertsComponent, RichTextEditorComponent, SEMANTIC_BADGE_MAP, SETUP_DONE_KEY, SETUP_INTEGRATIONS, SearchInputComponent, SectionHeaderComponent, SelectComponent, SetupWizardComponent, SetupWizardStepDirective, SetupWizardStepHeaderDirective, ShareMenuComponent, ShowComponent, SidePanelComponent, SidebarLayoutComponent, SignaturePadComponent, SkeletonComponent, SnackbarComponent, SnackbarService, StackComponent, StarComponent, StepperComponent, TableToolbarComponent, TextComponent, TextInputComponent, TextTemplatePickerComponent, TextareaInputComponent, TimeInputComponent, TimelineComponent, ToastComponent, ToastService, ToggleBadgeComponent, ToggleComponent, TooltipDirective, US_LOCATIONS, US_STATES, US_STATE_OPTIONS, US_ZIP_PATTERN, UiFieldValidity, acceptLabel, appShellGroupsStorageKey, autoVariant, blockHasContent, buildDefaultSchedule, buildPreviewDocument, buildVideoBlockHtml, builtInActionIcon, businessTimeOptions, callHost, conversationDateLabel, conversationHtmlToText, conversationInitial, conversationMessageStatusLabel, conversationMessageStatusMark, createFieldReveal, createPasswordPolicyValidator, decodeFilterValues, digitsOnly, downloadBlob, emailShareUrl, emptyAddress, encodeFilterValue, encodeFilterValues, errorContextInterceptor, escapeHtml, facebookShareUrl, fileMatchesAccept, fileNameFromContentDisposition, formatAddress, formatAddressValue, formatAddressValueOneLine, formatCategoryLabel, formatConversationPhone, formatConversationTime, formatCurrency, formatDuration, formatFileSize, formatIsoDate, formatIsoDateTime, formatMessageTime, formatPhone, formatPhoneDisplay, formatShortDate, formatTime, formatVideoDuration, getEligibleIds, getEligibleOptions, getErrorMessage, getInitials, gmailShareUrl, groupMessagesByDay, hostErrorMessage, humanReadableMessage, iconPath, insideEditorBlock, integrationPlainText, integrationsForApp, integrationsOnlyFor, isBlockDrag, isEmptyAddress, isValidAmount, isValidEmailAddress, isValidZip, isWebUrl, isoKey, issueToErrors, last4Error, linkedInShareUrl, maxLengthIssue, mergeDescribedBy, normalizeAddress, normalizeHexColor, outlookShareUrl, parseAddressOneLine, parseAddressValue, parseBizHours, parseIso, parseTime, passwordMeetsRules, periodGroup, pillTabId, pillTabPanelId, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours, serializedTextLength, setupIntegrations, splitIntro, terminalTimeoutText, terminalVerdict, todayInTimezone, truncateConversationText, xShareUrl };
|
|
58708
59421
|
|
|
58709
59422
|
//# sourceMappingURL=forgeroute-ui.mjs.map
|