@forgeroute/ui 0.4.74 → 0.4.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/forgeroute-ui.mjs +971 -38
- package/fesm2022/forgeroute-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/forgeroute-ui.d.ts +389 -30
|
@@ -4703,6 +4703,8 @@ const EXTRA_ICONS = {
|
|
|
4703
4703
|
"refresh": "M23 4v6h-6 M1 20v-6h6 M3.51 9a9 9 0 0 1 14.85-3.36L23 10 M1 14l4.64 4.36A9 9 0 0 0 20.49 15",
|
|
4704
4704
|
"search": "M11 3a8 8 0 1 0 0 16 8 8 0 0 0 0-16z M21 21l-4.35-4.35",
|
|
4705
4705
|
"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
|
+
"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
|
+
"dollar": "M12 1v22 M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",
|
|
4706
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"
|
|
4707
4709
|
};
|
|
4708
4710
|
const ICON_NAMES = Object.freeze(Object.keys(EXTRA_ICONS));
|
|
@@ -5130,6 +5132,52 @@ var TextInputComponent = class TextInputComponent {
|
|
|
5130
5132
|
focus(options) {
|
|
5131
5133
|
this._fieldEl()?.nativeElement.focus(options);
|
|
5132
5134
|
}
|
|
5135
|
+
getSelection() {
|
|
5136
|
+
const el = this._fieldEl()?.nativeElement;
|
|
5137
|
+
if (!el) return null;
|
|
5138
|
+
try {
|
|
5139
|
+
if (el.selectionStart === null || el.selectionEnd === null) return null;
|
|
5140
|
+
return {
|
|
5141
|
+
start: el.selectionStart,
|
|
5142
|
+
end: el.selectionEnd
|
|
5143
|
+
};
|
|
5144
|
+
} catch {
|
|
5145
|
+
return null;
|
|
5146
|
+
}
|
|
5147
|
+
}
|
|
5148
|
+
setSelection(start, end = start) {
|
|
5149
|
+
const el = this._fieldEl()?.nativeElement;
|
|
5150
|
+
if (!el) return;
|
|
5151
|
+
const max = el.value.length;
|
|
5152
|
+
const from = Math.min(Math.max(0, start), max);
|
|
5153
|
+
const to = Math.min(Math.max(from, end), max);
|
|
5154
|
+
try {
|
|
5155
|
+
el.setSelectionRange(from, to);
|
|
5156
|
+
} catch {}
|
|
5157
|
+
}
|
|
5158
|
+
insertAtCaret(text) {
|
|
5159
|
+
const el = this._fieldEl()?.nativeElement;
|
|
5160
|
+
if (!el || el.disabled || el.readOnly || !text) return;
|
|
5161
|
+
const value = el.value;
|
|
5162
|
+
let from = value.length;
|
|
5163
|
+
let to = value.length;
|
|
5164
|
+
try {
|
|
5165
|
+
if (el.selectionStart !== null && el.selectionEnd !== null) {
|
|
5166
|
+
from = el.selectionStart;
|
|
5167
|
+
to = el.selectionEnd;
|
|
5168
|
+
}
|
|
5169
|
+
} catch {}
|
|
5170
|
+
const max = this.maxlength();
|
|
5171
|
+
const room = max === void 0 ? text.length : max - (value.length - (to - from));
|
|
5172
|
+
const insert = text.slice(0, Math.max(0, room));
|
|
5173
|
+
if (!insert) return;
|
|
5174
|
+
el.value = value.slice(0, from) + insert + value.slice(to);
|
|
5175
|
+
const caret = from + insert.length;
|
|
5176
|
+
try {
|
|
5177
|
+
el.setSelectionRange(caret, caret);
|
|
5178
|
+
} catch {}
|
|
5179
|
+
el.dispatchEvent(new Event("input", { bubbles: true }));
|
|
5180
|
+
}
|
|
5133
5181
|
constructor() {
|
|
5134
5182
|
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
5135
5183
|
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
@@ -7339,7 +7387,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
7339
7387
|
}]
|
|
7340
7388
|
}
|
|
7341
7389
|
});
|
|
7342
|
-
const MIN_VISIBLE_PERCENT = 2;
|
|
7390
|
+
const MIN_VISIBLE_PERCENT$1 = 2;
|
|
7343
7391
|
var ProgressBarComponent = class ProgressBarComponent {
|
|
7344
7392
|
constructor() {
|
|
7345
7393
|
this.value = input(0, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
@@ -7361,7 +7409,7 @@ var ProgressBarComponent = class ProgressBarComponent {
|
|
|
7361
7409
|
}, ...ngDevMode ? [{ debugName: "clampedValue" }] : /* istanbul ignore next */ []);
|
|
7362
7410
|
this.percent = computed(() => {
|
|
7363
7411
|
if (this.safeMax() <= 0 || this.clampedValue() <= 0) return 0;
|
|
7364
|
-
return Math.max(Math.round(this.clampedValue() / this.safeMax() * 100), MIN_VISIBLE_PERCENT);
|
|
7412
|
+
return Math.max(Math.round(this.clampedValue() / this.safeMax() * 100), MIN_VISIBLE_PERCENT$1);
|
|
7365
7413
|
}, ...ngDevMode ? [{ debugName: "percent" }] : /* istanbul ignore next */ []);
|
|
7366
7414
|
this.effectiveVariant = computed(() => {
|
|
7367
7415
|
const fixed = this.variant();
|
|
@@ -8111,12 +8159,15 @@ var ToastService = class ToastService {
|
|
|
8111
8159
|
info(msg, durationOrOptions = 3e3) {
|
|
8112
8160
|
this._enter("info", msg, 3e3, durationOrOptions);
|
|
8113
8161
|
}
|
|
8162
|
+
warning(msg, durationOrOptions = 4e3) {
|
|
8163
|
+
this._enter("warning", msg, 4e3, durationOrOptions);
|
|
8164
|
+
}
|
|
8114
8165
|
error(msg, durationOrOptions = 4e3) {
|
|
8115
8166
|
this._enter("error", msg, 4e3, durationOrOptions);
|
|
8116
8167
|
}
|
|
8117
8168
|
notify(msg, options = {}) {
|
|
8118
8169
|
const type = options.type ?? "success";
|
|
8119
|
-
this._enter(type, msg, type === "error" ? 4e3 : 3e3, options);
|
|
8170
|
+
this._enter(type, msg, type === "error" || type === "warning" ? 4e3 : 3e3, options);
|
|
8120
8171
|
}
|
|
8121
8172
|
dismiss() {
|
|
8122
8173
|
this._finish();
|
|
@@ -8492,6 +8543,7 @@ var ToastComponent = class ToastComponent {
|
|
|
8492
8543
|
[class.t-rich]="isRich()"
|
|
8493
8544
|
[class.t-error]="toast.type() === 'error'"
|
|
8494
8545
|
[class.t-info]="toast.type() === 'info'"
|
|
8546
|
+
[class.t-warning]="toast.type() === 'warning'"
|
|
8495
8547
|
[class.t-adopted]="adopted()"
|
|
8496
8548
|
[attr.role]="adopted() || persistent() ? null : (toast.type() === 'error' ? 'alert' : 'status')"
|
|
8497
8549
|
[attr.aria-live]="adopted() || persistent() ? null : (toast.type() === 'error' ? 'assertive' : 'polite')"
|
|
@@ -8502,6 +8554,10 @@ var ToastComponent = class ToastComponent {
|
|
|
8502
8554
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
8503
8555
|
<circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/>
|
|
8504
8556
|
</svg>
|
|
8557
|
+
} @else if (toast.type() === 'warning') {
|
|
8558
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
8559
|
+
<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/>
|
|
8560
|
+
</svg>
|
|
8505
8561
|
} @else if (toast.type() === 'info') {
|
|
8506
8562
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
8507
8563
|
<circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/>
|
|
@@ -8551,7 +8607,7 @@ var ToastComponent = class ToastComponent {
|
|
|
8551
8607
|
</ng-template>
|
|
8552
8608
|
`,
|
|
8553
8609
|
isInline: true,
|
|
8554
|
-
styles: [".t-live{position:absolute;width:0;height:0;margin:0;padding:0;overflow:visible}.t-toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);background:#047857;color:#fff;padding:11px 20px;border-radius:12px;font-size:.875rem;font-weight:500;z-index:9999;box-shadow:0 4px 16px #0000002e;animation:t-in .28s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));overflow-wrap:anywhere;word-break:break-word}.t-error{background:#dc2626}.t-info{background:#2563eb}.t-adopted{animation:none}.t-text{min-width:0}.t-close{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:-4px -10px -4px 0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.t-close:after{content:\"\";position:absolute;inset:-8px}.t-close:hover{background:#fff3}.t-close:focus-visible{outline:2px solid #fff;outline-offset:1px}.t-rich{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;column-gap:8px;row-gap:10px;min-width:min(320px,calc(100vw - 32px))}.t-rich>svg:first-child{margin-top:2px}.t-content{display:flex;flex-direction:column;gap:2px;min-width:0}.t-title{font-weight:700}.t-queue{grid-column:1 / -1;justify-self:end;font-size:.75rem;font-weight:600;padding:1px 8px;border-radius:999px;background:#ffffff38}.t-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.t-action{min-height:32px;padding:6px 14px;border-radius:8px;font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;color:#fff;background:#ffffff2e;border:1px solid rgba(255,255,255,.6)}.t-action:hover:not(:disabled){background:#ffffff4d}.t-action:focus-visible{outline:2px solid #fff;outline-offset:2px}.t-action:disabled{opacity:.5;cursor:not-allowed}.t-action-primary{background:#fff;color:#0f172a;border-color:#fff}.t-action-primary:hover:not(:disabled){background:#f1f5f9}.t-action-danger{background:#7f1d1d;border-color:#ffffffb3}.t-action-danger:hover:not(:disabled){background:#991b1b}.t-countdown{grid-column:1 / -1;display:flex;flex-direction:column;gap:4px}.t-countdown-bar{height:4px;border-radius:2px;background:#ffffff47;overflow:hidden}.t-countdown-fill{height:100%;background:#fff;transition:width .2s linear}.t-countdown-label{font-size:.75rem;opacity:.85;font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.t-countdown-fill{transition:none}}@media(pointer:coarse),(max-width:480px){.t-action{min-height:44px}}@keyframes t-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(prefers-reduced-motion:reduce){.t-toast{animation:none}}@media(max-width:480px){.t-toast{bottom:max(16px,env(safe-area-inset-bottom,16px));font-size:.8125rem;padding:10px 16px}}\n"],
|
|
8610
|
+
styles: [".t-live{position:absolute;width:0;height:0;margin:0;padding:0;overflow:visible}.t-toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);background:#047857;color:#fff;padding:11px 20px;border-radius:12px;font-size:.875rem;font-weight:500;z-index:9999;box-shadow:0 4px 16px #0000002e;animation:t-in .28s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));overflow-wrap:anywhere;word-break:break-word}.t-error{background:#dc2626}.t-info{background:#2563eb}.t-warning{background:#b45309}.t-adopted{animation:none}.t-text{min-width:0}.t-close{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:-4px -10px -4px 0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.t-close:after{content:\"\";position:absolute;inset:-8px}.t-close:hover{background:#fff3}.t-close:focus-visible{outline:2px solid #fff;outline-offset:1px}.t-rich{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;column-gap:8px;row-gap:10px;min-width:min(320px,calc(100vw - 32px))}.t-rich>svg:first-child{margin-top:2px}.t-content{display:flex;flex-direction:column;gap:2px;min-width:0}.t-title{font-weight:700}.t-queue{grid-column:1 / -1;justify-self:end;font-size:.75rem;font-weight:600;padding:1px 8px;border-radius:999px;background:#ffffff38}.t-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.t-action{min-height:32px;padding:6px 14px;border-radius:8px;font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;color:#fff;background:#ffffff2e;border:1px solid rgba(255,255,255,.6)}.t-action:hover:not(:disabled){background:#ffffff4d}.t-action:focus-visible{outline:2px solid #fff;outline-offset:2px}.t-action:disabled{opacity:.5;cursor:not-allowed}.t-action-primary{background:#fff;color:#0f172a;border-color:#fff}.t-action-primary:hover:not(:disabled){background:#f1f5f9}.t-action-danger{background:#7f1d1d;border-color:#ffffffb3}.t-action-danger:hover:not(:disabled){background:#991b1b}.t-countdown{grid-column:1 / -1;display:flex;flex-direction:column;gap:4px}.t-countdown-bar{height:4px;border-radius:2px;background:#ffffff47;overflow:hidden}.t-countdown-fill{height:100%;background:#fff;transition:width .2s linear}.t-countdown-label{font-size:.75rem;opacity:.85;font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.t-countdown-fill{transition:none}}@media(pointer:coarse),(max-width:480px){.t-action{min-height:44px}}@keyframes t-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(prefers-reduced-motion:reduce){.t-toast{animation:none}}@media(max-width:480px){.t-toast{bottom:max(16px,env(safe-area-inset-bottom,16px));font-size:.8125rem;padding:10px 16px}}\n"],
|
|
8555
8611
|
dependencies: [{
|
|
8556
8612
|
kind: "directive",
|
|
8557
8613
|
type: NgTemplateOutlet,
|
|
@@ -8598,6 +8654,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
8598
8654
|
[class.t-rich]="isRich()"
|
|
8599
8655
|
[class.t-error]="toast.type() === 'error'"
|
|
8600
8656
|
[class.t-info]="toast.type() === 'info'"
|
|
8657
|
+
[class.t-warning]="toast.type() === 'warning'"
|
|
8601
8658
|
[class.t-adopted]="adopted()"
|
|
8602
8659
|
[attr.role]="adopted() || persistent() ? null : (toast.type() === 'error' ? 'alert' : 'status')"
|
|
8603
8660
|
[attr.aria-live]="adopted() || persistent() ? null : (toast.type() === 'error' ? 'assertive' : 'polite')"
|
|
@@ -8608,6 +8665,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
8608
8665
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
8609
8666
|
<circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/>
|
|
8610
8667
|
</svg>
|
|
8668
|
+
} @else if (toast.type() === 'warning') {
|
|
8669
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
8670
|
+
<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/>
|
|
8671
|
+
</svg>
|
|
8611
8672
|
} @else if (toast.type() === 'info') {
|
|
8612
8673
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
8613
8674
|
<circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/>
|
|
@@ -8656,7 +8717,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
8656
8717
|
}
|
|
8657
8718
|
</ng-template>
|
|
8658
8719
|
`,
|
|
8659
|
-
styles: [".t-live{position:absolute;width:0;height:0;margin:0;padding:0;overflow:visible}.t-toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);background:#047857;color:#fff;padding:11px 20px;border-radius:12px;font-size:.875rem;font-weight:500;z-index:9999;box-shadow:0 4px 16px #0000002e;animation:t-in .28s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));overflow-wrap:anywhere;word-break:break-word}.t-error{background:#dc2626}.t-info{background:#2563eb}.t-adopted{animation:none}.t-text{min-width:0}.t-close{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:-4px -10px -4px 0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.t-close:after{content:\"\";position:absolute;inset:-8px}.t-close:hover{background:#fff3}.t-close:focus-visible{outline:2px solid #fff;outline-offset:1px}.t-rich{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;column-gap:8px;row-gap:10px;min-width:min(320px,calc(100vw - 32px))}.t-rich>svg:first-child{margin-top:2px}.t-content{display:flex;flex-direction:column;gap:2px;min-width:0}.t-title{font-weight:700}.t-queue{grid-column:1 / -1;justify-self:end;font-size:.75rem;font-weight:600;padding:1px 8px;border-radius:999px;background:#ffffff38}.t-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.t-action{min-height:32px;padding:6px 14px;border-radius:8px;font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;color:#fff;background:#ffffff2e;border:1px solid rgba(255,255,255,.6)}.t-action:hover:not(:disabled){background:#ffffff4d}.t-action:focus-visible{outline:2px solid #fff;outline-offset:2px}.t-action:disabled{opacity:.5;cursor:not-allowed}.t-action-primary{background:#fff;color:#0f172a;border-color:#fff}.t-action-primary:hover:not(:disabled){background:#f1f5f9}.t-action-danger{background:#7f1d1d;border-color:#ffffffb3}.t-action-danger:hover:not(:disabled){background:#991b1b}.t-countdown{grid-column:1 / -1;display:flex;flex-direction:column;gap:4px}.t-countdown-bar{height:4px;border-radius:2px;background:#ffffff47;overflow:hidden}.t-countdown-fill{height:100%;background:#fff;transition:width .2s linear}.t-countdown-label{font-size:.75rem;opacity:.85;font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.t-countdown-fill{transition:none}}@media(pointer:coarse),(max-width:480px){.t-action{min-height:44px}}@keyframes t-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(prefers-reduced-motion:reduce){.t-toast{animation:none}}@media(max-width:480px){.t-toast{bottom:max(16px,env(safe-area-inset-bottom,16px));font-size:.8125rem;padding:10px 16px}}\n"]
|
|
8720
|
+
styles: [".t-live{position:absolute;width:0;height:0;margin:0;padding:0;overflow:visible}.t-toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);background:#047857;color:#fff;padding:11px 20px;border-radius:12px;font-size:.875rem;font-weight:500;z-index:9999;box-shadow:0 4px 16px #0000002e;animation:t-in .28s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));overflow-wrap:anywhere;word-break:break-word}.t-error{background:#dc2626}.t-info{background:#2563eb}.t-warning{background:#b45309}.t-adopted{animation:none}.t-text{min-width:0}.t-close{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:-4px -10px -4px 0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.t-close:after{content:\"\";position:absolute;inset:-8px}.t-close:hover{background:#fff3}.t-close:focus-visible{outline:2px solid #fff;outline-offset:1px}.t-rich{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;column-gap:8px;row-gap:10px;min-width:min(320px,calc(100vw - 32px))}.t-rich>svg:first-child{margin-top:2px}.t-content{display:flex;flex-direction:column;gap:2px;min-width:0}.t-title{font-weight:700}.t-queue{grid-column:1 / -1;justify-self:end;font-size:.75rem;font-weight:600;padding:1px 8px;border-radius:999px;background:#ffffff38}.t-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.t-action{min-height:32px;padding:6px 14px;border-radius:8px;font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;color:#fff;background:#ffffff2e;border:1px solid rgba(255,255,255,.6)}.t-action:hover:not(:disabled){background:#ffffff4d}.t-action:focus-visible{outline:2px solid #fff;outline-offset:2px}.t-action:disabled{opacity:.5;cursor:not-allowed}.t-action-primary{background:#fff;color:#0f172a;border-color:#fff}.t-action-primary:hover:not(:disabled){background:#f1f5f9}.t-action-danger{background:#7f1d1d;border-color:#ffffffb3}.t-action-danger:hover:not(:disabled){background:#991b1b}.t-countdown{grid-column:1 / -1;display:flex;flex-direction:column;gap:4px}.t-countdown-bar{height:4px;border-radius:2px;background:#ffffff47;overflow:hidden}.t-countdown-fill{height:100%;background:#fff;transition:width .2s linear}.t-countdown-label{font-size:.75rem;opacity:.85;font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.t-countdown-fill{transition:none}}@media(pointer:coarse),(max-width:480px){.t-action{min-height:44px}}@keyframes t-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(prefers-reduced-motion:reduce){.t-toast{animation:none}}@media(max-width:480px){.t-toast{bottom:max(16px,env(safe-area-inset-bottom,16px));font-size:.8125rem;padding:10px 16px}}\n"]
|
|
8660
8721
|
}]
|
|
8661
8722
|
}],
|
|
8662
8723
|
ctorParameters: () => [],
|
|
@@ -12030,6 +12091,23 @@ var DataTableComponent = class DataTableComponent {
|
|
|
12030
12091
|
});
|
|
12031
12092
|
return true;
|
|
12032
12093
|
}
|
|
12094
|
+
_totalsParams() {
|
|
12095
|
+
const { sort: _s, direction: _d, ...rest } = this._exportParams();
|
|
12096
|
+
return rest;
|
|
12097
|
+
}
|
|
12098
|
+
_fetchTotals(keepShown = false) {
|
|
12099
|
+
this._totalsSub?.unsubscribe();
|
|
12100
|
+
const ep = this.totalsEndpoint();
|
|
12101
|
+
if (!ep) {
|
|
12102
|
+
this._totals.set(null);
|
|
12103
|
+
return;
|
|
12104
|
+
}
|
|
12105
|
+
if (!keepShown) this._totals.set(null);
|
|
12106
|
+
this._totalsSub = this.http.get(`${this.config.baseUrl}${ep}`, { params: tableQueryParams(this._totalsParams()) }).pipe(takeUntilDestroyed(this.destroyRef)).subscribe({
|
|
12107
|
+
next: (totals) => this._totals.set(totals && typeof totals === "object" ? totals : null),
|
|
12108
|
+
error: () => this._totals.set(null)
|
|
12109
|
+
});
|
|
12110
|
+
}
|
|
12033
12111
|
_actionKeyLabel(key) {
|
|
12034
12112
|
const words = key.replace(/([a-z0-9])([A-Z])/g, "$1 $2").split(/[\s_-]+/).filter(Boolean).join(" ").toLowerCase();
|
|
12035
12113
|
return words.charAt(0).toUpperCase() + words.slice(1);
|
|
@@ -12092,6 +12170,9 @@ var DataTableComponent = class DataTableComponent {
|
|
|
12092
12170
|
this._selectedIds.set(current);
|
|
12093
12171
|
this.selectionChange.emit(new Set(current));
|
|
12094
12172
|
}
|
|
12173
|
+
currentQuery() {
|
|
12174
|
+
return { ...this._exportParams() };
|
|
12175
|
+
}
|
|
12095
12176
|
clearSelection() {
|
|
12096
12177
|
this._selectedIds.set(/* @__PURE__ */ new Set());
|
|
12097
12178
|
this._activeBulkType.set(null);
|
|
@@ -12547,6 +12628,8 @@ var DataTableComponent = class DataTableComponent {
|
|
|
12547
12628
|
this.tableTitle = input("", ...ngDevMode ? [{ debugName: "tableTitle" }] : /* istanbul ignore next */ []);
|
|
12548
12629
|
this._showHeader = computed(() => !!this.tableTitle() || this.showSearch() || this.showToolbar() || this._effectiveTabs().length > 0, ...ngDevMode ? [{ debugName: "_showHeader" }] : /* istanbul ignore next */ []);
|
|
12549
12630
|
this.countsEndpoint = input("", ...ngDevMode ? [{ debugName: "countsEndpoint" }] : /* istanbul ignore next */ []);
|
|
12631
|
+
this.totalsEndpoint = input("", ...ngDevMode ? [{ debugName: "totalsEndpoint" }] : /* istanbul ignore next */ []);
|
|
12632
|
+
this.totalsLabel = input("Total", ...ngDevMode ? [{ debugName: "totalsLabel" }] : /* istanbul ignore next */ []);
|
|
12550
12633
|
this.params = input(null, ...ngDevMode ? [{ debugName: "params" }] : /* istanbul ignore next */ []);
|
|
12551
12634
|
this.tableButtons = input([], ...ngDevMode ? [{ debugName: "tableButtons" }] : /* istanbul ignore next */ []);
|
|
12552
12635
|
this.filterCountsEndpoint = input("", ...ngDevMode ? [{ debugName: "filterCountsEndpoint" }] : /* istanbul ignore next */ []);
|
|
@@ -12698,6 +12781,28 @@ var DataTableComponent = class DataTableComponent {
|
|
|
12698
12781
|
equal: (a, b) => JSON.stringify(a) === JSON.stringify(b)
|
|
12699
12782
|
});
|
|
12700
12783
|
this._searchFields = computed(() => this.visibleCols().filter((c) => c.searchable).map((c) => c.key).join(","), ...ngDevMode ? [{ debugName: "_searchFields" }] : /* istanbul ignore next */ []);
|
|
12784
|
+
this._totals = signal(null, ...ngDevMode ? [{ debugName: "_totals" }] : /* istanbul ignore next */ []);
|
|
12785
|
+
this._totalsSkipNext = false;
|
|
12786
|
+
this._footerVisible = computed(() => !!this.totalsEndpoint() && this._totals() !== null && this._hasLoaded() && !this._loading() && !this._error() && this._items().length > 0, ...ngDevMode ? [{ debugName: "_footerVisible" }] : /* istanbul ignore next */ []);
|
|
12787
|
+
this._footerCells = computed(() => {
|
|
12788
|
+
const totals = this._totals();
|
|
12789
|
+
const out = {};
|
|
12790
|
+
if (!totals) return out;
|
|
12791
|
+
for (const col of this.visibleCols()) {
|
|
12792
|
+
if (col.cellType === "actions" || !col.footerFn) continue;
|
|
12793
|
+
const v = col.footerFn(totals);
|
|
12794
|
+
if (v != null && v !== "") out[col.key] = String(v);
|
|
12795
|
+
}
|
|
12796
|
+
return out;
|
|
12797
|
+
}, ...ngDevMode ? [{ debugName: "_footerCells" }] : /* istanbul ignore next */ []);
|
|
12798
|
+
this._footerPhoneLines = computed(() => {
|
|
12799
|
+
const cells = this._footerCells();
|
|
12800
|
+
return this.visibleCols().filter((c) => cells[c.key] !== void 0).map((c) => ({
|
|
12801
|
+
key: c.key,
|
|
12802
|
+
label: c.label,
|
|
12803
|
+
value: cells[c.key]
|
|
12804
|
+
}));
|
|
12805
|
+
}, ...ngDevMode ? [{ debugName: "_footerPhoneLines" }] : /* istanbul ignore next */ []);
|
|
12701
12806
|
this._exportParams = computed(() => {
|
|
12702
12807
|
const params = { ...this._extraParams() };
|
|
12703
12808
|
if (this._search()) {
|
|
@@ -12905,11 +13010,14 @@ var DataTableComponent = class DataTableComponent {
|
|
|
12905
13010
|
untracked(() => this.resetToFirstPage());
|
|
12906
13011
|
});
|
|
12907
13012
|
this.triggerLoad$.pipe(switchMap(() => {
|
|
12908
|
-
|
|
13013
|
+
const silentLoad = this._silentNext;
|
|
13014
|
+
if (!silentLoad) this._loading.set(true);
|
|
12909
13015
|
this._silentNext = false;
|
|
12910
13016
|
this._searchLoading.set(this._searchPending);
|
|
12911
13017
|
this._searchPending = false;
|
|
12912
13018
|
this._error.set(null);
|
|
13019
|
+
if (this._totalsSkipNext) this._totalsSkipNext = false;
|
|
13020
|
+
else this._fetchTotals(silentLoad);
|
|
12913
13021
|
let params = tableQueryParams(this._extraParams()).set("page", this._page() - 1).set("size", this.pageSize());
|
|
12914
13022
|
if (this._search()) {
|
|
12915
13023
|
params = params.set("search", this._searchParam());
|
|
@@ -13030,10 +13138,12 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13030
13138
|
this._sortDir.set("asc");
|
|
13031
13139
|
}
|
|
13032
13140
|
this._page.set(1);
|
|
13141
|
+
this._totalsSkipNext = true;
|
|
13033
13142
|
this.load();
|
|
13034
13143
|
}
|
|
13035
13144
|
onPageChange(p) {
|
|
13036
13145
|
this._page.set(p);
|
|
13146
|
+
this._totalsSkipNext = true;
|
|
13037
13147
|
this.load();
|
|
13038
13148
|
}
|
|
13039
13149
|
onTabChange(value) {
|
|
@@ -13214,7 +13324,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13214
13324
|
e.preventDefault();
|
|
13215
13325
|
this.rowClick.emit(item);
|
|
13216
13326
|
}
|
|
13217
|
-
onInternalButtonClick(type) {
|
|
13327
|
+
async onInternalButtonClick(type) {
|
|
13218
13328
|
if (type === "import") {
|
|
13219
13329
|
this._ieRef()?.openImport();
|
|
13220
13330
|
return;
|
|
@@ -13223,6 +13333,18 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13223
13333
|
this._ieRef()?.exportAll();
|
|
13224
13334
|
return;
|
|
13225
13335
|
}
|
|
13336
|
+
const confirm = this._effectiveButtons().find((b) => b.type === type)?.confirm;
|
|
13337
|
+
if (confirm) {
|
|
13338
|
+
const message = typeof confirm.message === "function" ? confirm.message() : confirm.message;
|
|
13339
|
+
if (!await this._confirmSvc.confirm({
|
|
13340
|
+
title: confirm.title,
|
|
13341
|
+
message,
|
|
13342
|
+
confirmLabel: confirm.confirmLabel,
|
|
13343
|
+
cancelLabel: confirm.cancelLabel,
|
|
13344
|
+
variant: confirm.variant,
|
|
13345
|
+
...confirm.details?.length ? { details: confirm.details } : {}
|
|
13346
|
+
})) return;
|
|
13347
|
+
}
|
|
13226
13348
|
this.tableButtonClick.emit(type);
|
|
13227
13349
|
}
|
|
13228
13350
|
onImported() {
|
|
@@ -13619,6 +13741,20 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13619
13741
|
isRequired: false,
|
|
13620
13742
|
transformFunction: null
|
|
13621
13743
|
},
|
|
13744
|
+
totalsEndpoint: {
|
|
13745
|
+
classPropertyName: "totalsEndpoint",
|
|
13746
|
+
publicName: "totalsEndpoint",
|
|
13747
|
+
isSignal: true,
|
|
13748
|
+
isRequired: false,
|
|
13749
|
+
transformFunction: null
|
|
13750
|
+
},
|
|
13751
|
+
totalsLabel: {
|
|
13752
|
+
classPropertyName: "totalsLabel",
|
|
13753
|
+
publicName: "totalsLabel",
|
|
13754
|
+
isSignal: true,
|
|
13755
|
+
isRequired: false,
|
|
13756
|
+
transformFunction: null
|
|
13757
|
+
},
|
|
13622
13758
|
params: {
|
|
13623
13759
|
classPropertyName: "params",
|
|
13624
13760
|
publicName: "params",
|
|
@@ -14108,6 +14244,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14108
14244
|
[label]="tags[0].name"
|
|
14109
14245
|
[variant]="tags[0].variant ?? null"
|
|
14110
14246
|
[color]="tags[0].color ?? null" />
|
|
14247
|
+
@if (tags[0].colorName) {<span class="dt-sr-only">, {{ tags[0].colorName }}</span>}
|
|
14111
14248
|
@if (tags.length > 1) {
|
|
14112
14249
|
<span
|
|
14113
14250
|
class="dt-tags-more"
|
|
@@ -14116,7 +14253,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14116
14253
|
(focus)="showTagTooltip($event, tags.slice(1))"
|
|
14117
14254
|
(blur)="hideTagTooltip()"
|
|
14118
14255
|
tabindex="0"
|
|
14119
|
-
[attr.aria-label]="tags.slice(1).map(t => t.name).join(', ')">
|
|
14256
|
+
[attr.aria-label]="tags.slice(1).map(t => t.colorName ? t.name + ' (' + t.colorName + ')' : t.name).join(', ')">
|
|
14120
14257
|
+{{ tags.length - 1 }}
|
|
14121
14258
|
</span>
|
|
14122
14259
|
}
|
|
@@ -14164,6 +14301,35 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14164
14301
|
}
|
|
14165
14302
|
}
|
|
14166
14303
|
</tbody>
|
|
14304
|
+
@if (_footerVisible()) {
|
|
14305
|
+
<tfoot data-testid="dt-footer">
|
|
14306
|
+
<tr>
|
|
14307
|
+
@if (_reorderOn()) { <td class="dt-td-grip"></td> }
|
|
14308
|
+
@if (_isSelectable()) { <td class="dt-td-cb"></td> }
|
|
14309
|
+
@for (col of visibleCols(); track col.key; let first = $first) {
|
|
14310
|
+
@if (first) {
|
|
14311
|
+
<th scope="row" class="dt-foot-label"
|
|
14312
|
+
[style.text-align]="col.align ?? (col.cellType === 'number' ? 'right' : 'left')"
|
|
14313
|
+
[style.width]="col.width ?? null"
|
|
14314
|
+
[style.min-width]="col.width ?? null"
|
|
14315
|
+
[style.max-width]="col.width ?? null">
|
|
14316
|
+
@if (_footerCells()[col.key]; as ft) {
|
|
14317
|
+
<span class="dt-sr-only">{{ totalsLabel() }}: </span>{{ ft }}
|
|
14318
|
+
} @else {
|
|
14319
|
+
{{ totalsLabel() }}
|
|
14320
|
+
}
|
|
14321
|
+
</th>
|
|
14322
|
+
} @else {
|
|
14323
|
+
<td class="dt-foot-cell"
|
|
14324
|
+
[style.text-align]="col.align ?? (col.cellType === 'number' ? 'right' : 'left')"
|
|
14325
|
+
[style.width]="col.width ?? null"
|
|
14326
|
+
[style.min-width]="col.width ?? null"
|
|
14327
|
+
[style.max-width]="col.width ?? null">{{ _footerCells()[col.key] || '' }}</td>
|
|
14328
|
+
}
|
|
14329
|
+
}
|
|
14330
|
+
</tr>
|
|
14331
|
+
</tfoot>
|
|
14332
|
+
}
|
|
14167
14333
|
</table>
|
|
14168
14334
|
</div>
|
|
14169
14335
|
}
|
|
@@ -14328,6 +14494,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14328
14494
|
<div class="dt-card-tags">
|
|
14329
14495
|
@for (tag of tagItems; track tag.name) {
|
|
14330
14496
|
<ui-badge [label]="tag.name" [variant]="tag.variant ?? 'gray'" size="sm" />
|
|
14497
|
+
@if (tag.colorName) {<span class="dt-sr-only">, {{ tag.colorName }}</span>}
|
|
14331
14498
|
}
|
|
14332
14499
|
</div>
|
|
14333
14500
|
}
|
|
@@ -14359,6 +14526,18 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14359
14526
|
}
|
|
14360
14527
|
|
|
14361
14528
|
</div>
|
|
14529
|
+
@if (_footerVisible()) {
|
|
14530
|
+
<div class="dt-card dt-card-totals" role="group" [attr.aria-label]="totalsLabel()" data-testid="dt-footer-card">
|
|
14531
|
+
<div class="dt-card-details">
|
|
14532
|
+
@for (fc of _footerPhoneLines(); track fc.key) {
|
|
14533
|
+
<div class="dt-card-detail-row">
|
|
14534
|
+
<span class="dt-card-detail-label">{{ fc.label }}</span>
|
|
14535
|
+
<span class="dt-card-detail-value">{{ fc.value }}</span>
|
|
14536
|
+
</div>
|
|
14537
|
+
}
|
|
14538
|
+
</div>
|
|
14539
|
+
</div>
|
|
14540
|
+
}
|
|
14362
14541
|
}
|
|
14363
14542
|
|
|
14364
14543
|
@if (_reorderOn()) {
|
|
@@ -14427,7 +14606,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14427
14606
|
</div>
|
|
14428
14607
|
`,
|
|
14429
14608
|
isInline: true,
|
|
14430
|
-
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions 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"],
|
|
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"],
|
|
14431
14610
|
dependencies: [
|
|
14432
14611
|
{
|
|
14433
14612
|
kind: "directive",
|
|
@@ -15203,6 +15382,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15203
15382
|
[label]="tags[0].name"
|
|
15204
15383
|
[variant]="tags[0].variant ?? null"
|
|
15205
15384
|
[color]="tags[0].color ?? null" />
|
|
15385
|
+
@if (tags[0].colorName) {<span class="dt-sr-only">, {{ tags[0].colorName }}</span>}
|
|
15206
15386
|
@if (tags.length > 1) {
|
|
15207
15387
|
<span
|
|
15208
15388
|
class="dt-tags-more"
|
|
@@ -15211,7 +15391,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15211
15391
|
(focus)="showTagTooltip($event, tags.slice(1))"
|
|
15212
15392
|
(blur)="hideTagTooltip()"
|
|
15213
15393
|
tabindex="0"
|
|
15214
|
-
[attr.aria-label]="tags.slice(1).map(t => t.name).join(', ')">
|
|
15394
|
+
[attr.aria-label]="tags.slice(1).map(t => t.colorName ? t.name + ' (' + t.colorName + ')' : t.name).join(', ')">
|
|
15215
15395
|
+{{ tags.length - 1 }}
|
|
15216
15396
|
</span>
|
|
15217
15397
|
}
|
|
@@ -15259,6 +15439,35 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15259
15439
|
}
|
|
15260
15440
|
}
|
|
15261
15441
|
</tbody>
|
|
15442
|
+
@if (_footerVisible()) {
|
|
15443
|
+
<tfoot data-testid="dt-footer">
|
|
15444
|
+
<tr>
|
|
15445
|
+
@if (_reorderOn()) { <td class="dt-td-grip"></td> }
|
|
15446
|
+
@if (_isSelectable()) { <td class="dt-td-cb"></td> }
|
|
15447
|
+
@for (col of visibleCols(); track col.key; let first = $first) {
|
|
15448
|
+
@if (first) {
|
|
15449
|
+
<th scope="row" class="dt-foot-label"
|
|
15450
|
+
[style.text-align]="col.align ?? (col.cellType === 'number' ? 'right' : 'left')"
|
|
15451
|
+
[style.width]="col.width ?? null"
|
|
15452
|
+
[style.min-width]="col.width ?? null"
|
|
15453
|
+
[style.max-width]="col.width ?? null">
|
|
15454
|
+
@if (_footerCells()[col.key]; as ft) {
|
|
15455
|
+
<span class="dt-sr-only">{{ totalsLabel() }}: </span>{{ ft }}
|
|
15456
|
+
} @else {
|
|
15457
|
+
{{ totalsLabel() }}
|
|
15458
|
+
}
|
|
15459
|
+
</th>
|
|
15460
|
+
} @else {
|
|
15461
|
+
<td class="dt-foot-cell"
|
|
15462
|
+
[style.text-align]="col.align ?? (col.cellType === 'number' ? 'right' : 'left')"
|
|
15463
|
+
[style.width]="col.width ?? null"
|
|
15464
|
+
[style.min-width]="col.width ?? null"
|
|
15465
|
+
[style.max-width]="col.width ?? null">{{ _footerCells()[col.key] || '' }}</td>
|
|
15466
|
+
}
|
|
15467
|
+
}
|
|
15468
|
+
</tr>
|
|
15469
|
+
</tfoot>
|
|
15470
|
+
}
|
|
15262
15471
|
</table>
|
|
15263
15472
|
</div>
|
|
15264
15473
|
}
|
|
@@ -15423,6 +15632,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15423
15632
|
<div class="dt-card-tags">
|
|
15424
15633
|
@for (tag of tagItems; track tag.name) {
|
|
15425
15634
|
<ui-badge [label]="tag.name" [variant]="tag.variant ?? 'gray'" size="sm" />
|
|
15635
|
+
@if (tag.colorName) {<span class="dt-sr-only">, {{ tag.colorName }}</span>}
|
|
15426
15636
|
}
|
|
15427
15637
|
</div>
|
|
15428
15638
|
}
|
|
@@ -15454,6 +15664,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15454
15664
|
}
|
|
15455
15665
|
|
|
15456
15666
|
</div>
|
|
15667
|
+
@if (_footerVisible()) {
|
|
15668
|
+
<div class="dt-card dt-card-totals" role="group" [attr.aria-label]="totalsLabel()" data-testid="dt-footer-card">
|
|
15669
|
+
<div class="dt-card-details">
|
|
15670
|
+
@for (fc of _footerPhoneLines(); track fc.key) {
|
|
15671
|
+
<div class="dt-card-detail-row">
|
|
15672
|
+
<span class="dt-card-detail-label">{{ fc.label }}</span>
|
|
15673
|
+
<span class="dt-card-detail-value">{{ fc.value }}</span>
|
|
15674
|
+
</div>
|
|
15675
|
+
}
|
|
15676
|
+
</div>
|
|
15677
|
+
</div>
|
|
15678
|
+
}
|
|
15457
15679
|
}
|
|
15458
15680
|
|
|
15459
15681
|
@if (_reorderOn()) {
|
|
@@ -15521,7 +15743,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15521
15743
|
}
|
|
15522
15744
|
</div>
|
|
15523
15745
|
`,
|
|
15524
|
-
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions 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"]
|
|
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"]
|
|
15525
15747
|
}]
|
|
15526
15748
|
}],
|
|
15527
15749
|
ctorParameters: () => [],
|
|
@@ -15670,6 +15892,22 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15670
15892
|
required: false
|
|
15671
15893
|
}]
|
|
15672
15894
|
}],
|
|
15895
|
+
totalsEndpoint: [{
|
|
15896
|
+
type: i0.Input,
|
|
15897
|
+
args: [{
|
|
15898
|
+
isSignal: true,
|
|
15899
|
+
alias: "totalsEndpoint",
|
|
15900
|
+
required: false
|
|
15901
|
+
}]
|
|
15902
|
+
}],
|
|
15903
|
+
totalsLabel: [{
|
|
15904
|
+
type: i0.Input,
|
|
15905
|
+
args: [{
|
|
15906
|
+
isSignal: true,
|
|
15907
|
+
alias: "totalsLabel",
|
|
15908
|
+
required: false
|
|
15909
|
+
}]
|
|
15910
|
+
}],
|
|
15673
15911
|
params: [{
|
|
15674
15912
|
type: i0.Input,
|
|
15675
15913
|
args: [{
|
|
@@ -16396,6 +16634,201 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
16396
16634
|
}]
|
|
16397
16635
|
}
|
|
16398
16636
|
});
|
|
16637
|
+
const MIN_VISIBLE_PERCENT = 2;
|
|
16638
|
+
const ROTATION = [
|
|
16639
|
+
"blue",
|
|
16640
|
+
"green",
|
|
16641
|
+
"amber",
|
|
16642
|
+
"orange",
|
|
16643
|
+
"red",
|
|
16644
|
+
"slate"
|
|
16645
|
+
];
|
|
16646
|
+
var StackedBarComponent = class StackedBarComponent {
|
|
16647
|
+
constructor() {
|
|
16648
|
+
this.segments = input([], ...ngDevMode ? [{ debugName: "segments" }] : /* istanbul ignore next */ []);
|
|
16649
|
+
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
16650
|
+
this.height = input(14, ...ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []);
|
|
16651
|
+
this.showLegend = input(true, ...ngDevMode ? [{ debugName: "showLegend" }] : /* istanbul ignore next */ []);
|
|
16652
|
+
this.formatValue = input((v) => v.toLocaleString("en-US"), ...ngDevMode ? [{ debugName: "formatValue" }] : /* istanbul ignore next */ []);
|
|
16653
|
+
this.rows = computed(() => {
|
|
16654
|
+
const segs = this.segments().map((s, i) => ({
|
|
16655
|
+
key: `${i}-${s.label}`,
|
|
16656
|
+
label: s.label,
|
|
16657
|
+
color: s.color ?? "",
|
|
16658
|
+
variant: s.variant ?? ROTATION[i % ROTATION.length],
|
|
16659
|
+
value: Number.isFinite(s.value) && s.value > 0 ? s.value : 0
|
|
16660
|
+
}));
|
|
16661
|
+
const total = segs.reduce((n, s) => n + s.value, 0);
|
|
16662
|
+
const format = this.formatValue();
|
|
16663
|
+
return segs.map((s) => {
|
|
16664
|
+
const exact = total > 0 ? s.value / total * 100 : 0;
|
|
16665
|
+
const percent = s.value > 0 ? Math.max(Math.round(exact), MIN_VISIBLE_PERCENT) : 0;
|
|
16666
|
+
const share = Math.round(exact);
|
|
16667
|
+
const text = `${format(s.value)} (${share}%)`;
|
|
16668
|
+
return {
|
|
16669
|
+
...s,
|
|
16670
|
+
percent,
|
|
16671
|
+
text,
|
|
16672
|
+
title: `${s.label}: ${text}`
|
|
16673
|
+
};
|
|
16674
|
+
});
|
|
16675
|
+
}, ...ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []);
|
|
16676
|
+
this.drawn = computed(() => this.rows().filter((r) => r.percent > 0), ...ngDevMode ? [{ debugName: "drawn" }] : /* istanbul ignore next */ []);
|
|
16677
|
+
}
|
|
16678
|
+
static {
|
|
16679
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
16680
|
+
minVersion: "12.0.0",
|
|
16681
|
+
version: "22.2.2",
|
|
16682
|
+
ngImport: i0,
|
|
16683
|
+
type: StackedBarComponent,
|
|
16684
|
+
deps: [],
|
|
16685
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
16686
|
+
});
|
|
16687
|
+
}
|
|
16688
|
+
static {
|
|
16689
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
16690
|
+
minVersion: "17.0.0",
|
|
16691
|
+
version: "22.2.2",
|
|
16692
|
+
type: StackedBarComponent,
|
|
16693
|
+
isStandalone: true,
|
|
16694
|
+
selector: "ui-stacked-bar",
|
|
16695
|
+
inputs: {
|
|
16696
|
+
segments: {
|
|
16697
|
+
classPropertyName: "segments",
|
|
16698
|
+
publicName: "segments",
|
|
16699
|
+
isSignal: true,
|
|
16700
|
+
isRequired: false,
|
|
16701
|
+
transformFunction: null
|
|
16702
|
+
},
|
|
16703
|
+
ariaLabel: {
|
|
16704
|
+
classPropertyName: "ariaLabel",
|
|
16705
|
+
publicName: "ariaLabel",
|
|
16706
|
+
isSignal: true,
|
|
16707
|
+
isRequired: false,
|
|
16708
|
+
transformFunction: null
|
|
16709
|
+
},
|
|
16710
|
+
height: {
|
|
16711
|
+
classPropertyName: "height",
|
|
16712
|
+
publicName: "height",
|
|
16713
|
+
isSignal: true,
|
|
16714
|
+
isRequired: false,
|
|
16715
|
+
transformFunction: null
|
|
16716
|
+
},
|
|
16717
|
+
showLegend: {
|
|
16718
|
+
classPropertyName: "showLegend",
|
|
16719
|
+
publicName: "showLegend",
|
|
16720
|
+
isSignal: true,
|
|
16721
|
+
isRequired: false,
|
|
16722
|
+
transformFunction: null
|
|
16723
|
+
},
|
|
16724
|
+
formatValue: {
|
|
16725
|
+
classPropertyName: "formatValue",
|
|
16726
|
+
publicName: "formatValue",
|
|
16727
|
+
isSignal: true,
|
|
16728
|
+
isRequired: false,
|
|
16729
|
+
transformFunction: null
|
|
16730
|
+
}
|
|
16731
|
+
},
|
|
16732
|
+
ngImport: i0,
|
|
16733
|
+
template: `
|
|
16734
|
+
<div class="sb" role="group" [attr.aria-label]="ariaLabel() || null">
|
|
16735
|
+
<div class="sb-track" aria-hidden="true" [style.height.px]="height()">
|
|
16736
|
+
@for (s of drawn(); track s.key) {
|
|
16737
|
+
<span [class]="'sb-seg sb-' + s.variant" [style.width.%]="s.percent" [style.background]="s.color || null" [attr.title]="s.title"></span>
|
|
16738
|
+
}
|
|
16739
|
+
</div>
|
|
16740
|
+
<ul class="sb-legend" role="list" [class.sb-sr]="!showLegend()">
|
|
16741
|
+
@for (s of rows(); track s.key) {
|
|
16742
|
+
<li class="sb-item">
|
|
16743
|
+
<span [class]="'sb-dot sb-' + s.variant" [style.background]="s.color || null" aria-hidden="true"></span>
|
|
16744
|
+
<span class="sb-name">{{ s.label }}</span>
|
|
16745
|
+
<span class="sb-val">{{ s.text }}</span>
|
|
16746
|
+
</li>
|
|
16747
|
+
}
|
|
16748
|
+
</ul>
|
|
16749
|
+
</div>
|
|
16750
|
+
`,
|
|
16751
|
+
isInline: true,
|
|
16752
|
+
styles: [":host{display:block}.sb{position:relative}.sb-track{display:flex;width:100%;background:#e2e8f0;border-radius:7px;overflow:hidden}.sb-seg{display:block;height:100%;min-width:0}.sb-seg+.sb-seg{border-left:1px solid #fff}.sb-blue{background:var(--ui-progress-fill, var(--ui-accent, #3b82f6))}.sb-green{background:#16a34a}.sb-amber{background:#f59e0b}.sb-orange{background:#f97316}.sb-red{background:#ef4444}.sb-slate{background:#94a3b8}.sb-legend{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}.sb-item{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;color:#334155}.sb-dot{width:10px;height:10px;border-radius:50%;flex:none}.sb-val{font-weight:600;color:#0f172a}.sb-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(forced-colors:active){.sb-track{background:Canvas;border:1px solid CanvasText}.sb-seg{background:Highlight;forced-color-adjust:none;border-left:1px solid CanvasText}}\n"],
|
|
16753
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
16754
|
+
});
|
|
16755
|
+
}
|
|
16756
|
+
};
|
|
16757
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
16758
|
+
minVersion: "12.0.0",
|
|
16759
|
+
version: "22.2.2",
|
|
16760
|
+
ngImport: i0,
|
|
16761
|
+
type: StackedBarComponent,
|
|
16762
|
+
decorators: [{
|
|
16763
|
+
type: Component,
|
|
16764
|
+
args: [{
|
|
16765
|
+
selector: "ui-stacked-bar",
|
|
16766
|
+
standalone: true,
|
|
16767
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16768
|
+
template: `
|
|
16769
|
+
<div class="sb" role="group" [attr.aria-label]="ariaLabel() || null">
|
|
16770
|
+
<div class="sb-track" aria-hidden="true" [style.height.px]="height()">
|
|
16771
|
+
@for (s of drawn(); track s.key) {
|
|
16772
|
+
<span [class]="'sb-seg sb-' + s.variant" [style.width.%]="s.percent" [style.background]="s.color || null" [attr.title]="s.title"></span>
|
|
16773
|
+
}
|
|
16774
|
+
</div>
|
|
16775
|
+
<ul class="sb-legend" role="list" [class.sb-sr]="!showLegend()">
|
|
16776
|
+
@for (s of rows(); track s.key) {
|
|
16777
|
+
<li class="sb-item">
|
|
16778
|
+
<span [class]="'sb-dot sb-' + s.variant" [style.background]="s.color || null" aria-hidden="true"></span>
|
|
16779
|
+
<span class="sb-name">{{ s.label }}</span>
|
|
16780
|
+
<span class="sb-val">{{ s.text }}</span>
|
|
16781
|
+
</li>
|
|
16782
|
+
}
|
|
16783
|
+
</ul>
|
|
16784
|
+
</div>
|
|
16785
|
+
`,
|
|
16786
|
+
styles: [":host{display:block}.sb{position:relative}.sb-track{display:flex;width:100%;background:#e2e8f0;border-radius:7px;overflow:hidden}.sb-seg{display:block;height:100%;min-width:0}.sb-seg+.sb-seg{border-left:1px solid #fff}.sb-blue{background:var(--ui-progress-fill, var(--ui-accent, #3b82f6))}.sb-green{background:#16a34a}.sb-amber{background:#f59e0b}.sb-orange{background:#f97316}.sb-red{background:#ef4444}.sb-slate{background:#94a3b8}.sb-legend{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}.sb-item{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;color:#334155}.sb-dot{width:10px;height:10px;border-radius:50%;flex:none}.sb-val{font-weight:600;color:#0f172a}.sb-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(forced-colors:active){.sb-track{background:Canvas;border:1px solid CanvasText}.sb-seg{background:Highlight;forced-color-adjust:none;border-left:1px solid CanvasText}}\n"]
|
|
16787
|
+
}]
|
|
16788
|
+
}],
|
|
16789
|
+
propDecorators: {
|
|
16790
|
+
segments: [{
|
|
16791
|
+
type: i0.Input,
|
|
16792
|
+
args: [{
|
|
16793
|
+
isSignal: true,
|
|
16794
|
+
alias: "segments",
|
|
16795
|
+
required: false
|
|
16796
|
+
}]
|
|
16797
|
+
}],
|
|
16798
|
+
ariaLabel: [{
|
|
16799
|
+
type: i0.Input,
|
|
16800
|
+
args: [{
|
|
16801
|
+
isSignal: true,
|
|
16802
|
+
alias: "ariaLabel",
|
|
16803
|
+
required: false
|
|
16804
|
+
}]
|
|
16805
|
+
}],
|
|
16806
|
+
height: [{
|
|
16807
|
+
type: i0.Input,
|
|
16808
|
+
args: [{
|
|
16809
|
+
isSignal: true,
|
|
16810
|
+
alias: "height",
|
|
16811
|
+
required: false
|
|
16812
|
+
}]
|
|
16813
|
+
}],
|
|
16814
|
+
showLegend: [{
|
|
16815
|
+
type: i0.Input,
|
|
16816
|
+
args: [{
|
|
16817
|
+
isSignal: true,
|
|
16818
|
+
alias: "showLegend",
|
|
16819
|
+
required: false
|
|
16820
|
+
}]
|
|
16821
|
+
}],
|
|
16822
|
+
formatValue: [{
|
|
16823
|
+
type: i0.Input,
|
|
16824
|
+
args: [{
|
|
16825
|
+
isSignal: true,
|
|
16826
|
+
alias: "formatValue",
|
|
16827
|
+
required: false
|
|
16828
|
+
}]
|
|
16829
|
+
}]
|
|
16830
|
+
}
|
|
16831
|
+
});
|
|
16399
16832
|
var ProgressRingComponent = class ProgressRingComponent {
|
|
16400
16833
|
constructor() {
|
|
16401
16834
|
this.value = input(0, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
@@ -22054,6 +22487,55 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
22054
22487
|
focus(options) {
|
|
22055
22488
|
this._hostEl.nativeElement.querySelector("textarea")?.focus(options);
|
|
22056
22489
|
}
|
|
22490
|
+
getSelection() {
|
|
22491
|
+
const el = this._textarea();
|
|
22492
|
+
if (!el) return null;
|
|
22493
|
+
try {
|
|
22494
|
+
if (el.selectionStart === null || el.selectionEnd === null) return null;
|
|
22495
|
+
return {
|
|
22496
|
+
start: el.selectionStart,
|
|
22497
|
+
end: el.selectionEnd
|
|
22498
|
+
};
|
|
22499
|
+
} catch {
|
|
22500
|
+
return null;
|
|
22501
|
+
}
|
|
22502
|
+
}
|
|
22503
|
+
setSelection(start, end = start) {
|
|
22504
|
+
const el = this._textarea();
|
|
22505
|
+
if (!el) return;
|
|
22506
|
+
const max = el.value.length;
|
|
22507
|
+
const from = Math.min(Math.max(0, start), max);
|
|
22508
|
+
const to = Math.min(Math.max(from, end), max);
|
|
22509
|
+
try {
|
|
22510
|
+
el.setSelectionRange(from, to);
|
|
22511
|
+
} catch {}
|
|
22512
|
+
}
|
|
22513
|
+
insertAtCaret(text) {
|
|
22514
|
+
const el = this._textarea();
|
|
22515
|
+
if (!el || el.disabled || el.readOnly || !text) return;
|
|
22516
|
+
const value = el.value;
|
|
22517
|
+
let from = value.length;
|
|
22518
|
+
let to = value.length;
|
|
22519
|
+
try {
|
|
22520
|
+
if (el.selectionStart !== null && el.selectionEnd !== null) {
|
|
22521
|
+
from = el.selectionStart;
|
|
22522
|
+
to = el.selectionEnd;
|
|
22523
|
+
}
|
|
22524
|
+
} catch {}
|
|
22525
|
+
const max = this.maxlength();
|
|
22526
|
+
const room = max === void 0 ? text.length : max - (value.length - (to - from));
|
|
22527
|
+
const insert = text.slice(0, Math.max(0, room));
|
|
22528
|
+
if (!insert) return;
|
|
22529
|
+
el.value = value.slice(0, from) + insert + value.slice(to);
|
|
22530
|
+
const caret = from + insert.length;
|
|
22531
|
+
try {
|
|
22532
|
+
el.setSelectionRange(caret, caret);
|
|
22533
|
+
} catch {}
|
|
22534
|
+
el.dispatchEvent(new Event("input", { bubbles: true }));
|
|
22535
|
+
}
|
|
22536
|
+
_textarea() {
|
|
22537
|
+
return this._hostEl.nativeElement.querySelector("textarea");
|
|
22538
|
+
}
|
|
22057
22539
|
writeValue(val) {
|
|
22058
22540
|
this._value.set(val ?? "");
|
|
22059
22541
|
}
|
|
@@ -24297,6 +24779,8 @@ var FileInputComponent = class FileInputComponent {
|
|
|
24297
24779
|
this.showField = input(true, ...ngDevMode ? [{ debugName: "showField" }] : /* istanbul ignore next */ []);
|
|
24298
24780
|
this.showErrors = input(false, ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
24299
24781
|
this.toastOnReject = input(false, ...ngDevMode ? [{ debugName: "toastOnReject" }] : /* istanbul ignore next */ []);
|
|
24782
|
+
this.listRejections = input(false, ...ngDevMode ? [{ debugName: "listRejections" }] : /* istanbul ignore next */ []);
|
|
24783
|
+
this.ariaDescribedBy = input("", ...ngDevMode ? [{ debugName: "ariaDescribedBy" }] : /* istanbul ignore next */ []);
|
|
24300
24784
|
this.clearable = input(false, ...ngDevMode ? [{ debugName: "clearable" }] : /* istanbul ignore next */ []);
|
|
24301
24785
|
this.removeLabel = input("Remove", ...ngDevMode ? [{ debugName: "removeLabel" }] : /* istanbul ignore next */ []);
|
|
24302
24786
|
this.maxSize = input(null, ...ngDevMode ? [{ debugName: "maxSize" }] : /* istanbul ignore next */ []);
|
|
@@ -24314,6 +24798,7 @@ var FileInputComponent = class FileInputComponent {
|
|
|
24314
24798
|
this.loadingText = input("", ...ngDevMode ? [{ debugName: "loadingText" }] : /* istanbul ignore next */ []);
|
|
24315
24799
|
this.filesSelected = output();
|
|
24316
24800
|
this.fileRejected = output();
|
|
24801
|
+
this.filesRejected = output();
|
|
24317
24802
|
this.fileRemoved = output();
|
|
24318
24803
|
this.invalidChange = output();
|
|
24319
24804
|
this._disabledInput = input(false, {
|
|
@@ -24328,10 +24813,15 @@ var FileInputComponent = class FileInputComponent {
|
|
|
24328
24813
|
this._dragging = signal(false, ...ngDevMode ? [{ debugName: "_dragging" }] : /* istanbul ignore next */ []);
|
|
24329
24814
|
this._toast = inject(ToastService);
|
|
24330
24815
|
this._rejection = signal("", ...ngDevMode ? [{ debugName: "_rejection" }] : /* istanbul ignore next */ []);
|
|
24816
|
+
this._describedBy = computed(() => mergeDescribedBy(this._shownError() ? this._inputId + "-desc" : "", this.ariaDescribedBy()), ...ngDevMode ? [{ debugName: "_describedBy" }] : /* istanbul ignore next */ []);
|
|
24817
|
+
this._rejected = signal([], ...ngDevMode ? [{ debugName: "_rejected" }] : /* istanbul ignore next */ []);
|
|
24818
|
+
this.rejections = this._rejected.asReadonly();
|
|
24819
|
+
this.rejectionLines = computed(() => this._rejected().map((r) => `"${r.file.name}" was not added. ${r.message}`), ...ngDevMode ? [{ debugName: "rejectionLines" }] : /* istanbul ignore next */ []);
|
|
24820
|
+
this._showRejectList = computed(() => this.listRejections() && this._rejected().length > 0 && !(this.showField() && this.error()), ...ngDevMode ? [{ debugName: "_showRejectList" }] : /* istanbul ignore next */ []);
|
|
24331
24821
|
this._reveal = createFieldReveal(this.showErrors);
|
|
24332
24822
|
this._issue = computed(() => this.disabled() || !this.required() || this._files().length > 0 ? null : requiredIssue(this.label() || "File"), ...ngDevMode ? [{ debugName: "_issue" }] : /* istanbul ignore next */ []);
|
|
24333
24823
|
this.invalid = computed(() => !!this.error() || !!this._rejection() || !!this._issue(), ...ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []);
|
|
24334
|
-
this.errorMessage = computed(() => this._rejection() || this._issue()?.message || "", ...ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []);
|
|
24824
|
+
this.errorMessage = computed(() => (this.listRejections() && this._rejected().length > 0 ? this.rejectionLines().join(" ") : this._rejection()) || this._issue()?.message || "", ...ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []);
|
|
24335
24825
|
this._shownError = computed(() => (this.showField() ? this.error() : "") || this._rejection() || (this._reveal.revealed() ? this._issue()?.message ?? "" : ""), ...ngDevMode ? [{ debugName: "_shownError" }] : /* istanbul ignore next */ []);
|
|
24336
24826
|
this.summary = computed(() => {
|
|
24337
24827
|
const f = this._files();
|
|
@@ -24380,7 +24870,7 @@ var FileInputComponent = class FileInputComponent {
|
|
|
24380
24870
|
const el = this.fileEl()?.nativeElement;
|
|
24381
24871
|
if (el) el.value = "";
|
|
24382
24872
|
this._files.set([]);
|
|
24383
|
-
this.
|
|
24873
|
+
this.setRejections([]);
|
|
24384
24874
|
this._onChange(this.multiple() ? [] : null);
|
|
24385
24875
|
}
|
|
24386
24876
|
remove() {
|
|
@@ -24391,7 +24881,7 @@ var FileInputComponent = class FileInputComponent {
|
|
|
24391
24881
|
writeValue(val) {
|
|
24392
24882
|
const files = Array.isArray(val) ? val : val ? [val] : [];
|
|
24393
24883
|
this._files.set(files);
|
|
24394
|
-
if (files.length > 0) this.
|
|
24884
|
+
if (files.length > 0) this.setRejections([]);
|
|
24395
24885
|
const el = this.fileEl()?.nativeElement;
|
|
24396
24886
|
if (files.length === 0 && el) el.value = "";
|
|
24397
24887
|
}
|
|
@@ -24434,6 +24924,10 @@ var FileInputComponent = class FileInputComponent {
|
|
|
24434
24924
|
if (dropped.length === 0) return;
|
|
24435
24925
|
this.accept$(this.multiple() ? dropped : dropped.slice(0, 1), this.fileEl()?.nativeElement ?? null);
|
|
24436
24926
|
}
|
|
24927
|
+
setRejections(list) {
|
|
24928
|
+
this._rejected.set(list);
|
|
24929
|
+
this._rejection.set(list[0]?.message ?? "");
|
|
24930
|
+
}
|
|
24437
24931
|
rejectionFor(file) {
|
|
24438
24932
|
const accept = this.accept();
|
|
24439
24933
|
if (this.enforceAccept() && accept && !fileMatchesAccept(file, accept)) return {
|
|
@@ -24463,7 +24957,7 @@ var FileInputComponent = class FileInputComponent {
|
|
|
24463
24957
|
accept$(files, native) {
|
|
24464
24958
|
if (files.length === 0) {
|
|
24465
24959
|
this._files.set([]);
|
|
24466
|
-
this.
|
|
24960
|
+
this.setRejections([]);
|
|
24467
24961
|
this._onChange(this.multiple() ? [] : null);
|
|
24468
24962
|
this._onTouched();
|
|
24469
24963
|
return;
|
|
@@ -24475,8 +24969,9 @@ var FileInputComponent = class FileInputComponent {
|
|
|
24475
24969
|
if (r) rejected.push(r);
|
|
24476
24970
|
else ok.push(f);
|
|
24477
24971
|
}
|
|
24478
|
-
this.
|
|
24972
|
+
this.setRejections(rejected);
|
|
24479
24973
|
rejected.forEach((r) => this.fileRejected.emit(r));
|
|
24974
|
+
if (rejected.length > 0) this.filesRejected.emit(rejected);
|
|
24480
24975
|
if (this.toastOnReject() && rejected.length > 0) this._toast.error(rejected.map((r) => `"${r.file.name}" was not added. ${r.message}`).join(" "));
|
|
24481
24976
|
if (ok.length === 0) {
|
|
24482
24977
|
if (native) native.value = "";
|
|
@@ -24592,6 +25087,20 @@ var FileInputComponent = class FileInputComponent {
|
|
|
24592
25087
|
isRequired: false,
|
|
24593
25088
|
transformFunction: null
|
|
24594
25089
|
},
|
|
25090
|
+
listRejections: {
|
|
25091
|
+
classPropertyName: "listRejections",
|
|
25092
|
+
publicName: "listRejections",
|
|
25093
|
+
isSignal: true,
|
|
25094
|
+
isRequired: false,
|
|
25095
|
+
transformFunction: null
|
|
25096
|
+
},
|
|
25097
|
+
ariaDescribedBy: {
|
|
25098
|
+
classPropertyName: "ariaDescribedBy",
|
|
25099
|
+
publicName: "ariaDescribedBy",
|
|
25100
|
+
isSignal: true,
|
|
25101
|
+
isRequired: false,
|
|
25102
|
+
transformFunction: null
|
|
25103
|
+
},
|
|
24595
25104
|
clearable: {
|
|
24596
25105
|
classPropertyName: "clearable",
|
|
24597
25106
|
publicName: "clearable",
|
|
@@ -24708,6 +25217,7 @@ var FileInputComponent = class FileInputComponent {
|
|
|
24708
25217
|
outputs: {
|
|
24709
25218
|
filesSelected: "filesSelected",
|
|
24710
25219
|
fileRejected: "fileRejected",
|
|
25220
|
+
filesRejected: "filesRejected",
|
|
24711
25221
|
fileRemoved: "fileRemoved",
|
|
24712
25222
|
invalidChange: "invalidChange"
|
|
24713
25223
|
},
|
|
@@ -24756,14 +25266,14 @@ var FileInputComponent = class FileInputComponent {
|
|
|
24756
25266
|
[attr.required]="required() || null"
|
|
24757
25267
|
[attr.aria-label]="ariaLabel() || null"
|
|
24758
25268
|
[attr.aria-invalid]="_shownError() ? 'true' : null"
|
|
24759
|
-
[attr.aria-describedby]="
|
|
25269
|
+
[attr.aria-describedby]="_describedBy()"
|
|
24760
25270
|
[attr.tabindex]="showField() ? -1 : null"
|
|
24761
25271
|
(change)="onChange($event)"
|
|
24762
25272
|
(blur)="_onTouched()" />
|
|
24763
25273
|
@if (showField()) {
|
|
24764
25274
|
<div class="fi-row">
|
|
24765
25275
|
<button type="button" class="fi-control" [disabled]="disabled() || loading()" [attr.aria-busy]="loading() ? 'true' : null"
|
|
24766
|
-
[attr.aria-describedby]="
|
|
25276
|
+
[attr.aria-describedby]="_describedBy()"
|
|
24767
25277
|
(click)="open()" (blur)="_touch()"
|
|
24768
25278
|
(dragenter)="onDragOver($event)" (dragover)="onDragOver($event)" (dragleave)="onDragLeave($event)" (drop)="onDrop($event)">
|
|
24769
25279
|
@if (_previewUrl(); as src) {
|
|
@@ -24783,12 +25293,18 @@ var FileInputComponent = class FileInputComponent {
|
|
|
24783
25293
|
</div>
|
|
24784
25294
|
}
|
|
24785
25295
|
@if (_shownError()) {
|
|
24786
|
-
|
|
25296
|
+
@if (_showRejectList()) {
|
|
25297
|
+
<ul class="fi-desc fi-desc-error fi-reject-list" [id]="_inputId + '-desc'" role="alert">
|
|
25298
|
+
@for (line of rejectionLines(); track $index) { <li>{{ line }}</li> }
|
|
25299
|
+
</ul>
|
|
25300
|
+
} @else {
|
|
25301
|
+
<p class="fi-desc fi-desc-error" [id]="_inputId + '-desc'" role="alert">{{ _shownError() }}</p>
|
|
25302
|
+
}
|
|
24787
25303
|
}
|
|
24788
25304
|
</div>
|
|
24789
25305
|
`,
|
|
24790
25306
|
isInline: true,
|
|
24791
|
-
styles: [":host{display:block}:host(:has(.fi-hidden)){display:contents}.fi-field{display:flex;flex-direction:column;gap:6px}.fi-hidden{display:contents}.fi-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.fi-required{color:#dc2626;margin-left:2px}.fi-hint-inline{font-size:.75rem;color:#94a3b8;font-weight:400;margin-left:4px}.fi-native{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.fi-row{display:flex;align-items:stretch;gap:8px}.fi-control{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1 1 auto;min-width:0;box-sizing:border-box;text-align:left;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #7c8ba1;border-radius:8px;outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.fi-control:focus-visible{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.fi-control:has(ui-image-preview){padding-top:6px;padding-bottom:6px}.fi-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fi-loading{overflow:visible}.fi-placeholder{color:#64748b}.fi-browse{flex-shrink:0;font-size:.75rem;font-weight:600;color:#374151;padding:3px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.fi-remove{flex-shrink:0;align-self:center;font-family:inherit;font-size:.75rem;font-weight:600;color:#b91c1c;padding:6px 10px;border:1px solid #fecaca;border-radius:6px;background:#fff;cursor:pointer;-webkit-appearance:none;appearance:none}.fi-remove:hover{background:#fef2f2}.fi-remove:focus-visible{outline:2px solid #ef4444;outline-offset:2px}.fi-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.fi-error .fi-control{border-color:#ef4444}.fi-error .fi-control:focus-visible{box-shadow:0 0 0 3px #ef44441f}.fi-drag .fi-control{border-color:#3b82f6;border-style:dashed;background:#eff6ff}.fi-disabled .fi-control{opacity:.5;cursor:not-allowed}.fi-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.fi-desc-error{color:#dc2626}@media(max-width:480px){.fi-control{font-size:1rem}.fi-remove{padding:10px 12px}}@media(pointer:coarse){.fi-control,.fi-remove{min-height:44px}}\n"],
|
|
25307
|
+
styles: [":host{display:block}:host(:has(.fi-hidden)){display:contents}.fi-field{display:flex;flex-direction:column;gap:6px}.fi-hidden{display:contents}.fi-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.fi-required{color:#dc2626;margin-left:2px}.fi-hint-inline{font-size:.75rem;color:#94a3b8;font-weight:400;margin-left:4px}.fi-native{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.fi-row{display:flex;align-items:stretch;gap:8px}.fi-control{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1 1 auto;min-width:0;box-sizing:border-box;text-align:left;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #7c8ba1;border-radius:8px;outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.fi-control:focus-visible{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.fi-control:has(ui-image-preview){padding-top:6px;padding-bottom:6px}.fi-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fi-loading{overflow:visible}.fi-placeholder{color:#64748b}.fi-browse{flex-shrink:0;font-size:.75rem;font-weight:600;color:#374151;padding:3px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.fi-remove{flex-shrink:0;align-self:center;font-family:inherit;font-size:.75rem;font-weight:600;color:#b91c1c;padding:6px 10px;border:1px solid #fecaca;border-radius:6px;background:#fff;cursor:pointer;-webkit-appearance:none;appearance:none}.fi-remove:hover{background:#fef2f2}.fi-remove:focus-visible{outline:2px solid #ef4444;outline-offset:2px}.fi-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.fi-error .fi-control{border-color:#ef4444}.fi-error .fi-control:focus-visible{box-shadow:0 0 0 3px #ef44441f}.fi-drag .fi-control{border-color:#3b82f6;border-style:dashed;background:#eff6ff}.fi-disabled .fi-control{opacity:.5;cursor:not-allowed}.fi-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.fi-desc-error{color:#dc2626}.fi-reject-list{margin:4px 0 0;padding-left:18px}.fi-reject-list li{margin:0 0 2px}@media(max-width:480px){.fi-control{font-size:1rem}.fi-remove{padding:10px 12px}}@media(pointer:coarse){.fi-control,.fi-remove{min-height:44px}}\n"],
|
|
24792
25308
|
dependencies: [{
|
|
24793
25309
|
kind: "component",
|
|
24794
25310
|
type: ImagePreviewComponent,
|
|
@@ -24868,14 +25384,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
24868
25384
|
[attr.required]="required() || null"
|
|
24869
25385
|
[attr.aria-label]="ariaLabel() || null"
|
|
24870
25386
|
[attr.aria-invalid]="_shownError() ? 'true' : null"
|
|
24871
|
-
[attr.aria-describedby]="
|
|
25387
|
+
[attr.aria-describedby]="_describedBy()"
|
|
24872
25388
|
[attr.tabindex]="showField() ? -1 : null"
|
|
24873
25389
|
(change)="onChange($event)"
|
|
24874
25390
|
(blur)="_onTouched()" />
|
|
24875
25391
|
@if (showField()) {
|
|
24876
25392
|
<div class="fi-row">
|
|
24877
25393
|
<button type="button" class="fi-control" [disabled]="disabled() || loading()" [attr.aria-busy]="loading() ? 'true' : null"
|
|
24878
|
-
[attr.aria-describedby]="
|
|
25394
|
+
[attr.aria-describedby]="_describedBy()"
|
|
24879
25395
|
(click)="open()" (blur)="_touch()"
|
|
24880
25396
|
(dragenter)="onDragOver($event)" (dragover)="onDragOver($event)" (dragleave)="onDragLeave($event)" (drop)="onDrop($event)">
|
|
24881
25397
|
@if (_previewUrl(); as src) {
|
|
@@ -24895,11 +25411,17 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
24895
25411
|
</div>
|
|
24896
25412
|
}
|
|
24897
25413
|
@if (_shownError()) {
|
|
24898
|
-
|
|
25414
|
+
@if (_showRejectList()) {
|
|
25415
|
+
<ul class="fi-desc fi-desc-error fi-reject-list" [id]="_inputId + '-desc'" role="alert">
|
|
25416
|
+
@for (line of rejectionLines(); track $index) { <li>{{ line }}</li> }
|
|
25417
|
+
</ul>
|
|
25418
|
+
} @else {
|
|
25419
|
+
<p class="fi-desc fi-desc-error" [id]="_inputId + '-desc'" role="alert">{{ _shownError() }}</p>
|
|
25420
|
+
}
|
|
24899
25421
|
}
|
|
24900
25422
|
</div>
|
|
24901
25423
|
`,
|
|
24902
|
-
styles: [":host{display:block}:host(:has(.fi-hidden)){display:contents}.fi-field{display:flex;flex-direction:column;gap:6px}.fi-hidden{display:contents}.fi-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.fi-required{color:#dc2626;margin-left:2px}.fi-hint-inline{font-size:.75rem;color:#94a3b8;font-weight:400;margin-left:4px}.fi-native{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.fi-row{display:flex;align-items:stretch;gap:8px}.fi-control{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1 1 auto;min-width:0;box-sizing:border-box;text-align:left;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #7c8ba1;border-radius:8px;outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.fi-control:focus-visible{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.fi-control:has(ui-image-preview){padding-top:6px;padding-bottom:6px}.fi-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fi-loading{overflow:visible}.fi-placeholder{color:#64748b}.fi-browse{flex-shrink:0;font-size:.75rem;font-weight:600;color:#374151;padding:3px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.fi-remove{flex-shrink:0;align-self:center;font-family:inherit;font-size:.75rem;font-weight:600;color:#b91c1c;padding:6px 10px;border:1px solid #fecaca;border-radius:6px;background:#fff;cursor:pointer;-webkit-appearance:none;appearance:none}.fi-remove:hover{background:#fef2f2}.fi-remove:focus-visible{outline:2px solid #ef4444;outline-offset:2px}.fi-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.fi-error .fi-control{border-color:#ef4444}.fi-error .fi-control:focus-visible{box-shadow:0 0 0 3px #ef44441f}.fi-drag .fi-control{border-color:#3b82f6;border-style:dashed;background:#eff6ff}.fi-disabled .fi-control{opacity:.5;cursor:not-allowed}.fi-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.fi-desc-error{color:#dc2626}@media(max-width:480px){.fi-control{font-size:1rem}.fi-remove{padding:10px 12px}}@media(pointer:coarse){.fi-control,.fi-remove{min-height:44px}}\n"]
|
|
25424
|
+
styles: [":host{display:block}:host(:has(.fi-hidden)){display:contents}.fi-field{display:flex;flex-direction:column;gap:6px}.fi-hidden{display:contents}.fi-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.fi-required{color:#dc2626;margin-left:2px}.fi-hint-inline{font-size:.75rem;color:#94a3b8;font-weight:400;margin-left:4px}.fi-native{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.fi-row{display:flex;align-items:stretch;gap:8px}.fi-control{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1 1 auto;min-width:0;box-sizing:border-box;text-align:left;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #7c8ba1;border-radius:8px;outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.fi-control:focus-visible{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.fi-control:has(ui-image-preview){padding-top:6px;padding-bottom:6px}.fi-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fi-loading{overflow:visible}.fi-placeholder{color:#64748b}.fi-browse{flex-shrink:0;font-size:.75rem;font-weight:600;color:#374151;padding:3px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.fi-remove{flex-shrink:0;align-self:center;font-family:inherit;font-size:.75rem;font-weight:600;color:#b91c1c;padding:6px 10px;border:1px solid #fecaca;border-radius:6px;background:#fff;cursor:pointer;-webkit-appearance:none;appearance:none}.fi-remove:hover{background:#fef2f2}.fi-remove:focus-visible{outline:2px solid #ef4444;outline-offset:2px}.fi-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.fi-error .fi-control{border-color:#ef4444}.fi-error .fi-control:focus-visible{box-shadow:0 0 0 3px #ef44441f}.fi-drag .fi-control{border-color:#3b82f6;border-style:dashed;background:#eff6ff}.fi-disabled .fi-control{opacity:.5;cursor:not-allowed}.fi-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.fi-desc-error{color:#dc2626}.fi-reject-list{margin:4px 0 0;padding-left:18px}.fi-reject-list li{margin:0 0 2px}@media(max-width:480px){.fi-control{font-size:1rem}.fi-remove{padding:10px 12px}}@media(pointer:coarse){.fi-control,.fi-remove{min-height:44px}}\n"]
|
|
24903
25425
|
}]
|
|
24904
25426
|
}],
|
|
24905
25427
|
ctorParameters: () => [],
|
|
@@ -25000,6 +25522,22 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
25000
25522
|
required: false
|
|
25001
25523
|
}]
|
|
25002
25524
|
}],
|
|
25525
|
+
listRejections: [{
|
|
25526
|
+
type: i0.Input,
|
|
25527
|
+
args: [{
|
|
25528
|
+
isSignal: true,
|
|
25529
|
+
alias: "listRejections",
|
|
25530
|
+
required: false
|
|
25531
|
+
}]
|
|
25532
|
+
}],
|
|
25533
|
+
ariaDescribedBy: [{
|
|
25534
|
+
type: i0.Input,
|
|
25535
|
+
args: [{
|
|
25536
|
+
isSignal: true,
|
|
25537
|
+
alias: "ariaDescribedBy",
|
|
25538
|
+
required: false
|
|
25539
|
+
}]
|
|
25540
|
+
}],
|
|
25003
25541
|
clearable: [{
|
|
25004
25542
|
type: i0.Input,
|
|
25005
25543
|
args: [{
|
|
@@ -25128,6 +25666,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
25128
25666
|
type: i0.Output,
|
|
25129
25667
|
args: ["fileRejected"]
|
|
25130
25668
|
}],
|
|
25669
|
+
filesRejected: [{
|
|
25670
|
+
type: i0.Output,
|
|
25671
|
+
args: ["filesRejected"]
|
|
25672
|
+
}],
|
|
25131
25673
|
fileRemoved: [{
|
|
25132
25674
|
type: i0.Output,
|
|
25133
25675
|
args: ["fileRemoved"]
|
|
@@ -25150,6 +25692,361 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
25150
25692
|
}]
|
|
25151
25693
|
}
|
|
25152
25694
|
});
|
|
25695
|
+
var CopyFieldComponent = class CopyFieldComponent {
|
|
25696
|
+
constructor() {
|
|
25697
|
+
this.value = input("", ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
25698
|
+
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
25699
|
+
this.copyLabel = input("Copy", ...ngDevMode ? [{ debugName: "copyLabel" }] : /* istanbul ignore next */ []);
|
|
25700
|
+
this.copiedLabel = input("Copied", ...ngDevMode ? [{ debugName: "copiedLabel" }] : /* istanbul ignore next */ []);
|
|
25701
|
+
this.buttonAriaLabel = input("", ...ngDevMode ? [{ debugName: "buttonAriaLabel" }] : /* istanbul ignore next */ []);
|
|
25702
|
+
this.copiedMessage = input("Copied to clipboard", ...ngDevMode ? [{ debugName: "copiedMessage" }] : /* istanbul ignore next */ []);
|
|
25703
|
+
this.failedMessage = input("Could not copy automatically. The text is selected: press Ctrl+C (Cmd+C on a Mac) to copy it.", ...ngDevMode ? [{ debugName: "failedMessage" }] : /* istanbul ignore next */ []);
|
|
25704
|
+
this.hint = input("", ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
|
|
25705
|
+
this.disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
25706
|
+
this.ariaDescribedBy = input("", ...ngDevMode ? [{ debugName: "ariaDescribedBy" }] : /* istanbul ignore next */ []);
|
|
25707
|
+
this.inputTestId = input("", ...ngDevMode ? [{ debugName: "inputTestId" }] : /* istanbul ignore next */ []);
|
|
25708
|
+
this.buttonTestId = input("", ...ngDevMode ? [{ debugName: "buttonTestId" }] : /* istanbul ignore next */ []);
|
|
25709
|
+
this.copied = output();
|
|
25710
|
+
this.copyFailed = output();
|
|
25711
|
+
this._id = `cf-${Math.random().toString(36).slice(2, 8)}`;
|
|
25712
|
+
this._state = signal("idle", ...ngDevMode ? [{ debugName: "_state" }] : /* istanbul ignore next */ []);
|
|
25713
|
+
this._announcement = computed(() => this._state() === "copied" ? this.copiedMessage() : this._state() === "failed" ? this.failedMessage() : "", ...ngDevMode ? [{ debugName: "_announcement" }] : /* istanbul ignore next */ []);
|
|
25714
|
+
this._buttonName = computed(() => this.buttonAriaLabel() || [this.copyLabel(), this.label()].filter(Boolean).join(" "), ...ngDevMode ? [{ debugName: "_buttonName" }] : /* istanbul ignore next */ []);
|
|
25715
|
+
this._describedBy = computed(() => {
|
|
25716
|
+
const ids = `${this.hint() ? this._id + "-hint" : ""} ${this._state() === "failed" ? this._id + "-fail" : ""} ${this.ariaDescribedBy()}`.split(/\s+/).filter(Boolean);
|
|
25717
|
+
const unique = ids.filter((id, i) => ids.indexOf(id) === i);
|
|
25718
|
+
return unique.length ? unique.join(" ") : null;
|
|
25719
|
+
}, ...ngDevMode ? [{ debugName: "_describedBy" }] : /* istanbul ignore next */ []);
|
|
25720
|
+
this.fieldEl = viewChild("field", ...ngDevMode ? [{ debugName: "fieldEl" }] : /* istanbul ignore next */ []);
|
|
25721
|
+
this._timer = null;
|
|
25722
|
+
}
|
|
25723
|
+
ngOnDestroy() {
|
|
25724
|
+
if (this._timer) clearTimeout(this._timer);
|
|
25725
|
+
}
|
|
25726
|
+
selectAll() {
|
|
25727
|
+
this.fieldEl()?.nativeElement.select();
|
|
25728
|
+
}
|
|
25729
|
+
async copy() {
|
|
25730
|
+
const text = this.value();
|
|
25731
|
+
if (!text || this.disabled()) return false;
|
|
25732
|
+
let ok = false;
|
|
25733
|
+
try {
|
|
25734
|
+
if (typeof navigator !== "undefined" && navigator.clipboard?.writeText) {
|
|
25735
|
+
await navigator.clipboard.writeText(text);
|
|
25736
|
+
ok = true;
|
|
25737
|
+
}
|
|
25738
|
+
} catch {
|
|
25739
|
+
ok = false;
|
|
25740
|
+
}
|
|
25741
|
+
if (!ok) ok = this.legacyCopy();
|
|
25742
|
+
if (this._timer) {
|
|
25743
|
+
clearTimeout(this._timer);
|
|
25744
|
+
this._timer = null;
|
|
25745
|
+
}
|
|
25746
|
+
if (ok) {
|
|
25747
|
+
this._state.set("copied");
|
|
25748
|
+
this.copied.emit(text);
|
|
25749
|
+
this._timer = setTimeout(() => {
|
|
25750
|
+
this._state.set("idle");
|
|
25751
|
+
this._timer = null;
|
|
25752
|
+
}, 2e3);
|
|
25753
|
+
} else {
|
|
25754
|
+
this.selectAll();
|
|
25755
|
+
this._state.set("failed");
|
|
25756
|
+
this.copyFailed.emit();
|
|
25757
|
+
}
|
|
25758
|
+
return ok;
|
|
25759
|
+
}
|
|
25760
|
+
legacyCopy() {
|
|
25761
|
+
const el = this.fieldEl()?.nativeElement;
|
|
25762
|
+
if (!el || typeof document === "undefined" || typeof document.execCommand !== "function") return false;
|
|
25763
|
+
try {
|
|
25764
|
+
el.focus();
|
|
25765
|
+
el.select();
|
|
25766
|
+
el.setSelectionRange(0, el.value.length);
|
|
25767
|
+
return document.execCommand("copy");
|
|
25768
|
+
} catch {
|
|
25769
|
+
return false;
|
|
25770
|
+
}
|
|
25771
|
+
}
|
|
25772
|
+
static {
|
|
25773
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
25774
|
+
minVersion: "12.0.0",
|
|
25775
|
+
version: "22.2.2",
|
|
25776
|
+
ngImport: i0,
|
|
25777
|
+
type: CopyFieldComponent,
|
|
25778
|
+
deps: [],
|
|
25779
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
25780
|
+
});
|
|
25781
|
+
}
|
|
25782
|
+
static {
|
|
25783
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
25784
|
+
minVersion: "17.0.0",
|
|
25785
|
+
version: "22.2.2",
|
|
25786
|
+
type: CopyFieldComponent,
|
|
25787
|
+
isStandalone: true,
|
|
25788
|
+
selector: "ui-copy-field",
|
|
25789
|
+
inputs: {
|
|
25790
|
+
value: {
|
|
25791
|
+
classPropertyName: "value",
|
|
25792
|
+
publicName: "value",
|
|
25793
|
+
isSignal: true,
|
|
25794
|
+
isRequired: false,
|
|
25795
|
+
transformFunction: null
|
|
25796
|
+
},
|
|
25797
|
+
label: {
|
|
25798
|
+
classPropertyName: "label",
|
|
25799
|
+
publicName: "label",
|
|
25800
|
+
isSignal: true,
|
|
25801
|
+
isRequired: false,
|
|
25802
|
+
transformFunction: null
|
|
25803
|
+
},
|
|
25804
|
+
copyLabel: {
|
|
25805
|
+
classPropertyName: "copyLabel",
|
|
25806
|
+
publicName: "copyLabel",
|
|
25807
|
+
isSignal: true,
|
|
25808
|
+
isRequired: false,
|
|
25809
|
+
transformFunction: null
|
|
25810
|
+
},
|
|
25811
|
+
copiedLabel: {
|
|
25812
|
+
classPropertyName: "copiedLabel",
|
|
25813
|
+
publicName: "copiedLabel",
|
|
25814
|
+
isSignal: true,
|
|
25815
|
+
isRequired: false,
|
|
25816
|
+
transformFunction: null
|
|
25817
|
+
},
|
|
25818
|
+
buttonAriaLabel: {
|
|
25819
|
+
classPropertyName: "buttonAriaLabel",
|
|
25820
|
+
publicName: "buttonAriaLabel",
|
|
25821
|
+
isSignal: true,
|
|
25822
|
+
isRequired: false,
|
|
25823
|
+
transformFunction: null
|
|
25824
|
+
},
|
|
25825
|
+
copiedMessage: {
|
|
25826
|
+
classPropertyName: "copiedMessage",
|
|
25827
|
+
publicName: "copiedMessage",
|
|
25828
|
+
isSignal: true,
|
|
25829
|
+
isRequired: false,
|
|
25830
|
+
transformFunction: null
|
|
25831
|
+
},
|
|
25832
|
+
failedMessage: {
|
|
25833
|
+
classPropertyName: "failedMessage",
|
|
25834
|
+
publicName: "failedMessage",
|
|
25835
|
+
isSignal: true,
|
|
25836
|
+
isRequired: false,
|
|
25837
|
+
transformFunction: null
|
|
25838
|
+
},
|
|
25839
|
+
hint: {
|
|
25840
|
+
classPropertyName: "hint",
|
|
25841
|
+
publicName: "hint",
|
|
25842
|
+
isSignal: true,
|
|
25843
|
+
isRequired: false,
|
|
25844
|
+
transformFunction: null
|
|
25845
|
+
},
|
|
25846
|
+
disabled: {
|
|
25847
|
+
classPropertyName: "disabled",
|
|
25848
|
+
publicName: "disabled",
|
|
25849
|
+
isSignal: true,
|
|
25850
|
+
isRequired: false,
|
|
25851
|
+
transformFunction: null
|
|
25852
|
+
},
|
|
25853
|
+
ariaDescribedBy: {
|
|
25854
|
+
classPropertyName: "ariaDescribedBy",
|
|
25855
|
+
publicName: "ariaDescribedBy",
|
|
25856
|
+
isSignal: true,
|
|
25857
|
+
isRequired: false,
|
|
25858
|
+
transformFunction: null
|
|
25859
|
+
},
|
|
25860
|
+
inputTestId: {
|
|
25861
|
+
classPropertyName: "inputTestId",
|
|
25862
|
+
publicName: "inputTestId",
|
|
25863
|
+
isSignal: true,
|
|
25864
|
+
isRequired: false,
|
|
25865
|
+
transformFunction: null
|
|
25866
|
+
},
|
|
25867
|
+
buttonTestId: {
|
|
25868
|
+
classPropertyName: "buttonTestId",
|
|
25869
|
+
publicName: "buttonTestId",
|
|
25870
|
+
isSignal: true,
|
|
25871
|
+
isRequired: false,
|
|
25872
|
+
transformFunction: null
|
|
25873
|
+
}
|
|
25874
|
+
},
|
|
25875
|
+
outputs: {
|
|
25876
|
+
copied: "copied",
|
|
25877
|
+
copyFailed: "copyFailed"
|
|
25878
|
+
},
|
|
25879
|
+
viewQueries: [{
|
|
25880
|
+
propertyName: "fieldEl",
|
|
25881
|
+
first: true,
|
|
25882
|
+
predicate: ["field"],
|
|
25883
|
+
descendants: true,
|
|
25884
|
+
isSignal: true
|
|
25885
|
+
}],
|
|
25886
|
+
ngImport: i0,
|
|
25887
|
+
template: `
|
|
25888
|
+
<div class="cf-field">
|
|
25889
|
+
@if (label()) { <label class="cf-label" [for]="_id">{{ label() }}</label> }
|
|
25890
|
+
<div class="cf-row">
|
|
25891
|
+
<input #field class="cf-input" type="text" readonly [id]="_id" [value]="value()" [attr.aria-describedby]="_describedBy()"
|
|
25892
|
+
[attr.data-testid]="inputTestId() || null" (focus)="selectAll()" />
|
|
25893
|
+
<button type="button" class="cf-btn" [disabled]="disabled() || !value()" [attr.aria-label]="_buttonName()"
|
|
25894
|
+
[attr.data-testid]="buttonTestId() || null" (click)="copy()">
|
|
25895
|
+
{{ _state() === 'copied' ? copiedLabel() : copyLabel() }}
|
|
25896
|
+
</button>
|
|
25897
|
+
</div>
|
|
25898
|
+
@if (hint()) { <p class="cf-hint" [id]="_id + '-hint'">{{ hint() }}</p> }
|
|
25899
|
+
<span class="cf-sr" role="status" aria-live="polite" aria-atomic="true">{{ _announcement() }}</span>
|
|
25900
|
+
@if (_state() === 'failed') { <p class="cf-fail" [id]="_id + '-fail'">{{ failedMessage() }}</p> }
|
|
25901
|
+
</div>
|
|
25902
|
+
`,
|
|
25903
|
+
isInline: true,
|
|
25904
|
+
styles: [":host{display:block}.cf-field{display:flex;flex-direction:column;gap:4px}.cf-label{font-size:.8125rem;font-weight:500;color:#334155}.cf-row{display:flex;gap:8px;align-items:stretch}.cf-input{flex:1 1 auto;min-width:0;box-sizing:border-box;min-height:40px;padding:8px 12px;font:inherit;font-size:.875rem;color:#0f172a;background:#f8fafc;border:1px solid #94a3b8;border-radius:8px;text-overflow:ellipsis}.cf-input:focus-visible{outline:2px solid #1d4ed8;outline-offset:1px}.cf-btn{flex:0 0 auto;min-height:40px;padding:0 16px;font:inherit;font-size:.875rem;font-weight:600;color:#0f172a;background:#fff;border:1px solid #94a3b8;border-radius:8px;cursor:pointer}.cf-btn:hover:not(:disabled){background:#f1f5f9}.cf-btn:focus-visible{outline:2px solid #1d4ed8;outline-offset:1px}.cf-btn:disabled{opacity:.55;cursor:not-allowed}.cf-hint{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.cf-fail{margin:0;font-size:.75rem;line-height:1.4;color:#b91c1c}.cf-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(pointer:coarse),(max-width:480px){.cf-input,.cf-btn{min-height:44px}}\n"],
|
|
25905
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
25906
|
+
});
|
|
25907
|
+
}
|
|
25908
|
+
};
|
|
25909
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
25910
|
+
minVersion: "12.0.0",
|
|
25911
|
+
version: "22.2.2",
|
|
25912
|
+
ngImport: i0,
|
|
25913
|
+
type: CopyFieldComponent,
|
|
25914
|
+
decorators: [{
|
|
25915
|
+
type: Component,
|
|
25916
|
+
args: [{
|
|
25917
|
+
selector: "ui-copy-field",
|
|
25918
|
+
standalone: true,
|
|
25919
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
25920
|
+
template: `
|
|
25921
|
+
<div class="cf-field">
|
|
25922
|
+
@if (label()) { <label class="cf-label" [for]="_id">{{ label() }}</label> }
|
|
25923
|
+
<div class="cf-row">
|
|
25924
|
+
<input #field class="cf-input" type="text" readonly [id]="_id" [value]="value()" [attr.aria-describedby]="_describedBy()"
|
|
25925
|
+
[attr.data-testid]="inputTestId() || null" (focus)="selectAll()" />
|
|
25926
|
+
<button type="button" class="cf-btn" [disabled]="disabled() || !value()" [attr.aria-label]="_buttonName()"
|
|
25927
|
+
[attr.data-testid]="buttonTestId() || null" (click)="copy()">
|
|
25928
|
+
{{ _state() === 'copied' ? copiedLabel() : copyLabel() }}
|
|
25929
|
+
</button>
|
|
25930
|
+
</div>
|
|
25931
|
+
@if (hint()) { <p class="cf-hint" [id]="_id + '-hint'">{{ hint() }}</p> }
|
|
25932
|
+
<span class="cf-sr" role="status" aria-live="polite" aria-atomic="true">{{ _announcement() }}</span>
|
|
25933
|
+
@if (_state() === 'failed') { <p class="cf-fail" [id]="_id + '-fail'">{{ failedMessage() }}</p> }
|
|
25934
|
+
</div>
|
|
25935
|
+
`,
|
|
25936
|
+
styles: [":host{display:block}.cf-field{display:flex;flex-direction:column;gap:4px}.cf-label{font-size:.8125rem;font-weight:500;color:#334155}.cf-row{display:flex;gap:8px;align-items:stretch}.cf-input{flex:1 1 auto;min-width:0;box-sizing:border-box;min-height:40px;padding:8px 12px;font:inherit;font-size:.875rem;color:#0f172a;background:#f8fafc;border:1px solid #94a3b8;border-radius:8px;text-overflow:ellipsis}.cf-input:focus-visible{outline:2px solid #1d4ed8;outline-offset:1px}.cf-btn{flex:0 0 auto;min-height:40px;padding:0 16px;font:inherit;font-size:.875rem;font-weight:600;color:#0f172a;background:#fff;border:1px solid #94a3b8;border-radius:8px;cursor:pointer}.cf-btn:hover:not(:disabled){background:#f1f5f9}.cf-btn:focus-visible{outline:2px solid #1d4ed8;outline-offset:1px}.cf-btn:disabled{opacity:.55;cursor:not-allowed}.cf-hint{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.cf-fail{margin:0;font-size:.75rem;line-height:1.4;color:#b91c1c}.cf-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(pointer:coarse),(max-width:480px){.cf-input,.cf-btn{min-height:44px}}\n"]
|
|
25937
|
+
}]
|
|
25938
|
+
}],
|
|
25939
|
+
propDecorators: {
|
|
25940
|
+
value: [{
|
|
25941
|
+
type: i0.Input,
|
|
25942
|
+
args: [{
|
|
25943
|
+
isSignal: true,
|
|
25944
|
+
alias: "value",
|
|
25945
|
+
required: false
|
|
25946
|
+
}]
|
|
25947
|
+
}],
|
|
25948
|
+
label: [{
|
|
25949
|
+
type: i0.Input,
|
|
25950
|
+
args: [{
|
|
25951
|
+
isSignal: true,
|
|
25952
|
+
alias: "label",
|
|
25953
|
+
required: false
|
|
25954
|
+
}]
|
|
25955
|
+
}],
|
|
25956
|
+
copyLabel: [{
|
|
25957
|
+
type: i0.Input,
|
|
25958
|
+
args: [{
|
|
25959
|
+
isSignal: true,
|
|
25960
|
+
alias: "copyLabel",
|
|
25961
|
+
required: false
|
|
25962
|
+
}]
|
|
25963
|
+
}],
|
|
25964
|
+
copiedLabel: [{
|
|
25965
|
+
type: i0.Input,
|
|
25966
|
+
args: [{
|
|
25967
|
+
isSignal: true,
|
|
25968
|
+
alias: "copiedLabel",
|
|
25969
|
+
required: false
|
|
25970
|
+
}]
|
|
25971
|
+
}],
|
|
25972
|
+
buttonAriaLabel: [{
|
|
25973
|
+
type: i0.Input,
|
|
25974
|
+
args: [{
|
|
25975
|
+
isSignal: true,
|
|
25976
|
+
alias: "buttonAriaLabel",
|
|
25977
|
+
required: false
|
|
25978
|
+
}]
|
|
25979
|
+
}],
|
|
25980
|
+
copiedMessage: [{
|
|
25981
|
+
type: i0.Input,
|
|
25982
|
+
args: [{
|
|
25983
|
+
isSignal: true,
|
|
25984
|
+
alias: "copiedMessage",
|
|
25985
|
+
required: false
|
|
25986
|
+
}]
|
|
25987
|
+
}],
|
|
25988
|
+
failedMessage: [{
|
|
25989
|
+
type: i0.Input,
|
|
25990
|
+
args: [{
|
|
25991
|
+
isSignal: true,
|
|
25992
|
+
alias: "failedMessage",
|
|
25993
|
+
required: false
|
|
25994
|
+
}]
|
|
25995
|
+
}],
|
|
25996
|
+
hint: [{
|
|
25997
|
+
type: i0.Input,
|
|
25998
|
+
args: [{
|
|
25999
|
+
isSignal: true,
|
|
26000
|
+
alias: "hint",
|
|
26001
|
+
required: false
|
|
26002
|
+
}]
|
|
26003
|
+
}],
|
|
26004
|
+
disabled: [{
|
|
26005
|
+
type: i0.Input,
|
|
26006
|
+
args: [{
|
|
26007
|
+
isSignal: true,
|
|
26008
|
+
alias: "disabled",
|
|
26009
|
+
required: false
|
|
26010
|
+
}]
|
|
26011
|
+
}],
|
|
26012
|
+
ariaDescribedBy: [{
|
|
26013
|
+
type: i0.Input,
|
|
26014
|
+
args: [{
|
|
26015
|
+
isSignal: true,
|
|
26016
|
+
alias: "ariaDescribedBy",
|
|
26017
|
+
required: false
|
|
26018
|
+
}]
|
|
26019
|
+
}],
|
|
26020
|
+
inputTestId: [{
|
|
26021
|
+
type: i0.Input,
|
|
26022
|
+
args: [{
|
|
26023
|
+
isSignal: true,
|
|
26024
|
+
alias: "inputTestId",
|
|
26025
|
+
required: false
|
|
26026
|
+
}]
|
|
26027
|
+
}],
|
|
26028
|
+
buttonTestId: [{
|
|
26029
|
+
type: i0.Input,
|
|
26030
|
+
args: [{
|
|
26031
|
+
isSignal: true,
|
|
26032
|
+
alias: "buttonTestId",
|
|
26033
|
+
required: false
|
|
26034
|
+
}]
|
|
26035
|
+
}],
|
|
26036
|
+
copied: [{
|
|
26037
|
+
type: i0.Output,
|
|
26038
|
+
args: ["copied"]
|
|
26039
|
+
}],
|
|
26040
|
+
copyFailed: [{
|
|
26041
|
+
type: i0.Output,
|
|
26042
|
+
args: ["copyFailed"]
|
|
26043
|
+
}],
|
|
26044
|
+
fieldEl: [{
|
|
26045
|
+
type: i0.ViewChild,
|
|
26046
|
+
args: ["field", { isSignal: true }]
|
|
26047
|
+
}]
|
|
26048
|
+
}
|
|
26049
|
+
});
|
|
25153
26050
|
var DateInputComponent = class DateInputComponent {
|
|
25154
26051
|
constructor() {
|
|
25155
26052
|
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
@@ -29091,15 +29988,30 @@ var ListItemComponent = class ListItemComponent {
|
|
|
29091
29988
|
this.select = output();
|
|
29092
29989
|
this.pressable = () => this.interactive() && this.leading() === "none";
|
|
29093
29990
|
this.hasImage = signal(false, ...ngDevMode ? [{ debugName: "hasImage" }] : /* istanbul ignore next */ []);
|
|
29094
|
-
this.visibleDetails = () => this.details().map((d) =>
|
|
29095
|
-
|
|
29096
|
-
|
|
29097
|
-
|
|
29098
|
-
|
|
29099
|
-
|
|
29100
|
-
|
|
29101
|
-
|
|
29102
|
-
|
|
29991
|
+
this.visibleDetails = () => this.details().map((d) => {
|
|
29992
|
+
if (typeof d === "string") return {
|
|
29993
|
+
text: d,
|
|
29994
|
+
segs: null,
|
|
29995
|
+
d: null,
|
|
29996
|
+
tone: "default"
|
|
29997
|
+
};
|
|
29998
|
+
if (!d) return null;
|
|
29999
|
+
const segs = d.segments?.length ? d.segments.map((g) => typeof g === "string" ? {
|
|
30000
|
+
text: g,
|
|
30001
|
+
bold: false,
|
|
30002
|
+
code: false
|
|
30003
|
+
} : {
|
|
30004
|
+
text: g.text,
|
|
30005
|
+
bold: !!g.bold,
|
|
30006
|
+
code: !!g.code
|
|
30007
|
+
}) : null;
|
|
30008
|
+
return {
|
|
30009
|
+
text: segs ? segs.map((g) => g.text).join("") : d.text ?? "",
|
|
30010
|
+
segs,
|
|
30011
|
+
d: d.icon ? iconPath(d.icon) ?? null : null,
|
|
30012
|
+
tone: d.tone ?? "default"
|
|
30013
|
+
};
|
|
30014
|
+
}).filter((d) => !!d && !!d.text);
|
|
29103
30015
|
}
|
|
29104
30016
|
get _borderedClass() {
|
|
29105
30017
|
return this.bordered();
|
|
@@ -29309,7 +30221,16 @@ var ListItemComponent = class ListItemComponent {
|
|
|
29309
30221
|
@if (detail.d) {
|
|
29310
30222
|
<svg class="li-detail-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="detail.d" /></svg>
|
|
29311
30223
|
}
|
|
29312
|
-
<span class="li-detail-text" data-testid="list-item-detail">
|
|
30224
|
+
<span class="li-detail-text" data-testid="list-item-detail">
|
|
30225
|
+
@if (detail.segs; as segs) {
|
|
30226
|
+
@for (seg of segs; track $index) {
|
|
30227
|
+
@if (seg.bold && seg.code) { <strong><code class="li-code">{{ seg.text }}</code></strong> }
|
|
30228
|
+
@else if (seg.bold) { <strong>{{ seg.text }}</strong> }
|
|
30229
|
+
@else if (seg.code) { <code class="li-code">{{ seg.text }}</code> }
|
|
30230
|
+
@else { <ng-container>{{ seg.text }}</ng-container> }
|
|
30231
|
+
}
|
|
30232
|
+
} @else { <ng-container>{{ detail.text }}</ng-container> }
|
|
30233
|
+
</span>
|
|
29313
30234
|
</span>
|
|
29314
30235
|
}
|
|
29315
30236
|
</div>
|
|
@@ -29368,7 +30289,7 @@ var ListItemComponent = class ListItemComponent {
|
|
|
29368
30289
|
</div>
|
|
29369
30290
|
`,
|
|
29370
30291
|
isInline: true,
|
|
29371
|
-
styles: ["ui-list-item{display:block}ui-list-item.li-bordered{border:1px solid var(--border, #e2e8f0);border-radius:12px;overflow:hidden;background:var(--surface, #fff);box-shadow:0 1px 2px #0f172a0a;margin-bottom:8px;transition:border-color .15s ease,box-shadow .15s ease}ui-list-item.li-bordered:last-child{margin-bottom:0}ui-list-item.li-bordered:hover{border-color:#cbd5e1;box-shadow:0 2px 6px #0f172a12}@media(prefers-reduced-motion:reduce){ui-list-item.li-bordered{transition:none}}.li-row{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s}.li-row:last-child{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}ui-list-item.li-bordered .li-row{border-bottom:none;padding:14px 16px}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-row.li-row--pressable{cursor:pointer}.li-row.li-row--pressable:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:-2px}.li-body.li-body--static{cursor:default}.li-row [list-item-action],.li-row [li-action]{flex-shrink:0;align-self:center}.li-row>[list-item-image]{flex:0 0 auto;align-self:center}.li-row.li-row--disabled,.li-row.li-row--disabled:hover{opacity:.72;cursor:not-allowed;background-color:var(--surface-muted, #f8fafc);background-image:repeating-linear-gradient(135deg,transparent 0,transparent 6px,rgba(100,116,139,.1) 6px,rgba(100,116,139,.1) 12px)}.li-row.li-row--disabled .li-body,.li-row.li-row--disabled .li-input,.li-row.li-row--disabled.li-row--pressable{cursor:not-allowed}ui-list-item.li-disabled.li-bordered,ui-list-item.li-disabled.li-bordered:hover{border-style:dashed;box-shadow:none}.li-row.li-row--busy,.li-row.li-row--busy .li-body{cursor:progress}.li-spinner{flex:0 0 auto;align-self:center;box-sizing:border-box;width:16px;height:16px;border:2px solid rgba(100,116,139,.3);border-top-color:var(--text-secondary, #475569);border-radius:50%;animation:li-spin .6s linear infinite}@keyframes li-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.li-spinner{animation-duration:2s}}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px}.li-icon--slate{background:#f1f5f9;color:#475569}.li-icon--amber{background:#fef3c7;color:#b45309}.li-icon--orange{background:#ffedd5;color:#c2410c}.li-icon--red{background:#fee2e2;color:#b91c1c}.li-icon--blue{background:#dbeafe;color:#1d4ed8}.li-icon--green{background:#dcfce7;color:#15803d}.li-icon--purple{background:#f3e8ff;color:#7e22ce}.li-icon--teal{background:#ccfbf1;color:#0f766e}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:6px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.9375rem;font-weight:600;line-height:1.4;letter-spacing:-.005em;color:var(--text-primary, #0f172a)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-direction:column;gap:3px;font-size:.8125rem;line-height:1.4;color:var(--text-secondary, #64748b)}.li-detail{display:flex;align-items:center;gap:6px;min-width:0}.li-detail-icon{flex:0 0 auto;color:#94a3b8}.li-detail--warning,.li-detail--warning .li-detail-icon{color:#b45309}.li-detail--danger,.li-detail--danger .li-detail-icon{color:#b91c1c}.li-row--wrap .li-detail-text{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"],
|
|
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"],
|
|
29372
30293
|
dependencies: [{
|
|
29373
30294
|
kind: "component",
|
|
29374
30295
|
type: BadgeComponent,
|
|
@@ -29428,7 +30349,16 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
29428
30349
|
@if (detail.d) {
|
|
29429
30350
|
<svg class="li-detail-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="detail.d" /></svg>
|
|
29430
30351
|
}
|
|
29431
|
-
<span class="li-detail-text" data-testid="list-item-detail">
|
|
30352
|
+
<span class="li-detail-text" data-testid="list-item-detail">
|
|
30353
|
+
@if (detail.segs; as segs) {
|
|
30354
|
+
@for (seg of segs; track $index) {
|
|
30355
|
+
@if (seg.bold && seg.code) { <strong><code class="li-code">{{ seg.text }}</code></strong> }
|
|
30356
|
+
@else if (seg.bold) { <strong>{{ seg.text }}</strong> }
|
|
30357
|
+
@else if (seg.code) { <code class="li-code">{{ seg.text }}</code> }
|
|
30358
|
+
@else { <ng-container>{{ seg.text }}</ng-container> }
|
|
30359
|
+
}
|
|
30360
|
+
} @else { <ng-container>{{ detail.text }}</ng-container> }
|
|
30361
|
+
</span>
|
|
29432
30362
|
</span>
|
|
29433
30363
|
}
|
|
29434
30364
|
</div>
|
|
@@ -29486,7 +30416,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
29486
30416
|
|
|
29487
30417
|
</div>
|
|
29488
30418
|
`,
|
|
29489
|
-
styles: ["ui-list-item{display:block}ui-list-item.li-bordered{border:1px solid var(--border, #e2e8f0);border-radius:12px;overflow:hidden;background:var(--surface, #fff);box-shadow:0 1px 2px #0f172a0a;margin-bottom:8px;transition:border-color .15s ease,box-shadow .15s ease}ui-list-item.li-bordered:last-child{margin-bottom:0}ui-list-item.li-bordered:hover{border-color:#cbd5e1;box-shadow:0 2px 6px #0f172a12}@media(prefers-reduced-motion:reduce){ui-list-item.li-bordered{transition:none}}.li-row{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s}.li-row:last-child{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}ui-list-item.li-bordered .li-row{border-bottom:none;padding:14px 16px}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-row.li-row--pressable{cursor:pointer}.li-row.li-row--pressable:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:-2px}.li-body.li-body--static{cursor:default}.li-row [list-item-action],.li-row [li-action]{flex-shrink:0;align-self:center}.li-row>[list-item-image]{flex:0 0 auto;align-self:center}.li-row.li-row--disabled,.li-row.li-row--disabled:hover{opacity:.72;cursor:not-allowed;background-color:var(--surface-muted, #f8fafc);background-image:repeating-linear-gradient(135deg,transparent 0,transparent 6px,rgba(100,116,139,.1) 6px,rgba(100,116,139,.1) 12px)}.li-row.li-row--disabled .li-body,.li-row.li-row--disabled .li-input,.li-row.li-row--disabled.li-row--pressable{cursor:not-allowed}ui-list-item.li-disabled.li-bordered,ui-list-item.li-disabled.li-bordered:hover{border-style:dashed;box-shadow:none}.li-row.li-row--busy,.li-row.li-row--busy .li-body{cursor:progress}.li-spinner{flex:0 0 auto;align-self:center;box-sizing:border-box;width:16px;height:16px;border:2px solid rgba(100,116,139,.3);border-top-color:var(--text-secondary, #475569);border-radius:50%;animation:li-spin .6s linear infinite}@keyframes li-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.li-spinner{animation-duration:2s}}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px}.li-icon--slate{background:#f1f5f9;color:#475569}.li-icon--amber{background:#fef3c7;color:#b45309}.li-icon--orange{background:#ffedd5;color:#c2410c}.li-icon--red{background:#fee2e2;color:#b91c1c}.li-icon--blue{background:#dbeafe;color:#1d4ed8}.li-icon--green{background:#dcfce7;color:#15803d}.li-icon--purple{background:#f3e8ff;color:#7e22ce}.li-icon--teal{background:#ccfbf1;color:#0f766e}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:6px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.9375rem;font-weight:600;line-height:1.4;letter-spacing:-.005em;color:var(--text-primary, #0f172a)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-direction:column;gap:3px;font-size:.8125rem;line-height:1.4;color:var(--text-secondary, #64748b)}.li-detail{display:flex;align-items:center;gap:6px;min-width:0}.li-detail-icon{flex:0 0 auto;color:#94a3b8}.li-detail--warning,.li-detail--warning .li-detail-icon{color:#b45309}.li-detail--danger,.li-detail--danger .li-detail-icon{color:#b91c1c}.li-row--wrap .li-detail-text{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"]
|
|
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"]
|
|
29490
30420
|
}]
|
|
29491
30421
|
}],
|
|
29492
30422
|
propDecorators: {
|
|
@@ -56899,6 +57829,8 @@ var ConversationsComponent = class ConversationsComponent {
|
|
|
56899
57829
|
"showField",
|
|
56900
57830
|
"showErrors",
|
|
56901
57831
|
"toastOnReject",
|
|
57832
|
+
"listRejections",
|
|
57833
|
+
"ariaDescribedBy",
|
|
56902
57834
|
"clearable",
|
|
56903
57835
|
"removeLabel",
|
|
56904
57836
|
"maxSize",
|
|
@@ -56919,6 +57851,7 @@ var ConversationsComponent = class ConversationsComponent {
|
|
|
56919
57851
|
outputs: [
|
|
56920
57852
|
"filesSelected",
|
|
56921
57853
|
"fileRejected",
|
|
57854
|
+
"filesRejected",
|
|
56922
57855
|
"fileRemoved",
|
|
56923
57856
|
"invalidChange"
|
|
56924
57857
|
]
|
|
@@ -60474,6 +61407,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
60474
61407
|
}]
|
|
60475
61408
|
}
|
|
60476
61409
|
});
|
|
60477
|
-
export { ALLOCATION_CUSTOM, ASCII_SPECIAL_PASSWORD_RULES, ActionBarComponent, AddressInputComponent, AlertComponent, AppShellComponent, AudioPlayerComponent, AvatarComponent, BADGE_VARIANT_STYLES, BadgeComponent, BankAccountFormComponent, BarRowComponent, BoardCardDirective, BoardComponent, BulkMessagePanelComponent, BusinessHoursComponent, ButtonComponent, COMMON_DETAIL_GROUP_STYLES, CalendarComponent, CardListItemComponent, CheckboxComponent, CheckboxTrailingDirective, ChipComponent, ChipGroupComponent, ColorInputComponent, ColumnFilterComponent, ColumnsComponent, ComboboxComponent, ConfirmOutletComponent, ConfirmService, ContactPickerComponent, ConversationRichBodyComponent, ConversationsComponent, DEFAULT_ALLOCATION_MODES, DEFAULT_BANK_ACCOUNT_TYPE_OPTIONS, DEFAULT_BANK_HOLDER_TYPE_OPTIONS, DEFAULT_BANK_MANDATE_TEXT, DEFAULT_EMAIL_TEMPLATE_BLOCK_GROUPS, DEFAULT_EMAIL_TEMPLATE_VARIABLE_GROUPS, DEFAULT_PASSWORD_RULES, DEFAULT_PAYMENT_METHODS, DETAIL_CARD_HEADER_BG, DETAIL_GROUP_HEADER_BG, DROPDOWN_GROUP, DataTableComponent, DateInputComponent, DateRangePickerComponent, DatetimeInputComponent, DetailCardComponent, DiscountSelectorComponent, DividerComponent, DropdownComponent, EMAIL_BLOCK_DRAG_TYPE, EMAIL_TEMPLATE_MAX_BODY, EMAIL_TEMPLATE_MAX_TEXT, EMAIL_TEMPLATE_START_TEXT, EmailTemplateEditorComponent, EmptyStateComponent, ErrorComponent, ErrorStateComponent, FORGEROUTE_CONFIG, FadeComponent, FileInputComponent, FillViewportDirective, FixedFooterComponent, FormColSpanDirective, FormComponent, FormRowComponent, FormSectionComponent, HintComponent, ICON_NAMES, IDX_BEHAVIOR_SIGNALS, INTEGRATION_CATALOG, INTEGRATION_FIELD_DEFS, INTEGRATION_GROUP_ORDER, INTEGRATION_OPTION_DEFS, IconComponent, 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, 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 };
|
|
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 };
|
|
60478
61411
|
|
|
60479
61412
|
//# sourceMappingURL=forgeroute-ui.mjs.map
|