@forgeroute/ui 0.4.76 → 0.4.78
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.
|
@@ -3156,6 +3156,17 @@ function mergeDescribedBy(own, external) {
|
|
|
3156
3156
|
const unique = ids.filter((id, i) => ids.indexOf(id) === i);
|
|
3157
3157
|
return unique.length ? unique.join(" ") : null;
|
|
3158
3158
|
}
|
|
3159
|
+
function safeLinkHref(url) {
|
|
3160
|
+
const u = (url ?? "").trim();
|
|
3161
|
+
if (!u) return null;
|
|
3162
|
+
if (/[\\\u0000-\u001f\u007f]/.test(u)) return null;
|
|
3163
|
+
if (/^(https?:\/\/|mailto:|tel:)/i.test(u)) return u;
|
|
3164
|
+
if (/^(\/(?![\/\\])|#)/.test(u)) return u;
|
|
3165
|
+
return null;
|
|
3166
|
+
}
|
|
3167
|
+
function opensInNewTab(href) {
|
|
3168
|
+
return /^https?:\/\//i.test(href ?? "");
|
|
3169
|
+
}
|
|
3159
3170
|
var CheckboxComponent = class CheckboxComponent {
|
|
3160
3171
|
isSelected(value) {
|
|
3161
3172
|
return this._selected().includes(value);
|
|
@@ -3173,6 +3184,35 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
3173
3184
|
this._legend = computed(() => this.legend() || (this._host.nativeElement.tagName === "UI-CHECKBOX-GROUP" ? this.label() : ""), ...ngDevMode ? [{ debugName: "_legend" }] : /* istanbul ignore next */ []);
|
|
3174
3185
|
this.orientation = input("vertical", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
|
|
3175
3186
|
this.values = model(void 0, ...ngDevMode ? [{ debugName: "values" }] : /* istanbul ignore next */ []);
|
|
3187
|
+
this.labelLinks = input({}, ...ngDevMode ? [{ debugName: "labelLinks" }] : /* istanbul ignore next */ []);
|
|
3188
|
+
this._labelSegments = computed(() => {
|
|
3189
|
+
const label = this.label();
|
|
3190
|
+
const links = this.labelLinks();
|
|
3191
|
+
if (!label || !links || Object.keys(links).length === 0) return null;
|
|
3192
|
+
const segments = [];
|
|
3193
|
+
let used = false;
|
|
3194
|
+
let last = 0;
|
|
3195
|
+
for (const m of label.matchAll(/\{([A-Za-z0-9_-]+)\}/g)) {
|
|
3196
|
+
const link = Object.prototype.hasOwnProperty.call(links, m[1]) ? links[m[1]] : void 0;
|
|
3197
|
+
if (!link) continue;
|
|
3198
|
+
used = true;
|
|
3199
|
+
const at = m.index ?? 0;
|
|
3200
|
+
if (at > last) segments.push({ text: label.slice(last, at) });
|
|
3201
|
+
const text = link.label ?? "";
|
|
3202
|
+
const href = safeLinkHref(link.url);
|
|
3203
|
+
if (text.trim()) segments.push(href ? {
|
|
3204
|
+
text,
|
|
3205
|
+
href,
|
|
3206
|
+
newTab: opensInNewTab(href),
|
|
3207
|
+
testId: link.testId
|
|
3208
|
+
} : { text });
|
|
3209
|
+
last = at + m[0].length;
|
|
3210
|
+
}
|
|
3211
|
+
if (!used) return null;
|
|
3212
|
+
if (last < label.length) segments.push({ text: label.slice(last) });
|
|
3213
|
+
return segments;
|
|
3214
|
+
}, ...ngDevMode ? [{ debugName: "_labelSegments" }] : /* istanbul ignore next */ []);
|
|
3215
|
+
this._plainLabel = computed(() => this._labelSegments()?.map((s) => s.text).join("") ?? this.label(), ...ngDevMode ? [{ debugName: "_plainLabel" }] : /* istanbul ignore next */ []);
|
|
3176
3216
|
this.description = input("", ...ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []);
|
|
3177
3217
|
this._trailingContent = contentChild(CheckboxTrailingDirective, ...ngDevMode ? [{ debugName: "_trailingContent" }] : /* istanbul ignore next */ []);
|
|
3178
3218
|
this._trailing = computed(() => !this.groupMode() && !!this._trailingContent(), ...ngDevMode ? [{ debugName: "_trailing" }] : /* istanbul ignore next */ []);
|
|
@@ -3251,7 +3291,7 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
3251
3291
|
return rm ? {
|
|
3252
3292
|
key: "required",
|
|
3253
3293
|
message: rm
|
|
3254
|
-
} : requiredIssue(this.groupMode() ? this._legend() : this.
|
|
3294
|
+
} : requiredIssue(this.groupMode() ? this._legend() : this._plainLabel());
|
|
3255
3295
|
}
|
|
3256
3296
|
writeValue(val) {
|
|
3257
3297
|
if (Array.isArray(val)) this._selected.set(this.inOptionOrder(val));
|
|
@@ -3384,6 +3424,13 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
3384
3424
|
isRequired: false,
|
|
3385
3425
|
transformFunction: null
|
|
3386
3426
|
},
|
|
3427
|
+
labelLinks: {
|
|
3428
|
+
classPropertyName: "labelLinks",
|
|
3429
|
+
publicName: "labelLinks",
|
|
3430
|
+
isSignal: true,
|
|
3431
|
+
isRequired: false,
|
|
3432
|
+
transformFunction: null
|
|
3433
|
+
},
|
|
3387
3434
|
description: {
|
|
3388
3435
|
classPropertyName: "description",
|
|
3389
3436
|
publicName: "description",
|
|
@@ -3544,7 +3591,7 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
3544
3591
|
(change)="onToggle($event)"
|
|
3545
3592
|
/>
|
|
3546
3593
|
@if (label()) {
|
|
3547
|
-
<span class="cb-label" [attr.data-testid]="labelTestId() || null" [attr.role]="headingLevel() ? 'heading' : null" [attr.aria-level]="headingLevel() || null">{{ label() }}</span>
|
|
3594
|
+
<span class="cb-label" [attr.data-testid]="labelTestId() || null" [attr.role]="headingLevel() ? 'heading' : null" [attr.aria-level]="headingLevel() || null">@if (_labelSegments(); as segments) {@for (seg of segments; track $index) {@if (seg.href) {<a class="cb-link" [attr.href]="seg.href" [attr.target]="seg.newTab ? '_blank' : null" [attr.rel]="seg.newTab ? 'noopener noreferrer' : null" [attr.data-testid]="seg.testId || null">{{ seg.text }}@if (seg.newTab) {<span class="cb-sr-only"> (opens in a new tab)</span>}</a>} @else {<ng-container>{{ seg.text }}</ng-container>}}} @else {<ng-container>{{ label() }}</ng-container>}</span>
|
|
3548
3595
|
}
|
|
3549
3596
|
<ng-content />
|
|
3550
3597
|
</label>
|
|
@@ -3569,7 +3616,7 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
3569
3616
|
}
|
|
3570
3617
|
`,
|
|
3571
3618
|
isInline: true,
|
|
3572
|
-
styles: [".cb-field{display:inline-flex;flex-direction:column;gap:4px;vertical-align:top}.cb-group{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.cb-legend{padding:0;margin:0 0 8px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1.2}.cb-required{color:#dc2626;margin-left:2px}.cb-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-options{display:flex;flex-direction:column;gap:10px}.cb-options.cb-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.cb-field.cb-has-trailing{display:flex}.cb-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cb-trailing{display:inline-flex;align-items:center;flex-shrink:0}.cb-option{display:flex;flex-direction:column;gap:4px}.cb-group-desc{margin-left:0}.cb-indent{margin-left:29px}.cb-desc{margin:0 0 0 29px;font-size:.75rem;line-height:1.4;color:#64748b}.cb-desc-error{color:#dc2626}.cb-error .cb-box:not(.cb-checked){border-color:#ef4444}.cb-wrap{position:relative;vertical-align:top;display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none}.cb-wrap.cb-disabled{cursor:not-allowed;opacity:.5}.cb-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-wrap:has(.cb-hidden:focus-visible) .cb-box{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.cb-wrap{position:relative}.cb-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:50%;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:1}.cb-wrap.cb-disabled .cb-hidden{cursor:not-allowed}}.cb-box{flex-shrink:0;box-sizing:border-box;width:20px;height:20px;border:2px solid #7c8ba1;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.cb-box.cb-checked,.cb-box.cb-indeterminate{background:#3b82f6;border-color:#3b82f6}.cb-wrap:hover .cb-box:not(.cb-checked):not(.cb-disabled){border-color:#3b82f6}@media(max-width:640px),(pointer:coarse){.cb-box{position:relative}.cb-box:after{content:\"\";position:absolute;inset:-12px}}.cb-label{font-size:.875rem;color:#334155;line-height:1.4}\n"],
|
|
3619
|
+
styles: [".cb-field{display:inline-flex;flex-direction:column;gap:4px;vertical-align:top}.cb-group{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.cb-legend{padding:0;margin:0 0 8px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1.2}.cb-required{color:#dc2626;margin-left:2px}.cb-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-options{display:flex;flex-direction:column;gap:10px}.cb-options.cb-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.cb-field.cb-has-trailing{display:flex}.cb-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cb-trailing{display:inline-flex;align-items:center;flex-shrink:0}.cb-option{display:flex;flex-direction:column;gap:4px}.cb-group-desc{margin-left:0}.cb-indent{margin-left:29px}.cb-desc{margin:0 0 0 29px;font-size:.75rem;line-height:1.4;color:#64748b}.cb-desc-error{color:#dc2626}.cb-error .cb-box:not(.cb-checked){border-color:#ef4444}.cb-wrap{position:relative;vertical-align:top;display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none}.cb-wrap.cb-disabled{cursor:not-allowed;opacity:.5}.cb-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-wrap:has(.cb-hidden:focus-visible) .cb-box{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.cb-wrap{position:relative}.cb-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:50%;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:1}.cb-wrap.cb-disabled .cb-hidden{cursor:not-allowed}}.cb-box{flex-shrink:0;box-sizing:border-box;width:20px;height:20px;border:2px solid #7c8ba1;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.cb-box.cb-checked,.cb-box.cb-indeterminate{background:#3b82f6;border-color:#3b82f6}.cb-wrap:hover .cb-box:not(.cb-checked):not(.cb-disabled){border-color:#3b82f6}@media(max-width:640px),(pointer:coarse){.cb-box{position:relative}.cb-box:after{content:\"\";position:absolute;inset:-12px}}.cb-label{font-size:.875rem;color:#334155;line-height:1.4}.cb-link{color:#2563eb;text-decoration:underline;cursor:pointer;border-radius:2px}.cb-link:hover{color:#1d4ed8}.cb-link:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}\n"],
|
|
3573
3620
|
dependencies: [{
|
|
3574
3621
|
kind: "directive",
|
|
3575
3622
|
type: NgTemplateOutlet,
|
|
@@ -3685,7 +3732,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3685
3732
|
(change)="onToggle($event)"
|
|
3686
3733
|
/>
|
|
3687
3734
|
@if (label()) {
|
|
3688
|
-
<span class="cb-label" [attr.data-testid]="labelTestId() || null" [attr.role]="headingLevel() ? 'heading' : null" [attr.aria-level]="headingLevel() || null">{{ label() }}</span>
|
|
3735
|
+
<span class="cb-label" [attr.data-testid]="labelTestId() || null" [attr.role]="headingLevel() ? 'heading' : null" [attr.aria-level]="headingLevel() || null">@if (_labelSegments(); as segments) {@for (seg of segments; track $index) {@if (seg.href) {<a class="cb-link" [attr.href]="seg.href" [attr.target]="seg.newTab ? '_blank' : null" [attr.rel]="seg.newTab ? 'noopener noreferrer' : null" [attr.data-testid]="seg.testId || null">{{ seg.text }}@if (seg.newTab) {<span class="cb-sr-only"> (opens in a new tab)</span>}</a>} @else {<ng-container>{{ seg.text }}</ng-container>}}} @else {<ng-container>{{ label() }}</ng-container>}</span>
|
|
3689
3736
|
}
|
|
3690
3737
|
<ng-content />
|
|
3691
3738
|
</label>
|
|
@@ -3709,7 +3756,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3709
3756
|
</div>
|
|
3710
3757
|
}
|
|
3711
3758
|
`,
|
|
3712
|
-
styles: [".cb-field{display:inline-flex;flex-direction:column;gap:4px;vertical-align:top}.cb-group{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.cb-legend{padding:0;margin:0 0 8px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1.2}.cb-required{color:#dc2626;margin-left:2px}.cb-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-options{display:flex;flex-direction:column;gap:10px}.cb-options.cb-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.cb-field.cb-has-trailing{display:flex}.cb-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cb-trailing{display:inline-flex;align-items:center;flex-shrink:0}.cb-option{display:flex;flex-direction:column;gap:4px}.cb-group-desc{margin-left:0}.cb-indent{margin-left:29px}.cb-desc{margin:0 0 0 29px;font-size:.75rem;line-height:1.4;color:#64748b}.cb-desc-error{color:#dc2626}.cb-error .cb-box:not(.cb-checked){border-color:#ef4444}.cb-wrap{position:relative;vertical-align:top;display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none}.cb-wrap.cb-disabled{cursor:not-allowed;opacity:.5}.cb-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-wrap:has(.cb-hidden:focus-visible) .cb-box{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.cb-wrap{position:relative}.cb-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:50%;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:1}.cb-wrap.cb-disabled .cb-hidden{cursor:not-allowed}}.cb-box{flex-shrink:0;box-sizing:border-box;width:20px;height:20px;border:2px solid #7c8ba1;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.cb-box.cb-checked,.cb-box.cb-indeterminate{background:#3b82f6;border-color:#3b82f6}.cb-wrap:hover .cb-box:not(.cb-checked):not(.cb-disabled){border-color:#3b82f6}@media(max-width:640px),(pointer:coarse){.cb-box{position:relative}.cb-box:after{content:\"\";position:absolute;inset:-12px}}.cb-label{font-size:.875rem;color:#334155;line-height:1.4}\n"]
|
|
3759
|
+
styles: [".cb-field{display:inline-flex;flex-direction:column;gap:4px;vertical-align:top}.cb-group{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.cb-legend{padding:0;margin:0 0 8px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1.2}.cb-required{color:#dc2626;margin-left:2px}.cb-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-options{display:flex;flex-direction:column;gap:10px}.cb-options.cb-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.cb-field.cb-has-trailing{display:flex}.cb-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cb-trailing{display:inline-flex;align-items:center;flex-shrink:0}.cb-option{display:flex;flex-direction:column;gap:4px}.cb-group-desc{margin-left:0}.cb-indent{margin-left:29px}.cb-desc{margin:0 0 0 29px;font-size:.75rem;line-height:1.4;color:#64748b}.cb-desc-error{color:#dc2626}.cb-error .cb-box:not(.cb-checked){border-color:#ef4444}.cb-wrap{position:relative;vertical-align:top;display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none}.cb-wrap.cb-disabled{cursor:not-allowed;opacity:.5}.cb-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-wrap:has(.cb-hidden:focus-visible) .cb-box{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.cb-wrap{position:relative}.cb-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:50%;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:1}.cb-wrap.cb-disabled .cb-hidden{cursor:not-allowed}}.cb-box{flex-shrink:0;box-sizing:border-box;width:20px;height:20px;border:2px solid #7c8ba1;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.cb-box.cb-checked,.cb-box.cb-indeterminate{background:#3b82f6;border-color:#3b82f6}.cb-wrap:hover .cb-box:not(.cb-checked):not(.cb-disabled){border-color:#3b82f6}@media(max-width:640px),(pointer:coarse){.cb-box{position:relative}.cb-box:after{content:\"\";position:absolute;inset:-12px}}.cb-label{font-size:.875rem;color:#334155;line-height:1.4}.cb-link{color:#2563eb;text-decoration:underline;cursor:pointer;border-radius:2px}.cb-link:hover{color:#1d4ed8}.cb-link:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}\n"]
|
|
3713
3760
|
}]
|
|
3714
3761
|
}],
|
|
3715
3762
|
ctorParameters: () => [],
|
|
@@ -3808,6 +3855,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3808
3855
|
type: i0.Output,
|
|
3809
3856
|
args: ["valuesChange"]
|
|
3810
3857
|
}],
|
|
3858
|
+
labelLinks: [{
|
|
3859
|
+
type: i0.Input,
|
|
3860
|
+
args: [{
|
|
3861
|
+
isSignal: true,
|
|
3862
|
+
alias: "labelLinks",
|
|
3863
|
+
required: false
|
|
3864
|
+
}]
|
|
3865
|
+
}],
|
|
3811
3866
|
description: [{
|
|
3812
3867
|
type: i0.Input,
|
|
3813
3868
|
args: [{
|
|
@@ -4705,7 +4760,11 @@ const EXTRA_ICONS = {
|
|
|
4705
4760
|
"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",
|
|
4706
4761
|
"cash": "M3 6h18a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1z M12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6z M6 12h.01 M18 12h.01",
|
|
4707
4762
|
"dollar": "M12 1v22 M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",
|
|
4708
|
-
"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"
|
|
4763
|
+
"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",
|
|
4764
|
+
"star": "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z",
|
|
4765
|
+
"gift": "M20 12v10H4V12 M2 7h20v5H2z M12 22V7 M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z",
|
|
4766
|
+
"award": "M12 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14z M8.21 13.89L7 23l5-3 5 3-1.21-9.12",
|
|
4767
|
+
"calendar-check": "M19 4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z M16 2v4 M8 2v4 M3 10h18 M9 16l2 2 4-4"
|
|
4709
4768
|
};
|
|
4710
4769
|
const ICON_NAMES = Object.freeze(Object.keys(EXTRA_ICONS));
|
|
4711
4770
|
function iconPath(name) {
|
|
@@ -6503,6 +6562,7 @@ var TableToolbarComponent = class TableToolbarComponent {
|
|
|
6503
6562
|
"legend",
|
|
6504
6563
|
"orientation",
|
|
6505
6564
|
"values",
|
|
6565
|
+
"labelLinks",
|
|
6506
6566
|
"description",
|
|
6507
6567
|
"indent",
|
|
6508
6568
|
"required",
|
|
@@ -13555,6 +13615,37 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13555
13615
|
const days = item[col.daysKey ?? col.key];
|
|
13556
13616
|
return days != null && days > (col.overdueThreshold ?? 30);
|
|
13557
13617
|
}
|
|
13618
|
+
static {
|
|
13619
|
+
this._NO_ICON_TYPES = [
|
|
13620
|
+
"avatar-name",
|
|
13621
|
+
"link",
|
|
13622
|
+
"tags",
|
|
13623
|
+
"progress",
|
|
13624
|
+
"image",
|
|
13625
|
+
"actions",
|
|
13626
|
+
"days-ago"
|
|
13627
|
+
];
|
|
13628
|
+
}
|
|
13629
|
+
cellIconPath(col, item) {
|
|
13630
|
+
if (!col.iconFn || DataTableComponent._NO_ICON_TYPES.includes(col.cellType ?? "")) return null;
|
|
13631
|
+
let raw;
|
|
13632
|
+
try {
|
|
13633
|
+
raw = col.iconFn(item);
|
|
13634
|
+
} catch {
|
|
13635
|
+
return null;
|
|
13636
|
+
}
|
|
13637
|
+
const v = (raw ?? "").trim();
|
|
13638
|
+
if (!v) return null;
|
|
13639
|
+
return iconPath(v) ?? (/^[Mm][\d\s.,\-MmLlHhVvCcSsQqTtAaZz]+$/.test(v) ? v : null);
|
|
13640
|
+
}
|
|
13641
|
+
cellIconLabel(col, item) {
|
|
13642
|
+
if (!col.iconLabelFn || !this.cellIconPath(col, item)) return "";
|
|
13643
|
+
try {
|
|
13644
|
+
return (col.iconLabelFn(item) ?? "").trim();
|
|
13645
|
+
} catch {
|
|
13646
|
+
return "";
|
|
13647
|
+
}
|
|
13648
|
+
}
|
|
13558
13649
|
cardCellText(col, item) {
|
|
13559
13650
|
switch (col.cellType) {
|
|
13560
13651
|
case "date": {
|
|
@@ -13984,6 +14075,14 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13984
14075
|
</div>
|
|
13985
14076
|
}
|
|
13986
14077
|
|
|
14078
|
+
<!-- Optional leading icon (ColumnDef.iconFn, library source 2026-11-05): decorative svg, plus sr-only text only when iconLabelFn returns one. Draws nothing when there is no valid icon. -->
|
|
14079
|
+
<ng-template #cellIcon let-col="col" let-item="item">
|
|
14080
|
+
@if (cellIconPath(col, item); as iconD) {
|
|
14081
|
+
<svg class="dt-cell-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]="iconD" /></svg>
|
|
14082
|
+
@if (cellIconLabel(col, item); as iconLbl) { <span class="dt-sr-only">{{ iconLbl }}</span> }
|
|
14083
|
+
}
|
|
14084
|
+
</ng-template>
|
|
14085
|
+
|
|
13987
14086
|
<!-- Shared image-cell markup (table cell + mobile card header) -->
|
|
13988
14087
|
<ng-template #imageCell let-col="col" let-item="item" let-small="small">
|
|
13989
14088
|
@let imgUrl = imageUrl(col, item);
|
|
@@ -14191,16 +14290,18 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14191
14290
|
<!-- Badge cell -->
|
|
14192
14291
|
@case ('badge') {
|
|
14193
14292
|
@let bCfg = resolveBadge(col, item);
|
|
14194
|
-
@if (bCfg) { <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> } @else { — }
|
|
14293
|
+
@if (bCfg) { @if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> } <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> } @else { — }
|
|
14195
14294
|
}
|
|
14196
14295
|
|
|
14197
14296
|
<!-- Date cell -->
|
|
14198
14297
|
@case ('date') {
|
|
14298
|
+
@if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> }
|
|
14199
14299
|
{{ item[col.key] ? (item[col.key] | date:(col.dateFormat ?? 'MMM d, y')) : '—' }}
|
|
14200
14300
|
}
|
|
14201
14301
|
|
|
14202
14302
|
<!-- Phone cell -->
|
|
14203
14303
|
@case ('phone') {
|
|
14304
|
+
@if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> }
|
|
14204
14305
|
{{ phoneCell(item[col.key]) }}
|
|
14205
14306
|
}
|
|
14206
14307
|
|
|
@@ -14288,6 +14389,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14288
14389
|
|
|
14289
14390
|
<!-- Default: plain text -->
|
|
14290
14391
|
@default {
|
|
14392
|
+
@if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> }
|
|
14291
14393
|
@if (col.starFn?.(item); as starTip) {
|
|
14292
14394
|
<ui-star class="dt-cell-star" [tooltip]="starTip" />
|
|
14293
14395
|
}
|
|
@@ -14445,6 +14547,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14445
14547
|
</span>
|
|
14446
14548
|
} @else {
|
|
14447
14549
|
<span class="dt-card-name dt-card-name-plain">
|
|
14550
|
+
@if (tc.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: tc, item: item }" /> }
|
|
14448
14551
|
@if (tc.starFn?.(item); as starTip) {
|
|
14449
14552
|
<ui-star class="dt-cell-star" [tooltip]="starTip" />
|
|
14450
14553
|
}
|
|
@@ -14482,7 +14585,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14482
14585
|
<div class="dt-card-badges">
|
|
14483
14586
|
@for (bc of _cardCols().badgeCols; track bc.key) {
|
|
14484
14587
|
@let bCfg = resolveBadge(bc, item);
|
|
14485
|
-
@if (bCfg) { <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> }
|
|
14588
|
+
@if (bCfg) { @if (bc.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: bc, item: item }" /> } <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> }
|
|
14486
14589
|
}
|
|
14487
14590
|
</div>
|
|
14488
14591
|
}
|
|
@@ -14513,6 +14616,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14513
14616
|
@if (dc.cellType === 'link') {
|
|
14514
14617
|
<ng-container [ngTemplateOutlet]="linkCell" [ngTemplateOutletContext]="{ col: dc, item: item }" />
|
|
14515
14618
|
} @else {
|
|
14619
|
+
@if (dc.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: dc, item: item }" /> }
|
|
14516
14620
|
{{ val }}
|
|
14517
14621
|
}</span>
|
|
14518
14622
|
</div>
|
|
@@ -14606,7 +14710,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14606
14710
|
</div>
|
|
14607
14711
|
`,
|
|
14608
14712
|
isInline: true,
|
|
14609
|
-
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}tfoot tr{background:#f8fafc;border-top:2px solid #e2e8f0}tfoot th.dt-foot-label{padding:10px 14px;font-size:.875rem;font-weight:700;color:#1e293b;text-transform:none;letter-spacing:normal;background:#f8fafc;border-right:1px solid #f1f5f9;white-space:nowrap}tfoot td{padding:10px 14px;font-weight:700;color:#1e293b;background:#f8fafc}.dt-card-totals{background:#f8fafc;font-weight:600}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions td.dt-td-actions:focus-within,.dt-sticky-actions td.dt-td-actions:has(.mm-dropdown){z-index:2}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#64748b}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;flex-wrap:nowrap;flex-shrink:0;align-items:stretch}.dt-header-left,.dt-header-right{width:100%;flex-basis:auto}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1 1 100%}.dt-bulk-actions{flex:1 1 auto;width:auto}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#475569;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 36px 0 12px;font-family:inherit;font-size:1rem;color:#1e293b;border:1px solid #7c8ba1;border-radius:8px;-webkit-appearance:none;appearance:none;background:#fff url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E\") no-repeat right 12px center}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"],
|
|
14713
|
+
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}tfoot tr{background:#f8fafc;border-top:2px solid #e2e8f0}tfoot th.dt-foot-label{padding:10px 14px;font-size:.875rem;font-weight:700;color:#1e293b;text-transform:none;letter-spacing:normal;background:#f8fafc;border-right:1px solid #f1f5f9;white-space:nowrap}tfoot td{padding:10px 14px;font-weight:700;color:#1e293b;background:#f8fafc}.dt-card-totals{background:#f8fafc;font-weight:600}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions td.dt-td-actions:focus-within,.dt-sticky-actions td.dt-td-actions:has(.mm-dropdown){z-index:2}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#64748b}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-cell-icon{flex-shrink:0;display:inline-block;margin-right:6px;vertical-align:-3px;color:#64748b}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;flex-wrap:nowrap;flex-shrink:0;align-items:stretch}.dt-header-left,.dt-header-right{width:100%;flex-basis:auto}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1 1 100%}.dt-bulk-actions{flex:1 1 auto;width:auto}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#475569;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 36px 0 12px;font-family:inherit;font-size:1rem;color:#1e293b;border:1px solid #7c8ba1;border-radius:8px;-webkit-appearance:none;appearance:none;background:#fff url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E\") no-repeat right 12px center}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"],
|
|
14610
14714
|
dependencies: [
|
|
14611
14715
|
{
|
|
14612
14716
|
kind: "directive",
|
|
@@ -14849,6 +14953,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14849
14953
|
"legend",
|
|
14850
14954
|
"orientation",
|
|
14851
14955
|
"values",
|
|
14956
|
+
"labelLinks",
|
|
14852
14957
|
"description",
|
|
14853
14958
|
"indent",
|
|
14854
14959
|
"required",
|
|
@@ -15122,6 +15227,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15122
15227
|
</div>
|
|
15123
15228
|
}
|
|
15124
15229
|
|
|
15230
|
+
<!-- Optional leading icon (ColumnDef.iconFn, library source 2026-11-05): decorative svg, plus sr-only text only when iconLabelFn returns one. Draws nothing when there is no valid icon. -->
|
|
15231
|
+
<ng-template #cellIcon let-col="col" let-item="item">
|
|
15232
|
+
@if (cellIconPath(col, item); as iconD) {
|
|
15233
|
+
<svg class="dt-cell-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]="iconD" /></svg>
|
|
15234
|
+
@if (cellIconLabel(col, item); as iconLbl) { <span class="dt-sr-only">{{ iconLbl }}</span> }
|
|
15235
|
+
}
|
|
15236
|
+
</ng-template>
|
|
15237
|
+
|
|
15125
15238
|
<!-- Shared image-cell markup (table cell + mobile card header) -->
|
|
15126
15239
|
<ng-template #imageCell let-col="col" let-item="item" let-small="small">
|
|
15127
15240
|
@let imgUrl = imageUrl(col, item);
|
|
@@ -15329,16 +15442,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15329
15442
|
<!-- Badge cell -->
|
|
15330
15443
|
@case ('badge') {
|
|
15331
15444
|
@let bCfg = resolveBadge(col, item);
|
|
15332
|
-
@if (bCfg) { <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> } @else { — }
|
|
15445
|
+
@if (bCfg) { @if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> } <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> } @else { — }
|
|
15333
15446
|
}
|
|
15334
15447
|
|
|
15335
15448
|
<!-- Date cell -->
|
|
15336
15449
|
@case ('date') {
|
|
15450
|
+
@if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> }
|
|
15337
15451
|
{{ item[col.key] ? (item[col.key] | date:(col.dateFormat ?? 'MMM d, y')) : '—' }}
|
|
15338
15452
|
}
|
|
15339
15453
|
|
|
15340
15454
|
<!-- Phone cell -->
|
|
15341
15455
|
@case ('phone') {
|
|
15456
|
+
@if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> }
|
|
15342
15457
|
{{ phoneCell(item[col.key]) }}
|
|
15343
15458
|
}
|
|
15344
15459
|
|
|
@@ -15426,6 +15541,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15426
15541
|
|
|
15427
15542
|
<!-- Default: plain text -->
|
|
15428
15543
|
@default {
|
|
15544
|
+
@if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> }
|
|
15429
15545
|
@if (col.starFn?.(item); as starTip) {
|
|
15430
15546
|
<ui-star class="dt-cell-star" [tooltip]="starTip" />
|
|
15431
15547
|
}
|
|
@@ -15583,6 +15699,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15583
15699
|
</span>
|
|
15584
15700
|
} @else {
|
|
15585
15701
|
<span class="dt-card-name dt-card-name-plain">
|
|
15702
|
+
@if (tc.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: tc, item: item }" /> }
|
|
15586
15703
|
@if (tc.starFn?.(item); as starTip) {
|
|
15587
15704
|
<ui-star class="dt-cell-star" [tooltip]="starTip" />
|
|
15588
15705
|
}
|
|
@@ -15620,7 +15737,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15620
15737
|
<div class="dt-card-badges">
|
|
15621
15738
|
@for (bc of _cardCols().badgeCols; track bc.key) {
|
|
15622
15739
|
@let bCfg = resolveBadge(bc, item);
|
|
15623
|
-
@if (bCfg) { <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> }
|
|
15740
|
+
@if (bCfg) { @if (bc.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: bc, item: item }" /> } <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> }
|
|
15624
15741
|
}
|
|
15625
15742
|
</div>
|
|
15626
15743
|
}
|
|
@@ -15651,6 +15768,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15651
15768
|
@if (dc.cellType === 'link') {
|
|
15652
15769
|
<ng-container [ngTemplateOutlet]="linkCell" [ngTemplateOutletContext]="{ col: dc, item: item }" />
|
|
15653
15770
|
} @else {
|
|
15771
|
+
@if (dc.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: dc, item: item }" /> }
|
|
15654
15772
|
{{ val }}
|
|
15655
15773
|
}</span>
|
|
15656
15774
|
</div>
|
|
@@ -15743,7 +15861,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15743
15861
|
}
|
|
15744
15862
|
</div>
|
|
15745
15863
|
`,
|
|
15746
|
-
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}tfoot tr{background:#f8fafc;border-top:2px solid #e2e8f0}tfoot th.dt-foot-label{padding:10px 14px;font-size:.875rem;font-weight:700;color:#1e293b;text-transform:none;letter-spacing:normal;background:#f8fafc;border-right:1px solid #f1f5f9;white-space:nowrap}tfoot td{padding:10px 14px;font-weight:700;color:#1e293b;background:#f8fafc}.dt-card-totals{background:#f8fafc;font-weight:600}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions td.dt-td-actions:focus-within,.dt-sticky-actions td.dt-td-actions:has(.mm-dropdown){z-index:2}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#64748b}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;flex-wrap:nowrap;flex-shrink:0;align-items:stretch}.dt-header-left,.dt-header-right{width:100%;flex-basis:auto}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1 1 100%}.dt-bulk-actions{flex:1 1 auto;width:auto}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#475569;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 36px 0 12px;font-family:inherit;font-size:1rem;color:#1e293b;border:1px solid #7c8ba1;border-radius:8px;-webkit-appearance:none;appearance:none;background:#fff url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E\") no-repeat right 12px center}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"]
|
|
15864
|
+
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}tfoot tr{background:#f8fafc;border-top:2px solid #e2e8f0}tfoot th.dt-foot-label{padding:10px 14px;font-size:.875rem;font-weight:700;color:#1e293b;text-transform:none;letter-spacing:normal;background:#f8fafc;border-right:1px solid #f1f5f9;white-space:nowrap}tfoot td{padding:10px 14px;font-weight:700;color:#1e293b;background:#f8fafc}.dt-card-totals{background:#f8fafc;font-weight:600}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions td.dt-td-actions:focus-within,.dt-sticky-actions td.dt-td-actions:has(.mm-dropdown){z-index:2}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#64748b}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-cell-icon{flex-shrink:0;display:inline-block;margin-right:6px;vertical-align:-3px;color:#64748b}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;flex-wrap:nowrap;flex-shrink:0;align-items:stretch}.dt-header-left,.dt-header-right{width:100%;flex-basis:auto}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1 1 100%}.dt-bulk-actions{flex:1 1 auto;width:auto}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#475569;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 36px 0 12px;font-family:inherit;font-size:1rem;color:#1e293b;border:1px solid #7c8ba1;border-radius:8px;-webkit-appearance:none;appearance:none;background:#fff url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E\") no-repeat right 12px center}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"]
|
|
15747
15865
|
}]
|
|
15748
15866
|
}],
|
|
15749
15867
|
ctorParameters: () => [],
|
|
@@ -17232,6 +17350,493 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
17232
17350
|
}]
|
|
17233
17351
|
}
|
|
17234
17352
|
});
|
|
17353
|
+
var StarRatingComponent = class StarRatingComponent {
|
|
17354
|
+
get _name() {
|
|
17355
|
+
return this.name() || this._generatedName;
|
|
17356
|
+
}
|
|
17357
|
+
constructor() {
|
|
17358
|
+
this.max = input(5, ...ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []);
|
|
17359
|
+
this.value = input(0, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
17360
|
+
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
17361
|
+
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
17362
|
+
this.hint = input("", ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
|
|
17363
|
+
this.error = input("", ...ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []);
|
|
17364
|
+
this.required = input(false, ...ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []);
|
|
17365
|
+
this.showErrors = input(false, ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
17366
|
+
this.size = input(24, ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
|
|
17367
|
+
this.readonly = input(false, ...ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []);
|
|
17368
|
+
this.name = input("", ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
17369
|
+
this._disabledInput = input(false, {
|
|
17370
|
+
...ngDevMode ? { debugName: "_disabledInput" } : /* istanbul ignore next */ {},
|
|
17371
|
+
alias: "disabled"
|
|
17372
|
+
});
|
|
17373
|
+
this._cvaDisabled = signal(false, ...ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []);
|
|
17374
|
+
this.disabled = computed(() => this._disabledInput() || this._cvaDisabled(), ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
17375
|
+
this.valueChange = output();
|
|
17376
|
+
this.invalidChange = output();
|
|
17377
|
+
this._value = linkedSignal(() => StarRatingComponent._norm(this.value()), ...ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []);
|
|
17378
|
+
this._max = computed(() => {
|
|
17379
|
+
const m = Math.floor(Number(this.max()));
|
|
17380
|
+
return Number.isFinite(m) && m >= 1 ? m : 1;
|
|
17381
|
+
}, ...ngDevMode ? [{ debugName: "_max" }] : /* istanbul ignore next */ []);
|
|
17382
|
+
this._stars = computed(() => Array.from({ length: this._max() }, (_, i) => i + 1), ...ngDevMode ? [{ debugName: "_stars" }] : /* istanbul ignore next */ []);
|
|
17383
|
+
this._shown = computed(() => Math.min(Math.max(Math.floor(this._value()), 0), this._max()), ...ngDevMode ? [{ debugName: "_shown" }] : /* istanbul ignore next */ []);
|
|
17384
|
+
this._readonlyText = computed(() => {
|
|
17385
|
+
const n = this._shown();
|
|
17386
|
+
const text = n === 0 ? "No rating" : `${n} ${n === 1 ? "star" : "stars"} out of ${this._max()}`;
|
|
17387
|
+
return this.label() ? `${this.label()}: ${text}` : text;
|
|
17388
|
+
}, ...ngDevMode ? [{ debugName: "_readonlyText" }] : /* istanbul ignore next */ []);
|
|
17389
|
+
this._path = "M10 1.5l2.6 5.3 5.9.9-4.25 4.15 1 5.85L10 14.9l-5.25 2.8 1-5.85L1.5 7.7l5.9-.9L10 1.5z";
|
|
17390
|
+
this._generatedName = `sr-${Math.random().toString(36).slice(2, 8)}`;
|
|
17391
|
+
this._descId = `${this._generatedName}-desc`;
|
|
17392
|
+
this._host = inject(ElementRef);
|
|
17393
|
+
this._reveal = createFieldReveal(this.showErrors);
|
|
17394
|
+
this._issue = computed(() => this._check(this._value()), ...ngDevMode ? [{ debugName: "_issue" }] : /* istanbul ignore next */ []);
|
|
17395
|
+
this.invalid = computed(() => !!this.error() || !!this._issue(), ...ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []);
|
|
17396
|
+
this.errorMessage = computed(() => this._issue()?.message ?? "", ...ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []);
|
|
17397
|
+
this._activeError = computed(() => this.error() || (this._reveal.revealed() ? this.errorMessage() : ""), ...ngDevMode ? [{ debugName: "_activeError" }] : /* istanbul ignore next */ []);
|
|
17398
|
+
this._onValidatorChange = () => {};
|
|
17399
|
+
this._onChange = (_) => {};
|
|
17400
|
+
this._onTouched = () => {};
|
|
17401
|
+
effect(() => {
|
|
17402
|
+
this.invalidChange.emit(this.invalid());
|
|
17403
|
+
});
|
|
17404
|
+
}
|
|
17405
|
+
ngOnChanges() {
|
|
17406
|
+
this._onValidatorChange();
|
|
17407
|
+
}
|
|
17408
|
+
validate(control) {
|
|
17409
|
+
return issueToErrors(this._check(StarRatingComponent._norm(control.value)));
|
|
17410
|
+
}
|
|
17411
|
+
registerOnValidatorChange(fn) {
|
|
17412
|
+
this._onValidatorChange = fn;
|
|
17413
|
+
}
|
|
17414
|
+
writeValue(val) {
|
|
17415
|
+
this._value.set(StarRatingComponent._norm(val));
|
|
17416
|
+
}
|
|
17417
|
+
registerOnChange(fn) {
|
|
17418
|
+
this._onChange = fn;
|
|
17419
|
+
}
|
|
17420
|
+
registerOnTouched(fn) {
|
|
17421
|
+
this._onTouched = fn;
|
|
17422
|
+
}
|
|
17423
|
+
setDisabledState(d) {
|
|
17424
|
+
this._cvaDisabled.set(d);
|
|
17425
|
+
}
|
|
17426
|
+
static _norm(v) {
|
|
17427
|
+
if (v === null || v === void 0 || v === "") return 0;
|
|
17428
|
+
const n = Number(v);
|
|
17429
|
+
return Number.isFinite(n) ? n : 0;
|
|
17430
|
+
}
|
|
17431
|
+
onSelect(n) {
|
|
17432
|
+
if (this.disabled()) return;
|
|
17433
|
+
this._value.set(n);
|
|
17434
|
+
this._onChange(n);
|
|
17435
|
+
this.valueChange.emit(n);
|
|
17436
|
+
}
|
|
17437
|
+
onKeydown(event, n) {
|
|
17438
|
+
if (this.disabled()) return;
|
|
17439
|
+
let target = null;
|
|
17440
|
+
if (event.key === "Enter") target = n;
|
|
17441
|
+
else if (event.key === "Home") target = 1;
|
|
17442
|
+
else if (event.key === "End") target = this._max();
|
|
17443
|
+
if (target === null) return;
|
|
17444
|
+
event.preventDefault();
|
|
17445
|
+
this.onSelect(target);
|
|
17446
|
+
this._host.nativeElement.querySelectorAll("input[type=\"radio\"]")[target - 1]?.focus();
|
|
17447
|
+
}
|
|
17448
|
+
onFocusOut(event) {
|
|
17449
|
+
const next = event.relatedTarget;
|
|
17450
|
+
if (next && event.currentTarget.contains(next)) return;
|
|
17451
|
+
this._onTouched();
|
|
17452
|
+
this._reveal.touched.set(true);
|
|
17453
|
+
}
|
|
17454
|
+
_check(value) {
|
|
17455
|
+
if (this.disabled() || this.readonly()) return null;
|
|
17456
|
+
if (value === 0) return this.required() ? requiredIssue(this.label()) : null;
|
|
17457
|
+
if (!Number.isInteger(value) || value < 0 || value > this._max()) return {
|
|
17458
|
+
key: "option",
|
|
17459
|
+
message: "Select a valid option."
|
|
17460
|
+
};
|
|
17461
|
+
return null;
|
|
17462
|
+
}
|
|
17463
|
+
static {
|
|
17464
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
17465
|
+
minVersion: "12.0.0",
|
|
17466
|
+
version: "22.2.2",
|
|
17467
|
+
ngImport: i0,
|
|
17468
|
+
type: StarRatingComponent,
|
|
17469
|
+
deps: [],
|
|
17470
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
17471
|
+
});
|
|
17472
|
+
}
|
|
17473
|
+
static {
|
|
17474
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
17475
|
+
minVersion: "17.0.0",
|
|
17476
|
+
version: "22.2.2",
|
|
17477
|
+
type: StarRatingComponent,
|
|
17478
|
+
isStandalone: true,
|
|
17479
|
+
selector: "ui-star-rating",
|
|
17480
|
+
inputs: {
|
|
17481
|
+
max: {
|
|
17482
|
+
classPropertyName: "max",
|
|
17483
|
+
publicName: "max",
|
|
17484
|
+
isSignal: true,
|
|
17485
|
+
isRequired: false,
|
|
17486
|
+
transformFunction: null
|
|
17487
|
+
},
|
|
17488
|
+
value: {
|
|
17489
|
+
classPropertyName: "value",
|
|
17490
|
+
publicName: "value",
|
|
17491
|
+
isSignal: true,
|
|
17492
|
+
isRequired: false,
|
|
17493
|
+
transformFunction: null
|
|
17494
|
+
},
|
|
17495
|
+
label: {
|
|
17496
|
+
classPropertyName: "label",
|
|
17497
|
+
publicName: "label",
|
|
17498
|
+
isSignal: true,
|
|
17499
|
+
isRequired: false,
|
|
17500
|
+
transformFunction: null
|
|
17501
|
+
},
|
|
17502
|
+
ariaLabel: {
|
|
17503
|
+
classPropertyName: "ariaLabel",
|
|
17504
|
+
publicName: "ariaLabel",
|
|
17505
|
+
isSignal: true,
|
|
17506
|
+
isRequired: false,
|
|
17507
|
+
transformFunction: null
|
|
17508
|
+
},
|
|
17509
|
+
hint: {
|
|
17510
|
+
classPropertyName: "hint",
|
|
17511
|
+
publicName: "hint",
|
|
17512
|
+
isSignal: true,
|
|
17513
|
+
isRequired: false,
|
|
17514
|
+
transformFunction: null
|
|
17515
|
+
},
|
|
17516
|
+
error: {
|
|
17517
|
+
classPropertyName: "error",
|
|
17518
|
+
publicName: "error",
|
|
17519
|
+
isSignal: true,
|
|
17520
|
+
isRequired: false,
|
|
17521
|
+
transformFunction: null
|
|
17522
|
+
},
|
|
17523
|
+
required: {
|
|
17524
|
+
classPropertyName: "required",
|
|
17525
|
+
publicName: "required",
|
|
17526
|
+
isSignal: true,
|
|
17527
|
+
isRequired: false,
|
|
17528
|
+
transformFunction: null
|
|
17529
|
+
},
|
|
17530
|
+
showErrors: {
|
|
17531
|
+
classPropertyName: "showErrors",
|
|
17532
|
+
publicName: "showErrors",
|
|
17533
|
+
isSignal: true,
|
|
17534
|
+
isRequired: false,
|
|
17535
|
+
transformFunction: null
|
|
17536
|
+
},
|
|
17537
|
+
size: {
|
|
17538
|
+
classPropertyName: "size",
|
|
17539
|
+
publicName: "size",
|
|
17540
|
+
isSignal: true,
|
|
17541
|
+
isRequired: false,
|
|
17542
|
+
transformFunction: null
|
|
17543
|
+
},
|
|
17544
|
+
readonly: {
|
|
17545
|
+
classPropertyName: "readonly",
|
|
17546
|
+
publicName: "readonly",
|
|
17547
|
+
isSignal: true,
|
|
17548
|
+
isRequired: false,
|
|
17549
|
+
transformFunction: null
|
|
17550
|
+
},
|
|
17551
|
+
name: {
|
|
17552
|
+
classPropertyName: "name",
|
|
17553
|
+
publicName: "name",
|
|
17554
|
+
isSignal: true,
|
|
17555
|
+
isRequired: false,
|
|
17556
|
+
transformFunction: null
|
|
17557
|
+
},
|
|
17558
|
+
_disabledInput: {
|
|
17559
|
+
classPropertyName: "_disabledInput",
|
|
17560
|
+
publicName: "disabled",
|
|
17561
|
+
isSignal: true,
|
|
17562
|
+
isRequired: false,
|
|
17563
|
+
transformFunction: null
|
|
17564
|
+
}
|
|
17565
|
+
},
|
|
17566
|
+
outputs: {
|
|
17567
|
+
valueChange: "valueChange",
|
|
17568
|
+
invalidChange: "invalidChange"
|
|
17569
|
+
},
|
|
17570
|
+
providers: [
|
|
17571
|
+
{
|
|
17572
|
+
provide: NG_VALUE_ACCESSOR,
|
|
17573
|
+
useExisting: forwardRef(() => StarRatingComponent),
|
|
17574
|
+
multi: true
|
|
17575
|
+
},
|
|
17576
|
+
{
|
|
17577
|
+
provide: NG_VALIDATORS,
|
|
17578
|
+
useExisting: forwardRef(() => StarRatingComponent),
|
|
17579
|
+
multi: true
|
|
17580
|
+
},
|
|
17581
|
+
{
|
|
17582
|
+
provide: UiFieldValidity,
|
|
17583
|
+
useExisting: forwardRef(() => StarRatingComponent)
|
|
17584
|
+
}
|
|
17585
|
+
],
|
|
17586
|
+
usesOnChanges: true,
|
|
17587
|
+
ngImport: i0,
|
|
17588
|
+
template: `
|
|
17589
|
+
@if (readonly()) {
|
|
17590
|
+
<div class="sr-ro">
|
|
17591
|
+
@if (label()) { <span class="sr-label sr-label-ro" aria-hidden="true">{{ label() }}</span> }
|
|
17592
|
+
<span class="sr-stars" role="img" [attr.aria-label]="_readonlyText()">
|
|
17593
|
+
@for (n of _stars(); track n) {
|
|
17594
|
+
<svg class="sr-svg" [class.sr-on]="n <= _shown()" [attr.width]="size()" [attr.height]="size()" viewBox="0 0 20 20" aria-hidden="true" focusable="false"><path class="sr-shape" [attr.d]="_path" /></svg>
|
|
17595
|
+
}
|
|
17596
|
+
</span>
|
|
17597
|
+
</div>
|
|
17598
|
+
} @else {
|
|
17599
|
+
<fieldset
|
|
17600
|
+
class="sr-field"
|
|
17601
|
+
role="radiogroup"
|
|
17602
|
+
[class.sr-error]="_activeError()"
|
|
17603
|
+
[class.sr-disabled]="disabled()"
|
|
17604
|
+
[disabled]="disabled()"
|
|
17605
|
+
[attr.aria-label]="label() ? null : (ariaLabel() || 'Rating')"
|
|
17606
|
+
[attr.aria-required]="required() ? 'true' : null"
|
|
17607
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
17608
|
+
[attr.aria-describedby]="(_activeError() || hint()) ? _descId : null"
|
|
17609
|
+
(focusout)="onFocusOut($event)">
|
|
17610
|
+
@if (label()) {
|
|
17611
|
+
<legend class="sr-label">
|
|
17612
|
+
{{ label() }}
|
|
17613
|
+
@if (required()) { <span class="sr-required" aria-hidden="true">*</span> }
|
|
17614
|
+
</legend>
|
|
17615
|
+
}
|
|
17616
|
+
<div class="sr-stars">
|
|
17617
|
+
@for (n of _stars(); track n) {
|
|
17618
|
+
<label class="sr-star" [class.sr-disabled]="disabled()">
|
|
17619
|
+
<input
|
|
17620
|
+
type="radio"
|
|
17621
|
+
class="sr-hidden"
|
|
17622
|
+
[name]="_name"
|
|
17623
|
+
[value]="n"
|
|
17624
|
+
[checked]="_value() === n"
|
|
17625
|
+
[disabled]="disabled()"
|
|
17626
|
+
[attr.aria-label]="n === 1 ? '1 star' : n + ' stars'"
|
|
17627
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
17628
|
+
(change)="onSelect(n)"
|
|
17629
|
+
(keydown)="onKeydown($event, n)" />
|
|
17630
|
+
<svg class="sr-svg" [class.sr-on]="n <= _shown()" [attr.width]="size()" [attr.height]="size()" viewBox="0 0 20 20" aria-hidden="true" focusable="false"><path class="sr-shape" [attr.d]="_path" /></svg>
|
|
17631
|
+
</label>
|
|
17632
|
+
}
|
|
17633
|
+
</div>
|
|
17634
|
+
@if (_activeError()) {
|
|
17635
|
+
<p class="sr-desc sr-desc-error" [id]="_descId" role="alert">{{ _activeError() }}</p>
|
|
17636
|
+
} @else if (hint()) {
|
|
17637
|
+
<p class="sr-desc" [id]="_descId">{{ hint() }}</p>
|
|
17638
|
+
}
|
|
17639
|
+
</fieldset>
|
|
17640
|
+
}
|
|
17641
|
+
`,
|
|
17642
|
+
isInline: true,
|
|
17643
|
+
styles: [":host{display:block}.sr-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.sr-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sr-label-ro{display:block}.sr-required{color:#dc2626;margin-left:2px}.sr-ro{display:flex;flex-direction:column}.sr-stars{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:2px}.sr-star{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.sr-star.sr-disabled{cursor:not-allowed;opacity:.5}.sr-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-hidden:focus-visible+.sr-svg{outline:2px solid #3b82f6;outline-offset:2px;border-radius:3px}.sr-svg{display:block}.sr-shape{fill:none;stroke:#7c8ba1;stroke-width:1.25;stroke-linejoin:round}.sr-on .sr-shape{fill:#f5b301;stroke:#a16207;stroke-width:.75}.sr-error .sr-svg:not(.sr-on) .sr-shape{stroke:#ef4444}.sr-field:not(.sr-disabled) .sr-star:hover .sr-shape{stroke:#a16207}@media(pointer:coarse),(max-width:480px){.sr-star{min-width:44px;min-height:44px}.sr-hidden{width:100%;height:100%;margin:0;clip:auto;overflow:visible;left:0;top:0;opacity:0;cursor:pointer;z-index:1}.sr-star.sr-disabled .sr-hidden{cursor:not-allowed}.sr-stars{gap:0}}.sr-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.sr-desc-error{color:#dc2626}@media(forced-colors:active){.sr-shape{stroke:CanvasText}.sr-on .sr-shape{fill:Highlight;stroke:CanvasText}}@media(prefers-reduced-motion:no-preference){.sr-shape{transition:fill .1s,stroke .1s}}\n"],
|
|
17644
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
17645
|
+
});
|
|
17646
|
+
}
|
|
17647
|
+
};
|
|
17648
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
17649
|
+
minVersion: "12.0.0",
|
|
17650
|
+
version: "22.2.2",
|
|
17651
|
+
ngImport: i0,
|
|
17652
|
+
type: StarRatingComponent,
|
|
17653
|
+
decorators: [{
|
|
17654
|
+
type: Component,
|
|
17655
|
+
args: [{
|
|
17656
|
+
selector: "ui-star-rating",
|
|
17657
|
+
standalone: true,
|
|
17658
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
17659
|
+
providers: [
|
|
17660
|
+
{
|
|
17661
|
+
provide: NG_VALUE_ACCESSOR,
|
|
17662
|
+
useExisting: forwardRef(() => StarRatingComponent),
|
|
17663
|
+
multi: true
|
|
17664
|
+
},
|
|
17665
|
+
{
|
|
17666
|
+
provide: NG_VALIDATORS,
|
|
17667
|
+
useExisting: forwardRef(() => StarRatingComponent),
|
|
17668
|
+
multi: true
|
|
17669
|
+
},
|
|
17670
|
+
{
|
|
17671
|
+
provide: UiFieldValidity,
|
|
17672
|
+
useExisting: forwardRef(() => StarRatingComponent)
|
|
17673
|
+
}
|
|
17674
|
+
],
|
|
17675
|
+
template: `
|
|
17676
|
+
@if (readonly()) {
|
|
17677
|
+
<div class="sr-ro">
|
|
17678
|
+
@if (label()) { <span class="sr-label sr-label-ro" aria-hidden="true">{{ label() }}</span> }
|
|
17679
|
+
<span class="sr-stars" role="img" [attr.aria-label]="_readonlyText()">
|
|
17680
|
+
@for (n of _stars(); track n) {
|
|
17681
|
+
<svg class="sr-svg" [class.sr-on]="n <= _shown()" [attr.width]="size()" [attr.height]="size()" viewBox="0 0 20 20" aria-hidden="true" focusable="false"><path class="sr-shape" [attr.d]="_path" /></svg>
|
|
17682
|
+
}
|
|
17683
|
+
</span>
|
|
17684
|
+
</div>
|
|
17685
|
+
} @else {
|
|
17686
|
+
<fieldset
|
|
17687
|
+
class="sr-field"
|
|
17688
|
+
role="radiogroup"
|
|
17689
|
+
[class.sr-error]="_activeError()"
|
|
17690
|
+
[class.sr-disabled]="disabled()"
|
|
17691
|
+
[disabled]="disabled()"
|
|
17692
|
+
[attr.aria-label]="label() ? null : (ariaLabel() || 'Rating')"
|
|
17693
|
+
[attr.aria-required]="required() ? 'true' : null"
|
|
17694
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
17695
|
+
[attr.aria-describedby]="(_activeError() || hint()) ? _descId : null"
|
|
17696
|
+
(focusout)="onFocusOut($event)">
|
|
17697
|
+
@if (label()) {
|
|
17698
|
+
<legend class="sr-label">
|
|
17699
|
+
{{ label() }}
|
|
17700
|
+
@if (required()) { <span class="sr-required" aria-hidden="true">*</span> }
|
|
17701
|
+
</legend>
|
|
17702
|
+
}
|
|
17703
|
+
<div class="sr-stars">
|
|
17704
|
+
@for (n of _stars(); track n) {
|
|
17705
|
+
<label class="sr-star" [class.sr-disabled]="disabled()">
|
|
17706
|
+
<input
|
|
17707
|
+
type="radio"
|
|
17708
|
+
class="sr-hidden"
|
|
17709
|
+
[name]="_name"
|
|
17710
|
+
[value]="n"
|
|
17711
|
+
[checked]="_value() === n"
|
|
17712
|
+
[disabled]="disabled()"
|
|
17713
|
+
[attr.aria-label]="n === 1 ? '1 star' : n + ' stars'"
|
|
17714
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
17715
|
+
(change)="onSelect(n)"
|
|
17716
|
+
(keydown)="onKeydown($event, n)" />
|
|
17717
|
+
<svg class="sr-svg" [class.sr-on]="n <= _shown()" [attr.width]="size()" [attr.height]="size()" viewBox="0 0 20 20" aria-hidden="true" focusable="false"><path class="sr-shape" [attr.d]="_path" /></svg>
|
|
17718
|
+
</label>
|
|
17719
|
+
}
|
|
17720
|
+
</div>
|
|
17721
|
+
@if (_activeError()) {
|
|
17722
|
+
<p class="sr-desc sr-desc-error" [id]="_descId" role="alert">{{ _activeError() }}</p>
|
|
17723
|
+
} @else if (hint()) {
|
|
17724
|
+
<p class="sr-desc" [id]="_descId">{{ hint() }}</p>
|
|
17725
|
+
}
|
|
17726
|
+
</fieldset>
|
|
17727
|
+
}
|
|
17728
|
+
`,
|
|
17729
|
+
styles: [":host{display:block}.sr-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.sr-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sr-label-ro{display:block}.sr-required{color:#dc2626;margin-left:2px}.sr-ro{display:flex;flex-direction:column}.sr-stars{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:2px}.sr-star{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.sr-star.sr-disabled{cursor:not-allowed;opacity:.5}.sr-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-hidden:focus-visible+.sr-svg{outline:2px solid #3b82f6;outline-offset:2px;border-radius:3px}.sr-svg{display:block}.sr-shape{fill:none;stroke:#7c8ba1;stroke-width:1.25;stroke-linejoin:round}.sr-on .sr-shape{fill:#f5b301;stroke:#a16207;stroke-width:.75}.sr-error .sr-svg:not(.sr-on) .sr-shape{stroke:#ef4444}.sr-field:not(.sr-disabled) .sr-star:hover .sr-shape{stroke:#a16207}@media(pointer:coarse),(max-width:480px){.sr-star{min-width:44px;min-height:44px}.sr-hidden{width:100%;height:100%;margin:0;clip:auto;overflow:visible;left:0;top:0;opacity:0;cursor:pointer;z-index:1}.sr-star.sr-disabled .sr-hidden{cursor:not-allowed}.sr-stars{gap:0}}.sr-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.sr-desc-error{color:#dc2626}@media(forced-colors:active){.sr-shape{stroke:CanvasText}.sr-on .sr-shape{fill:Highlight;stroke:CanvasText}}@media(prefers-reduced-motion:no-preference){.sr-shape{transition:fill .1s,stroke .1s}}\n"]
|
|
17730
|
+
}]
|
|
17731
|
+
}],
|
|
17732
|
+
ctorParameters: () => [],
|
|
17733
|
+
propDecorators: {
|
|
17734
|
+
max: [{
|
|
17735
|
+
type: i0.Input,
|
|
17736
|
+
args: [{
|
|
17737
|
+
isSignal: true,
|
|
17738
|
+
alias: "max",
|
|
17739
|
+
required: false
|
|
17740
|
+
}]
|
|
17741
|
+
}],
|
|
17742
|
+
value: [{
|
|
17743
|
+
type: i0.Input,
|
|
17744
|
+
args: [{
|
|
17745
|
+
isSignal: true,
|
|
17746
|
+
alias: "value",
|
|
17747
|
+
required: false
|
|
17748
|
+
}]
|
|
17749
|
+
}],
|
|
17750
|
+
label: [{
|
|
17751
|
+
type: i0.Input,
|
|
17752
|
+
args: [{
|
|
17753
|
+
isSignal: true,
|
|
17754
|
+
alias: "label",
|
|
17755
|
+
required: false
|
|
17756
|
+
}]
|
|
17757
|
+
}],
|
|
17758
|
+
ariaLabel: [{
|
|
17759
|
+
type: i0.Input,
|
|
17760
|
+
args: [{
|
|
17761
|
+
isSignal: true,
|
|
17762
|
+
alias: "ariaLabel",
|
|
17763
|
+
required: false
|
|
17764
|
+
}]
|
|
17765
|
+
}],
|
|
17766
|
+
hint: [{
|
|
17767
|
+
type: i0.Input,
|
|
17768
|
+
args: [{
|
|
17769
|
+
isSignal: true,
|
|
17770
|
+
alias: "hint",
|
|
17771
|
+
required: false
|
|
17772
|
+
}]
|
|
17773
|
+
}],
|
|
17774
|
+
error: [{
|
|
17775
|
+
type: i0.Input,
|
|
17776
|
+
args: [{
|
|
17777
|
+
isSignal: true,
|
|
17778
|
+
alias: "error",
|
|
17779
|
+
required: false
|
|
17780
|
+
}]
|
|
17781
|
+
}],
|
|
17782
|
+
required: [{
|
|
17783
|
+
type: i0.Input,
|
|
17784
|
+
args: [{
|
|
17785
|
+
isSignal: true,
|
|
17786
|
+
alias: "required",
|
|
17787
|
+
required: false
|
|
17788
|
+
}]
|
|
17789
|
+
}],
|
|
17790
|
+
showErrors: [{
|
|
17791
|
+
type: i0.Input,
|
|
17792
|
+
args: [{
|
|
17793
|
+
isSignal: true,
|
|
17794
|
+
alias: "showErrors",
|
|
17795
|
+
required: false
|
|
17796
|
+
}]
|
|
17797
|
+
}],
|
|
17798
|
+
size: [{
|
|
17799
|
+
type: i0.Input,
|
|
17800
|
+
args: [{
|
|
17801
|
+
isSignal: true,
|
|
17802
|
+
alias: "size",
|
|
17803
|
+
required: false
|
|
17804
|
+
}]
|
|
17805
|
+
}],
|
|
17806
|
+
readonly: [{
|
|
17807
|
+
type: i0.Input,
|
|
17808
|
+
args: [{
|
|
17809
|
+
isSignal: true,
|
|
17810
|
+
alias: "readonly",
|
|
17811
|
+
required: false
|
|
17812
|
+
}]
|
|
17813
|
+
}],
|
|
17814
|
+
name: [{
|
|
17815
|
+
type: i0.Input,
|
|
17816
|
+
args: [{
|
|
17817
|
+
isSignal: true,
|
|
17818
|
+
alias: "name",
|
|
17819
|
+
required: false
|
|
17820
|
+
}]
|
|
17821
|
+
}],
|
|
17822
|
+
_disabledInput: [{
|
|
17823
|
+
type: i0.Input,
|
|
17824
|
+
args: [{
|
|
17825
|
+
isSignal: true,
|
|
17826
|
+
alias: "disabled",
|
|
17827
|
+
required: false
|
|
17828
|
+
}]
|
|
17829
|
+
}],
|
|
17830
|
+
valueChange: [{
|
|
17831
|
+
type: i0.Output,
|
|
17832
|
+
args: ["valueChange"]
|
|
17833
|
+
}],
|
|
17834
|
+
invalidChange: [{
|
|
17835
|
+
type: i0.Output,
|
|
17836
|
+
args: ["invalidChange"]
|
|
17837
|
+
}]
|
|
17838
|
+
}
|
|
17839
|
+
});
|
|
17235
17840
|
const KEY_STEP = 2;
|
|
17236
17841
|
const KEY_STEP_BIG = 10;
|
|
17237
17842
|
const clamp = (n) => Math.min(100, Math.max(0, Math.round(n)));
|
|
@@ -18805,6 +19410,7 @@ var BusinessHoursComponent = class BusinessHoursComponent {
|
|
|
18805
19410
|
"legend",
|
|
18806
19411
|
"orientation",
|
|
18807
19412
|
"values",
|
|
19413
|
+
"labelLinks",
|
|
18808
19414
|
"description",
|
|
18809
19415
|
"indent",
|
|
18810
19416
|
"required",
|
|
@@ -19030,6 +19636,9 @@ var RadioComponent = class RadioComponent {
|
|
|
19030
19636
|
constructor() {
|
|
19031
19637
|
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
19032
19638
|
this.description = input("", ...ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []);
|
|
19639
|
+
this.linkLabel = input("", ...ngDevMode ? [{ debugName: "linkLabel" }] : /* istanbul ignore next */ []);
|
|
19640
|
+
this.linkUrl = input("", ...ngDevMode ? [{ debugName: "linkUrl" }] : /* istanbul ignore next */ []);
|
|
19641
|
+
this.linkTestId = input("", ...ngDevMode ? [{ debugName: "linkTestId" }] : /* istanbul ignore next */ []);
|
|
19033
19642
|
this.icon = input("", ...ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []);
|
|
19034
19643
|
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
19035
19644
|
this.testId = input("", ...ngDevMode ? [{ debugName: "testId" }] : /* istanbul ignore next */ []);
|
|
@@ -19049,10 +19658,12 @@ var RadioComponent = class RadioComponent {
|
|
|
19049
19658
|
if (!v) return null;
|
|
19050
19659
|
return iconPath(v) ?? (/^[Mm][\d\s.,\-MmLlHhVvCcSsQqTtAaZz]+$/.test(v) ? v : null);
|
|
19051
19660
|
}, ...ngDevMode ? [{ debugName: "_iconD" }] : /* istanbul ignore next */ []);
|
|
19661
|
+
this._linkHref = computed(() => this.linkLabel().trim() ? safeLinkHref(this.linkUrl()) : null, ...ngDevMode ? [{ debugName: "_linkHref" }] : /* istanbul ignore next */ []);
|
|
19662
|
+
this._linkNewTab = computed(() => opensInNewTab(this._linkHref()), ...ngDevMode ? [{ debugName: "_linkNewTab" }] : /* istanbul ignore next */ []);
|
|
19052
19663
|
this.labelId = input("", ...ngDevMode ? [{ debugName: "labelId" }] : /* istanbul ignore next */ []);
|
|
19053
19664
|
this._generatedLabelId = `rd-${Math.random().toString(36).slice(2, 8)}-label`;
|
|
19054
19665
|
this._labelId = computed(() => this.labelId() || this._generatedLabelId, ...ngDevMode ? [{ debugName: "_labelId" }] : /* istanbul ignore next */ []);
|
|
19055
|
-
this._labelledBy = computed(() => this.label() && this.description() && !this.ariaLabel() ? this._labelId() : null, ...ngDevMode ? [{ debugName: "_labelledBy" }] : /* istanbul ignore next */ []);
|
|
19666
|
+
this._labelledBy = computed(() => this.label() && (this.description() || this._linkHref()) && !this.ariaLabel() ? this._labelId() : null, ...ngDevMode ? [{ debugName: "_labelledBy" }] : /* istanbul ignore next */ []);
|
|
19056
19667
|
this._descriptionId = `rd-${Math.random().toString(36).slice(2, 8)}-desc`;
|
|
19057
19668
|
this._describedByIds = computed(() => {
|
|
19058
19669
|
return [this.describedBy(), this.description() ? this._descriptionId : ""].filter(Boolean).join(" ") || null;
|
|
@@ -19094,6 +19705,27 @@ var RadioComponent = class RadioComponent {
|
|
|
19094
19705
|
isRequired: false,
|
|
19095
19706
|
transformFunction: null
|
|
19096
19707
|
},
|
|
19708
|
+
linkLabel: {
|
|
19709
|
+
classPropertyName: "linkLabel",
|
|
19710
|
+
publicName: "linkLabel",
|
|
19711
|
+
isSignal: true,
|
|
19712
|
+
isRequired: false,
|
|
19713
|
+
transformFunction: null
|
|
19714
|
+
},
|
|
19715
|
+
linkUrl: {
|
|
19716
|
+
classPropertyName: "linkUrl",
|
|
19717
|
+
publicName: "linkUrl",
|
|
19718
|
+
isSignal: true,
|
|
19719
|
+
isRequired: false,
|
|
19720
|
+
transformFunction: null
|
|
19721
|
+
},
|
|
19722
|
+
linkTestId: {
|
|
19723
|
+
classPropertyName: "linkTestId",
|
|
19724
|
+
publicName: "linkTestId",
|
|
19725
|
+
isSignal: true,
|
|
19726
|
+
isRequired: false,
|
|
19727
|
+
transformFunction: null
|
|
19728
|
+
},
|
|
19097
19729
|
icon: {
|
|
19098
19730
|
classPropertyName: "icon",
|
|
19099
19731
|
publicName: "icon",
|
|
@@ -19201,12 +19833,16 @@ var RadioComponent = class RadioComponent {
|
|
|
19201
19833
|
<span class="rd-text">
|
|
19202
19834
|
@if (label()) { <span class="rd-label" [id]="_labelId()">{{ label() }}</span> }
|
|
19203
19835
|
@if (description()) { <span class="rd-description" [id]="_descriptionId">{{ description() }}</span> }
|
|
19836
|
+
@if (_linkHref(); as href) {
|
|
19837
|
+
<!-- Optional link after the description (library source 2026-11-05): a real anchor, so it is its own tab stop; clicking it follows the link and never selects the radio. -->
|
|
19838
|
+
<a class="rd-link" [attr.href]="href" [attr.target]="_linkNewTab() ? '_blank' : null" [attr.rel]="_linkNewTab() ? 'noopener noreferrer' : null" [attr.data-testid]="linkTestId() || null">{{ linkLabel() }}@if (_linkNewTab()) { <span class="rd-sr">(opens in a new tab)</span> }</a>
|
|
19839
|
+
}
|
|
19204
19840
|
<ng-content />
|
|
19205
19841
|
</span>
|
|
19206
19842
|
</label>
|
|
19207
19843
|
`,
|
|
19208
19844
|
isInline: true,
|
|
19209
|
-
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"],
|
|
19845
|
+
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}.rd-link{font-size:.75rem;line-height:1.4;color:#2563eb;text-decoration:underline;align-self:flex-start;cursor:pointer;display:inline-flex;align-items:center;min-height:24px;box-sizing:border-box;padding:0;margin:-3.6px 0}@media(pointer:coarse),(max-width:480px){.rd-link{min-height:44px;margin:-13.6px 0}}.rd-link:hover{color:#1d4ed8}.rd-link:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:2px}.rd-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"],
|
|
19210
19846
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
19211
19847
|
});
|
|
19212
19848
|
}
|
|
@@ -19249,11 +19885,15 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
19249
19885
|
<span class="rd-text">
|
|
19250
19886
|
@if (label()) { <span class="rd-label" [id]="_labelId()">{{ label() }}</span> }
|
|
19251
19887
|
@if (description()) { <span class="rd-description" [id]="_descriptionId">{{ description() }}</span> }
|
|
19888
|
+
@if (_linkHref(); as href) {
|
|
19889
|
+
<!-- Optional link after the description (library source 2026-11-05): a real anchor, so it is its own tab stop; clicking it follows the link and never selects the radio. -->
|
|
19890
|
+
<a class="rd-link" [attr.href]="href" [attr.target]="_linkNewTab() ? '_blank' : null" [attr.rel]="_linkNewTab() ? 'noopener noreferrer' : null" [attr.data-testid]="linkTestId() || null">{{ linkLabel() }}@if (_linkNewTab()) { <span class="rd-sr">(opens in a new tab)</span> }</a>
|
|
19891
|
+
}
|
|
19252
19892
|
<ng-content />
|
|
19253
19893
|
</span>
|
|
19254
19894
|
</label>
|
|
19255
19895
|
`,
|
|
19256
|
-
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"]
|
|
19896
|
+
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}.rd-link{font-size:.75rem;line-height:1.4;color:#2563eb;text-decoration:underline;align-self:flex-start;cursor:pointer;display:inline-flex;align-items:center;min-height:24px;box-sizing:border-box;padding:0;margin:-3.6px 0}@media(pointer:coarse),(max-width:480px){.rd-link{min-height:44px;margin:-13.6px 0}}.rd-link:hover{color:#1d4ed8}.rd-link:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:2px}.rd-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"]
|
|
19257
19897
|
}]
|
|
19258
19898
|
}],
|
|
19259
19899
|
propDecorators: {
|
|
@@ -19273,6 +19913,30 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
19273
19913
|
required: false
|
|
19274
19914
|
}]
|
|
19275
19915
|
}],
|
|
19916
|
+
linkLabel: [{
|
|
19917
|
+
type: i0.Input,
|
|
19918
|
+
args: [{
|
|
19919
|
+
isSignal: true,
|
|
19920
|
+
alias: "linkLabel",
|
|
19921
|
+
required: false
|
|
19922
|
+
}]
|
|
19923
|
+
}],
|
|
19924
|
+
linkUrl: [{
|
|
19925
|
+
type: i0.Input,
|
|
19926
|
+
args: [{
|
|
19927
|
+
isSignal: true,
|
|
19928
|
+
alias: "linkUrl",
|
|
19929
|
+
required: false
|
|
19930
|
+
}]
|
|
19931
|
+
}],
|
|
19932
|
+
linkTestId: [{
|
|
19933
|
+
type: i0.Input,
|
|
19934
|
+
args: [{
|
|
19935
|
+
isSignal: true,
|
|
19936
|
+
alias: "linkTestId",
|
|
19937
|
+
required: false
|
|
19938
|
+
}]
|
|
19939
|
+
}],
|
|
19276
19940
|
icon: [{
|
|
19277
19941
|
type: i0.Input,
|
|
19278
19942
|
args: [{
|
|
@@ -19642,6 +20306,9 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
19642
20306
|
[label]="opt.label"
|
|
19643
20307
|
[description]="opt.description ?? ''"
|
|
19644
20308
|
[icon]="opt.icon ?? ''"
|
|
20309
|
+
[linkLabel]="opt.descriptionLink?.label ?? ''"
|
|
20310
|
+
[linkUrl]="opt.descriptionLink?.url ?? ''"
|
|
20311
|
+
[linkTestId]="opt.descriptionLink?.testId ?? ''"
|
|
19645
20312
|
[checked]="_value() === opt.value"
|
|
19646
20313
|
[disabled]="disabled() || !!opt.disabled"
|
|
19647
20314
|
[invalid]="!!_activeError()"
|
|
@@ -19671,6 +20338,9 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
19671
20338
|
inputs: [
|
|
19672
20339
|
"label",
|
|
19673
20340
|
"description",
|
|
20341
|
+
"linkLabel",
|
|
20342
|
+
"linkUrl",
|
|
20343
|
+
"linkTestId",
|
|
19674
20344
|
"icon",
|
|
19675
20345
|
"ariaLabel",
|
|
19676
20346
|
"testId",
|
|
@@ -19751,6 +20421,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
19751
20421
|
[label]="opt.label"
|
|
19752
20422
|
[description]="opt.description ?? ''"
|
|
19753
20423
|
[icon]="opt.icon ?? ''"
|
|
20424
|
+
[linkLabel]="opt.descriptionLink?.label ?? ''"
|
|
20425
|
+
[linkUrl]="opt.descriptionLink?.url ?? ''"
|
|
20426
|
+
[linkTestId]="opt.descriptionLink?.testId ?? ''"
|
|
19754
20427
|
[checked]="_value() === opt.value"
|
|
19755
20428
|
[disabled]="disabled() || !!opt.disabled"
|
|
19756
20429
|
[invalid]="!!_activeError()"
|
|
@@ -22125,6 +22798,7 @@ var ContactPickerComponent = class ContactPickerComponent {
|
|
|
22125
22798
|
"legend",
|
|
22126
22799
|
"orientation",
|
|
22127
22800
|
"values",
|
|
22801
|
+
"labelLinks",
|
|
22128
22802
|
"description",
|
|
22129
22803
|
"indent",
|
|
22130
22804
|
"required",
|
|
@@ -22464,6 +23138,8 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
22464
23138
|
this.invalid = computed(() => !!this.error() || !!this._issue(), ...ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []);
|
|
22465
23139
|
this.errorMessage = computed(() => this._issue()?.message ?? "", ...ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []);
|
|
22466
23140
|
this.invalidChange = output();
|
|
23141
|
+
this.focused = output();
|
|
23142
|
+
this.blurred = output();
|
|
22467
23143
|
this._activeError = computed(() => this.error() || (this._reveal.revealed() ? this.errorMessage() : ""), ...ngDevMode ? [{ debugName: "_activeError" }] : /* istanbul ignore next */ []);
|
|
22468
23144
|
this._onValidatorChange = () => {};
|
|
22469
23145
|
this._inputId = `ta-${Math.random().toString(36).slice(2, 8)}`;
|
|
@@ -22553,9 +23229,13 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
22553
23229
|
this._value.set(val);
|
|
22554
23230
|
this._onChange(val);
|
|
22555
23231
|
}
|
|
23232
|
+
onFocus() {
|
|
23233
|
+
this.focused.emit();
|
|
23234
|
+
}
|
|
22556
23235
|
onBlur() {
|
|
22557
23236
|
this._onTouched();
|
|
22558
23237
|
this._reveal.touched.set(true);
|
|
23238
|
+
this.blurred.emit();
|
|
22559
23239
|
}
|
|
22560
23240
|
_check(value) {
|
|
22561
23241
|
if (this.disabled() || this.readonly()) return null;
|
|
@@ -22680,7 +23360,11 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
22680
23360
|
transformFunction: null
|
|
22681
23361
|
}
|
|
22682
23362
|
},
|
|
22683
|
-
outputs: {
|
|
23363
|
+
outputs: {
|
|
23364
|
+
invalidChange: "invalidChange",
|
|
23365
|
+
focused: "focused",
|
|
23366
|
+
blurred: "blurred"
|
|
23367
|
+
},
|
|
22684
23368
|
providers: [
|
|
22685
23369
|
{
|
|
22686
23370
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -22733,6 +23417,7 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
22733
23417
|
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
22734
23418
|
[attr.aria-describedby]="_describedBy()"
|
|
22735
23419
|
(input)="onInput($event)"
|
|
23420
|
+
(focus)="onFocus()"
|
|
22736
23421
|
(blur)="onBlur()"
|
|
22737
23422
|
></textarea>
|
|
22738
23423
|
@if (!_activeError() && _unlabelledHint()) {
|
|
@@ -22810,6 +23495,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
22810
23495
|
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
22811
23496
|
[attr.aria-describedby]="_describedBy()"
|
|
22812
23497
|
(input)="onInput($event)"
|
|
23498
|
+
(focus)="onFocus()"
|
|
22813
23499
|
(blur)="onBlur()"
|
|
22814
23500
|
></textarea>
|
|
22815
23501
|
@if (!_activeError() && _unlabelledHint()) {
|
|
@@ -22940,6 +23626,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
22940
23626
|
invalidChange: [{
|
|
22941
23627
|
type: i0.Output,
|
|
22942
23628
|
args: ["invalidChange"]
|
|
23629
|
+
}],
|
|
23630
|
+
focused: [{
|
|
23631
|
+
type: i0.Output,
|
|
23632
|
+
args: ["focused"]
|
|
23633
|
+
}],
|
|
23634
|
+
blurred: [{
|
|
23635
|
+
type: i0.Output,
|
|
23636
|
+
args: ["blurred"]
|
|
22943
23637
|
}]
|
|
22944
23638
|
}
|
|
22945
23639
|
});
|
|
@@ -23217,7 +23911,11 @@ var BulkMessagePanelComponent = class BulkMessagePanelComponent {
|
|
|
23217
23911
|
"showErrors",
|
|
23218
23912
|
"disabled"
|
|
23219
23913
|
],
|
|
23220
|
-
outputs: [
|
|
23914
|
+
outputs: [
|
|
23915
|
+
"invalidChange",
|
|
23916
|
+
"focused",
|
|
23917
|
+
"blurred"
|
|
23918
|
+
]
|
|
23221
23919
|
}
|
|
23222
23920
|
],
|
|
23223
23921
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
@@ -23779,6 +24477,7 @@ var BankAccountFormComponent = class BankAccountFormComponent {
|
|
|
23779
24477
|
"legend",
|
|
23780
24478
|
"orientation",
|
|
23781
24479
|
"values",
|
|
24480
|
+
"labelLinks",
|
|
23782
24481
|
"description",
|
|
23783
24482
|
"indent",
|
|
23784
24483
|
"required",
|
|
@@ -28462,6 +29161,7 @@ var MultiSelectComponent = class MultiSelectComponent {
|
|
|
28462
29161
|
"legend",
|
|
28463
29162
|
"orientation",
|
|
28464
29163
|
"values",
|
|
29164
|
+
"labelLinks",
|
|
28465
29165
|
"description",
|
|
28466
29166
|
"indent",
|
|
28467
29167
|
"required",
|
|
@@ -28799,6 +29499,7 @@ var DiscountSelectorComponent = class DiscountSelectorComponent {
|
|
|
28799
29499
|
"legend",
|
|
28800
29500
|
"orientation",
|
|
28801
29501
|
"values",
|
|
29502
|
+
"labelLinks",
|
|
28802
29503
|
"description",
|
|
28803
29504
|
"indent",
|
|
28804
29505
|
"required",
|
|
@@ -30046,7 +30747,7 @@ var ListItemComponent = class ListItemComponent {
|
|
|
30046
30747
|
}
|
|
30047
30748
|
onRowClick(e) {
|
|
30048
30749
|
if (!this.pressable() || this.disabled() || this.busy()) return;
|
|
30049
|
-
if (e.target.closest("[list-item-action], [li-action]")) return;
|
|
30750
|
+
if (e.target.closest("[list-item-action], [li-action], [list-item-end]")) return;
|
|
30050
30751
|
this.select.emit();
|
|
30051
30752
|
}
|
|
30052
30753
|
onRowKey(e) {
|
|
@@ -30281,6 +30982,9 @@ var ListItemComponent = class ListItemComponent {
|
|
|
30281
30982
|
</label>
|
|
30282
30983
|
}
|
|
30283
30984
|
|
|
30985
|
+
<!-- Row-end content slot (library source 2026-11-05): a rating, a badge... after the text. Outside the label, so it never selects the row. -->
|
|
30986
|
+
<ng-content select="[list-item-end]" />
|
|
30987
|
+
|
|
30284
30988
|
@if (busy()) {
|
|
30285
30989
|
<span class="li-spinner" aria-hidden="true"></span>
|
|
30286
30990
|
}
|
|
@@ -30289,7 +30993,7 @@ var ListItemComponent = class ListItemComponent {
|
|
|
30289
30993
|
</div>
|
|
30290
30994
|
`,
|
|
30291
30995
|
isInline: true,
|
|
30292
|
-
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-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:#f1f5f9;border-radius:4px;padding:1px 4px}.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"],
|
|
30996
|
+
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-end]{flex:0 0 auto;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-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:#f1f5f9;border-radius:4px;padding:1px 4px}.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"],
|
|
30293
30997
|
dependencies: [{
|
|
30294
30998
|
kind: "component",
|
|
30295
30999
|
type: BadgeComponent,
|
|
@@ -30409,6 +31113,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
30409
31113
|
</label>
|
|
30410
31114
|
}
|
|
30411
31115
|
|
|
31116
|
+
<!-- Row-end content slot (library source 2026-11-05): a rating, a badge... after the text. Outside the label, so it never selects the row. -->
|
|
31117
|
+
<ng-content select="[list-item-end]" />
|
|
31118
|
+
|
|
30412
31119
|
@if (busy()) {
|
|
30413
31120
|
<span class="li-spinner" aria-hidden="true"></span>
|
|
30414
31121
|
}
|
|
@@ -30416,7 +31123,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
30416
31123
|
|
|
30417
31124
|
</div>
|
|
30418
31125
|
`,
|
|
30419
|
-
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-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:#f1f5f9;border-radius:4px;padding:1px 4px}.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"]
|
|
31126
|
+
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-end]{flex:0 0 auto;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-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:#f1f5f9;border-radius:4px;padding:1px 4px}.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"]
|
|
30420
31127
|
}]
|
|
30421
31128
|
}],
|
|
30422
31129
|
propDecorators: {
|
|
@@ -31571,7 +32278,11 @@ var NotesComponent = class NotesComponent {
|
|
|
31571
32278
|
"showErrors",
|
|
31572
32279
|
"disabled"
|
|
31573
32280
|
],
|
|
31574
|
-
outputs: [
|
|
32281
|
+
outputs: [
|
|
32282
|
+
"invalidChange",
|
|
32283
|
+
"focused",
|
|
32284
|
+
"blurred"
|
|
32285
|
+
]
|
|
31575
32286
|
},
|
|
31576
32287
|
{
|
|
31577
32288
|
kind: "component",
|
|
@@ -42215,6 +42926,9 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
42215
42926
|
inputs: [
|
|
42216
42927
|
"label",
|
|
42217
42928
|
"description",
|
|
42929
|
+
"linkLabel",
|
|
42930
|
+
"linkUrl",
|
|
42931
|
+
"linkTestId",
|
|
42218
42932
|
"icon",
|
|
42219
42933
|
"ariaLabel",
|
|
42220
42934
|
"testId",
|
|
@@ -54220,6 +54934,7 @@ var EmailTemplateEditorComponent = class EmailTemplateEditorComponent {
|
|
|
54220
54934
|
"legend",
|
|
54221
54935
|
"orientation",
|
|
54222
54936
|
"values",
|
|
54937
|
+
"labelLinks",
|
|
54223
54938
|
"description",
|
|
54224
54939
|
"indent",
|
|
54225
54940
|
"required",
|
|
@@ -57982,7 +58697,11 @@ var ConversationsComponent = class ConversationsComponent {
|
|
|
57982
58697
|
"showErrors",
|
|
57983
58698
|
"disabled"
|
|
57984
58699
|
],
|
|
57985
|
-
outputs: [
|
|
58700
|
+
outputs: [
|
|
58701
|
+
"invalidChange",
|
|
58702
|
+
"focused",
|
|
58703
|
+
"blurred"
|
|
58704
|
+
]
|
|
57986
58705
|
},
|
|
57987
58706
|
{
|
|
57988
58707
|
kind: "directive",
|
|
@@ -60762,6 +61481,7 @@ var PaymentSidePanelComponent = class PaymentSidePanelComponent {
|
|
|
60762
61481
|
"legend",
|
|
60763
61482
|
"orientation",
|
|
60764
61483
|
"values",
|
|
61484
|
+
"labelLinks",
|
|
60765
61485
|
"description",
|
|
60766
61486
|
"indent",
|
|
60767
61487
|
"required",
|
|
@@ -60958,7 +61678,11 @@ var PaymentSidePanelComponent = class PaymentSidePanelComponent {
|
|
|
60958
61678
|
"showErrors",
|
|
60959
61679
|
"disabled"
|
|
60960
61680
|
],
|
|
60961
|
-
outputs: [
|
|
61681
|
+
outputs: [
|
|
61682
|
+
"invalidChange",
|
|
61683
|
+
"focused",
|
|
61684
|
+
"blurred"
|
|
61685
|
+
]
|
|
60962
61686
|
}
|
|
60963
61687
|
],
|
|
60964
61688
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
@@ -61407,6 +62131,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
61407
62131
|
}]
|
|
61408
62132
|
}
|
|
61409
62133
|
});
|
|
61410
|
-
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, CopyFieldComponent, 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, IconPickerComponent, 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, StackedBarComponent, StarComponent, StepperComponent, SwatchPickerComponent, 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, pillTabDescriptionId, pillTabId, pillTabPanelId, pillTabTitleId, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours, serializedTextLength, setupIntegrations, splitIntro, terminalTimeoutText, terminalVerdict, todayInTimezone, truncateConversationText, xShareUrl };
|
|
62134
|
+
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, CopyFieldComponent, 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, IconPickerComponent, 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, StackedBarComponent, StarComponent, StarRatingComponent, StepperComponent, SwatchPickerComponent, 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, pillTabDescriptionId, pillTabId, pillTabPanelId, pillTabTitleId, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours, serializedTextLength, setupIntegrations, splitIntro, terminalTimeoutText, terminalVerdict, todayInTimezone, truncateConversationText, xShareUrl };
|
|
61411
62135
|
|
|
61412
62136
|
//# sourceMappingURL=forgeroute-ui.mjs.map
|