@forgeroute/ui 0.4.76 → 0.4.77
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.
|
@@ -4705,7 +4705,11 @@ const EXTRA_ICONS = {
|
|
|
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
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
4707
|
"dollar": "M12 1v22 M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",
|
|
4708
|
-
"wrench": "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"
|
|
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",
|
|
4709
|
+
"star": "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z",
|
|
4710
|
+
"gift": "M20 12v10H4V12 M2 7h20v5H2z M12 22V7 M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z",
|
|
4711
|
+
"award": "M12 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14z M8.21 13.89L7 23l5-3 5 3-1.21-9.12",
|
|
4712
|
+
"calendar-check": "M19 4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z M16 2v4 M8 2v4 M3 10h18 M9 16l2 2 4-4"
|
|
4709
4713
|
};
|
|
4710
4714
|
const ICON_NAMES = Object.freeze(Object.keys(EXTRA_ICONS));
|
|
4711
4715
|
function iconPath(name) {
|
|
@@ -13555,6 +13559,37 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13555
13559
|
const days = item[col.daysKey ?? col.key];
|
|
13556
13560
|
return days != null && days > (col.overdueThreshold ?? 30);
|
|
13557
13561
|
}
|
|
13562
|
+
static {
|
|
13563
|
+
this._NO_ICON_TYPES = [
|
|
13564
|
+
"avatar-name",
|
|
13565
|
+
"link",
|
|
13566
|
+
"tags",
|
|
13567
|
+
"progress",
|
|
13568
|
+
"image",
|
|
13569
|
+
"actions",
|
|
13570
|
+
"days-ago"
|
|
13571
|
+
];
|
|
13572
|
+
}
|
|
13573
|
+
cellIconPath(col, item) {
|
|
13574
|
+
if (!col.iconFn || DataTableComponent._NO_ICON_TYPES.includes(col.cellType ?? "")) return null;
|
|
13575
|
+
let raw;
|
|
13576
|
+
try {
|
|
13577
|
+
raw = col.iconFn(item);
|
|
13578
|
+
} catch {
|
|
13579
|
+
return null;
|
|
13580
|
+
}
|
|
13581
|
+
const v = (raw ?? "").trim();
|
|
13582
|
+
if (!v) return null;
|
|
13583
|
+
return iconPath(v) ?? (/^[Mm][\d\s.,\-MmLlHhVvCcSsQqTtAaZz]+$/.test(v) ? v : null);
|
|
13584
|
+
}
|
|
13585
|
+
cellIconLabel(col, item) {
|
|
13586
|
+
if (!col.iconLabelFn || !this.cellIconPath(col, item)) return "";
|
|
13587
|
+
try {
|
|
13588
|
+
return (col.iconLabelFn(item) ?? "").trim();
|
|
13589
|
+
} catch {
|
|
13590
|
+
return "";
|
|
13591
|
+
}
|
|
13592
|
+
}
|
|
13558
13593
|
cardCellText(col, item) {
|
|
13559
13594
|
switch (col.cellType) {
|
|
13560
13595
|
case "date": {
|
|
@@ -13984,6 +14019,14 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13984
14019
|
</div>
|
|
13985
14020
|
}
|
|
13986
14021
|
|
|
14022
|
+
<!-- Optional leading icon (ColumnDef.iconFn, library source 2026-11-05): decorative svg, plus sr-only text only when iconLabelFn returns one. Draws nothing when there is no valid icon. -->
|
|
14023
|
+
<ng-template #cellIcon let-col="col" let-item="item">
|
|
14024
|
+
@if (cellIconPath(col, item); as iconD) {
|
|
14025
|
+
<svg class="dt-cell-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="iconD" /></svg>
|
|
14026
|
+
@if (cellIconLabel(col, item); as iconLbl) { <span class="dt-sr-only">{{ iconLbl }}</span> }
|
|
14027
|
+
}
|
|
14028
|
+
</ng-template>
|
|
14029
|
+
|
|
13987
14030
|
<!-- Shared image-cell markup (table cell + mobile card header) -->
|
|
13988
14031
|
<ng-template #imageCell let-col="col" let-item="item" let-small="small">
|
|
13989
14032
|
@let imgUrl = imageUrl(col, item);
|
|
@@ -14191,16 +14234,18 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14191
14234
|
<!-- Badge cell -->
|
|
14192
14235
|
@case ('badge') {
|
|
14193
14236
|
@let bCfg = resolveBadge(col, item);
|
|
14194
|
-
@if (bCfg) { <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> } @else { — }
|
|
14237
|
+
@if (bCfg) { @if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> } <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> } @else { — }
|
|
14195
14238
|
}
|
|
14196
14239
|
|
|
14197
14240
|
<!-- Date cell -->
|
|
14198
14241
|
@case ('date') {
|
|
14242
|
+
@if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> }
|
|
14199
14243
|
{{ item[col.key] ? (item[col.key] | date:(col.dateFormat ?? 'MMM d, y')) : '—' }}
|
|
14200
14244
|
}
|
|
14201
14245
|
|
|
14202
14246
|
<!-- Phone cell -->
|
|
14203
14247
|
@case ('phone') {
|
|
14248
|
+
@if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> }
|
|
14204
14249
|
{{ phoneCell(item[col.key]) }}
|
|
14205
14250
|
}
|
|
14206
14251
|
|
|
@@ -14288,6 +14333,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14288
14333
|
|
|
14289
14334
|
<!-- Default: plain text -->
|
|
14290
14335
|
@default {
|
|
14336
|
+
@if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> }
|
|
14291
14337
|
@if (col.starFn?.(item); as starTip) {
|
|
14292
14338
|
<ui-star class="dt-cell-star" [tooltip]="starTip" />
|
|
14293
14339
|
}
|
|
@@ -14445,6 +14491,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14445
14491
|
</span>
|
|
14446
14492
|
} @else {
|
|
14447
14493
|
<span class="dt-card-name dt-card-name-plain">
|
|
14494
|
+
@if (tc.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: tc, item: item }" /> }
|
|
14448
14495
|
@if (tc.starFn?.(item); as starTip) {
|
|
14449
14496
|
<ui-star class="dt-cell-star" [tooltip]="starTip" />
|
|
14450
14497
|
}
|
|
@@ -14482,7 +14529,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14482
14529
|
<div class="dt-card-badges">
|
|
14483
14530
|
@for (bc of _cardCols().badgeCols; track bc.key) {
|
|
14484
14531
|
@let bCfg = resolveBadge(bc, item);
|
|
14485
|
-
@if (bCfg) { <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> }
|
|
14532
|
+
@if (bCfg) { @if (bc.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: bc, item: item }" /> } <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> }
|
|
14486
14533
|
}
|
|
14487
14534
|
</div>
|
|
14488
14535
|
}
|
|
@@ -14513,6 +14560,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14513
14560
|
@if (dc.cellType === 'link') {
|
|
14514
14561
|
<ng-container [ngTemplateOutlet]="linkCell" [ngTemplateOutletContext]="{ col: dc, item: item }" />
|
|
14515
14562
|
} @else {
|
|
14563
|
+
@if (dc.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: dc, item: item }" /> }
|
|
14516
14564
|
{{ val }}
|
|
14517
14565
|
}</span>
|
|
14518
14566
|
</div>
|
|
@@ -14606,7 +14654,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14606
14654
|
</div>
|
|
14607
14655
|
`,
|
|
14608
14656
|
isInline: true,
|
|
14609
|
-
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}tfoot tr{background:#f8fafc;border-top:2px solid #e2e8f0}tfoot th.dt-foot-label{padding:10px 14px;font-size:.875rem;font-weight:700;color:#1e293b;text-transform:none;letter-spacing:normal;background:#f8fafc;border-right:1px solid #f1f5f9;white-space:nowrap}tfoot td{padding:10px 14px;font-weight:700;color:#1e293b;background:#f8fafc}.dt-card-totals{background:#f8fafc;font-weight:600}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions td.dt-td-actions:focus-within,.dt-sticky-actions td.dt-td-actions:has(.mm-dropdown){z-index:2}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#64748b}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;flex-wrap:nowrap;flex-shrink:0;align-items:stretch}.dt-header-left,.dt-header-right{width:100%;flex-basis:auto}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1 1 100%}.dt-bulk-actions{flex:1 1 auto;width:auto}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#475569;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 36px 0 12px;font-family:inherit;font-size:1rem;color:#1e293b;border:1px solid #7c8ba1;border-radius:8px;-webkit-appearance:none;appearance:none;background:#fff url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E\") no-repeat right 12px center}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"],
|
|
14657
|
+
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}tfoot tr{background:#f8fafc;border-top:2px solid #e2e8f0}tfoot th.dt-foot-label{padding:10px 14px;font-size:.875rem;font-weight:700;color:#1e293b;text-transform:none;letter-spacing:normal;background:#f8fafc;border-right:1px solid #f1f5f9;white-space:nowrap}tfoot td{padding:10px 14px;font-weight:700;color:#1e293b;background:#f8fafc}.dt-card-totals{background:#f8fafc;font-weight:600}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions td.dt-td-actions:focus-within,.dt-sticky-actions td.dt-td-actions:has(.mm-dropdown){z-index:2}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#64748b}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-cell-icon{flex-shrink:0;display:inline-block;margin-right:6px;vertical-align:-3px;color:#64748b}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;flex-wrap:nowrap;flex-shrink:0;align-items:stretch}.dt-header-left,.dt-header-right{width:100%;flex-basis:auto}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1 1 100%}.dt-bulk-actions{flex:1 1 auto;width:auto}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#475569;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 36px 0 12px;font-family:inherit;font-size:1rem;color:#1e293b;border:1px solid #7c8ba1;border-radius:8px;-webkit-appearance:none;appearance:none;background:#fff url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E\") no-repeat right 12px center}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"],
|
|
14610
14658
|
dependencies: [
|
|
14611
14659
|
{
|
|
14612
14660
|
kind: "directive",
|
|
@@ -15122,6 +15170,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15122
15170
|
</div>
|
|
15123
15171
|
}
|
|
15124
15172
|
|
|
15173
|
+
<!-- Optional leading icon (ColumnDef.iconFn, library source 2026-11-05): decorative svg, plus sr-only text only when iconLabelFn returns one. Draws nothing when there is no valid icon. -->
|
|
15174
|
+
<ng-template #cellIcon let-col="col" let-item="item">
|
|
15175
|
+
@if (cellIconPath(col, item); as iconD) {
|
|
15176
|
+
<svg class="dt-cell-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="iconD" /></svg>
|
|
15177
|
+
@if (cellIconLabel(col, item); as iconLbl) { <span class="dt-sr-only">{{ iconLbl }}</span> }
|
|
15178
|
+
}
|
|
15179
|
+
</ng-template>
|
|
15180
|
+
|
|
15125
15181
|
<!-- Shared image-cell markup (table cell + mobile card header) -->
|
|
15126
15182
|
<ng-template #imageCell let-col="col" let-item="item" let-small="small">
|
|
15127
15183
|
@let imgUrl = imageUrl(col, item);
|
|
@@ -15329,16 +15385,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15329
15385
|
<!-- Badge cell -->
|
|
15330
15386
|
@case ('badge') {
|
|
15331
15387
|
@let bCfg = resolveBadge(col, item);
|
|
15332
|
-
@if (bCfg) { <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> } @else { — }
|
|
15388
|
+
@if (bCfg) { @if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> } <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> } @else { — }
|
|
15333
15389
|
}
|
|
15334
15390
|
|
|
15335
15391
|
<!-- Date cell -->
|
|
15336
15392
|
@case ('date') {
|
|
15393
|
+
@if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> }
|
|
15337
15394
|
{{ item[col.key] ? (item[col.key] | date:(col.dateFormat ?? 'MMM d, y')) : '—' }}
|
|
15338
15395
|
}
|
|
15339
15396
|
|
|
15340
15397
|
<!-- Phone cell -->
|
|
15341
15398
|
@case ('phone') {
|
|
15399
|
+
@if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> }
|
|
15342
15400
|
{{ phoneCell(item[col.key]) }}
|
|
15343
15401
|
}
|
|
15344
15402
|
|
|
@@ -15426,6 +15484,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15426
15484
|
|
|
15427
15485
|
<!-- Default: plain text -->
|
|
15428
15486
|
@default {
|
|
15487
|
+
@if (col.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: col, item: item }" /> }
|
|
15429
15488
|
@if (col.starFn?.(item); as starTip) {
|
|
15430
15489
|
<ui-star class="dt-cell-star" [tooltip]="starTip" />
|
|
15431
15490
|
}
|
|
@@ -15583,6 +15642,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15583
15642
|
</span>
|
|
15584
15643
|
} @else {
|
|
15585
15644
|
<span class="dt-card-name dt-card-name-plain">
|
|
15645
|
+
@if (tc.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: tc, item: item }" /> }
|
|
15586
15646
|
@if (tc.starFn?.(item); as starTip) {
|
|
15587
15647
|
<ui-star class="dt-cell-star" [tooltip]="starTip" />
|
|
15588
15648
|
}
|
|
@@ -15620,7 +15680,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15620
15680
|
<div class="dt-card-badges">
|
|
15621
15681
|
@for (bc of _cardCols().badgeCols; track bc.key) {
|
|
15622
15682
|
@let bCfg = resolveBadge(bc, item);
|
|
15623
|
-
@if (bCfg) { <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> }
|
|
15683
|
+
@if (bCfg) { @if (bc.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: bc, item: item }" /> } <ui-badge [label]="bCfg.label" [variant]="bCfg.variant" /> }
|
|
15624
15684
|
}
|
|
15625
15685
|
</div>
|
|
15626
15686
|
}
|
|
@@ -15651,6 +15711,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15651
15711
|
@if (dc.cellType === 'link') {
|
|
15652
15712
|
<ng-container [ngTemplateOutlet]="linkCell" [ngTemplateOutletContext]="{ col: dc, item: item }" />
|
|
15653
15713
|
} @else {
|
|
15714
|
+
@if (dc.iconFn) { <ng-container [ngTemplateOutlet]="cellIcon" [ngTemplateOutletContext]="{ col: dc, item: item }" /> }
|
|
15654
15715
|
{{ val }}
|
|
15655
15716
|
}</span>
|
|
15656
15717
|
</div>
|
|
@@ -15743,7 +15804,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15743
15804
|
}
|
|
15744
15805
|
</div>
|
|
15745
15806
|
`,
|
|
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"]
|
|
15807
|
+
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}tfoot tr{background:#f8fafc;border-top:2px solid #e2e8f0}tfoot th.dt-foot-label{padding:10px 14px;font-size:.875rem;font-weight:700;color:#1e293b;text-transform:none;letter-spacing:normal;background:#f8fafc;border-right:1px solid #f1f5f9;white-space:nowrap}tfoot td{padding:10px 14px;font-weight:700;color:#1e293b;background:#f8fafc}.dt-card-totals{background:#f8fafc;font-weight:600}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions td.dt-td-actions:focus-within,.dt-sticky-actions td.dt-td-actions:has(.mm-dropdown){z-index:2}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#64748b}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-cell-icon{flex-shrink:0;display:inline-block;margin-right:6px;vertical-align:-3px;color:#64748b}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;flex-wrap:nowrap;flex-shrink:0;align-items:stretch}.dt-header-left,.dt-header-right{width:100%;flex-basis:auto}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1 1 100%}.dt-bulk-actions{flex:1 1 auto;width:auto}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#475569;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 36px 0 12px;font-family:inherit;font-size:1rem;color:#1e293b;border:1px solid #7c8ba1;border-radius:8px;-webkit-appearance:none;appearance:none;background:#fff url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E\") no-repeat right 12px center}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"]
|
|
15747
15808
|
}]
|
|
15748
15809
|
}],
|
|
15749
15810
|
ctorParameters: () => [],
|
|
@@ -17232,6 +17293,493 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
17232
17293
|
}]
|
|
17233
17294
|
}
|
|
17234
17295
|
});
|
|
17296
|
+
var StarRatingComponent = class StarRatingComponent {
|
|
17297
|
+
get _name() {
|
|
17298
|
+
return this.name() || this._generatedName;
|
|
17299
|
+
}
|
|
17300
|
+
constructor() {
|
|
17301
|
+
this.max = input(5, ...ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []);
|
|
17302
|
+
this.value = input(0, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
17303
|
+
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
17304
|
+
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
17305
|
+
this.hint = input("", ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
|
|
17306
|
+
this.error = input("", ...ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []);
|
|
17307
|
+
this.required = input(false, ...ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []);
|
|
17308
|
+
this.showErrors = input(false, ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
17309
|
+
this.size = input(24, ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
|
|
17310
|
+
this.readonly = input(false, ...ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []);
|
|
17311
|
+
this.name = input("", ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
17312
|
+
this._disabledInput = input(false, {
|
|
17313
|
+
...ngDevMode ? { debugName: "_disabledInput" } : /* istanbul ignore next */ {},
|
|
17314
|
+
alias: "disabled"
|
|
17315
|
+
});
|
|
17316
|
+
this._cvaDisabled = signal(false, ...ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []);
|
|
17317
|
+
this.disabled = computed(() => this._disabledInput() || this._cvaDisabled(), ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
17318
|
+
this.valueChange = output();
|
|
17319
|
+
this.invalidChange = output();
|
|
17320
|
+
this._value = linkedSignal(() => StarRatingComponent._norm(this.value()), ...ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []);
|
|
17321
|
+
this._max = computed(() => {
|
|
17322
|
+
const m = Math.floor(Number(this.max()));
|
|
17323
|
+
return Number.isFinite(m) && m >= 1 ? m : 1;
|
|
17324
|
+
}, ...ngDevMode ? [{ debugName: "_max" }] : /* istanbul ignore next */ []);
|
|
17325
|
+
this._stars = computed(() => Array.from({ length: this._max() }, (_, i) => i + 1), ...ngDevMode ? [{ debugName: "_stars" }] : /* istanbul ignore next */ []);
|
|
17326
|
+
this._shown = computed(() => Math.min(Math.max(Math.floor(this._value()), 0), this._max()), ...ngDevMode ? [{ debugName: "_shown" }] : /* istanbul ignore next */ []);
|
|
17327
|
+
this._readonlyText = computed(() => {
|
|
17328
|
+
const n = this._shown();
|
|
17329
|
+
const text = n === 0 ? "No rating" : `${n} ${n === 1 ? "star" : "stars"} out of ${this._max()}`;
|
|
17330
|
+
return this.label() ? `${this.label()}: ${text}` : text;
|
|
17331
|
+
}, ...ngDevMode ? [{ debugName: "_readonlyText" }] : /* istanbul ignore next */ []);
|
|
17332
|
+
this._path = "M10 1.5l2.6 5.3 5.9.9-4.25 4.15 1 5.85L10 14.9l-5.25 2.8 1-5.85L1.5 7.7l5.9-.9L10 1.5z";
|
|
17333
|
+
this._generatedName = `sr-${Math.random().toString(36).slice(2, 8)}`;
|
|
17334
|
+
this._descId = `${this._generatedName}-desc`;
|
|
17335
|
+
this._host = inject(ElementRef);
|
|
17336
|
+
this._reveal = createFieldReveal(this.showErrors);
|
|
17337
|
+
this._issue = computed(() => this._check(this._value()), ...ngDevMode ? [{ debugName: "_issue" }] : /* istanbul ignore next */ []);
|
|
17338
|
+
this.invalid = computed(() => !!this.error() || !!this._issue(), ...ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []);
|
|
17339
|
+
this.errorMessage = computed(() => this._issue()?.message ?? "", ...ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []);
|
|
17340
|
+
this._activeError = computed(() => this.error() || (this._reveal.revealed() ? this.errorMessage() : ""), ...ngDevMode ? [{ debugName: "_activeError" }] : /* istanbul ignore next */ []);
|
|
17341
|
+
this._onValidatorChange = () => {};
|
|
17342
|
+
this._onChange = (_) => {};
|
|
17343
|
+
this._onTouched = () => {};
|
|
17344
|
+
effect(() => {
|
|
17345
|
+
this.invalidChange.emit(this.invalid());
|
|
17346
|
+
});
|
|
17347
|
+
}
|
|
17348
|
+
ngOnChanges() {
|
|
17349
|
+
this._onValidatorChange();
|
|
17350
|
+
}
|
|
17351
|
+
validate(control) {
|
|
17352
|
+
return issueToErrors(this._check(StarRatingComponent._norm(control.value)));
|
|
17353
|
+
}
|
|
17354
|
+
registerOnValidatorChange(fn) {
|
|
17355
|
+
this._onValidatorChange = fn;
|
|
17356
|
+
}
|
|
17357
|
+
writeValue(val) {
|
|
17358
|
+
this._value.set(StarRatingComponent._norm(val));
|
|
17359
|
+
}
|
|
17360
|
+
registerOnChange(fn) {
|
|
17361
|
+
this._onChange = fn;
|
|
17362
|
+
}
|
|
17363
|
+
registerOnTouched(fn) {
|
|
17364
|
+
this._onTouched = fn;
|
|
17365
|
+
}
|
|
17366
|
+
setDisabledState(d) {
|
|
17367
|
+
this._cvaDisabled.set(d);
|
|
17368
|
+
}
|
|
17369
|
+
static _norm(v) {
|
|
17370
|
+
if (v === null || v === void 0 || v === "") return 0;
|
|
17371
|
+
const n = Number(v);
|
|
17372
|
+
return Number.isFinite(n) ? n : 0;
|
|
17373
|
+
}
|
|
17374
|
+
onSelect(n) {
|
|
17375
|
+
if (this.disabled()) return;
|
|
17376
|
+
this._value.set(n);
|
|
17377
|
+
this._onChange(n);
|
|
17378
|
+
this.valueChange.emit(n);
|
|
17379
|
+
}
|
|
17380
|
+
onKeydown(event, n) {
|
|
17381
|
+
if (this.disabled()) return;
|
|
17382
|
+
let target = null;
|
|
17383
|
+
if (event.key === "Enter") target = n;
|
|
17384
|
+
else if (event.key === "Home") target = 1;
|
|
17385
|
+
else if (event.key === "End") target = this._max();
|
|
17386
|
+
if (target === null) return;
|
|
17387
|
+
event.preventDefault();
|
|
17388
|
+
this.onSelect(target);
|
|
17389
|
+
this._host.nativeElement.querySelectorAll("input[type=\"radio\"]")[target - 1]?.focus();
|
|
17390
|
+
}
|
|
17391
|
+
onFocusOut(event) {
|
|
17392
|
+
const next = event.relatedTarget;
|
|
17393
|
+
if (next && event.currentTarget.contains(next)) return;
|
|
17394
|
+
this._onTouched();
|
|
17395
|
+
this._reveal.touched.set(true);
|
|
17396
|
+
}
|
|
17397
|
+
_check(value) {
|
|
17398
|
+
if (this.disabled() || this.readonly()) return null;
|
|
17399
|
+
if (value === 0) return this.required() ? requiredIssue(this.label()) : null;
|
|
17400
|
+
if (!Number.isInteger(value) || value < 0 || value > this._max()) return {
|
|
17401
|
+
key: "option",
|
|
17402
|
+
message: "Select a valid option."
|
|
17403
|
+
};
|
|
17404
|
+
return null;
|
|
17405
|
+
}
|
|
17406
|
+
static {
|
|
17407
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
17408
|
+
minVersion: "12.0.0",
|
|
17409
|
+
version: "22.2.2",
|
|
17410
|
+
ngImport: i0,
|
|
17411
|
+
type: StarRatingComponent,
|
|
17412
|
+
deps: [],
|
|
17413
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
17414
|
+
});
|
|
17415
|
+
}
|
|
17416
|
+
static {
|
|
17417
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
17418
|
+
minVersion: "17.0.0",
|
|
17419
|
+
version: "22.2.2",
|
|
17420
|
+
type: StarRatingComponent,
|
|
17421
|
+
isStandalone: true,
|
|
17422
|
+
selector: "ui-star-rating",
|
|
17423
|
+
inputs: {
|
|
17424
|
+
max: {
|
|
17425
|
+
classPropertyName: "max",
|
|
17426
|
+
publicName: "max",
|
|
17427
|
+
isSignal: true,
|
|
17428
|
+
isRequired: false,
|
|
17429
|
+
transformFunction: null
|
|
17430
|
+
},
|
|
17431
|
+
value: {
|
|
17432
|
+
classPropertyName: "value",
|
|
17433
|
+
publicName: "value",
|
|
17434
|
+
isSignal: true,
|
|
17435
|
+
isRequired: false,
|
|
17436
|
+
transformFunction: null
|
|
17437
|
+
},
|
|
17438
|
+
label: {
|
|
17439
|
+
classPropertyName: "label",
|
|
17440
|
+
publicName: "label",
|
|
17441
|
+
isSignal: true,
|
|
17442
|
+
isRequired: false,
|
|
17443
|
+
transformFunction: null
|
|
17444
|
+
},
|
|
17445
|
+
ariaLabel: {
|
|
17446
|
+
classPropertyName: "ariaLabel",
|
|
17447
|
+
publicName: "ariaLabel",
|
|
17448
|
+
isSignal: true,
|
|
17449
|
+
isRequired: false,
|
|
17450
|
+
transformFunction: null
|
|
17451
|
+
},
|
|
17452
|
+
hint: {
|
|
17453
|
+
classPropertyName: "hint",
|
|
17454
|
+
publicName: "hint",
|
|
17455
|
+
isSignal: true,
|
|
17456
|
+
isRequired: false,
|
|
17457
|
+
transformFunction: null
|
|
17458
|
+
},
|
|
17459
|
+
error: {
|
|
17460
|
+
classPropertyName: "error",
|
|
17461
|
+
publicName: "error",
|
|
17462
|
+
isSignal: true,
|
|
17463
|
+
isRequired: false,
|
|
17464
|
+
transformFunction: null
|
|
17465
|
+
},
|
|
17466
|
+
required: {
|
|
17467
|
+
classPropertyName: "required",
|
|
17468
|
+
publicName: "required",
|
|
17469
|
+
isSignal: true,
|
|
17470
|
+
isRequired: false,
|
|
17471
|
+
transformFunction: null
|
|
17472
|
+
},
|
|
17473
|
+
showErrors: {
|
|
17474
|
+
classPropertyName: "showErrors",
|
|
17475
|
+
publicName: "showErrors",
|
|
17476
|
+
isSignal: true,
|
|
17477
|
+
isRequired: false,
|
|
17478
|
+
transformFunction: null
|
|
17479
|
+
},
|
|
17480
|
+
size: {
|
|
17481
|
+
classPropertyName: "size",
|
|
17482
|
+
publicName: "size",
|
|
17483
|
+
isSignal: true,
|
|
17484
|
+
isRequired: false,
|
|
17485
|
+
transformFunction: null
|
|
17486
|
+
},
|
|
17487
|
+
readonly: {
|
|
17488
|
+
classPropertyName: "readonly",
|
|
17489
|
+
publicName: "readonly",
|
|
17490
|
+
isSignal: true,
|
|
17491
|
+
isRequired: false,
|
|
17492
|
+
transformFunction: null
|
|
17493
|
+
},
|
|
17494
|
+
name: {
|
|
17495
|
+
classPropertyName: "name",
|
|
17496
|
+
publicName: "name",
|
|
17497
|
+
isSignal: true,
|
|
17498
|
+
isRequired: false,
|
|
17499
|
+
transformFunction: null
|
|
17500
|
+
},
|
|
17501
|
+
_disabledInput: {
|
|
17502
|
+
classPropertyName: "_disabledInput",
|
|
17503
|
+
publicName: "disabled",
|
|
17504
|
+
isSignal: true,
|
|
17505
|
+
isRequired: false,
|
|
17506
|
+
transformFunction: null
|
|
17507
|
+
}
|
|
17508
|
+
},
|
|
17509
|
+
outputs: {
|
|
17510
|
+
valueChange: "valueChange",
|
|
17511
|
+
invalidChange: "invalidChange"
|
|
17512
|
+
},
|
|
17513
|
+
providers: [
|
|
17514
|
+
{
|
|
17515
|
+
provide: NG_VALUE_ACCESSOR,
|
|
17516
|
+
useExisting: forwardRef(() => StarRatingComponent),
|
|
17517
|
+
multi: true
|
|
17518
|
+
},
|
|
17519
|
+
{
|
|
17520
|
+
provide: NG_VALIDATORS,
|
|
17521
|
+
useExisting: forwardRef(() => StarRatingComponent),
|
|
17522
|
+
multi: true
|
|
17523
|
+
},
|
|
17524
|
+
{
|
|
17525
|
+
provide: UiFieldValidity,
|
|
17526
|
+
useExisting: forwardRef(() => StarRatingComponent)
|
|
17527
|
+
}
|
|
17528
|
+
],
|
|
17529
|
+
usesOnChanges: true,
|
|
17530
|
+
ngImport: i0,
|
|
17531
|
+
template: `
|
|
17532
|
+
@if (readonly()) {
|
|
17533
|
+
<div class="sr-ro">
|
|
17534
|
+
@if (label()) { <span class="sr-label sr-label-ro" aria-hidden="true">{{ label() }}</span> }
|
|
17535
|
+
<span class="sr-stars" role="img" [attr.aria-label]="_readonlyText()">
|
|
17536
|
+
@for (n of _stars(); track n) {
|
|
17537
|
+
<svg class="sr-svg" [class.sr-on]="n <= _shown()" [attr.width]="size()" [attr.height]="size()" viewBox="0 0 20 20" aria-hidden="true" focusable="false"><path class="sr-shape" [attr.d]="_path" /></svg>
|
|
17538
|
+
}
|
|
17539
|
+
</span>
|
|
17540
|
+
</div>
|
|
17541
|
+
} @else {
|
|
17542
|
+
<fieldset
|
|
17543
|
+
class="sr-field"
|
|
17544
|
+
role="radiogroup"
|
|
17545
|
+
[class.sr-error]="_activeError()"
|
|
17546
|
+
[class.sr-disabled]="disabled()"
|
|
17547
|
+
[disabled]="disabled()"
|
|
17548
|
+
[attr.aria-label]="label() ? null : (ariaLabel() || 'Rating')"
|
|
17549
|
+
[attr.aria-required]="required() ? 'true' : null"
|
|
17550
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
17551
|
+
[attr.aria-describedby]="(_activeError() || hint()) ? _descId : null"
|
|
17552
|
+
(focusout)="onFocusOut($event)">
|
|
17553
|
+
@if (label()) {
|
|
17554
|
+
<legend class="sr-label">
|
|
17555
|
+
{{ label() }}
|
|
17556
|
+
@if (required()) { <span class="sr-required" aria-hidden="true">*</span> }
|
|
17557
|
+
</legend>
|
|
17558
|
+
}
|
|
17559
|
+
<div class="sr-stars">
|
|
17560
|
+
@for (n of _stars(); track n) {
|
|
17561
|
+
<label class="sr-star" [class.sr-disabled]="disabled()">
|
|
17562
|
+
<input
|
|
17563
|
+
type="radio"
|
|
17564
|
+
class="sr-hidden"
|
|
17565
|
+
[name]="_name"
|
|
17566
|
+
[value]="n"
|
|
17567
|
+
[checked]="_value() === n"
|
|
17568
|
+
[disabled]="disabled()"
|
|
17569
|
+
[attr.aria-label]="n === 1 ? '1 star' : n + ' stars'"
|
|
17570
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
17571
|
+
(change)="onSelect(n)"
|
|
17572
|
+
(keydown)="onKeydown($event, n)" />
|
|
17573
|
+
<svg class="sr-svg" [class.sr-on]="n <= _shown()" [attr.width]="size()" [attr.height]="size()" viewBox="0 0 20 20" aria-hidden="true" focusable="false"><path class="sr-shape" [attr.d]="_path" /></svg>
|
|
17574
|
+
</label>
|
|
17575
|
+
}
|
|
17576
|
+
</div>
|
|
17577
|
+
@if (_activeError()) {
|
|
17578
|
+
<p class="sr-desc sr-desc-error" [id]="_descId" role="alert">{{ _activeError() }}</p>
|
|
17579
|
+
} @else if (hint()) {
|
|
17580
|
+
<p class="sr-desc" [id]="_descId">{{ hint() }}</p>
|
|
17581
|
+
}
|
|
17582
|
+
</fieldset>
|
|
17583
|
+
}
|
|
17584
|
+
`,
|
|
17585
|
+
isInline: true,
|
|
17586
|
+
styles: [":host{display:block}.sr-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.sr-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sr-label-ro{display:block}.sr-required{color:#dc2626;margin-left:2px}.sr-ro{display:flex;flex-direction:column}.sr-stars{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:2px}.sr-star{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.sr-star.sr-disabled{cursor:not-allowed;opacity:.5}.sr-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-hidden:focus-visible+.sr-svg{outline:2px solid #3b82f6;outline-offset:2px;border-radius:3px}.sr-svg{display:block}.sr-shape{fill:none;stroke:#7c8ba1;stroke-width:1.25;stroke-linejoin:round}.sr-on .sr-shape{fill:#f5b301;stroke:#a16207;stroke-width:.75}.sr-error .sr-svg:not(.sr-on) .sr-shape{stroke:#ef4444}.sr-field:not(.sr-disabled) .sr-star:hover .sr-shape{stroke:#a16207}@media(pointer:coarse),(max-width:480px){.sr-star{min-width:44px;min-height:44px}.sr-hidden{width:100%;height:100%;margin:0;clip:auto;overflow:visible;left:0;top:0;opacity:0;cursor:pointer;z-index:1}.sr-star.sr-disabled .sr-hidden{cursor:not-allowed}.sr-stars{gap:0}}.sr-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.sr-desc-error{color:#dc2626}@media(forced-colors:active){.sr-shape{stroke:CanvasText}.sr-on .sr-shape{fill:Highlight;stroke:CanvasText}}@media(prefers-reduced-motion:no-preference){.sr-shape{transition:fill .1s,stroke .1s}}\n"],
|
|
17587
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
17588
|
+
});
|
|
17589
|
+
}
|
|
17590
|
+
};
|
|
17591
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
17592
|
+
minVersion: "12.0.0",
|
|
17593
|
+
version: "22.2.2",
|
|
17594
|
+
ngImport: i0,
|
|
17595
|
+
type: StarRatingComponent,
|
|
17596
|
+
decorators: [{
|
|
17597
|
+
type: Component,
|
|
17598
|
+
args: [{
|
|
17599
|
+
selector: "ui-star-rating",
|
|
17600
|
+
standalone: true,
|
|
17601
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
17602
|
+
providers: [
|
|
17603
|
+
{
|
|
17604
|
+
provide: NG_VALUE_ACCESSOR,
|
|
17605
|
+
useExisting: forwardRef(() => StarRatingComponent),
|
|
17606
|
+
multi: true
|
|
17607
|
+
},
|
|
17608
|
+
{
|
|
17609
|
+
provide: NG_VALIDATORS,
|
|
17610
|
+
useExisting: forwardRef(() => StarRatingComponent),
|
|
17611
|
+
multi: true
|
|
17612
|
+
},
|
|
17613
|
+
{
|
|
17614
|
+
provide: UiFieldValidity,
|
|
17615
|
+
useExisting: forwardRef(() => StarRatingComponent)
|
|
17616
|
+
}
|
|
17617
|
+
],
|
|
17618
|
+
template: `
|
|
17619
|
+
@if (readonly()) {
|
|
17620
|
+
<div class="sr-ro">
|
|
17621
|
+
@if (label()) { <span class="sr-label sr-label-ro" aria-hidden="true">{{ label() }}</span> }
|
|
17622
|
+
<span class="sr-stars" role="img" [attr.aria-label]="_readonlyText()">
|
|
17623
|
+
@for (n of _stars(); track n) {
|
|
17624
|
+
<svg class="sr-svg" [class.sr-on]="n <= _shown()" [attr.width]="size()" [attr.height]="size()" viewBox="0 0 20 20" aria-hidden="true" focusable="false"><path class="sr-shape" [attr.d]="_path" /></svg>
|
|
17625
|
+
}
|
|
17626
|
+
</span>
|
|
17627
|
+
</div>
|
|
17628
|
+
} @else {
|
|
17629
|
+
<fieldset
|
|
17630
|
+
class="sr-field"
|
|
17631
|
+
role="radiogroup"
|
|
17632
|
+
[class.sr-error]="_activeError()"
|
|
17633
|
+
[class.sr-disabled]="disabled()"
|
|
17634
|
+
[disabled]="disabled()"
|
|
17635
|
+
[attr.aria-label]="label() ? null : (ariaLabel() || 'Rating')"
|
|
17636
|
+
[attr.aria-required]="required() ? 'true' : null"
|
|
17637
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
17638
|
+
[attr.aria-describedby]="(_activeError() || hint()) ? _descId : null"
|
|
17639
|
+
(focusout)="onFocusOut($event)">
|
|
17640
|
+
@if (label()) {
|
|
17641
|
+
<legend class="sr-label">
|
|
17642
|
+
{{ label() }}
|
|
17643
|
+
@if (required()) { <span class="sr-required" aria-hidden="true">*</span> }
|
|
17644
|
+
</legend>
|
|
17645
|
+
}
|
|
17646
|
+
<div class="sr-stars">
|
|
17647
|
+
@for (n of _stars(); track n) {
|
|
17648
|
+
<label class="sr-star" [class.sr-disabled]="disabled()">
|
|
17649
|
+
<input
|
|
17650
|
+
type="radio"
|
|
17651
|
+
class="sr-hidden"
|
|
17652
|
+
[name]="_name"
|
|
17653
|
+
[value]="n"
|
|
17654
|
+
[checked]="_value() === n"
|
|
17655
|
+
[disabled]="disabled()"
|
|
17656
|
+
[attr.aria-label]="n === 1 ? '1 star' : n + ' stars'"
|
|
17657
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
17658
|
+
(change)="onSelect(n)"
|
|
17659
|
+
(keydown)="onKeydown($event, n)" />
|
|
17660
|
+
<svg class="sr-svg" [class.sr-on]="n <= _shown()" [attr.width]="size()" [attr.height]="size()" viewBox="0 0 20 20" aria-hidden="true" focusable="false"><path class="sr-shape" [attr.d]="_path" /></svg>
|
|
17661
|
+
</label>
|
|
17662
|
+
}
|
|
17663
|
+
</div>
|
|
17664
|
+
@if (_activeError()) {
|
|
17665
|
+
<p class="sr-desc sr-desc-error" [id]="_descId" role="alert">{{ _activeError() }}</p>
|
|
17666
|
+
} @else if (hint()) {
|
|
17667
|
+
<p class="sr-desc" [id]="_descId">{{ hint() }}</p>
|
|
17668
|
+
}
|
|
17669
|
+
</fieldset>
|
|
17670
|
+
}
|
|
17671
|
+
`,
|
|
17672
|
+
styles: [":host{display:block}.sr-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.sr-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sr-label-ro{display:block}.sr-required{color:#dc2626;margin-left:2px}.sr-ro{display:flex;flex-direction:column}.sr-stars{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:2px}.sr-star{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.sr-star.sr-disabled{cursor:not-allowed;opacity:.5}.sr-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-hidden:focus-visible+.sr-svg{outline:2px solid #3b82f6;outline-offset:2px;border-radius:3px}.sr-svg{display:block}.sr-shape{fill:none;stroke:#7c8ba1;stroke-width:1.25;stroke-linejoin:round}.sr-on .sr-shape{fill:#f5b301;stroke:#a16207;stroke-width:.75}.sr-error .sr-svg:not(.sr-on) .sr-shape{stroke:#ef4444}.sr-field:not(.sr-disabled) .sr-star:hover .sr-shape{stroke:#a16207}@media(pointer:coarse),(max-width:480px){.sr-star{min-width:44px;min-height:44px}.sr-hidden{width:100%;height:100%;margin:0;clip:auto;overflow:visible;left:0;top:0;opacity:0;cursor:pointer;z-index:1}.sr-star.sr-disabled .sr-hidden{cursor:not-allowed}.sr-stars{gap:0}}.sr-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.sr-desc-error{color:#dc2626}@media(forced-colors:active){.sr-shape{stroke:CanvasText}.sr-on .sr-shape{fill:Highlight;stroke:CanvasText}}@media(prefers-reduced-motion:no-preference){.sr-shape{transition:fill .1s,stroke .1s}}\n"]
|
|
17673
|
+
}]
|
|
17674
|
+
}],
|
|
17675
|
+
ctorParameters: () => [],
|
|
17676
|
+
propDecorators: {
|
|
17677
|
+
max: [{
|
|
17678
|
+
type: i0.Input,
|
|
17679
|
+
args: [{
|
|
17680
|
+
isSignal: true,
|
|
17681
|
+
alias: "max",
|
|
17682
|
+
required: false
|
|
17683
|
+
}]
|
|
17684
|
+
}],
|
|
17685
|
+
value: [{
|
|
17686
|
+
type: i0.Input,
|
|
17687
|
+
args: [{
|
|
17688
|
+
isSignal: true,
|
|
17689
|
+
alias: "value",
|
|
17690
|
+
required: false
|
|
17691
|
+
}]
|
|
17692
|
+
}],
|
|
17693
|
+
label: [{
|
|
17694
|
+
type: i0.Input,
|
|
17695
|
+
args: [{
|
|
17696
|
+
isSignal: true,
|
|
17697
|
+
alias: "label",
|
|
17698
|
+
required: false
|
|
17699
|
+
}]
|
|
17700
|
+
}],
|
|
17701
|
+
ariaLabel: [{
|
|
17702
|
+
type: i0.Input,
|
|
17703
|
+
args: [{
|
|
17704
|
+
isSignal: true,
|
|
17705
|
+
alias: "ariaLabel",
|
|
17706
|
+
required: false
|
|
17707
|
+
}]
|
|
17708
|
+
}],
|
|
17709
|
+
hint: [{
|
|
17710
|
+
type: i0.Input,
|
|
17711
|
+
args: [{
|
|
17712
|
+
isSignal: true,
|
|
17713
|
+
alias: "hint",
|
|
17714
|
+
required: false
|
|
17715
|
+
}]
|
|
17716
|
+
}],
|
|
17717
|
+
error: [{
|
|
17718
|
+
type: i0.Input,
|
|
17719
|
+
args: [{
|
|
17720
|
+
isSignal: true,
|
|
17721
|
+
alias: "error",
|
|
17722
|
+
required: false
|
|
17723
|
+
}]
|
|
17724
|
+
}],
|
|
17725
|
+
required: [{
|
|
17726
|
+
type: i0.Input,
|
|
17727
|
+
args: [{
|
|
17728
|
+
isSignal: true,
|
|
17729
|
+
alias: "required",
|
|
17730
|
+
required: false
|
|
17731
|
+
}]
|
|
17732
|
+
}],
|
|
17733
|
+
showErrors: [{
|
|
17734
|
+
type: i0.Input,
|
|
17735
|
+
args: [{
|
|
17736
|
+
isSignal: true,
|
|
17737
|
+
alias: "showErrors",
|
|
17738
|
+
required: false
|
|
17739
|
+
}]
|
|
17740
|
+
}],
|
|
17741
|
+
size: [{
|
|
17742
|
+
type: i0.Input,
|
|
17743
|
+
args: [{
|
|
17744
|
+
isSignal: true,
|
|
17745
|
+
alias: "size",
|
|
17746
|
+
required: false
|
|
17747
|
+
}]
|
|
17748
|
+
}],
|
|
17749
|
+
readonly: [{
|
|
17750
|
+
type: i0.Input,
|
|
17751
|
+
args: [{
|
|
17752
|
+
isSignal: true,
|
|
17753
|
+
alias: "readonly",
|
|
17754
|
+
required: false
|
|
17755
|
+
}]
|
|
17756
|
+
}],
|
|
17757
|
+
name: [{
|
|
17758
|
+
type: i0.Input,
|
|
17759
|
+
args: [{
|
|
17760
|
+
isSignal: true,
|
|
17761
|
+
alias: "name",
|
|
17762
|
+
required: false
|
|
17763
|
+
}]
|
|
17764
|
+
}],
|
|
17765
|
+
_disabledInput: [{
|
|
17766
|
+
type: i0.Input,
|
|
17767
|
+
args: [{
|
|
17768
|
+
isSignal: true,
|
|
17769
|
+
alias: "disabled",
|
|
17770
|
+
required: false
|
|
17771
|
+
}]
|
|
17772
|
+
}],
|
|
17773
|
+
valueChange: [{
|
|
17774
|
+
type: i0.Output,
|
|
17775
|
+
args: ["valueChange"]
|
|
17776
|
+
}],
|
|
17777
|
+
invalidChange: [{
|
|
17778
|
+
type: i0.Output,
|
|
17779
|
+
args: ["invalidChange"]
|
|
17780
|
+
}]
|
|
17781
|
+
}
|
|
17782
|
+
});
|
|
17235
17783
|
const KEY_STEP = 2;
|
|
17236
17784
|
const KEY_STEP_BIG = 10;
|
|
17237
17785
|
const clamp = (n) => Math.min(100, Math.max(0, Math.round(n)));
|
|
@@ -19030,6 +19578,9 @@ var RadioComponent = class RadioComponent {
|
|
|
19030
19578
|
constructor() {
|
|
19031
19579
|
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
19032
19580
|
this.description = input("", ...ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []);
|
|
19581
|
+
this.linkLabel = input("", ...ngDevMode ? [{ debugName: "linkLabel" }] : /* istanbul ignore next */ []);
|
|
19582
|
+
this.linkUrl = input("", ...ngDevMode ? [{ debugName: "linkUrl" }] : /* istanbul ignore next */ []);
|
|
19583
|
+
this.linkTestId = input("", ...ngDevMode ? [{ debugName: "linkTestId" }] : /* istanbul ignore next */ []);
|
|
19033
19584
|
this.icon = input("", ...ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []);
|
|
19034
19585
|
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
19035
19586
|
this.testId = input("", ...ngDevMode ? [{ debugName: "testId" }] : /* istanbul ignore next */ []);
|
|
@@ -19049,10 +19600,20 @@ var RadioComponent = class RadioComponent {
|
|
|
19049
19600
|
if (!v) return null;
|
|
19050
19601
|
return iconPath(v) ?? (/^[Mm][\d\s.,\-MmLlHhVvCcSsQqTtAaZz]+$/.test(v) ? v : null);
|
|
19051
19602
|
}, ...ngDevMode ? [{ debugName: "_iconD" }] : /* istanbul ignore next */ []);
|
|
19603
|
+
this._linkHref = computed(() => {
|
|
19604
|
+
const label = this.linkLabel().trim();
|
|
19605
|
+
const url = this.linkUrl().trim();
|
|
19606
|
+
if (!label || !url) return null;
|
|
19607
|
+
if (/[\\\u0000-\u001f\u007f]/.test(url)) return null;
|
|
19608
|
+
if (/^(https?:\/\/|mailto:|tel:)/i.test(url)) return url;
|
|
19609
|
+
if (/^(\/(?![\/\\])|#)/.test(url)) return url;
|
|
19610
|
+
return null;
|
|
19611
|
+
}, ...ngDevMode ? [{ debugName: "_linkHref" }] : /* istanbul ignore next */ []);
|
|
19612
|
+
this._linkNewTab = computed(() => /^https?:\/\//i.test(this._linkHref() ?? ""), ...ngDevMode ? [{ debugName: "_linkNewTab" }] : /* istanbul ignore next */ []);
|
|
19052
19613
|
this.labelId = input("", ...ngDevMode ? [{ debugName: "labelId" }] : /* istanbul ignore next */ []);
|
|
19053
19614
|
this._generatedLabelId = `rd-${Math.random().toString(36).slice(2, 8)}-label`;
|
|
19054
19615
|
this._labelId = computed(() => this.labelId() || this._generatedLabelId, ...ngDevMode ? [{ debugName: "_labelId" }] : /* istanbul ignore next */ []);
|
|
19055
|
-
this._labelledBy = computed(() => this.label() && this.description() && !this.ariaLabel() ? this._labelId() : null, ...ngDevMode ? [{ debugName: "_labelledBy" }] : /* istanbul ignore next */ []);
|
|
19616
|
+
this._labelledBy = computed(() => this.label() && (this.description() || this._linkHref()) && !this.ariaLabel() ? this._labelId() : null, ...ngDevMode ? [{ debugName: "_labelledBy" }] : /* istanbul ignore next */ []);
|
|
19056
19617
|
this._descriptionId = `rd-${Math.random().toString(36).slice(2, 8)}-desc`;
|
|
19057
19618
|
this._describedByIds = computed(() => {
|
|
19058
19619
|
return [this.describedBy(), this.description() ? this._descriptionId : ""].filter(Boolean).join(" ") || null;
|
|
@@ -19094,6 +19655,27 @@ var RadioComponent = class RadioComponent {
|
|
|
19094
19655
|
isRequired: false,
|
|
19095
19656
|
transformFunction: null
|
|
19096
19657
|
},
|
|
19658
|
+
linkLabel: {
|
|
19659
|
+
classPropertyName: "linkLabel",
|
|
19660
|
+
publicName: "linkLabel",
|
|
19661
|
+
isSignal: true,
|
|
19662
|
+
isRequired: false,
|
|
19663
|
+
transformFunction: null
|
|
19664
|
+
},
|
|
19665
|
+
linkUrl: {
|
|
19666
|
+
classPropertyName: "linkUrl",
|
|
19667
|
+
publicName: "linkUrl",
|
|
19668
|
+
isSignal: true,
|
|
19669
|
+
isRequired: false,
|
|
19670
|
+
transformFunction: null
|
|
19671
|
+
},
|
|
19672
|
+
linkTestId: {
|
|
19673
|
+
classPropertyName: "linkTestId",
|
|
19674
|
+
publicName: "linkTestId",
|
|
19675
|
+
isSignal: true,
|
|
19676
|
+
isRequired: false,
|
|
19677
|
+
transformFunction: null
|
|
19678
|
+
},
|
|
19097
19679
|
icon: {
|
|
19098
19680
|
classPropertyName: "icon",
|
|
19099
19681
|
publicName: "icon",
|
|
@@ -19201,12 +19783,16 @@ var RadioComponent = class RadioComponent {
|
|
|
19201
19783
|
<span class="rd-text">
|
|
19202
19784
|
@if (label()) { <span class="rd-label" [id]="_labelId()">{{ label() }}</span> }
|
|
19203
19785
|
@if (description()) { <span class="rd-description" [id]="_descriptionId">{{ description() }}</span> }
|
|
19786
|
+
@if (_linkHref(); as href) {
|
|
19787
|
+
<!-- Optional link after the description (library source 2026-11-05): a real anchor, so it is its own tab stop; clicking it follows the link and never selects the radio. -->
|
|
19788
|
+
<a class="rd-link" [attr.href]="href" [attr.target]="_linkNewTab() ? '_blank' : null" [attr.rel]="_linkNewTab() ? 'noopener noreferrer' : null" [attr.data-testid]="linkTestId() || null">{{ linkLabel() }}@if (_linkNewTab()) { <span class="rd-sr">(opens in a new tab)</span> }</a>
|
|
19789
|
+
}
|
|
19204
19790
|
<ng-content />
|
|
19205
19791
|
</span>
|
|
19206
19792
|
</label>
|
|
19207
19793
|
`,
|
|
19208
19794
|
isInline: true,
|
|
19209
|
-
styles: [":host{display:block}.rd-wrap{position:relative;display:inline-flex;align-items:flex-start;gap:9px;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.rd-wrap.rd-disabled{cursor:not-allowed;opacity:.5}.rd-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rd-wrap:has(.rd-hidden:focus-visible) .rd-dot{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.rd-wrap{position:relative}.rd-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:-2px;opacity:0;cursor:pointer;z-index:1}.rd-wrap.rd-disabled .rd-hidden{cursor:not-allowed}}.rd-dot{flex-shrink:0;width:20px;height:20px;box-sizing:border-box;border:2px solid #7c8ba1;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.rd-dot.rd-checked{background:#3b82f6;border-color:#3b82f6}.rd-dot.rd-invalid:not(.rd-checked){border-color:#ef4444}.rd-wrap:hover .rd-dot:not(.rd-checked):not(.rd-disabled){border-color:#3b82f6}.rd-core{width:8px;height:8px;border-radius:50%;background:#fff}@media(max-width:640px),(pointer:coarse){.rd-dot{position:relative}.rd-dot:after{content:\"\";position:absolute;inset:-12px}}.rd-icon{flex-shrink:0;margin-top:1px;color:#64748b}.rd-text{display:flex;flex-direction:column;gap:2px}.rd-label{font-size:.875rem;color:#334155;line-height:1.4}.rd-description{font-size:.75rem;color:#64748b;line-height:1.4}\n"],
|
|
19795
|
+
styles: [":host{display:block}.rd-wrap{position:relative;display:inline-flex;align-items:flex-start;gap:9px;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.rd-wrap.rd-disabled{cursor:not-allowed;opacity:.5}.rd-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rd-wrap:has(.rd-hidden:focus-visible) .rd-dot{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.rd-wrap{position:relative}.rd-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:-2px;opacity:0;cursor:pointer;z-index:1}.rd-wrap.rd-disabled .rd-hidden{cursor:not-allowed}}.rd-dot{flex-shrink:0;width:20px;height:20px;box-sizing:border-box;border:2px solid #7c8ba1;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.rd-dot.rd-checked{background:#3b82f6;border-color:#3b82f6}.rd-dot.rd-invalid:not(.rd-checked){border-color:#ef4444}.rd-wrap:hover .rd-dot:not(.rd-checked):not(.rd-disabled){border-color:#3b82f6}.rd-core{width:8px;height:8px;border-radius:50%;background:#fff}@media(max-width:640px),(pointer:coarse){.rd-dot{position:relative}.rd-dot:after{content:\"\";position:absolute;inset:-12px}}.rd-icon{flex-shrink:0;margin-top:1px;color:#64748b}.rd-text{display:flex;flex-direction:column;gap:2px}.rd-label{font-size:.875rem;color:#334155;line-height:1.4}.rd-description{font-size:.75rem;color:#64748b;line-height:1.4}.rd-link{font-size:.75rem;line-height:1.4;color:#2563eb;text-decoration:underline;align-self:flex-start;cursor:pointer;display:inline-flex;align-items:center;min-height:24px;box-sizing:border-box;padding:0;margin:-3.6px 0}@media(pointer:coarse),(max-width:480px){.rd-link{min-height:44px;margin:-13.6px 0}}.rd-link:hover{color:#1d4ed8}.rd-link:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:2px}.rd-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"],
|
|
19210
19796
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
19211
19797
|
});
|
|
19212
19798
|
}
|
|
@@ -19249,11 +19835,15 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
19249
19835
|
<span class="rd-text">
|
|
19250
19836
|
@if (label()) { <span class="rd-label" [id]="_labelId()">{{ label() }}</span> }
|
|
19251
19837
|
@if (description()) { <span class="rd-description" [id]="_descriptionId">{{ description() }}</span> }
|
|
19838
|
+
@if (_linkHref(); as href) {
|
|
19839
|
+
<!-- Optional link after the description (library source 2026-11-05): a real anchor, so it is its own tab stop; clicking it follows the link and never selects the radio. -->
|
|
19840
|
+
<a class="rd-link" [attr.href]="href" [attr.target]="_linkNewTab() ? '_blank' : null" [attr.rel]="_linkNewTab() ? 'noopener noreferrer' : null" [attr.data-testid]="linkTestId() || null">{{ linkLabel() }}@if (_linkNewTab()) { <span class="rd-sr">(opens in a new tab)</span> }</a>
|
|
19841
|
+
}
|
|
19252
19842
|
<ng-content />
|
|
19253
19843
|
</span>
|
|
19254
19844
|
</label>
|
|
19255
19845
|
`,
|
|
19256
|
-
styles: [":host{display:block}.rd-wrap{position:relative;display:inline-flex;align-items:flex-start;gap:9px;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.rd-wrap.rd-disabled{cursor:not-allowed;opacity:.5}.rd-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rd-wrap:has(.rd-hidden:focus-visible) .rd-dot{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.rd-wrap{position:relative}.rd-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:-2px;opacity:0;cursor:pointer;z-index:1}.rd-wrap.rd-disabled .rd-hidden{cursor:not-allowed}}.rd-dot{flex-shrink:0;width:20px;height:20px;box-sizing:border-box;border:2px solid #7c8ba1;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.rd-dot.rd-checked{background:#3b82f6;border-color:#3b82f6}.rd-dot.rd-invalid:not(.rd-checked){border-color:#ef4444}.rd-wrap:hover .rd-dot:not(.rd-checked):not(.rd-disabled){border-color:#3b82f6}.rd-core{width:8px;height:8px;border-radius:50%;background:#fff}@media(max-width:640px),(pointer:coarse){.rd-dot{position:relative}.rd-dot:after{content:\"\";position:absolute;inset:-12px}}.rd-icon{flex-shrink:0;margin-top:1px;color:#64748b}.rd-text{display:flex;flex-direction:column;gap:2px}.rd-label{font-size:.875rem;color:#334155;line-height:1.4}.rd-description{font-size:.75rem;color:#64748b;line-height:1.4}\n"]
|
|
19846
|
+
styles: [":host{display:block}.rd-wrap{position:relative;display:inline-flex;align-items:flex-start;gap:9px;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.rd-wrap.rd-disabled{cursor:not-allowed;opacity:.5}.rd-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rd-wrap:has(.rd-hidden:focus-visible) .rd-dot{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.rd-wrap{position:relative}.rd-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:-2px;opacity:0;cursor:pointer;z-index:1}.rd-wrap.rd-disabled .rd-hidden{cursor:not-allowed}}.rd-dot{flex-shrink:0;width:20px;height:20px;box-sizing:border-box;border:2px solid #7c8ba1;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.rd-dot.rd-checked{background:#3b82f6;border-color:#3b82f6}.rd-dot.rd-invalid:not(.rd-checked){border-color:#ef4444}.rd-wrap:hover .rd-dot:not(.rd-checked):not(.rd-disabled){border-color:#3b82f6}.rd-core{width:8px;height:8px;border-radius:50%;background:#fff}@media(max-width:640px),(pointer:coarse){.rd-dot{position:relative}.rd-dot:after{content:\"\";position:absolute;inset:-12px}}.rd-icon{flex-shrink:0;margin-top:1px;color:#64748b}.rd-text{display:flex;flex-direction:column;gap:2px}.rd-label{font-size:.875rem;color:#334155;line-height:1.4}.rd-description{font-size:.75rem;color:#64748b;line-height:1.4}.rd-link{font-size:.75rem;line-height:1.4;color:#2563eb;text-decoration:underline;align-self:flex-start;cursor:pointer;display:inline-flex;align-items:center;min-height:24px;box-sizing:border-box;padding:0;margin:-3.6px 0}@media(pointer:coarse),(max-width:480px){.rd-link{min-height:44px;margin:-13.6px 0}}.rd-link:hover{color:#1d4ed8}.rd-link:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:2px}.rd-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"]
|
|
19257
19847
|
}]
|
|
19258
19848
|
}],
|
|
19259
19849
|
propDecorators: {
|
|
@@ -19273,6 +19863,30 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
19273
19863
|
required: false
|
|
19274
19864
|
}]
|
|
19275
19865
|
}],
|
|
19866
|
+
linkLabel: [{
|
|
19867
|
+
type: i0.Input,
|
|
19868
|
+
args: [{
|
|
19869
|
+
isSignal: true,
|
|
19870
|
+
alias: "linkLabel",
|
|
19871
|
+
required: false
|
|
19872
|
+
}]
|
|
19873
|
+
}],
|
|
19874
|
+
linkUrl: [{
|
|
19875
|
+
type: i0.Input,
|
|
19876
|
+
args: [{
|
|
19877
|
+
isSignal: true,
|
|
19878
|
+
alias: "linkUrl",
|
|
19879
|
+
required: false
|
|
19880
|
+
}]
|
|
19881
|
+
}],
|
|
19882
|
+
linkTestId: [{
|
|
19883
|
+
type: i0.Input,
|
|
19884
|
+
args: [{
|
|
19885
|
+
isSignal: true,
|
|
19886
|
+
alias: "linkTestId",
|
|
19887
|
+
required: false
|
|
19888
|
+
}]
|
|
19889
|
+
}],
|
|
19276
19890
|
icon: [{
|
|
19277
19891
|
type: i0.Input,
|
|
19278
19892
|
args: [{
|
|
@@ -19642,6 +20256,9 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
19642
20256
|
[label]="opt.label"
|
|
19643
20257
|
[description]="opt.description ?? ''"
|
|
19644
20258
|
[icon]="opt.icon ?? ''"
|
|
20259
|
+
[linkLabel]="opt.descriptionLink?.label ?? ''"
|
|
20260
|
+
[linkUrl]="opt.descriptionLink?.url ?? ''"
|
|
20261
|
+
[linkTestId]="opt.descriptionLink?.testId ?? ''"
|
|
19645
20262
|
[checked]="_value() === opt.value"
|
|
19646
20263
|
[disabled]="disabled() || !!opt.disabled"
|
|
19647
20264
|
[invalid]="!!_activeError()"
|
|
@@ -19671,6 +20288,9 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
19671
20288
|
inputs: [
|
|
19672
20289
|
"label",
|
|
19673
20290
|
"description",
|
|
20291
|
+
"linkLabel",
|
|
20292
|
+
"linkUrl",
|
|
20293
|
+
"linkTestId",
|
|
19674
20294
|
"icon",
|
|
19675
20295
|
"ariaLabel",
|
|
19676
20296
|
"testId",
|
|
@@ -19751,6 +20371,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
19751
20371
|
[label]="opt.label"
|
|
19752
20372
|
[description]="opt.description ?? ''"
|
|
19753
20373
|
[icon]="opt.icon ?? ''"
|
|
20374
|
+
[linkLabel]="opt.descriptionLink?.label ?? ''"
|
|
20375
|
+
[linkUrl]="opt.descriptionLink?.url ?? ''"
|
|
20376
|
+
[linkTestId]="opt.descriptionLink?.testId ?? ''"
|
|
19754
20377
|
[checked]="_value() === opt.value"
|
|
19755
20378
|
[disabled]="disabled() || !!opt.disabled"
|
|
19756
20379
|
[invalid]="!!_activeError()"
|
|
@@ -22464,6 +23087,8 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
22464
23087
|
this.invalid = computed(() => !!this.error() || !!this._issue(), ...ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []);
|
|
22465
23088
|
this.errorMessage = computed(() => this._issue()?.message ?? "", ...ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []);
|
|
22466
23089
|
this.invalidChange = output();
|
|
23090
|
+
this.focused = output();
|
|
23091
|
+
this.blurred = output();
|
|
22467
23092
|
this._activeError = computed(() => this.error() || (this._reveal.revealed() ? this.errorMessage() : ""), ...ngDevMode ? [{ debugName: "_activeError" }] : /* istanbul ignore next */ []);
|
|
22468
23093
|
this._onValidatorChange = () => {};
|
|
22469
23094
|
this._inputId = `ta-${Math.random().toString(36).slice(2, 8)}`;
|
|
@@ -22553,9 +23178,13 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
22553
23178
|
this._value.set(val);
|
|
22554
23179
|
this._onChange(val);
|
|
22555
23180
|
}
|
|
23181
|
+
onFocus() {
|
|
23182
|
+
this.focused.emit();
|
|
23183
|
+
}
|
|
22556
23184
|
onBlur() {
|
|
22557
23185
|
this._onTouched();
|
|
22558
23186
|
this._reveal.touched.set(true);
|
|
23187
|
+
this.blurred.emit();
|
|
22559
23188
|
}
|
|
22560
23189
|
_check(value) {
|
|
22561
23190
|
if (this.disabled() || this.readonly()) return null;
|
|
@@ -22680,7 +23309,11 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
22680
23309
|
transformFunction: null
|
|
22681
23310
|
}
|
|
22682
23311
|
},
|
|
22683
|
-
outputs: {
|
|
23312
|
+
outputs: {
|
|
23313
|
+
invalidChange: "invalidChange",
|
|
23314
|
+
focused: "focused",
|
|
23315
|
+
blurred: "blurred"
|
|
23316
|
+
},
|
|
22684
23317
|
providers: [
|
|
22685
23318
|
{
|
|
22686
23319
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -22733,6 +23366,7 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
22733
23366
|
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
22734
23367
|
[attr.aria-describedby]="_describedBy()"
|
|
22735
23368
|
(input)="onInput($event)"
|
|
23369
|
+
(focus)="onFocus()"
|
|
22736
23370
|
(blur)="onBlur()"
|
|
22737
23371
|
></textarea>
|
|
22738
23372
|
@if (!_activeError() && _unlabelledHint()) {
|
|
@@ -22810,6 +23444,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
22810
23444
|
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
22811
23445
|
[attr.aria-describedby]="_describedBy()"
|
|
22812
23446
|
(input)="onInput($event)"
|
|
23447
|
+
(focus)="onFocus()"
|
|
22813
23448
|
(blur)="onBlur()"
|
|
22814
23449
|
></textarea>
|
|
22815
23450
|
@if (!_activeError() && _unlabelledHint()) {
|
|
@@ -22940,6 +23575,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
22940
23575
|
invalidChange: [{
|
|
22941
23576
|
type: i0.Output,
|
|
22942
23577
|
args: ["invalidChange"]
|
|
23578
|
+
}],
|
|
23579
|
+
focused: [{
|
|
23580
|
+
type: i0.Output,
|
|
23581
|
+
args: ["focused"]
|
|
23582
|
+
}],
|
|
23583
|
+
blurred: [{
|
|
23584
|
+
type: i0.Output,
|
|
23585
|
+
args: ["blurred"]
|
|
22943
23586
|
}]
|
|
22944
23587
|
}
|
|
22945
23588
|
});
|
|
@@ -23217,7 +23860,11 @@ var BulkMessagePanelComponent = class BulkMessagePanelComponent {
|
|
|
23217
23860
|
"showErrors",
|
|
23218
23861
|
"disabled"
|
|
23219
23862
|
],
|
|
23220
|
-
outputs: [
|
|
23863
|
+
outputs: [
|
|
23864
|
+
"invalidChange",
|
|
23865
|
+
"focused",
|
|
23866
|
+
"blurred"
|
|
23867
|
+
]
|
|
23221
23868
|
}
|
|
23222
23869
|
],
|
|
23223
23870
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
@@ -30046,7 +30693,7 @@ var ListItemComponent = class ListItemComponent {
|
|
|
30046
30693
|
}
|
|
30047
30694
|
onRowClick(e) {
|
|
30048
30695
|
if (!this.pressable() || this.disabled() || this.busy()) return;
|
|
30049
|
-
if (e.target.closest("[list-item-action], [li-action]")) return;
|
|
30696
|
+
if (e.target.closest("[list-item-action], [li-action], [list-item-end]")) return;
|
|
30050
30697
|
this.select.emit();
|
|
30051
30698
|
}
|
|
30052
30699
|
onRowKey(e) {
|
|
@@ -30281,6 +30928,9 @@ var ListItemComponent = class ListItemComponent {
|
|
|
30281
30928
|
</label>
|
|
30282
30929
|
}
|
|
30283
30930
|
|
|
30931
|
+
<!-- Row-end content slot (library source 2026-11-05): a rating, a badge... after the text. Outside the label, so it never selects the row. -->
|
|
30932
|
+
<ng-content select="[list-item-end]" />
|
|
30933
|
+
|
|
30284
30934
|
@if (busy()) {
|
|
30285
30935
|
<span class="li-spinner" aria-hidden="true"></span>
|
|
30286
30936
|
}
|
|
@@ -30289,7 +30939,7 @@ var ListItemComponent = class ListItemComponent {
|
|
|
30289
30939
|
</div>
|
|
30290
30940
|
`,
|
|
30291
30941
|
isInline: true,
|
|
30292
|
-
styles: ["ui-list-item{display:block}ui-list-item.li-bordered{border:1px solid var(--border, #e2e8f0);border-radius:12px;overflow:hidden;background:var(--surface, #fff);box-shadow:0 1px 2px #0f172a0a;margin-bottom:8px;transition:border-color .15s ease,box-shadow .15s ease}ui-list-item.li-bordered:last-child{margin-bottom:0}ui-list-item.li-bordered:hover{border-color:#cbd5e1;box-shadow:0 2px 6px #0f172a12}@media(prefers-reduced-motion:reduce){ui-list-item.li-bordered{transition:none}}.li-row{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s}.li-row:last-child{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}ui-list-item.li-bordered .li-row{border-bottom:none;padding:14px 16px}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-row.li-row--pressable{cursor:pointer}.li-row.li-row--pressable:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:-2px}.li-body.li-body--static{cursor:default}.li-row [list-item-action],.li-row [li-action]{flex-shrink:0;align-self:center}.li-row>[list-item-image]{flex:0 0 auto;align-self:center}.li-row.li-row--disabled,.li-row.li-row--disabled:hover{opacity:.72;cursor:not-allowed;background-color:var(--surface-muted, #f8fafc);background-image:repeating-linear-gradient(135deg,transparent 0,transparent 6px,rgba(100,116,139,.1) 6px,rgba(100,116,139,.1) 12px)}.li-row.li-row--disabled .li-body,.li-row.li-row--disabled .li-input,.li-row.li-row--disabled.li-row--pressable{cursor:not-allowed}ui-list-item.li-disabled.li-bordered,ui-list-item.li-disabled.li-bordered:hover{border-style:dashed;box-shadow:none}.li-row.li-row--busy,.li-row.li-row--busy .li-body{cursor:progress}.li-spinner{flex:0 0 auto;align-self:center;box-sizing:border-box;width:16px;height:16px;border:2px solid rgba(100,116,139,.3);border-top-color:var(--text-secondary, #475569);border-radius:50%;animation:li-spin .6s linear infinite}@keyframes li-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.li-spinner{animation-duration:2s}}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px}.li-icon--slate{background:#f1f5f9;color:#475569}.li-icon--amber{background:#fef3c7;color:#b45309}.li-icon--orange{background:#ffedd5;color:#c2410c}.li-icon--red{background:#fee2e2;color:#b91c1c}.li-icon--blue{background:#dbeafe;color:#1d4ed8}.li-icon--green{background:#dcfce7;color:#15803d}.li-icon--purple{background:#f3e8ff;color:#7e22ce}.li-icon--teal{background:#ccfbf1;color:#0f766e}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:6px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.9375rem;font-weight:600;line-height:1.4;letter-spacing:-.005em;color:var(--text-primary, #0f172a)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-direction:column;gap:3px;font-size:.8125rem;line-height:1.4;color:var(--text-secondary, #64748b)}.li-detail{display:flex;align-items:center;gap:6px;min-width:0}.li-detail-icon{flex:0 0 auto;color:#94a3b8}.li-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:#f1f5f9;border-radius:4px;padding:1px 4px}.li-detail--warning,.li-detail--warning .li-detail-icon{color:#b45309}.li-detail--danger,.li-detail--danger .li-detail-icon{color:#b91c1c}.li-row--wrap .li-detail-text{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"],
|
|
30942
|
+
styles: ["ui-list-item{display:block}ui-list-item.li-bordered{border:1px solid var(--border, #e2e8f0);border-radius:12px;overflow:hidden;background:var(--surface, #fff);box-shadow:0 1px 2px #0f172a0a;margin-bottom:8px;transition:border-color .15s ease,box-shadow .15s ease}ui-list-item.li-bordered:last-child{margin-bottom:0}ui-list-item.li-bordered:hover{border-color:#cbd5e1;box-shadow:0 2px 6px #0f172a12}@media(prefers-reduced-motion:reduce){ui-list-item.li-bordered{transition:none}}.li-row{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s}.li-row:last-child{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}ui-list-item.li-bordered .li-row{border-bottom:none;padding:14px 16px}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-row.li-row--pressable{cursor:pointer}.li-row.li-row--pressable:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:-2px}.li-body.li-body--static{cursor:default}.li-row [list-item-action],.li-row [li-action]{flex-shrink:0;align-self:center}.li-row>[list-item-end]{flex:0 0 auto;align-self:center}.li-row>[list-item-image]{flex:0 0 auto;align-self:center}.li-row.li-row--disabled,.li-row.li-row--disabled:hover{opacity:.72;cursor:not-allowed;background-color:var(--surface-muted, #f8fafc);background-image:repeating-linear-gradient(135deg,transparent 0,transparent 6px,rgba(100,116,139,.1) 6px,rgba(100,116,139,.1) 12px)}.li-row.li-row--disabled .li-body,.li-row.li-row--disabled .li-input,.li-row.li-row--disabled.li-row--pressable{cursor:not-allowed}ui-list-item.li-disabled.li-bordered,ui-list-item.li-disabled.li-bordered:hover{border-style:dashed;box-shadow:none}.li-row.li-row--busy,.li-row.li-row--busy .li-body{cursor:progress}.li-spinner{flex:0 0 auto;align-self:center;box-sizing:border-box;width:16px;height:16px;border:2px solid rgba(100,116,139,.3);border-top-color:var(--text-secondary, #475569);border-radius:50%;animation:li-spin .6s linear infinite}@keyframes li-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.li-spinner{animation-duration:2s}}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px}.li-icon--slate{background:#f1f5f9;color:#475569}.li-icon--amber{background:#fef3c7;color:#b45309}.li-icon--orange{background:#ffedd5;color:#c2410c}.li-icon--red{background:#fee2e2;color:#b91c1c}.li-icon--blue{background:#dbeafe;color:#1d4ed8}.li-icon--green{background:#dcfce7;color:#15803d}.li-icon--purple{background:#f3e8ff;color:#7e22ce}.li-icon--teal{background:#ccfbf1;color:#0f766e}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:6px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.9375rem;font-weight:600;line-height:1.4;letter-spacing:-.005em;color:var(--text-primary, #0f172a)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-direction:column;gap:3px;font-size:.8125rem;line-height:1.4;color:var(--text-secondary, #64748b)}.li-detail{display:flex;align-items:center;gap:6px;min-width:0}.li-detail-icon{flex:0 0 auto;color:#94a3b8}.li-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:#f1f5f9;border-radius:4px;padding:1px 4px}.li-detail--warning,.li-detail--warning .li-detail-icon{color:#b45309}.li-detail--danger,.li-detail--danger .li-detail-icon{color:#b91c1c}.li-row--wrap .li-detail-text{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"],
|
|
30293
30943
|
dependencies: [{
|
|
30294
30944
|
kind: "component",
|
|
30295
30945
|
type: BadgeComponent,
|
|
@@ -30409,6 +31059,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
30409
31059
|
</label>
|
|
30410
31060
|
}
|
|
30411
31061
|
|
|
31062
|
+
<!-- Row-end content slot (library source 2026-11-05): a rating, a badge... after the text. Outside the label, so it never selects the row. -->
|
|
31063
|
+
<ng-content select="[list-item-end]" />
|
|
31064
|
+
|
|
30412
31065
|
@if (busy()) {
|
|
30413
31066
|
<span class="li-spinner" aria-hidden="true"></span>
|
|
30414
31067
|
}
|
|
@@ -30416,7 +31069,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
30416
31069
|
|
|
30417
31070
|
</div>
|
|
30418
31071
|
`,
|
|
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"]
|
|
31072
|
+
styles: ["ui-list-item{display:block}ui-list-item.li-bordered{border:1px solid var(--border, #e2e8f0);border-radius:12px;overflow:hidden;background:var(--surface, #fff);box-shadow:0 1px 2px #0f172a0a;margin-bottom:8px;transition:border-color .15s ease,box-shadow .15s ease}ui-list-item.li-bordered:last-child{margin-bottom:0}ui-list-item.li-bordered:hover{border-color:#cbd5e1;box-shadow:0 2px 6px #0f172a12}@media(prefers-reduced-motion:reduce){ui-list-item.li-bordered{transition:none}}.li-row{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border, #e2e8f0);transition:background .12s}.li-row:last-child{border-bottom:none}.li-row:hover{background:var(--surface-hover, #f8fafc)}ui-list-item.li-bordered .li-row{border-bottom:none;padding:14px 16px}.li-row.li-row--highlighted{background:#f0fdf4}.li-row.li-row--highlighted:hover{background:#dcfce7}.li-row.li-row--static:hover{background:transparent}.li-row.li-row--static.li-row--highlighted,.li-row.li-row--static.li-row--highlighted:hover{background:#f0fdf4}.li-row.li-row--pressable{cursor:pointer}.li-row.li-row--pressable:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:-2px}.li-body.li-body--static{cursor:default}.li-row [list-item-action],.li-row [li-action]{flex-shrink:0;align-self:center}.li-row>[list-item-end]{flex:0 0 auto;align-self:center}.li-row>[list-item-image]{flex:0 0 auto;align-self:center}.li-row.li-row--disabled,.li-row.li-row--disabled:hover{opacity:.72;cursor:not-allowed;background-color:var(--surface-muted, #f8fafc);background-image:repeating-linear-gradient(135deg,transparent 0,transparent 6px,rgba(100,116,139,.1) 6px,rgba(100,116,139,.1) 12px)}.li-row.li-row--disabled .li-body,.li-row.li-row--disabled .li-input,.li-row.li-row--disabled.li-row--pressable{cursor:not-allowed}ui-list-item.li-disabled.li-bordered,ui-list-item.li-disabled.li-bordered:hover{border-style:dashed;box-shadow:none}.li-row.li-row--busy,.li-row.li-row--busy .li-body{cursor:progress}.li-spinner{flex:0 0 auto;align-self:center;box-sizing:border-box;width:16px;height:16px;border:2px solid rgba(100,116,139,.3);border-top-color:var(--text-secondary, #475569);border-radius:50%;animation:li-spin .6s linear infinite}@keyframes li-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.li-spinner{animation-duration:2s}}.li-input{margin-top:3px;flex-shrink:0;accent-color:#16a34a;width:1rem;height:1rem;cursor:pointer}.li-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px}.li-icon--slate{background:#f1f5f9;color:#475569}.li-icon--amber{background:#fef3c7;color:#b45309}.li-icon--orange{background:#ffedd5;color:#c2410c}.li-icon--red{background:#fee2e2;color:#b91c1c}.li-icon--blue{background:#dbeafe;color:#1d4ed8}.li-icon--green{background:#dcfce7;color:#15803d}.li-icon--purple{background:#f3e8ff;color:#7e22ce}.li-icon--teal{background:#ccfbf1;color:#0f766e}.li-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:6px}.li-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.li-title{font-size:.9375rem;font-weight:600;line-height:1.4;letter-spacing:-.005em;color:var(--text-primary, #0f172a)}.li-row--wrap .li-title{min-width:0;word-break:break-word;overflow-wrap:anywhere}.li-details{display:flex;flex-direction:column;gap:3px;font-size:.8125rem;line-height:1.4;color:var(--text-secondary, #64748b)}.li-detail{display:flex;align-items:center;gap:6px;min-width:0}.li-detail-icon{flex:0 0 auto;color:#94a3b8}.li-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:#f1f5f9;border-radius:4px;padding:1px 4px}.li-detail--warning,.li-detail--warning .li-detail-icon{color:#b45309}.li-detail--danger,.li-detail--danger .li-detail-icon{color:#b91c1c}.li-row--wrap .li-detail-text{min-width:0;word-break:break-word;overflow-wrap:anywhere}\n"]
|
|
30420
31073
|
}]
|
|
30421
31074
|
}],
|
|
30422
31075
|
propDecorators: {
|
|
@@ -31571,7 +32224,11 @@ var NotesComponent = class NotesComponent {
|
|
|
31571
32224
|
"showErrors",
|
|
31572
32225
|
"disabled"
|
|
31573
32226
|
],
|
|
31574
|
-
outputs: [
|
|
32227
|
+
outputs: [
|
|
32228
|
+
"invalidChange",
|
|
32229
|
+
"focused",
|
|
32230
|
+
"blurred"
|
|
32231
|
+
]
|
|
31575
32232
|
},
|
|
31576
32233
|
{
|
|
31577
32234
|
kind: "component",
|
|
@@ -42215,6 +42872,9 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
42215
42872
|
inputs: [
|
|
42216
42873
|
"label",
|
|
42217
42874
|
"description",
|
|
42875
|
+
"linkLabel",
|
|
42876
|
+
"linkUrl",
|
|
42877
|
+
"linkTestId",
|
|
42218
42878
|
"icon",
|
|
42219
42879
|
"ariaLabel",
|
|
42220
42880
|
"testId",
|
|
@@ -57982,7 +58642,11 @@ var ConversationsComponent = class ConversationsComponent {
|
|
|
57982
58642
|
"showErrors",
|
|
57983
58643
|
"disabled"
|
|
57984
58644
|
],
|
|
57985
|
-
outputs: [
|
|
58645
|
+
outputs: [
|
|
58646
|
+
"invalidChange",
|
|
58647
|
+
"focused",
|
|
58648
|
+
"blurred"
|
|
58649
|
+
]
|
|
57986
58650
|
},
|
|
57987
58651
|
{
|
|
57988
58652
|
kind: "directive",
|
|
@@ -60958,7 +61622,11 @@ var PaymentSidePanelComponent = class PaymentSidePanelComponent {
|
|
|
60958
61622
|
"showErrors",
|
|
60959
61623
|
"disabled"
|
|
60960
61624
|
],
|
|
60961
|
-
outputs: [
|
|
61625
|
+
outputs: [
|
|
61626
|
+
"invalidChange",
|
|
61627
|
+
"focused",
|
|
61628
|
+
"blurred"
|
|
61629
|
+
]
|
|
60962
61630
|
}
|
|
60963
61631
|
],
|
|
60964
61632
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
@@ -61407,6 +62075,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
61407
62075
|
}]
|
|
61408
62076
|
}
|
|
61409
62077
|
});
|
|
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 };
|
|
62078
|
+
export { ALLOCATION_CUSTOM, ASCII_SPECIAL_PASSWORD_RULES, ActionBarComponent, AddressInputComponent, AlertComponent, AppShellComponent, AudioPlayerComponent, AvatarComponent, BADGE_VARIANT_STYLES, BadgeComponent, BankAccountFormComponent, BarRowComponent, BoardCardDirective, BoardComponent, BulkMessagePanelComponent, BusinessHoursComponent, ButtonComponent, COMMON_DETAIL_GROUP_STYLES, CalendarComponent, CardListItemComponent, CheckboxComponent, CheckboxTrailingDirective, ChipComponent, ChipGroupComponent, ColorInputComponent, ColumnFilterComponent, ColumnsComponent, ComboboxComponent, ConfirmOutletComponent, ConfirmService, ContactPickerComponent, ConversationRichBodyComponent, ConversationsComponent, CopyFieldComponent, DEFAULT_ALLOCATION_MODES, DEFAULT_BANK_ACCOUNT_TYPE_OPTIONS, DEFAULT_BANK_HOLDER_TYPE_OPTIONS, DEFAULT_BANK_MANDATE_TEXT, DEFAULT_EMAIL_TEMPLATE_BLOCK_GROUPS, DEFAULT_EMAIL_TEMPLATE_VARIABLE_GROUPS, DEFAULT_PASSWORD_RULES, DEFAULT_PAYMENT_METHODS, DETAIL_CARD_HEADER_BG, DETAIL_GROUP_HEADER_BG, DROPDOWN_GROUP, DataTableComponent, DateInputComponent, DateRangePickerComponent, DatetimeInputComponent, DetailCardComponent, DiscountSelectorComponent, DividerComponent, DropdownComponent, EMAIL_BLOCK_DRAG_TYPE, EMAIL_TEMPLATE_MAX_BODY, EMAIL_TEMPLATE_MAX_TEXT, EMAIL_TEMPLATE_START_TEXT, EmailTemplateEditorComponent, EmptyStateComponent, ErrorComponent, ErrorStateComponent, FORGEROUTE_CONFIG, FadeComponent, FileInputComponent, FillViewportDirective, FixedFooterComponent, FormColSpanDirective, FormComponent, FormRowComponent, FormSectionComponent, HintComponent, ICON_NAMES, IDX_BEHAVIOR_SIGNALS, INTEGRATION_CATALOG, INTEGRATION_FIELD_DEFS, INTEGRATION_GROUP_ORDER, INTEGRATION_OPTION_DEFS, IconComponent, IconPickerComponent, ImageComponent, ImageGalleryComponent, ImageGalleryDialogComponent, ImagePreviewComponent, ImageRepositionComponent, ImportExportComponent, ImportSourceGridComponent, KeypadComponent, KpiCardComponent, LAYOUT_GAP_PX, LISTED_SPECIAL_PASSWORD_RULES, ListComponent, ListItemComponent, LiveRegionComponent, MAX_EMAIL_ADDRESS_LENGTH, MAX_PAYMENT_AMOUNT, MIN_PAYMENT_AMOUNT, ModalComponent, MoreMenuComponent, MultiSelectComponent, NOTES_MAX_LENGTH, NotesComponent, OfflineBannerComponent, OptionCardComponent, PASSWORD_MAX_LENGTH, PAYMENT_METHOD, PAYMENT_METHOD_PLUGIN, PHONE_NUMBER_AREA_CODE_LENGTH, PHONE_NUMBER_ZIP_LENGTH, PageComponent, PaginationComponent, PanelInfoListComponent, PasswordRequirementsComponent, PaymentCustomMethodComponent, PaymentMethodPlugin, PaymentSidePanelComponent, PdfHotspotComponent, PhoneNumberPickerComponent, PillTabPanelDirective, PillTabsComponent, ProgressBarComponent, ProgressRingComponent, QrCodeComponent, QuickFilterTabsComponent, RICH_TEXT_OPTIONS, RadioComponent, RadioGroupComponent, RadioMatrixComponent, RadioOptionContentDirective, ReadonlyFieldsetComponent, ReminderAlertsComponent, RichTextEditorComponent, SEMANTIC_BADGE_MAP, SETUP_DONE_KEY, SETUP_INTEGRATIONS, SearchInputComponent, SectionHeaderComponent, SelectComponent, SetupWizardComponent, SetupWizardStepDirective, SetupWizardStepHeaderDirective, ShareMenuComponent, ShowComponent, SidePanelComponent, SidebarLayoutComponent, SignaturePadComponent, SkeletonComponent, SnackbarComponent, SnackbarService, StackComponent, StackedBarComponent, StarComponent, StarRatingComponent, StepperComponent, SwatchPickerComponent, TableToolbarComponent, TextComponent, TextInputComponent, TextTemplatePickerComponent, TextareaInputComponent, TimeInputComponent, TimelineComponent, ToastComponent, ToastService, ToggleBadgeComponent, ToggleComponent, TooltipDirective, US_LOCATIONS, US_STATES, US_STATE_OPTIONS, US_ZIP_PATTERN, UiFieldValidity, acceptLabel, appShellGroupsStorageKey, autoVariant, blockHasContent, buildDefaultSchedule, buildPreviewDocument, buildVideoBlockHtml, builtInActionIcon, businessTimeOptions, callHost, conversationDateLabel, conversationHtmlToText, conversationInitial, conversationMessageStatusLabel, conversationMessageStatusMark, createFieldReveal, createPasswordPolicyValidator, decodeFilterValues, digitsOnly, downloadBlob, emailShareUrl, emptyAddress, encodeFilterValue, encodeFilterValues, errorContextInterceptor, escapeHtml, facebookShareUrl, fileMatchesAccept, fileNameFromContentDisposition, formatAddress, formatAddressValue, formatAddressValueOneLine, formatCategoryLabel, formatConversationPhone, formatConversationTime, formatCurrency, formatDuration, formatFileSize, formatIsoDate, formatIsoDateTime, formatMessageTime, formatPhone, formatPhoneDisplay, formatShortDate, formatTime, formatVideoDuration, getEligibleIds, getEligibleOptions, getErrorMessage, getInitials, gmailShareUrl, groupMessagesByDay, hostErrorMessage, humanReadableMessage, iconPath, insideEditorBlock, integrationPlainText, integrationsForApp, integrationsOnlyFor, isBlockDrag, isEmptyAddress, isValidAmount, isValidEmailAddress, isValidZip, isWebUrl, isoKey, issueToErrors, last4Error, linkedInShareUrl, maxLengthIssue, mergeDescribedBy, normalizeAddress, normalizeHexColor, outlookShareUrl, parseAddressOneLine, parseAddressValue, parseBizHours, parseIso, parseTime, passwordMeetsRules, periodGroup, pillTabDescriptionId, pillTabId, pillTabPanelId, pillTabTitleId, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours, serializedTextLength, setupIntegrations, splitIntro, terminalTimeoutText, terminalVerdict, todayInTimezone, truncateConversationText, xShareUrl };
|
|
61411
62079
|
|
|
61412
62080
|
//# sourceMappingURL=forgeroute-ui.mjs.map
|