@forgeroute/ui 0.4.73 → 0.4.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/forgeroute-ui-messaging.mjs +139 -7
- package/fesm2022/forgeroute-ui-messaging.mjs.map +1 -1
- package/fesm2022/forgeroute-ui-stripe.mjs +10 -2
- package/fesm2022/forgeroute-ui-stripe.mjs.map +1 -1
- package/fesm2022/forgeroute-ui.mjs +1200 -143
- package/fesm2022/forgeroute-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/forgeroute-ui-messaging.d.ts +51 -2
- package/types/forgeroute-ui-stripe.d.ts +1 -1
- package/types/forgeroute-ui.d.ts +341 -41
|
@@ -1385,15 +1385,49 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
1385
1385
|
}]
|
|
1386
1386
|
}
|
|
1387
1387
|
});
|
|
1388
|
+
const HEX = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i;
|
|
1389
|
+
const BADGE_INK_DARK = "#0f172a";
|
|
1390
|
+
const BADGE_INK_LIGHT = "#ffffff";
|
|
1391
|
+
function normalizeBadgeColor(value) {
|
|
1392
|
+
const raw = (value ?? "").trim();
|
|
1393
|
+
if (!HEX.test(raw)) return null;
|
|
1394
|
+
const hex = raw.slice(1).toLowerCase();
|
|
1395
|
+
return "#" + (hex.length === 3 ? hex.split("").map((c) => c + c).join("") : hex);
|
|
1396
|
+
}
|
|
1397
|
+
function channel(v) {
|
|
1398
|
+
const s = v / 255;
|
|
1399
|
+
return s <= .03928 ? s / 12.92 : Math.pow((s + .055) / 1.055, 2.4);
|
|
1400
|
+
}
|
|
1401
|
+
function relativeLuminance(hex) {
|
|
1402
|
+
const n = parseInt(hex.slice(1), 16);
|
|
1403
|
+
return .2126 * channel(n >> 16 & 255) + .7152 * channel(n >> 8 & 255) + .0722 * channel(n & 255);
|
|
1404
|
+
}
|
|
1405
|
+
function contrastRatio(a, b) {
|
|
1406
|
+
const la = relativeLuminance(a), lb = relativeLuminance(b);
|
|
1407
|
+
const [hi, lo] = la >= lb ? [la, lb] : [lb, la];
|
|
1408
|
+
return (hi + .05) / (lo + .05);
|
|
1409
|
+
}
|
|
1410
|
+
function readableInk(background) {
|
|
1411
|
+
return contrastRatio(background, "#0f172a") >= contrastRatio(background, "#ffffff") ? BADGE_INK_DARK : BADGE_INK_LIGHT;
|
|
1412
|
+
}
|
|
1413
|
+
function customBadgeStyles(value) {
|
|
1414
|
+
const bg = normalizeBadgeColor(value);
|
|
1415
|
+
return bg ? {
|
|
1416
|
+
bg,
|
|
1417
|
+
color: readableInk(bg)
|
|
1418
|
+
} : null;
|
|
1419
|
+
}
|
|
1388
1420
|
var BadgeComponent = class BadgeComponent {
|
|
1389
1421
|
constructor() {
|
|
1390
1422
|
this.label = input.required(...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
1391
1423
|
this.variant = input(null, ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
|
|
1424
|
+
this.color = input(null, ...ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []);
|
|
1392
1425
|
this.resolvedVariant = computed(() => {
|
|
1393
1426
|
if (this.variant()) return this.variant();
|
|
1394
1427
|
return SEMANTIC_BADGE_MAP[this.label()] ?? autoVariant(this.label());
|
|
1395
1428
|
}, ...ngDevMode ? [{ debugName: "resolvedVariant" }] : /* istanbul ignore next */ []);
|
|
1396
|
-
this.
|
|
1429
|
+
this.customStyles = computed(() => customBadgeStyles(this.color()), ...ngDevMode ? [{ debugName: "customStyles" }] : /* istanbul ignore next */ []);
|
|
1430
|
+
this.styles = computed(() => this.customStyles() ?? BADGE_VARIANT_STYLES[this.resolvedVariant()] ?? BADGE_VARIANT_STYLES["gray"], ...ngDevMode ? [{ debugName: "styles" }] : /* istanbul ignore next */ []);
|
|
1397
1431
|
}
|
|
1398
1432
|
static {
|
|
1399
1433
|
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
@@ -1426,13 +1460,20 @@ var BadgeComponent = class BadgeComponent {
|
|
|
1426
1460
|
isSignal: true,
|
|
1427
1461
|
isRequired: false,
|
|
1428
1462
|
transformFunction: null
|
|
1463
|
+
},
|
|
1464
|
+
color: {
|
|
1465
|
+
classPropertyName: "color",
|
|
1466
|
+
publicName: "color",
|
|
1467
|
+
isSignal: true,
|
|
1468
|
+
isRequired: false,
|
|
1469
|
+
transformFunction: null
|
|
1429
1470
|
}
|
|
1430
1471
|
},
|
|
1431
1472
|
ngImport: i0,
|
|
1432
1473
|
template: `
|
|
1433
1474
|
<span
|
|
1434
1475
|
class="badge"
|
|
1435
|
-
[class.badge-gray]="resolvedVariant() === 'gray'"
|
|
1476
|
+
[class.badge-gray]="!customStyles() && resolvedVariant() === 'gray'"
|
|
1436
1477
|
[style.background]="styles().bg"
|
|
1437
1478
|
[style.color]="styles().color">
|
|
1438
1479
|
{{ label() }}
|
|
@@ -1458,7 +1499,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
1458
1499
|
template: `
|
|
1459
1500
|
<span
|
|
1460
1501
|
class="badge"
|
|
1461
|
-
[class.badge-gray]="resolvedVariant() === 'gray'"
|
|
1502
|
+
[class.badge-gray]="!customStyles() && resolvedVariant() === 'gray'"
|
|
1462
1503
|
[style.background]="styles().bg"
|
|
1463
1504
|
[style.color]="styles().color">
|
|
1464
1505
|
{{ label() }}
|
|
@@ -1483,6 +1524,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
1483
1524
|
alias: "variant",
|
|
1484
1525
|
required: false
|
|
1485
1526
|
}]
|
|
1527
|
+
}],
|
|
1528
|
+
color: [{
|
|
1529
|
+
type: i0.Input,
|
|
1530
|
+
args: [{
|
|
1531
|
+
isSignal: true,
|
|
1532
|
+
alias: "color",
|
|
1533
|
+
required: false
|
|
1534
|
+
}]
|
|
1486
1535
|
}]
|
|
1487
1536
|
}
|
|
1488
1537
|
});
|
|
@@ -1829,6 +1878,9 @@ const BUILT_IN_ICONS = {
|
|
|
1829
1878
|
"create-invoice": "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z M14 2v6h6 M16 13H8 M16 17H8 M10 9H8",
|
|
1830
1879
|
"create-estimate": "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z M14 2v6h6 M12 18v-6 M9 15h6",
|
|
1831
1880
|
"add-note": "M12 20h9 M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z",
|
|
1881
|
+
"history": "M3 3v5h5 M3.05 13A9 9 0 1 0 6 5.3L3 8 M12 7v5l4 2",
|
|
1882
|
+
"move-up": "M12 19V5 M5 12l7-7 7 7",
|
|
1883
|
+
"move-down": "M12 5v14 M19 12l-7 7-7-7",
|
|
1832
1884
|
"invite-portal": "M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z M15 9l3 3-3 3 M18 12H8"
|
|
1833
1885
|
};
|
|
1834
1886
|
function builtInActionIcon(type) {
|
|
@@ -2085,6 +2137,7 @@ var MoreMenuComponent = class MoreMenuComponent {
|
|
|
2085
2137
|
<div class="mm-wrapper">
|
|
2086
2138
|
<button
|
|
2087
2139
|
class="mm-trigger"
|
|
2140
|
+
data-testid="more-menu-trigger"
|
|
2088
2141
|
[attr.aria-expanded]="open()"
|
|
2089
2142
|
aria-haspopup="menu"
|
|
2090
2143
|
[attr.aria-label]="ariaLabel()"
|
|
@@ -2101,6 +2154,7 @@ var MoreMenuComponent = class MoreMenuComponent {
|
|
|
2101
2154
|
@for (action of visibleActions(); track action.type) {
|
|
2102
2155
|
<button
|
|
2103
2156
|
class="mm-item"
|
|
2157
|
+
data-testid="more-menu-item"
|
|
2104
2158
|
[class.mm-danger]="action.variant === 'danger'"
|
|
2105
2159
|
[disabled]="isDisabled(action)"
|
|
2106
2160
|
role="menuitem"
|
|
@@ -2141,6 +2195,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2141
2195
|
<div class="mm-wrapper">
|
|
2142
2196
|
<button
|
|
2143
2197
|
class="mm-trigger"
|
|
2198
|
+
data-testid="more-menu-trigger"
|
|
2144
2199
|
[attr.aria-expanded]="open()"
|
|
2145
2200
|
aria-haspopup="menu"
|
|
2146
2201
|
[attr.aria-label]="ariaLabel()"
|
|
@@ -2157,6 +2212,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2157
2212
|
@for (action of visibleActions(); track action.type) {
|
|
2158
2213
|
<button
|
|
2159
2214
|
class="mm-item"
|
|
2215
|
+
data-testid="more-menu-item"
|
|
2160
2216
|
[class.mm-danger]="action.variant === 'danger'"
|
|
2161
2217
|
[disabled]="isDisabled(action)"
|
|
2162
2218
|
role="menuitem"
|
|
@@ -7413,7 +7469,7 @@ var ProgressBarComponent = class ProgressBarComponent {
|
|
|
7413
7469
|
</div>
|
|
7414
7470
|
`,
|
|
7415
7471
|
isInline: true,
|
|
7416
|
-
styles: [":host{display:block}.pb{display:flex;align-items:center;gap:8px;min-width:100px}.pb-track{flex:1;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.pb-fill{height:100%;border-radius:3px;transition:width .3s}@media(prefers-reduced-motion:reduce){.pb-fill{transition:none}}.pb-blue{background:var(--ui-progress-fill, var(--ui-accent, #3b82f6))}.pb-green{background:#16a34a}.pb-amber{background:#f59e0b}.pb-red{background:#ef4444}.pb-slate{background:#94a3b8}@media(forced-colors:active){.pb-track{background:Canvas;border:1px solid CanvasText}.pb-fill{background:Highlight;forced-color-adjust:none}}.pb-label{font-size:.75rem;font-weight:500;color:#64748b;white-space:nowrap}\n"],
|
|
7472
|
+
styles: [":host{display:block}.pb{display:flex;align-items:center;gap:8px;min-width:100px}.pb-track{flex:1;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.pb-fill{height:100%;border-radius:3px;transition:width .3s}@media(prefers-reduced-motion:reduce){.pb-fill{transition:none}}.pb-blue{background:var(--ui-progress-fill, var(--ui-accent, #3b82f6))}.pb-green{background:#16a34a}.pb-amber{background:#f59e0b}.pb-orange{background:#f97316}.pb-red{background:#ef4444}.pb-slate{background:#94a3b8}@media(forced-colors:active){.pb-track{background:Canvas;border:1px solid CanvasText}.pb-fill{background:Highlight;forced-color-adjust:none}}.pb-label{font-size:.75rem;font-weight:500;color:#64748b;white-space:nowrap}\n"],
|
|
7417
7473
|
dependencies: [{
|
|
7418
7474
|
kind: "directive",
|
|
7419
7475
|
type: TooltipDirective,
|
|
@@ -7451,7 +7507,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
7451
7507
|
@if (label()) { <span class="pb-label">{{ label() }}</span> }
|
|
7452
7508
|
</div>
|
|
7453
7509
|
`,
|
|
7454
|
-
styles: [":host{display:block}.pb{display:flex;align-items:center;gap:8px;min-width:100px}.pb-track{flex:1;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.pb-fill{height:100%;border-radius:3px;transition:width .3s}@media(prefers-reduced-motion:reduce){.pb-fill{transition:none}}.pb-blue{background:var(--ui-progress-fill, var(--ui-accent, #3b82f6))}.pb-green{background:#16a34a}.pb-amber{background:#f59e0b}.pb-red{background:#ef4444}.pb-slate{background:#94a3b8}@media(forced-colors:active){.pb-track{background:Canvas;border:1px solid CanvasText}.pb-fill{background:Highlight;forced-color-adjust:none}}.pb-label{font-size:.75rem;font-weight:500;color:#64748b;white-space:nowrap}\n"]
|
|
7510
|
+
styles: [":host{display:block}.pb{display:flex;align-items:center;gap:8px;min-width:100px}.pb-track{flex:1;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.pb-fill{height:100%;border-radius:3px;transition:width .3s}@media(prefers-reduced-motion:reduce){.pb-fill{transition:none}}.pb-blue{background:var(--ui-progress-fill, var(--ui-accent, #3b82f6))}.pb-green{background:#16a34a}.pb-amber{background:#f59e0b}.pb-orange{background:#f97316}.pb-red{background:#ef4444}.pb-slate{background:#94a3b8}@media(forced-colors:active){.pb-track{background:Canvas;border:1px solid CanvasText}.pb-fill{background:Highlight;forced-color-adjust:none}}.pb-label{font-size:.75rem;font-weight:500;color:#64748b;white-space:nowrap}\n"]
|
|
7455
7511
|
}]
|
|
7456
7512
|
}],
|
|
7457
7513
|
propDecorators: {
|
|
@@ -9905,6 +9961,48 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
9905
9961
|
}]
|
|
9906
9962
|
}
|
|
9907
9963
|
});
|
|
9964
|
+
var HintComponent = class HintComponent {
|
|
9965
|
+
static {
|
|
9966
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
9967
|
+
minVersion: "12.0.0",
|
|
9968
|
+
version: "22.2.2",
|
|
9969
|
+
ngImport: i0,
|
|
9970
|
+
type: HintComponent,
|
|
9971
|
+
deps: [],
|
|
9972
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
9973
|
+
});
|
|
9974
|
+
}
|
|
9975
|
+
static {
|
|
9976
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
9977
|
+
minVersion: "14.0.0",
|
|
9978
|
+
version: "22.2.2",
|
|
9979
|
+
type: HintComponent,
|
|
9980
|
+
isStandalone: true,
|
|
9981
|
+
selector: "ui-hint",
|
|
9982
|
+
ngImport: i0,
|
|
9983
|
+
template: `<p class="hint"><ng-content /></p>`,
|
|
9984
|
+
isInline: true,
|
|
9985
|
+
styles: [":host{display:block}.hint{font-size:.75rem;line-height:1.4;color:#64748b;margin:0}\n"],
|
|
9986
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
9987
|
+
});
|
|
9988
|
+
}
|
|
9989
|
+
};
|
|
9990
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
9991
|
+
minVersion: "12.0.0",
|
|
9992
|
+
version: "22.2.2",
|
|
9993
|
+
ngImport: i0,
|
|
9994
|
+
type: HintComponent,
|
|
9995
|
+
decorators: [{
|
|
9996
|
+
type: Component,
|
|
9997
|
+
args: [{
|
|
9998
|
+
selector: "ui-hint",
|
|
9999
|
+
standalone: true,
|
|
10000
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
10001
|
+
template: `<p class="hint"><ng-content /></p>`,
|
|
10002
|
+
styles: [":host{display:block}.hint{font-size:.75rem;line-height:1.4;color:#64748b;margin:0}\n"]
|
|
10003
|
+
}]
|
|
10004
|
+
}]
|
|
10005
|
+
});
|
|
9908
10006
|
function detectCsvDelimiter(text) {
|
|
9909
10007
|
const counts = {
|
|
9910
10008
|
",": 0,
|
|
@@ -10014,6 +10112,7 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
10014
10112
|
this.importing = false;
|
|
10015
10113
|
this.importResult = null;
|
|
10016
10114
|
this.csvFile = null;
|
|
10115
|
+
this.idPrefix = `ie-ex-${ImportExportComponent.nextId++}-`;
|
|
10017
10116
|
this.destroyRef.onDestroy(() => this.stopImportTimer());
|
|
10018
10117
|
effect(() => {
|
|
10019
10118
|
const v = this._configInput();
|
|
@@ -10209,6 +10308,12 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
10209
10308
|
if (new Set(candidates).size === 1) this.columnMapping[field.key] = candidates[0];
|
|
10210
10309
|
}
|
|
10211
10310
|
}
|
|
10311
|
+
static {
|
|
10312
|
+
this.nextId = 0;
|
|
10313
|
+
}
|
|
10314
|
+
exampleId(field) {
|
|
10315
|
+
return this.idPrefix + field.key;
|
|
10316
|
+
}
|
|
10212
10317
|
get canSubmit() {
|
|
10213
10318
|
return (this.config.importFields ?? []).filter((f) => f.required).every((f) => !!this.columnMapping[f.key]);
|
|
10214
10319
|
}
|
|
@@ -10496,10 +10601,12 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
10496
10601
|
}
|
|
10497
10602
|
{{ field.label }}
|
|
10498
10603
|
@if (field.required) { <span class="ie-required" aria-hidden="true">*</span> }
|
|
10604
|
+
@if (field.example) { <ui-hint class="ie-field-example" [attr.id]="exampleId(field)">e.g. {{ field.example }}</ui-hint> }
|
|
10499
10605
|
</span>
|
|
10500
10606
|
<div role="cell">
|
|
10501
10607
|
<ui-select
|
|
10502
10608
|
[ariaLabel]="field.label + ' column' + (field.required ? ', required' : '')"
|
|
10609
|
+
[ariaDescribedBy]="field.example ? exampleId(field) : ''"
|
|
10503
10610
|
[options]="csvHeaderOptions"
|
|
10504
10611
|
[(ngModel)]="columnMapping[field.key]"
|
|
10505
10612
|
[error]="field.required && !columnMapping[field.key] ? 'Required' : ''" />
|
|
@@ -10653,7 +10760,7 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
10653
10760
|
</ui-modal>
|
|
10654
10761
|
`,
|
|
10655
10762
|
isInline: true,
|
|
10656
|
-
styles: [".ie-actions{display:flex;gap:8px}.ie-steps{display:flex;align-items:center;margin-bottom:24px;gap:0;list-style:none;padding:0}.ie-step{display:flex;align-items:center;gap:6px;flex-shrink:0}.ie-step-num{width:24px;height:24px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ie-step-label{font-size:.8125rem;color:#64748b;font-weight:500}.ie-step.active .ie-step-num{background:#3b82f6;color:#fff}.ie-step.active .ie-step-label{color:#1e293b;font-weight:600}.ie-step.done .ie-step-num{background:#22c55e;color:#fff}.ie-step.done .ie-step-label{color:#64748b}.ie-step:not(:last-child){flex:1 1 auto}.ie-step:not(:last-child):after{content:\"\";flex:1;height:1px;background:#e2e8f0;margin:0 8px;min-width:16px}.ie-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ie-source-step{display:flex;flex-direction:column;gap:16px}.ie-upload-area{display:flex;flex-direction:column;gap:12px}.ie-template-hint{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.875rem;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 14px}.ie-file-hidden{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;overflow:hidden;cursor:pointer}.ie-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 24px;border:2px dashed #7c8ba1;border-radius:10px;cursor:pointer;transition:border-color .18s ease,background .18s ease}.ie-dropzone:hover,.ie-dropzone:focus-within{border-color:#3b82f6;background:#f0f7ff}.ie-dropzone:focus-within{outline:2px solid #3b82f6;outline-offset:2px}.ie-dropzone.has-error{border-color:#ef4444}.ie-dropzone-text{font-size:.9375rem;font-weight:600;color:#1e293b}.ie-dropzone-sub{font-size:.8125rem;color:#64748b}.ie-mapping{display:flex;flex-direction:column;gap:12px}.ie-mapping-hint{font-size:.875rem;color:#64748b;margin:0}.ie-mapping-success{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;font-size:.875rem;color:#15803d}.ie-mapping-success svg{flex-shrink:0;margin-top:1px;color:#16a34a}.ie-mapping-unmatched{display:flex;align-items:flex-start;gap:6px;font-size:.8125rem;color:#64748b;margin:0;padding-top:4px}.ie-mapping-unmatched svg{flex-shrink:0;margin-top:1px}.ie-mapping-unmatched em{font-style:normal;color:#475569}.ie-mapping-table{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.ie-mapping-header{display:grid;grid-template-columns:1fr 1fr 1fr;padding:8px 12px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase}.ie-mapping-row{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;padding:8px 12px;border-bottom:1px solid #f1f5f9;gap:8px}.ie-mapping-row:last-child{border-bottom:none}.ie-mapping-row.ie-mapping-row--required-missing{background:#fff7ed}.ie-mapping-row.ie-mapping-row--required-missing .ie-field-label{color:#c2410c}.ie-match-icon{color:#16a34a;margin-right:4px;vertical-align:-1px}.ie-field-label{display:flex;align-items:center;font-size:.875rem;color:#1e293b;font-weight:500}.ie-required{color:#dc2626;margin-left:2px}.ie-sample{font-size:.8125rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-preview{display:flex;flex-direction:column;gap:12px}.ie-preview-scroll{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.ie-preview-scroll:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.ie-result:focus,.ie-source-step:focus,.ie-upload-area:focus,.ie-mapping:focus,.ie-preview:focus{outline:none}.ie-result-list{list-style:none;margin:0;padding:0}.ie-preview-table{width:100%;border-collapse:collapse;font-size:.8125rem}.ie-preview-table th{background:#f8fafc;padding:8px 12px;text-align:left;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;border-bottom:1px solid #e2e8f0;white-space:nowrap}.ie-preview-table td{padding:7px 12px;color:#1e293b;border-bottom:1px solid #f1f5f9;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-preview-table tr:last-child td{border-bottom:none}.ie-result{display:flex;flex-direction:column;gap:16px}.ie-result-summary{display:flex;flex-direction:column;gap:8px}.ie-result-stat{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;font-size:.9375rem}.ie-result-stat.success{background:#f0fdf4;color:#15803d}.ie-result-stat.success svg{stroke:#22c55e}.ie-result-stat.error{background:#fef2f2;color:#b91c1c}.ie-result-stat.error svg{stroke:#ef4444}.ie-result-stat.warning{background:#fffbeb;color:#b45309}.ie-result-stat.warning svg{stroke:#f59e0b}.ie-progress{margin-top:14px}.ie-progress-track{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden;position:relative}.ie-progress-bar{position:absolute;inset:0 auto 0 0;width:35%;border-radius:999px;background:#2563eb;animation:ie-progress-slide 1.2s ease-in-out infinite}.ie-progress-text{margin:8px 0 0;font-size:.8125rem;color:#475569}@keyframes ie-progress-slide{0%{left:-35%}to{left:100%}}@media(prefers-reduced-motion:reduce){.ie-progress-bar{animation:none;width:100%;opacity:.5}}.ie-errors-list{border:1px solid #fecaca;border-radius:8px;overflow:hidden}.ie-errors-title{font-size:.8125rem;font-weight:600;color:#b91c1c;padding:8px 12px;background:#fef2f2;margin:0;border-bottom:1px solid #fecaca}.ie-error-row{display:flex;gap:12px;padding:7px 12px;border-bottom:1px solid #fff1f2;font-size:.8125rem;color:#374151}.ie-error-row:last-child{border-bottom:none}.ie-error-row-num{font-weight:600;color:#b91c1c;flex-shrink:0}.ie-warnings-list{border:1px solid #fde68a;border-radius:8px;overflow:hidden}.ie-warnings-title{font-size:.8125rem;font-weight:600;color:#b45309;padding:8px 12px;background:#fffbeb;margin:0;border-bottom:1px solid #fde68a}.ie-warning-row{display:flex;gap:12px;padding:7px 12px;border-bottom:1px solid #fef3c7;font-size:.8125rem;color:#374151}.ie-warning-row:last-child{border-bottom:none}.ie-warning-row-num{font-weight:600;color:#b45309;flex-shrink:0}.ie-error{font-size:.875rem;color:#dc2626;margin:0}.ie-footer-right{display:flex;gap:8px;align-items:center}@media(max-width:600px){.ie-step-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ie-dropzone{padding:24px 16px}.ie-mapping-header{grid-template-columns:1fr 1fr}.ie-mapping-header span:last-child{display:none}.ie-mapping-row{grid-template-columns:1fr 1fr}.ie-mapping-row .ie-sample{display:none}}\n"],
|
|
10763
|
+
styles: [".ie-actions{display:flex;gap:8px}.ie-steps{display:flex;align-items:center;margin-bottom:24px;gap:0;list-style:none;padding:0}.ie-step{display:flex;align-items:center;gap:6px;flex-shrink:0}.ie-step-num{width:24px;height:24px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ie-step-label{font-size:.8125rem;color:#64748b;font-weight:500}.ie-step.active .ie-step-num{background:#3b82f6;color:#fff}.ie-step.active .ie-step-label{color:#1e293b;font-weight:600}.ie-step.done .ie-step-num{background:#22c55e;color:#fff}.ie-step.done .ie-step-label{color:#64748b}.ie-step:not(:last-child){flex:1 1 auto}.ie-step:not(:last-child):after{content:\"\";flex:1;height:1px;background:#e2e8f0;margin:0 8px;min-width:16px}.ie-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ie-source-step{display:flex;flex-direction:column;gap:16px}.ie-upload-area{display:flex;flex-direction:column;gap:12px}.ie-template-hint{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.875rem;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 14px}.ie-file-hidden{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;overflow:hidden;cursor:pointer}.ie-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 24px;border:2px dashed #7c8ba1;border-radius:10px;cursor:pointer;transition:border-color .18s ease,background .18s ease}.ie-dropzone:hover,.ie-dropzone:focus-within{border-color:#3b82f6;background:#f0f7ff}.ie-dropzone:focus-within{outline:2px solid #3b82f6;outline-offset:2px}.ie-dropzone.has-error{border-color:#ef4444}.ie-dropzone-text{font-size:.9375rem;font-weight:600;color:#1e293b}.ie-dropzone-sub{font-size:.8125rem;color:#64748b}.ie-mapping{display:flex;flex-direction:column;gap:12px}.ie-mapping-hint{font-size:.875rem;color:#64748b;margin:0}.ie-mapping-success{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;font-size:.875rem;color:#15803d}.ie-mapping-success svg{flex-shrink:0;margin-top:1px;color:#16a34a}.ie-mapping-unmatched{display:flex;align-items:flex-start;gap:6px;font-size:.8125rem;color:#64748b;margin:0;padding-top:4px}.ie-mapping-unmatched svg{flex-shrink:0;margin-top:1px}.ie-mapping-unmatched em{font-style:normal;color:#475569}.ie-mapping-table{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.ie-mapping-header{display:grid;grid-template-columns:1fr 1fr 1fr;padding:8px 12px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase}.ie-mapping-row{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;padding:8px 12px;border-bottom:1px solid #f1f5f9;gap:8px}.ie-mapping-row:last-child{border-bottom:none}.ie-mapping-row.ie-mapping-row--required-missing{background:#fff7ed}.ie-mapping-row.ie-mapping-row--required-missing .ie-field-label{color:#c2410c}.ie-match-icon{color:#16a34a;margin-right:4px;vertical-align:-1px}.ie-field-label{display:flex;flex-wrap:wrap;align-items:center;font-size:.875rem;color:#1e293b;font-weight:500}.ie-field-example{flex-basis:100%;font-weight:400}.ie-required{color:#dc2626;margin-left:2px}.ie-sample{font-size:.8125rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-preview{display:flex;flex-direction:column;gap:12px}.ie-preview-scroll{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.ie-preview-scroll:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.ie-result:focus,.ie-source-step:focus,.ie-upload-area:focus,.ie-mapping:focus,.ie-preview:focus{outline:none}.ie-result-list{list-style:none;margin:0;padding:0}.ie-preview-table{width:100%;border-collapse:collapse;font-size:.8125rem}.ie-preview-table th{background:#f8fafc;padding:8px 12px;text-align:left;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;border-bottom:1px solid #e2e8f0;white-space:nowrap}.ie-preview-table td{padding:7px 12px;color:#1e293b;border-bottom:1px solid #f1f5f9;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-preview-table tr:last-child td{border-bottom:none}.ie-result{display:flex;flex-direction:column;gap:16px}.ie-result-summary{display:flex;flex-direction:column;gap:8px}.ie-result-stat{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;font-size:.9375rem}.ie-result-stat.success{background:#f0fdf4;color:#15803d}.ie-result-stat.success svg{stroke:#22c55e}.ie-result-stat.error{background:#fef2f2;color:#b91c1c}.ie-result-stat.error svg{stroke:#ef4444}.ie-result-stat.warning{background:#fffbeb;color:#b45309}.ie-result-stat.warning svg{stroke:#f59e0b}.ie-progress{margin-top:14px}.ie-progress-track{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden;position:relative}.ie-progress-bar{position:absolute;inset:0 auto 0 0;width:35%;border-radius:999px;background:#2563eb;animation:ie-progress-slide 1.2s ease-in-out infinite}.ie-progress-text{margin:8px 0 0;font-size:.8125rem;color:#475569}@keyframes ie-progress-slide{0%{left:-35%}to{left:100%}}@media(prefers-reduced-motion:reduce){.ie-progress-bar{animation:none;width:100%;opacity:.5}}.ie-errors-list{border:1px solid #fecaca;border-radius:8px;overflow:hidden}.ie-errors-title{font-size:.8125rem;font-weight:600;color:#b91c1c;padding:8px 12px;background:#fef2f2;margin:0;border-bottom:1px solid #fecaca}.ie-error-row{display:flex;gap:12px;padding:7px 12px;border-bottom:1px solid #fff1f2;font-size:.8125rem;color:#374151}.ie-error-row:last-child{border-bottom:none}.ie-error-row-num{font-weight:600;color:#b91c1c;flex-shrink:0}.ie-warnings-list{border:1px solid #fde68a;border-radius:8px;overflow:hidden}.ie-warnings-title{font-size:.8125rem;font-weight:600;color:#b45309;padding:8px 12px;background:#fffbeb;margin:0;border-bottom:1px solid #fde68a}.ie-warning-row{display:flex;gap:12px;padding:7px 12px;border-bottom:1px solid #fef3c7;font-size:.8125rem;color:#374151}.ie-warning-row:last-child{border-bottom:none}.ie-warning-row-num{font-weight:600;color:#b45309;flex-shrink:0}.ie-error{font-size:.875rem;color:#dc2626;margin:0}.ie-footer-right{display:flex;gap:8px;align-items:center}@media(max-width:600px){.ie-step-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ie-dropzone{padding:24px 16px}.ie-mapping-header{grid-template-columns:1fr 1fr}.ie-mapping-header span:last-child{display:none}.ie-mapping-row{grid-template-columns:1fr 1fr}.ie-mapping-row .ie-sample{display:none}}\n"],
|
|
10657
10764
|
dependencies: [
|
|
10658
10765
|
{
|
|
10659
10766
|
kind: "ngmodule",
|
|
@@ -10764,6 +10871,11 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
10764
10871
|
"ariaLabel"
|
|
10765
10872
|
],
|
|
10766
10873
|
outputs: ["sourceSelect"]
|
|
10874
|
+
},
|
|
10875
|
+
{
|
|
10876
|
+
kind: "component",
|
|
10877
|
+
type: HintComponent,
|
|
10878
|
+
selector: "ui-hint"
|
|
10767
10879
|
}
|
|
10768
10880
|
],
|
|
10769
10881
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
@@ -10786,7 +10898,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10786
10898
|
ModalComponent,
|
|
10787
10899
|
ButtonComponent,
|
|
10788
10900
|
SelectComponent,
|
|
10789
|
-
ImportSourceGridComponent
|
|
10901
|
+
ImportSourceGridComponent,
|
|
10902
|
+
HintComponent
|
|
10790
10903
|
],
|
|
10791
10904
|
template: `
|
|
10792
10905
|
<!-- Trigger buttons -->
|
|
@@ -10872,10 +10985,12 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10872
10985
|
}
|
|
10873
10986
|
{{ field.label }}
|
|
10874
10987
|
@if (field.required) { <span class="ie-required" aria-hidden="true">*</span> }
|
|
10988
|
+
@if (field.example) { <ui-hint class="ie-field-example" [attr.id]="exampleId(field)">e.g. {{ field.example }}</ui-hint> }
|
|
10875
10989
|
</span>
|
|
10876
10990
|
<div role="cell">
|
|
10877
10991
|
<ui-select
|
|
10878
10992
|
[ariaLabel]="field.label + ' column' + (field.required ? ', required' : '')"
|
|
10993
|
+
[ariaDescribedBy]="field.example ? exampleId(field) : ''"
|
|
10879
10994
|
[options]="csvHeaderOptions"
|
|
10880
10995
|
[(ngModel)]="columnMapping[field.key]"
|
|
10881
10996
|
[error]="field.required && !columnMapping[field.key] ? 'Required' : ''" />
|
|
@@ -11028,7 +11143,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11028
11143
|
|
|
11029
11144
|
</ui-modal>
|
|
11030
11145
|
`,
|
|
11031
|
-
styles: [".ie-actions{display:flex;gap:8px}.ie-steps{display:flex;align-items:center;margin-bottom:24px;gap:0;list-style:none;padding:0}.ie-step{display:flex;align-items:center;gap:6px;flex-shrink:0}.ie-step-num{width:24px;height:24px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ie-step-label{font-size:.8125rem;color:#64748b;font-weight:500}.ie-step.active .ie-step-num{background:#3b82f6;color:#fff}.ie-step.active .ie-step-label{color:#1e293b;font-weight:600}.ie-step.done .ie-step-num{background:#22c55e;color:#fff}.ie-step.done .ie-step-label{color:#64748b}.ie-step:not(:last-child){flex:1 1 auto}.ie-step:not(:last-child):after{content:\"\";flex:1;height:1px;background:#e2e8f0;margin:0 8px;min-width:16px}.ie-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ie-source-step{display:flex;flex-direction:column;gap:16px}.ie-upload-area{display:flex;flex-direction:column;gap:12px}.ie-template-hint{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.875rem;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 14px}.ie-file-hidden{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;overflow:hidden;cursor:pointer}.ie-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 24px;border:2px dashed #7c8ba1;border-radius:10px;cursor:pointer;transition:border-color .18s ease,background .18s ease}.ie-dropzone:hover,.ie-dropzone:focus-within{border-color:#3b82f6;background:#f0f7ff}.ie-dropzone:focus-within{outline:2px solid #3b82f6;outline-offset:2px}.ie-dropzone.has-error{border-color:#ef4444}.ie-dropzone-text{font-size:.9375rem;font-weight:600;color:#1e293b}.ie-dropzone-sub{font-size:.8125rem;color:#64748b}.ie-mapping{display:flex;flex-direction:column;gap:12px}.ie-mapping-hint{font-size:.875rem;color:#64748b;margin:0}.ie-mapping-success{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;font-size:.875rem;color:#15803d}.ie-mapping-success svg{flex-shrink:0;margin-top:1px;color:#16a34a}.ie-mapping-unmatched{display:flex;align-items:flex-start;gap:6px;font-size:.8125rem;color:#64748b;margin:0;padding-top:4px}.ie-mapping-unmatched svg{flex-shrink:0;margin-top:1px}.ie-mapping-unmatched em{font-style:normal;color:#475569}.ie-mapping-table{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.ie-mapping-header{display:grid;grid-template-columns:1fr 1fr 1fr;padding:8px 12px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase}.ie-mapping-row{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;padding:8px 12px;border-bottom:1px solid #f1f5f9;gap:8px}.ie-mapping-row:last-child{border-bottom:none}.ie-mapping-row.ie-mapping-row--required-missing{background:#fff7ed}.ie-mapping-row.ie-mapping-row--required-missing .ie-field-label{color:#c2410c}.ie-match-icon{color:#16a34a;margin-right:4px;vertical-align:-1px}.ie-field-label{display:flex;align-items:center;font-size:.875rem;color:#1e293b;font-weight:500}.ie-required{color:#dc2626;margin-left:2px}.ie-sample{font-size:.8125rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-preview{display:flex;flex-direction:column;gap:12px}.ie-preview-scroll{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.ie-preview-scroll:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.ie-result:focus,.ie-source-step:focus,.ie-upload-area:focus,.ie-mapping:focus,.ie-preview:focus{outline:none}.ie-result-list{list-style:none;margin:0;padding:0}.ie-preview-table{width:100%;border-collapse:collapse;font-size:.8125rem}.ie-preview-table th{background:#f8fafc;padding:8px 12px;text-align:left;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;border-bottom:1px solid #e2e8f0;white-space:nowrap}.ie-preview-table td{padding:7px 12px;color:#1e293b;border-bottom:1px solid #f1f5f9;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-preview-table tr:last-child td{border-bottom:none}.ie-result{display:flex;flex-direction:column;gap:16px}.ie-result-summary{display:flex;flex-direction:column;gap:8px}.ie-result-stat{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;font-size:.9375rem}.ie-result-stat.success{background:#f0fdf4;color:#15803d}.ie-result-stat.success svg{stroke:#22c55e}.ie-result-stat.error{background:#fef2f2;color:#b91c1c}.ie-result-stat.error svg{stroke:#ef4444}.ie-result-stat.warning{background:#fffbeb;color:#b45309}.ie-result-stat.warning svg{stroke:#f59e0b}.ie-progress{margin-top:14px}.ie-progress-track{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden;position:relative}.ie-progress-bar{position:absolute;inset:0 auto 0 0;width:35%;border-radius:999px;background:#2563eb;animation:ie-progress-slide 1.2s ease-in-out infinite}.ie-progress-text{margin:8px 0 0;font-size:.8125rem;color:#475569}@keyframes ie-progress-slide{0%{left:-35%}to{left:100%}}@media(prefers-reduced-motion:reduce){.ie-progress-bar{animation:none;width:100%;opacity:.5}}.ie-errors-list{border:1px solid #fecaca;border-radius:8px;overflow:hidden}.ie-errors-title{font-size:.8125rem;font-weight:600;color:#b91c1c;padding:8px 12px;background:#fef2f2;margin:0;border-bottom:1px solid #fecaca}.ie-error-row{display:flex;gap:12px;padding:7px 12px;border-bottom:1px solid #fff1f2;font-size:.8125rem;color:#374151}.ie-error-row:last-child{border-bottom:none}.ie-error-row-num{font-weight:600;color:#b91c1c;flex-shrink:0}.ie-warnings-list{border:1px solid #fde68a;border-radius:8px;overflow:hidden}.ie-warnings-title{font-size:.8125rem;font-weight:600;color:#b45309;padding:8px 12px;background:#fffbeb;margin:0;border-bottom:1px solid #fde68a}.ie-warning-row{display:flex;gap:12px;padding:7px 12px;border-bottom:1px solid #fef3c7;font-size:.8125rem;color:#374151}.ie-warning-row:last-child{border-bottom:none}.ie-warning-row-num{font-weight:600;color:#b45309;flex-shrink:0}.ie-error{font-size:.875rem;color:#dc2626;margin:0}.ie-footer-right{display:flex;gap:8px;align-items:center}@media(max-width:600px){.ie-step-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ie-dropzone{padding:24px 16px}.ie-mapping-header{grid-template-columns:1fr 1fr}.ie-mapping-header span:last-child{display:none}.ie-mapping-row{grid-template-columns:1fr 1fr}.ie-mapping-row .ie-sample{display:none}}\n"]
|
|
11146
|
+
styles: [".ie-actions{display:flex;gap:8px}.ie-steps{display:flex;align-items:center;margin-bottom:24px;gap:0;list-style:none;padding:0}.ie-step{display:flex;align-items:center;gap:6px;flex-shrink:0}.ie-step-num{width:24px;height:24px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ie-step-label{font-size:.8125rem;color:#64748b;font-weight:500}.ie-step.active .ie-step-num{background:#3b82f6;color:#fff}.ie-step.active .ie-step-label{color:#1e293b;font-weight:600}.ie-step.done .ie-step-num{background:#22c55e;color:#fff}.ie-step.done .ie-step-label{color:#64748b}.ie-step:not(:last-child){flex:1 1 auto}.ie-step:not(:last-child):after{content:\"\";flex:1;height:1px;background:#e2e8f0;margin:0 8px;min-width:16px}.ie-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ie-source-step{display:flex;flex-direction:column;gap:16px}.ie-upload-area{display:flex;flex-direction:column;gap:12px}.ie-template-hint{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.875rem;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 14px}.ie-file-hidden{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;overflow:hidden;cursor:pointer}.ie-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 24px;border:2px dashed #7c8ba1;border-radius:10px;cursor:pointer;transition:border-color .18s ease,background .18s ease}.ie-dropzone:hover,.ie-dropzone:focus-within{border-color:#3b82f6;background:#f0f7ff}.ie-dropzone:focus-within{outline:2px solid #3b82f6;outline-offset:2px}.ie-dropzone.has-error{border-color:#ef4444}.ie-dropzone-text{font-size:.9375rem;font-weight:600;color:#1e293b}.ie-dropzone-sub{font-size:.8125rem;color:#64748b}.ie-mapping{display:flex;flex-direction:column;gap:12px}.ie-mapping-hint{font-size:.875rem;color:#64748b;margin:0}.ie-mapping-success{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;font-size:.875rem;color:#15803d}.ie-mapping-success svg{flex-shrink:0;margin-top:1px;color:#16a34a}.ie-mapping-unmatched{display:flex;align-items:flex-start;gap:6px;font-size:.8125rem;color:#64748b;margin:0;padding-top:4px}.ie-mapping-unmatched svg{flex-shrink:0;margin-top:1px}.ie-mapping-unmatched em{font-style:normal;color:#475569}.ie-mapping-table{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.ie-mapping-header{display:grid;grid-template-columns:1fr 1fr 1fr;padding:8px 12px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase}.ie-mapping-row{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;padding:8px 12px;border-bottom:1px solid #f1f5f9;gap:8px}.ie-mapping-row:last-child{border-bottom:none}.ie-mapping-row.ie-mapping-row--required-missing{background:#fff7ed}.ie-mapping-row.ie-mapping-row--required-missing .ie-field-label{color:#c2410c}.ie-match-icon{color:#16a34a;margin-right:4px;vertical-align:-1px}.ie-field-label{display:flex;flex-wrap:wrap;align-items:center;font-size:.875rem;color:#1e293b;font-weight:500}.ie-field-example{flex-basis:100%;font-weight:400}.ie-required{color:#dc2626;margin-left:2px}.ie-sample{font-size:.8125rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-preview{display:flex;flex-direction:column;gap:12px}.ie-preview-scroll{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.ie-preview-scroll:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.ie-result:focus,.ie-source-step:focus,.ie-upload-area:focus,.ie-mapping:focus,.ie-preview:focus{outline:none}.ie-result-list{list-style:none;margin:0;padding:0}.ie-preview-table{width:100%;border-collapse:collapse;font-size:.8125rem}.ie-preview-table th{background:#f8fafc;padding:8px 12px;text-align:left;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;border-bottom:1px solid #e2e8f0;white-space:nowrap}.ie-preview-table td{padding:7px 12px;color:#1e293b;border-bottom:1px solid #f1f5f9;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-preview-table tr:last-child td{border-bottom:none}.ie-result{display:flex;flex-direction:column;gap:16px}.ie-result-summary{display:flex;flex-direction:column;gap:8px}.ie-result-stat{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;font-size:.9375rem}.ie-result-stat.success{background:#f0fdf4;color:#15803d}.ie-result-stat.success svg{stroke:#22c55e}.ie-result-stat.error{background:#fef2f2;color:#b91c1c}.ie-result-stat.error svg{stroke:#ef4444}.ie-result-stat.warning{background:#fffbeb;color:#b45309}.ie-result-stat.warning svg{stroke:#f59e0b}.ie-progress{margin-top:14px}.ie-progress-track{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden;position:relative}.ie-progress-bar{position:absolute;inset:0 auto 0 0;width:35%;border-radius:999px;background:#2563eb;animation:ie-progress-slide 1.2s ease-in-out infinite}.ie-progress-text{margin:8px 0 0;font-size:.8125rem;color:#475569}@keyframes ie-progress-slide{0%{left:-35%}to{left:100%}}@media(prefers-reduced-motion:reduce){.ie-progress-bar{animation:none;width:100%;opacity:.5}}.ie-errors-list{border:1px solid #fecaca;border-radius:8px;overflow:hidden}.ie-errors-title{font-size:.8125rem;font-weight:600;color:#b91c1c;padding:8px 12px;background:#fef2f2;margin:0;border-bottom:1px solid #fecaca}.ie-error-row{display:flex;gap:12px;padding:7px 12px;border-bottom:1px solid #fff1f2;font-size:.8125rem;color:#374151}.ie-error-row:last-child{border-bottom:none}.ie-error-row-num{font-weight:600;color:#b91c1c;flex-shrink:0}.ie-warnings-list{border:1px solid #fde68a;border-radius:8px;overflow:hidden}.ie-warnings-title{font-size:.8125rem;font-weight:600;color:#b45309;padding:8px 12px;background:#fffbeb;margin:0;border-bottom:1px solid #fde68a}.ie-warning-row{display:flex;gap:12px;padding:7px 12px;border-bottom:1px solid #fef3c7;font-size:.8125rem;color:#374151}.ie-warning-row:last-child{border-bottom:none}.ie-warning-row-num{font-weight:600;color:#b45309;flex-shrink:0}.ie-error{font-size:.875rem;color:#dc2626;margin:0}.ie-footer-right{display:flex;gap:8px;align-items:center}@media(max-width:600px){.ie-step-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ie-dropzone{padding:24px 16px}.ie-mapping-header{grid-template-columns:1fr 1fr}.ie-mapping-header span:last-child{display:none}.ie-mapping-row{grid-template-columns:1fr 1fr}.ie-mapping-row .ie-sample{display:none}}\n"]
|
|
11032
11147
|
}]
|
|
11033
11148
|
}],
|
|
11034
11149
|
ctorParameters: () => [],
|
|
@@ -13991,7 +14106,8 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13991
14106
|
<span class="dt-tags">
|
|
13992
14107
|
<ui-badge
|
|
13993
14108
|
[label]="tags[0].name"
|
|
13994
|
-
[variant]="tags[0].variant ?? null"
|
|
14109
|
+
[variant]="tags[0].variant ?? null"
|
|
14110
|
+
[color]="tags[0].color ?? null" />
|
|
13995
14111
|
@if (tags.length > 1) {
|
|
13996
14112
|
<span
|
|
13997
14113
|
class="dt-tags-more"
|
|
@@ -14304,7 +14420,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14304
14420
|
[style.left.px]="_tagTooltip()!.x"
|
|
14305
14421
|
[style.top.px]="_tagTooltip()!.y">
|
|
14306
14422
|
@for (tag of _tagTooltip()!.tags; track tag.name) {
|
|
14307
|
-
<ui-badge [label]="tag.name" [variant]="tag.variant ?? 'gray'" />
|
|
14423
|
+
<ui-badge [label]="tag.name" [variant]="tag.variant ?? 'gray'" [color]="tag.color ?? null" />
|
|
14308
14424
|
}
|
|
14309
14425
|
</div>
|
|
14310
14426
|
}
|
|
@@ -14440,7 +14556,11 @@ var DataTableComponent = class DataTableComponent {
|
|
|
14440
14556
|
kind: "component",
|
|
14441
14557
|
type: BadgeComponent,
|
|
14442
14558
|
selector: "ui-badge",
|
|
14443
|
-
inputs: [
|
|
14559
|
+
inputs: [
|
|
14560
|
+
"label",
|
|
14561
|
+
"variant",
|
|
14562
|
+
"color"
|
|
14563
|
+
]
|
|
14444
14564
|
},
|
|
14445
14565
|
{
|
|
14446
14566
|
kind: "component",
|
|
@@ -15081,7 +15201,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15081
15201
|
<span class="dt-tags">
|
|
15082
15202
|
<ui-badge
|
|
15083
15203
|
[label]="tags[0].name"
|
|
15084
|
-
[variant]="tags[0].variant ?? null"
|
|
15204
|
+
[variant]="tags[0].variant ?? null"
|
|
15205
|
+
[color]="tags[0].color ?? null" />
|
|
15085
15206
|
@if (tags.length > 1) {
|
|
15086
15207
|
<span
|
|
15087
15208
|
class="dt-tags-more"
|
|
@@ -15394,7 +15515,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15394
15515
|
[style.left.px]="_tagTooltip()!.x"
|
|
15395
15516
|
[style.top.px]="_tagTooltip()!.y">
|
|
15396
15517
|
@for (tag of _tagTooltip()!.tags; track tag.name) {
|
|
15397
|
-
<ui-badge [label]="tag.name" [variant]="tag.variant ?? 'gray'" />
|
|
15518
|
+
<ui-badge [label]="tag.name" [variant]="tag.variant ?? 'gray'" [color]="tag.color ?? null" />
|
|
15398
15519
|
}
|
|
15399
15520
|
</div>
|
|
15400
15521
|
}
|
|
@@ -16002,8 +16123,8 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
16002
16123
|
<!-- Header -->
|
|
16003
16124
|
<div class="sp-header">
|
|
16004
16125
|
<div class="sp-header-text">
|
|
16005
|
-
<h2 class="sp-title" [id]="titleId">{{ title() }}</h2>
|
|
16006
|
-
@if (subtitle()) { <p class="sp-subtitle">{{ subtitle() }}</p> }
|
|
16126
|
+
<h2 class="sp-title" data-testid="side-panel-title" [id]="titleId">{{ title() }}</h2>
|
|
16127
|
+
@if (subtitle()) { <p class="sp-subtitle" data-testid="side-panel-subtitle">{{ subtitle() }}</p> }
|
|
16007
16128
|
</div>
|
|
16008
16129
|
<button class="sp-close" type="button" (click)="closed.emit()" aria-label="Dismiss panel">
|
|
16009
16130
|
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
@@ -16094,8 +16215,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
16094
16215
|
<!-- Header -->
|
|
16095
16216
|
<div class="sp-header">
|
|
16096
16217
|
<div class="sp-header-text">
|
|
16097
|
-
<h2 class="sp-title" [id]="titleId">{{ title() }}</h2>
|
|
16098
|
-
@if (subtitle()) { <p class="sp-subtitle">{{ subtitle() }}</p> }
|
|
16218
|
+
<h2 class="sp-title" data-testid="side-panel-title" [id]="titleId">{{ title() }}</h2>
|
|
16219
|
+
@if (subtitle()) { <p class="sp-subtitle" data-testid="side-panel-subtitle">{{ subtitle() }}</p> }
|
|
16099
16220
|
</div>
|
|
16100
16221
|
<button class="sp-close" type="button" (click)="closed.emit()" aria-label="Dismiss panel">
|
|
16101
16222
|
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
@@ -20098,7 +20219,11 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
20098
20219
|
kind: "component",
|
|
20099
20220
|
type: BadgeComponent,
|
|
20100
20221
|
selector: "ui-badge",
|
|
20101
|
-
inputs: [
|
|
20222
|
+
inputs: [
|
|
20223
|
+
"label",
|
|
20224
|
+
"variant",
|
|
20225
|
+
"color"
|
|
20226
|
+
]
|
|
20102
20227
|
},
|
|
20103
20228
|
{
|
|
20104
20229
|
kind: "component",
|
|
@@ -20503,6 +20628,12 @@ function pillTabId(name, key) {
|
|
|
20503
20628
|
function pillTabPanelId(name, key) {
|
|
20504
20629
|
return `${name}-panel-${key}`;
|
|
20505
20630
|
}
|
|
20631
|
+
function pillTabTitleId(name) {
|
|
20632
|
+
return `${name}--title`;
|
|
20633
|
+
}
|
|
20634
|
+
function pillTabDescriptionId(name) {
|
|
20635
|
+
return `${name}--description`;
|
|
20636
|
+
}
|
|
20506
20637
|
var PillTabPanelDirective = class PillTabPanelDirective {
|
|
20507
20638
|
constructor() {
|
|
20508
20639
|
this.key = input.required({
|
|
@@ -20512,6 +20643,10 @@ var PillTabPanelDirective = class PillTabPanelDirective {
|
|
|
20512
20643
|
this.tabsName = input.required(...ngDevMode ? [{ debugName: "tabsName" }] : /* istanbul ignore next */ []);
|
|
20513
20644
|
this.activeKey = input(null, ...ngDevMode ? [{ debugName: "activeKey" }] : /* istanbul ignore next */ []);
|
|
20514
20645
|
this.tabbable = input(false, ...ngDevMode ? [{ debugName: "tabbable" }] : /* istanbul ignore next */ []);
|
|
20646
|
+
this.describedByHeader = input(false, ...ngDevMode ? [{ debugName: "describedByHeader" }] : /* istanbul ignore next */ []);
|
|
20647
|
+
}
|
|
20648
|
+
describedId() {
|
|
20649
|
+
return this.describedByHeader() && !this.isHidden() ? pillTabDescriptionId(this.tabsName()) : null;
|
|
20515
20650
|
}
|
|
20516
20651
|
panelId() {
|
|
20517
20652
|
return pillTabPanelId(this.tabsName(), this.key());
|
|
@@ -20568,6 +20703,13 @@ var PillTabPanelDirective = class PillTabPanelDirective {
|
|
|
20568
20703
|
isSignal: true,
|
|
20569
20704
|
isRequired: false,
|
|
20570
20705
|
transformFunction: null
|
|
20706
|
+
},
|
|
20707
|
+
describedByHeader: {
|
|
20708
|
+
classPropertyName: "describedByHeader",
|
|
20709
|
+
publicName: "describedByHeader",
|
|
20710
|
+
isSignal: true,
|
|
20711
|
+
isRequired: false,
|
|
20712
|
+
transformFunction: null
|
|
20571
20713
|
}
|
|
20572
20714
|
},
|
|
20573
20715
|
host: {
|
|
@@ -20576,6 +20718,7 @@ var PillTabPanelDirective = class PillTabPanelDirective {
|
|
|
20576
20718
|
"id": "panelId()",
|
|
20577
20719
|
"attr.aria-labelledby": "tabId()",
|
|
20578
20720
|
"attr.hidden": "isHidden() ? '' : null",
|
|
20721
|
+
"attr.aria-describedby": "describedId()",
|
|
20579
20722
|
"attr.tabindex": "tabbable() ? 0 : null"
|
|
20580
20723
|
}
|
|
20581
20724
|
},
|
|
@@ -20598,6 +20741,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
20598
20741
|
"[id]": "panelId()",
|
|
20599
20742
|
"[attr.aria-labelledby]": "tabId()",
|
|
20600
20743
|
"[attr.hidden]": "isHidden() ? '' : null",
|
|
20744
|
+
"[attr.aria-describedby]": "describedId()",
|
|
20601
20745
|
"[attr.tabindex]": "tabbable() ? 0 : null"
|
|
20602
20746
|
}
|
|
20603
20747
|
}]
|
|
@@ -20634,10 +20778,24 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
20634
20778
|
alias: "tabbable",
|
|
20635
20779
|
required: false
|
|
20636
20780
|
}]
|
|
20781
|
+
}],
|
|
20782
|
+
describedByHeader: [{
|
|
20783
|
+
type: i0.Input,
|
|
20784
|
+
args: [{
|
|
20785
|
+
isSignal: true,
|
|
20786
|
+
alias: "describedByHeader",
|
|
20787
|
+
required: false
|
|
20788
|
+
}]
|
|
20637
20789
|
}]
|
|
20638
20790
|
}
|
|
20639
20791
|
});
|
|
20640
20792
|
var PillTabsComponent = class PillTabsComponent {
|
|
20793
|
+
titleId() {
|
|
20794
|
+
return pillTabTitleId(this.name());
|
|
20795
|
+
}
|
|
20796
|
+
descriptionId() {
|
|
20797
|
+
return pillTabDescriptionId(this.name());
|
|
20798
|
+
}
|
|
20641
20799
|
constructor() {
|
|
20642
20800
|
this.host = inject(ElementRef);
|
|
20643
20801
|
this.tabs = input([], ...ngDevMode ? [{ debugName: "tabs" }] : /* istanbul ignore next */ []);
|
|
@@ -20648,7 +20806,10 @@ var PillTabsComponent = class PillTabsComponent {
|
|
|
20648
20806
|
this.orientation = input("horizontal", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
|
|
20649
20807
|
this.vertical = () => this.orientation() === "vertical";
|
|
20650
20808
|
this.controlsPanels = input(false, ...ngDevMode ? [{ debugName: "controlsPanels" }] : /* istanbul ignore next */ []);
|
|
20809
|
+
this.showDescription = input(false, ...ngDevMode ? [{ debugName: "showDescription" }] : /* istanbul ignore next */ []);
|
|
20810
|
+
this.headingLevel = input(2, ...ngDevMode ? [{ debugName: "headingLevel" }] : /* istanbul ignore next */ []);
|
|
20651
20811
|
this.tabChange = output();
|
|
20812
|
+
this.activeTab = computed(() => this.tabs().find((t) => t.key === this.activeKey()) ?? null, ...ngDevMode ? [{ debugName: "activeTab" }] : /* istanbul ignore next */ []);
|
|
20652
20813
|
this.canScrollStart = signal(false, ...ngDevMode ? [{ debugName: "canScrollStart" }] : /* istanbul ignore next */ []);
|
|
20653
20814
|
this.canScrollEnd = signal(false, ...ngDevMode ? [{ debugName: "canScrollEnd" }] : /* istanbul ignore next */ []);
|
|
20654
20815
|
const destroyRef = inject(DestroyRef);
|
|
@@ -20782,6 +20943,20 @@ var PillTabsComponent = class PillTabsComponent {
|
|
|
20782
20943
|
isSignal: true,
|
|
20783
20944
|
isRequired: false,
|
|
20784
20945
|
transformFunction: null
|
|
20946
|
+
},
|
|
20947
|
+
showDescription: {
|
|
20948
|
+
classPropertyName: "showDescription",
|
|
20949
|
+
publicName: "showDescription",
|
|
20950
|
+
isSignal: true,
|
|
20951
|
+
isRequired: false,
|
|
20952
|
+
transformFunction: null
|
|
20953
|
+
},
|
|
20954
|
+
headingLevel: {
|
|
20955
|
+
classPropertyName: "headingLevel",
|
|
20956
|
+
publicName: "headingLevel",
|
|
20957
|
+
isSignal: true,
|
|
20958
|
+
isRequired: false,
|
|
20959
|
+
transformFunction: null
|
|
20785
20960
|
}
|
|
20786
20961
|
},
|
|
20787
20962
|
outputs: { tabChange: "tabChange" },
|
|
@@ -20816,9 +20991,23 @@ var PillTabsComponent = class PillTabsComponent {
|
|
|
20816
20991
|
<span class="pill-fade pill-fade--start" [class.visible]="canScrollStart()" aria-hidden="true" data-testid="pill-fade-start"></span>
|
|
20817
20992
|
<span class="pill-fade pill-fade--end" [class.visible]="canScrollEnd()" aria-hidden="true" data-testid="pill-fade-end"></span>
|
|
20818
20993
|
</div>
|
|
20994
|
+
@if (showDescription() && (activeTab()?.title || activeTab()?.description)) {
|
|
20995
|
+
<div class="pill-header" data-testid="pill-header">
|
|
20996
|
+
@if (activeTab()?.title) {
|
|
20997
|
+
@if (headingLevel() === 3) {
|
|
20998
|
+
<h3 class="pill-header-title" [id]="titleId()" data-testid="pill-header-title">{{ activeTab()!.title }}</h3>
|
|
20999
|
+
} @else {
|
|
21000
|
+
<h2 class="pill-header-title" [id]="titleId()" data-testid="pill-header-title">{{ activeTab()!.title }}</h2>
|
|
21001
|
+
}
|
|
21002
|
+
}
|
|
21003
|
+
@if (activeTab()?.description) {
|
|
21004
|
+
<p class="pill-header-description" [id]="descriptionId()" data-testid="pill-header-description">{{ activeTab()!.description }}</p>
|
|
21005
|
+
}
|
|
21006
|
+
</div>
|
|
21007
|
+
}
|
|
20819
21008
|
`,
|
|
20820
21009
|
isInline: true,
|
|
20821
|
-
styles: [".pill-wrap{position:relative}.pill-fade{position:absolute;top:0;bottom:0;width:28px;pointer-events:none;opacity:0;transition:opacity .15s}.pill-fade.visible{opacity:1}.pill-fade--start{left:0;background:linear-gradient(to right,var(--ui-pill-tabs-fade, #fff),transparent)}.pill-fade--end{right:0;background:linear-gradient(to left,var(--ui-pill-tabs-fade, #fff),transparent)}.pill-tabs{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:768px){.pill-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;scrollbar-width:none}.pill-tabs::-webkit-scrollbar{display:none}}.pill-tabs--nowrap .pill-tab{flex:0 0 auto;white-space:nowrap}.pill-tab{position:relative;display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#64748b;cursor:pointer;transition:all .15s;font-family:inherit}.pill-tab:hover:not(.disabled):not(.active){background:#f8fafc;border-color:#94a3b8}.pill-tab:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.pill-tab .pill-count{background:#e2e8f0;color:#475569;font-size:.7rem;font-weight:600;padding:1px 6px;border-radius:999px;line-height:1.4}.pill-tab.active{background:#1e293b;color:#fff;border-color:#1e293b}.pill-tab.active .pill-count{background:#fff3;color:#fff}.pill-tab.active:hover{background:#1e293b;color:#fff}.pill-tab.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.pill-tab .pill-info-icon{flex-shrink:0;opacity:.7}.pill-tab:hover .pill-info-icon,.pill-tab:focus-visible .pill-info-icon{opacity:1}.pill-tab .pill-info-tip{position:absolute;left:0;top:calc(100% + 8px);z-index:20;width:max-content;max-width:280px;padding:8px 12px;border-radius:8px;background:#1e293b;color:#fff;font-size:.75rem;font-weight:400;line-height:1.45;text-align:left;white-space:normal;box-shadow:0 4px 12px #0f172a40;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s,visibility .12s}.pill-tab:hover .pill-info-tip,.pill-tab:focus-visible .pill-info-tip{opacity:1;visibility:visible}.pill-tab:last-child .pill-info-tip{left:auto;right:0}.pill-wrap--vertical .pill-fade{display:none}.pill-tabs.pill-tabs--vertical{flex-direction:column;flex-wrap:nowrap;overflow:visible;gap:4px;padding-bottom:0}.pill-tabs--vertical .pill-tab{width:100%;justify-content:flex-start;border-radius:10px;text-align:left}.pill-tabs--vertical .pill-tab .pill-count{margin-left:auto}.pill-tabs--vertical .pill-tab .pill-info-tip{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.pill-tabs--vertical .pill-tab:last-child .pill-info-tip{left:calc(100% + 8px);right:auto}@media(pointer:coarse),(max-width:480px){.pill-tab{min-height:44px}}\n"],
|
|
21010
|
+
styles: [".pill-header{margin-top:16px;min-width:0}.pill-header-title{margin:0;font-size:1.125rem;font-weight:600;line-height:1.3;color:var(--ui-text, #1e293b);overflow-wrap:anywhere}.pill-header-description{margin:4px 0 0;font-size:.875rem;line-height:1.5;color:var(--ui-text-muted, #475569);overflow-wrap:anywhere}.pill-wrap{position:relative}.pill-fade{position:absolute;top:0;bottom:0;width:28px;pointer-events:none;opacity:0;transition:opacity .15s}.pill-fade.visible{opacity:1}.pill-fade--start{left:0;background:linear-gradient(to right,var(--ui-pill-tabs-fade, #fff),transparent)}.pill-fade--end{right:0;background:linear-gradient(to left,var(--ui-pill-tabs-fade, #fff),transparent)}.pill-tabs{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:768px){.pill-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;scrollbar-width:none}.pill-tabs::-webkit-scrollbar{display:none}}.pill-tabs--nowrap .pill-tab{flex:0 0 auto;white-space:nowrap}.pill-tab{position:relative;display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#64748b;cursor:pointer;transition:all .15s;font-family:inherit}.pill-tab:hover:not(.disabled):not(.active){background:#f8fafc;border-color:#94a3b8}.pill-tab:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.pill-tab .pill-count{background:#e2e8f0;color:#475569;font-size:.7rem;font-weight:600;padding:1px 6px;border-radius:999px;line-height:1.4}.pill-tab.active{background:#1e293b;color:#fff;border-color:#1e293b}.pill-tab.active .pill-count{background:#fff3;color:#fff}.pill-tab.active:hover{background:#1e293b;color:#fff}.pill-tab.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.pill-tab .pill-info-icon{flex-shrink:0;opacity:.7}.pill-tab:hover .pill-info-icon,.pill-tab:focus-visible .pill-info-icon{opacity:1}.pill-tab .pill-info-tip{position:absolute;left:0;top:calc(100% + 8px);z-index:20;width:max-content;max-width:280px;padding:8px 12px;border-radius:8px;background:#1e293b;color:#fff;font-size:.75rem;font-weight:400;line-height:1.45;text-align:left;white-space:normal;box-shadow:0 4px 12px #0f172a40;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s,visibility .12s}.pill-tab:hover .pill-info-tip,.pill-tab:focus-visible .pill-info-tip{opacity:1;visibility:visible}.pill-tab:last-child .pill-info-tip{left:auto;right:0}.pill-wrap--vertical .pill-fade{display:none}.pill-tabs.pill-tabs--vertical{flex-direction:column;flex-wrap:nowrap;overflow:visible;gap:4px;padding-bottom:0}.pill-tabs--vertical .pill-tab{width:100%;justify-content:flex-start;border-radius:10px;text-align:left}.pill-tabs--vertical .pill-tab .pill-count{margin-left:auto}.pill-tabs--vertical .pill-tab .pill-info-tip{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.pill-tabs--vertical .pill-tab:last-child .pill-info-tip{left:calc(100% + 8px);right:auto}@media(pointer:coarse),(max-width:480px){.pill-tab{min-height:44px}}\n"],
|
|
20822
21011
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
20823
21012
|
});
|
|
20824
21013
|
}
|
|
@@ -20864,8 +21053,22 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
20864
21053
|
<span class="pill-fade pill-fade--start" [class.visible]="canScrollStart()" aria-hidden="true" data-testid="pill-fade-start"></span>
|
|
20865
21054
|
<span class="pill-fade pill-fade--end" [class.visible]="canScrollEnd()" aria-hidden="true" data-testid="pill-fade-end"></span>
|
|
20866
21055
|
</div>
|
|
21056
|
+
@if (showDescription() && (activeTab()?.title || activeTab()?.description)) {
|
|
21057
|
+
<div class="pill-header" data-testid="pill-header">
|
|
21058
|
+
@if (activeTab()?.title) {
|
|
21059
|
+
@if (headingLevel() === 3) {
|
|
21060
|
+
<h3 class="pill-header-title" [id]="titleId()" data-testid="pill-header-title">{{ activeTab()!.title }}</h3>
|
|
21061
|
+
} @else {
|
|
21062
|
+
<h2 class="pill-header-title" [id]="titleId()" data-testid="pill-header-title">{{ activeTab()!.title }}</h2>
|
|
21063
|
+
}
|
|
21064
|
+
}
|
|
21065
|
+
@if (activeTab()?.description) {
|
|
21066
|
+
<p class="pill-header-description" [id]="descriptionId()" data-testid="pill-header-description">{{ activeTab()!.description }}</p>
|
|
21067
|
+
}
|
|
21068
|
+
</div>
|
|
21069
|
+
}
|
|
20867
21070
|
`,
|
|
20868
|
-
styles: [".pill-wrap{position:relative}.pill-fade{position:absolute;top:0;bottom:0;width:28px;pointer-events:none;opacity:0;transition:opacity .15s}.pill-fade.visible{opacity:1}.pill-fade--start{left:0;background:linear-gradient(to right,var(--ui-pill-tabs-fade, #fff),transparent)}.pill-fade--end{right:0;background:linear-gradient(to left,var(--ui-pill-tabs-fade, #fff),transparent)}.pill-tabs{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:768px){.pill-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;scrollbar-width:none}.pill-tabs::-webkit-scrollbar{display:none}}.pill-tabs--nowrap .pill-tab{flex:0 0 auto;white-space:nowrap}.pill-tab{position:relative;display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#64748b;cursor:pointer;transition:all .15s;font-family:inherit}.pill-tab:hover:not(.disabled):not(.active){background:#f8fafc;border-color:#94a3b8}.pill-tab:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.pill-tab .pill-count{background:#e2e8f0;color:#475569;font-size:.7rem;font-weight:600;padding:1px 6px;border-radius:999px;line-height:1.4}.pill-tab.active{background:#1e293b;color:#fff;border-color:#1e293b}.pill-tab.active .pill-count{background:#fff3;color:#fff}.pill-tab.active:hover{background:#1e293b;color:#fff}.pill-tab.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.pill-tab .pill-info-icon{flex-shrink:0;opacity:.7}.pill-tab:hover .pill-info-icon,.pill-tab:focus-visible .pill-info-icon{opacity:1}.pill-tab .pill-info-tip{position:absolute;left:0;top:calc(100% + 8px);z-index:20;width:max-content;max-width:280px;padding:8px 12px;border-radius:8px;background:#1e293b;color:#fff;font-size:.75rem;font-weight:400;line-height:1.45;text-align:left;white-space:normal;box-shadow:0 4px 12px #0f172a40;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s,visibility .12s}.pill-tab:hover .pill-info-tip,.pill-tab:focus-visible .pill-info-tip{opacity:1;visibility:visible}.pill-tab:last-child .pill-info-tip{left:auto;right:0}.pill-wrap--vertical .pill-fade{display:none}.pill-tabs.pill-tabs--vertical{flex-direction:column;flex-wrap:nowrap;overflow:visible;gap:4px;padding-bottom:0}.pill-tabs--vertical .pill-tab{width:100%;justify-content:flex-start;border-radius:10px;text-align:left}.pill-tabs--vertical .pill-tab .pill-count{margin-left:auto}.pill-tabs--vertical .pill-tab .pill-info-tip{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.pill-tabs--vertical .pill-tab:last-child .pill-info-tip{left:calc(100% + 8px);right:auto}@media(pointer:coarse),(max-width:480px){.pill-tab{min-height:44px}}\n"]
|
|
21071
|
+
styles: [".pill-header{margin-top:16px;min-width:0}.pill-header-title{margin:0;font-size:1.125rem;font-weight:600;line-height:1.3;color:var(--ui-text, #1e293b);overflow-wrap:anywhere}.pill-header-description{margin:4px 0 0;font-size:.875rem;line-height:1.5;color:var(--ui-text-muted, #475569);overflow-wrap:anywhere}.pill-wrap{position:relative}.pill-fade{position:absolute;top:0;bottom:0;width:28px;pointer-events:none;opacity:0;transition:opacity .15s}.pill-fade.visible{opacity:1}.pill-fade--start{left:0;background:linear-gradient(to right,var(--ui-pill-tabs-fade, #fff),transparent)}.pill-fade--end{right:0;background:linear-gradient(to left,var(--ui-pill-tabs-fade, #fff),transparent)}.pill-tabs{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:768px){.pill-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;scrollbar-width:none}.pill-tabs::-webkit-scrollbar{display:none}}.pill-tabs--nowrap .pill-tab{flex:0 0 auto;white-space:nowrap}.pill-tab{position:relative;display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;font-weight:500;color:#64748b;cursor:pointer;transition:all .15s;font-family:inherit}.pill-tab:hover:not(.disabled):not(.active){background:#f8fafc;border-color:#94a3b8}.pill-tab:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.pill-tab .pill-count{background:#e2e8f0;color:#475569;font-size:.7rem;font-weight:600;padding:1px 6px;border-radius:999px;line-height:1.4}.pill-tab.active{background:#1e293b;color:#fff;border-color:#1e293b}.pill-tab.active .pill-count{background:#fff3;color:#fff}.pill-tab.active:hover{background:#1e293b;color:#fff}.pill-tab.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.pill-tab .pill-info-icon{flex-shrink:0;opacity:.7}.pill-tab:hover .pill-info-icon,.pill-tab:focus-visible .pill-info-icon{opacity:1}.pill-tab .pill-info-tip{position:absolute;left:0;top:calc(100% + 8px);z-index:20;width:max-content;max-width:280px;padding:8px 12px;border-radius:8px;background:#1e293b;color:#fff;font-size:.75rem;font-weight:400;line-height:1.45;text-align:left;white-space:normal;box-shadow:0 4px 12px #0f172a40;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s,visibility .12s}.pill-tab:hover .pill-info-tip,.pill-tab:focus-visible .pill-info-tip{opacity:1;visibility:visible}.pill-tab:last-child .pill-info-tip{left:auto;right:0}.pill-wrap--vertical .pill-fade{display:none}.pill-tabs.pill-tabs--vertical{flex-direction:column;flex-wrap:nowrap;overflow:visible;gap:4px;padding-bottom:0}.pill-tabs--vertical .pill-tab{width:100%;justify-content:flex-start;border-radius:10px;text-align:left}.pill-tabs--vertical .pill-tab .pill-count{margin-left:auto}.pill-tabs--vertical .pill-tab .pill-info-tip{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.pill-tabs--vertical .pill-tab:last-child .pill-info-tip{left:calc(100% + 8px);right:auto}@media(pointer:coarse),(max-width:480px){.pill-tab{min-height:44px}}\n"]
|
|
20869
21072
|
}]
|
|
20870
21073
|
}],
|
|
20871
21074
|
ctorParameters: () => [],
|
|
@@ -20926,6 +21129,22 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
20926
21129
|
required: false
|
|
20927
21130
|
}]
|
|
20928
21131
|
}],
|
|
21132
|
+
showDescription: [{
|
|
21133
|
+
type: i0.Input,
|
|
21134
|
+
args: [{
|
|
21135
|
+
isSignal: true,
|
|
21136
|
+
alias: "showDescription",
|
|
21137
|
+
required: false
|
|
21138
|
+
}]
|
|
21139
|
+
}],
|
|
21140
|
+
headingLevel: [{
|
|
21141
|
+
type: i0.Input,
|
|
21142
|
+
args: [{
|
|
21143
|
+
isSignal: true,
|
|
21144
|
+
alias: "headingLevel",
|
|
21145
|
+
required: false
|
|
21146
|
+
}]
|
|
21147
|
+
}],
|
|
20929
21148
|
tabChange: [{
|
|
20930
21149
|
type: i0.Output,
|
|
20931
21150
|
args: ["tabChange"]
|
|
@@ -25893,6 +26112,7 @@ var TimeInputComponent = class TimeInputComponent {
|
|
|
25893
26112
|
[id]="_inputId"
|
|
25894
26113
|
[value]="_value()"
|
|
25895
26114
|
[disabled]="disabled()"
|
|
26115
|
+
[attr.aria-disabled]="disabled() ? 'true' : null"
|
|
25896
26116
|
[attr.min]="min() || null"
|
|
25897
26117
|
[attr.max]="max() || null"
|
|
25898
26118
|
[attr.required]="required() || null"
|
|
@@ -25957,6 +26177,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
25957
26177
|
[id]="_inputId"
|
|
25958
26178
|
[value]="_value()"
|
|
25959
26179
|
[disabled]="disabled()"
|
|
26180
|
+
[attr.aria-disabled]="disabled() ? 'true' : null"
|
|
25960
26181
|
[attr.min]="min() || null"
|
|
25961
26182
|
[attr.max]="max() || null"
|
|
25962
26183
|
[attr.required]="required() || null"
|
|
@@ -26142,6 +26363,14 @@ var ComboboxComponent = class ComboboxComponent {
|
|
|
26142
26363
|
effect(() => {
|
|
26143
26364
|
this.invalidChange.emit(this.invalid());
|
|
26144
26365
|
});
|
|
26366
|
+
effect(() => {
|
|
26367
|
+
if (this.disabled()) untracked(() => {
|
|
26368
|
+
this._cancelTimer();
|
|
26369
|
+
this._open.set(false);
|
|
26370
|
+
this._editing.set(false);
|
|
26371
|
+
this._text.set("");
|
|
26372
|
+
});
|
|
26373
|
+
});
|
|
26145
26374
|
this._destroyRef.onDestroy(() => this._cancelTimer());
|
|
26146
26375
|
}
|
|
26147
26376
|
ngOnChanges() {
|
|
@@ -26218,6 +26447,7 @@ var ComboboxComponent = class ComboboxComponent {
|
|
|
26218
26447
|
}, { injector: this._injector });
|
|
26219
26448
|
}
|
|
26220
26449
|
onInput(event) {
|
|
26450
|
+
if (this.disabled()) return;
|
|
26221
26451
|
this._text.set(event.target.value);
|
|
26222
26452
|
this._editing.set(true);
|
|
26223
26453
|
this._open.set(true);
|
|
@@ -26297,6 +26527,7 @@ var ComboboxComponent = class ComboboxComponent {
|
|
|
26297
26527
|
if (!o.disabled && i !== this._activeIndex()) this._activeIndex.set(i);
|
|
26298
26528
|
}
|
|
26299
26529
|
choose(o) {
|
|
26530
|
+
if (this.disabled()) return;
|
|
26300
26531
|
const sel = {
|
|
26301
26532
|
value: o.value,
|
|
26302
26533
|
label: o.label
|
|
@@ -26308,6 +26539,7 @@ var ComboboxComponent = class ComboboxComponent {
|
|
|
26308
26539
|
this.valueChange.emit(o);
|
|
26309
26540
|
}
|
|
26310
26541
|
clear() {
|
|
26542
|
+
if (this.disabled()) return;
|
|
26311
26543
|
this._selected.set(null);
|
|
26312
26544
|
this._revert();
|
|
26313
26545
|
this._open.set(false);
|
|
@@ -26499,6 +26731,7 @@ var ComboboxComponent = class ComboboxComponent {
|
|
|
26499
26731
|
[placeholder]="placeholder()"
|
|
26500
26732
|
[value]="_inputText()"
|
|
26501
26733
|
[disabled]="disabled()"
|
|
26734
|
+
[attr.aria-disabled]="disabled() ? 'true' : null"
|
|
26502
26735
|
[attr.aria-label]="ariaLabel() || null"
|
|
26503
26736
|
[attr.aria-expanded]="_open() ? 'true' : 'false'"
|
|
26504
26737
|
[attr.aria-controls]="_open() ? _listId : null"
|
|
@@ -26603,6 +26836,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
26603
26836
|
[placeholder]="placeholder()"
|
|
26604
26837
|
[value]="_inputText()"
|
|
26605
26838
|
[disabled]="disabled()"
|
|
26839
|
+
[attr.aria-disabled]="disabled() ? 'true' : null"
|
|
26606
26840
|
[attr.aria-label]="ariaLabel() || null"
|
|
26607
26841
|
[attr.aria-expanded]="_open() ? 'true' : 'false'"
|
|
26608
26842
|
[attr.aria-controls]="_open() ? _listId : null"
|
|
@@ -29063,7 +29297,7 @@ var ListItemComponent = class ListItemComponent {
|
|
|
29063
29297
|
</ng-template>
|
|
29064
29298
|
<ng-template #content>
|
|
29065
29299
|
<div class="li-title-row">
|
|
29066
|
-
<span class="li-title">{{ title() }}</span>
|
|
29300
|
+
<span class="li-title" data-testid="list-item-title">{{ title() }}</span>
|
|
29067
29301
|
@if (badge() && (checked() || alwaysShowBadge())) {
|
|
29068
29302
|
<ui-badge [label]="badge()!" [variant]="badgeVariant()" />
|
|
29069
29303
|
}
|
|
@@ -29075,7 +29309,7 @@ var ListItemComponent = class ListItemComponent {
|
|
|
29075
29309
|
@if (detail.d) {
|
|
29076
29310
|
<svg class="li-detail-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="detail.d" /></svg>
|
|
29077
29311
|
}
|
|
29078
|
-
<span class="li-detail-text">{{ detail.text }}</span>
|
|
29312
|
+
<span class="li-detail-text" data-testid="list-item-detail">{{ detail.text }}</span>
|
|
29079
29313
|
</span>
|
|
29080
29314
|
}
|
|
29081
29315
|
</div>
|
|
@@ -29139,7 +29373,11 @@ var ListItemComponent = class ListItemComponent {
|
|
|
29139
29373
|
kind: "component",
|
|
29140
29374
|
type: BadgeComponent,
|
|
29141
29375
|
selector: "ui-badge",
|
|
29142
|
-
inputs: [
|
|
29376
|
+
inputs: [
|
|
29377
|
+
"label",
|
|
29378
|
+
"variant",
|
|
29379
|
+
"color"
|
|
29380
|
+
]
|
|
29143
29381
|
}, {
|
|
29144
29382
|
kind: "directive",
|
|
29145
29383
|
type: NgTemplateOutlet,
|
|
@@ -29178,7 +29416,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
29178
29416
|
</ng-template>
|
|
29179
29417
|
<ng-template #content>
|
|
29180
29418
|
<div class="li-title-row">
|
|
29181
|
-
<span class="li-title">{{ title() }}</span>
|
|
29419
|
+
<span class="li-title" data-testid="list-item-title">{{ title() }}</span>
|
|
29182
29420
|
@if (badge() && (checked() || alwaysShowBadge())) {
|
|
29183
29421
|
<ui-badge [label]="badge()!" [variant]="badgeVariant()" />
|
|
29184
29422
|
}
|
|
@@ -29190,7 +29428,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
29190
29428
|
@if (detail.d) {
|
|
29191
29429
|
<svg class="li-detail-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="detail.d" /></svg>
|
|
29192
29430
|
}
|
|
29193
|
-
<span class="li-detail-text">{{ detail.text }}</span>
|
|
29431
|
+
<span class="li-detail-text" data-testid="list-item-detail">{{ detail.text }}</span>
|
|
29194
29432
|
</span>
|
|
29195
29433
|
}
|
|
29196
29434
|
</div>
|
|
@@ -29685,7 +29923,11 @@ var CardListItemComponent = class CardListItemComponent {
|
|
|
29685
29923
|
kind: "component",
|
|
29686
29924
|
type: BadgeComponent,
|
|
29687
29925
|
selector: "ui-badge",
|
|
29688
|
-
inputs: [
|
|
29926
|
+
inputs: [
|
|
29927
|
+
"label",
|
|
29928
|
+
"variant",
|
|
29929
|
+
"color"
|
|
29930
|
+
]
|
|
29689
29931
|
}, {
|
|
29690
29932
|
kind: "directive",
|
|
29691
29933
|
type: TooltipDirective,
|
|
@@ -31580,12 +31822,12 @@ var BarRowComponent = class BarRowComponent {
|
|
|
31580
31822
|
ngImport: i0,
|
|
31581
31823
|
template: `
|
|
31582
31824
|
<div class="br">
|
|
31583
|
-
<span class="br-label" [attr.id]="labelId">{{ label() }}</span>
|
|
31825
|
+
<span class="br-label" data-testid="bar-row-label" [attr.id]="labelId">{{ label() }}</span>
|
|
31584
31826
|
<ui-progress-bar class="br-bar" [value]="barValue()" [max]="barMax()" [variant]="variant()"
|
|
31585
31827
|
[ariaLabelledby]="label() ? labelId : ''" [valueText]="effectiveValueText()" />
|
|
31586
31828
|
<span class="br-value">
|
|
31587
|
-
<span class="br-count">{{ countText() }}</span>
|
|
31588
|
-
@if (share()) { <span class="br-share">{{ share() }}</span> }
|
|
31829
|
+
<span class="br-count" data-testid="bar-row-count">{{ countText() }}</span>
|
|
31830
|
+
@if (share()) { <span class="br-share" data-testid="bar-row-share">{{ share() }}</span> }
|
|
31589
31831
|
</span>
|
|
31590
31832
|
</div>
|
|
31591
31833
|
`,
|
|
@@ -31625,12 +31867,12 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
31625
31867
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
31626
31868
|
template: `
|
|
31627
31869
|
<div class="br">
|
|
31628
|
-
<span class="br-label" [attr.id]="labelId">{{ label() }}</span>
|
|
31870
|
+
<span class="br-label" data-testid="bar-row-label" [attr.id]="labelId">{{ label() }}</span>
|
|
31629
31871
|
<ui-progress-bar class="br-bar" [value]="barValue()" [max]="barMax()" [variant]="variant()"
|
|
31630
31872
|
[ariaLabelledby]="label() ? labelId : ''" [valueText]="effectiveValueText()" />
|
|
31631
31873
|
<span class="br-value">
|
|
31632
|
-
<span class="br-count">{{ countText() }}</span>
|
|
31633
|
-
@if (share()) { <span class="br-share">{{ share() }}</span> }
|
|
31874
|
+
<span class="br-count" data-testid="bar-row-count">{{ countText() }}</span>
|
|
31875
|
+
@if (share()) { <span class="br-share" data-testid="bar-row-share">{{ share() }}</span> }
|
|
31634
31876
|
</span>
|
|
31635
31877
|
</div>
|
|
31636
31878
|
`,
|
|
@@ -32812,7 +33054,11 @@ var PanelInfoListComponent = class PanelInfoListComponent {
|
|
|
32812
33054
|
kind: "component",
|
|
32813
33055
|
type: BadgeComponent,
|
|
32814
33056
|
selector: "ui-badge",
|
|
32815
|
-
inputs: [
|
|
33057
|
+
inputs: [
|
|
33058
|
+
"label",
|
|
33059
|
+
"variant",
|
|
33060
|
+
"color"
|
|
33061
|
+
]
|
|
32816
33062
|
},
|
|
32817
33063
|
{
|
|
32818
33064
|
kind: "component",
|
|
@@ -34977,48 +35223,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
34977
35223
|
}]
|
|
34978
35224
|
}
|
|
34979
35225
|
});
|
|
34980
|
-
var HintComponent = class HintComponent {
|
|
34981
|
-
static {
|
|
34982
|
-
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
34983
|
-
minVersion: "12.0.0",
|
|
34984
|
-
version: "22.2.2",
|
|
34985
|
-
ngImport: i0,
|
|
34986
|
-
type: HintComponent,
|
|
34987
|
-
deps: [],
|
|
34988
|
-
target: i0.ɵɵFactoryTarget.Component
|
|
34989
|
-
});
|
|
34990
|
-
}
|
|
34991
|
-
static {
|
|
34992
|
-
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
34993
|
-
minVersion: "14.0.0",
|
|
34994
|
-
version: "22.2.2",
|
|
34995
|
-
type: HintComponent,
|
|
34996
|
-
isStandalone: true,
|
|
34997
|
-
selector: "ui-hint",
|
|
34998
|
-
ngImport: i0,
|
|
34999
|
-
template: `<p class="hint"><ng-content /></p>`,
|
|
35000
|
-
isInline: true,
|
|
35001
|
-
styles: [":host{display:block}.hint{font-size:.75rem;line-height:1.4;color:#64748b;margin:0}\n"],
|
|
35002
|
-
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
35003
|
-
});
|
|
35004
|
-
}
|
|
35005
|
-
};
|
|
35006
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
35007
|
-
minVersion: "12.0.0",
|
|
35008
|
-
version: "22.2.2",
|
|
35009
|
-
ngImport: i0,
|
|
35010
|
-
type: HintComponent,
|
|
35011
|
-
decorators: [{
|
|
35012
|
-
type: Component,
|
|
35013
|
-
args: [{
|
|
35014
|
-
selector: "ui-hint",
|
|
35015
|
-
standalone: true,
|
|
35016
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
35017
|
-
template: `<p class="hint"><ng-content /></p>`,
|
|
35018
|
-
styles: [":host{display:block}.hint{font-size:.75rem;line-height:1.4;color:#64748b;margin:0}\n"]
|
|
35019
|
-
}]
|
|
35020
|
-
}]
|
|
35021
|
-
});
|
|
35022
35226
|
var TimelineComponent = class TimelineComponent {
|
|
35023
35227
|
constructor() {
|
|
35024
35228
|
this.items = input([], ...ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []);
|
|
@@ -35275,7 +35479,11 @@ var TimelineComponent = class TimelineComponent {
|
|
|
35275
35479
|
kind: "component",
|
|
35276
35480
|
type: BadgeComponent,
|
|
35277
35481
|
selector: "ui-badge",
|
|
35278
|
-
inputs: [
|
|
35482
|
+
inputs: [
|
|
35483
|
+
"label",
|
|
35484
|
+
"variant",
|
|
35485
|
+
"color"
|
|
35486
|
+
]
|
|
35279
35487
|
},
|
|
35280
35488
|
{
|
|
35281
35489
|
kind: "component",
|
|
@@ -37777,12 +37985,12 @@ var KpiCardComponent = class KpiCardComponent {
|
|
|
37777
37985
|
}
|
|
37778
37986
|
@if (hasProgress()) {
|
|
37779
37987
|
<div class="kpi-top">
|
|
37780
|
-
<span class="kpi-label">{{ label() }}</span>
|
|
37988
|
+
<span class="kpi-label" data-testid="kpi-label">{{ label() }}</span>
|
|
37781
37989
|
<ui-progress-ring class="kpi-ring" [attr.aria-hidden]="loading() ? 'true' : null" [value]="progress()!" [max]="progressMax()" [size]="progressSize()" [strokeWidth]="progressStrokeWidth()"
|
|
37782
37990
|
[variant]="progressVariant()" [ariaLabel]="progressAriaLabel() || (label() + ' progress')" [valueText]="progressValueText()" />
|
|
37783
37991
|
</div>
|
|
37784
37992
|
} @else {
|
|
37785
|
-
<span class="kpi-label">{{ label() }}</span>
|
|
37993
|
+
<span class="kpi-label" data-testid="kpi-label">{{ label() }}</span>
|
|
37786
37994
|
}
|
|
37787
37995
|
@if (loading()) {
|
|
37788
37996
|
<span class="kpi-value kpi-value--loading" aria-hidden="true" data-testid="kpi-value-placeholder"><span class="kpi-bar"></span></span>
|
|
@@ -37791,7 +37999,7 @@ var KpiCardComponent = class KpiCardComponent {
|
|
|
37791
37999
|
<span class="kpi-subtitle kpi-subtitle--loading" aria-hidden="true" data-testid="kpi-subtitle-placeholder">{{ subtitle() }}</span>
|
|
37792
38000
|
}
|
|
37793
38001
|
} @else {
|
|
37794
|
-
<span class="kpi-value"
|
|
38002
|
+
<span class="kpi-value" data-testid="kpi-value"
|
|
37795
38003
|
[class.green-value]="highlight() || valueColor() === 'green'"
|
|
37796
38004
|
[class.blue-value]="valueColor() === 'blue'"
|
|
37797
38005
|
[class.red-value]="valueColor() === 'red'">{{ value() }}</span>
|
|
@@ -37854,12 +38062,12 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
37854
38062
|
}
|
|
37855
38063
|
@if (hasProgress()) {
|
|
37856
38064
|
<div class="kpi-top">
|
|
37857
|
-
<span class="kpi-label">{{ label() }}</span>
|
|
38065
|
+
<span class="kpi-label" data-testid="kpi-label">{{ label() }}</span>
|
|
37858
38066
|
<ui-progress-ring class="kpi-ring" [attr.aria-hidden]="loading() ? 'true' : null" [value]="progress()!" [max]="progressMax()" [size]="progressSize()" [strokeWidth]="progressStrokeWidth()"
|
|
37859
38067
|
[variant]="progressVariant()" [ariaLabel]="progressAriaLabel() || (label() + ' progress')" [valueText]="progressValueText()" />
|
|
37860
38068
|
</div>
|
|
37861
38069
|
} @else {
|
|
37862
|
-
<span class="kpi-label">{{ label() }}</span>
|
|
38070
|
+
<span class="kpi-label" data-testid="kpi-label">{{ label() }}</span>
|
|
37863
38071
|
}
|
|
37864
38072
|
@if (loading()) {
|
|
37865
38073
|
<span class="kpi-value kpi-value--loading" aria-hidden="true" data-testid="kpi-value-placeholder"><span class="kpi-bar"></span></span>
|
|
@@ -37868,7 +38076,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
37868
38076
|
<span class="kpi-subtitle kpi-subtitle--loading" aria-hidden="true" data-testid="kpi-subtitle-placeholder">{{ subtitle() }}</span>
|
|
37869
38077
|
}
|
|
37870
38078
|
} @else {
|
|
37871
|
-
<span class="kpi-value"
|
|
38079
|
+
<span class="kpi-value" data-testid="kpi-value"
|
|
37872
38080
|
[class.green-value]="highlight() || valueColor() === 'green'"
|
|
37873
38081
|
[class.blue-value]="valueColor() === 'blue'"
|
|
37874
38082
|
[class.red-value]="valueColor() === 'red'">{{ value() }}</span>
|
|
@@ -38278,7 +38486,9 @@ var DateRangePickerComponent = class DateRangePickerComponent {
|
|
|
38278
38486
|
"name",
|
|
38279
38487
|
"noWrap",
|
|
38280
38488
|
"orientation",
|
|
38281
|
-
"controlsPanels"
|
|
38489
|
+
"controlsPanels",
|
|
38490
|
+
"showDescription",
|
|
38491
|
+
"headingLevel"
|
|
38282
38492
|
],
|
|
38283
38493
|
outputs: ["tabChange"]
|
|
38284
38494
|
},
|
|
@@ -39982,19 +40192,19 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
39982
40192
|
}]
|
|
39983
40193
|
}
|
|
39984
40194
|
});
|
|
39985
|
-
var
|
|
40195
|
+
var SwatchPickerComponent = class SwatchPickerComponent {
|
|
39986
40196
|
get _name() {
|
|
39987
40197
|
return this.name() || this._generatedName;
|
|
39988
40198
|
}
|
|
39989
40199
|
constructor() {
|
|
40200
|
+
this._el = inject(ElementRef);
|
|
39990
40201
|
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
39991
|
-
this.
|
|
39992
|
-
this.rows = input([], ...ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []);
|
|
39993
|
-
this.columns = input([], ...ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []);
|
|
40202
|
+
this.options = input([], ...ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []);
|
|
39994
40203
|
this.required = input(false, ...ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []);
|
|
39995
40204
|
this.hint = input("", ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
|
|
39996
40205
|
this.error = input("", ...ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []);
|
|
39997
40206
|
this.showErrors = input(false, ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
40207
|
+
this.columns = input(0, ...ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []);
|
|
39998
40208
|
this.name = input("", ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
39999
40209
|
this._disabledInput = input(false, {
|
|
40000
40210
|
...ngDevMode ? { debugName: "_disabledInput" } : /* istanbul ignore next */ {},
|
|
@@ -40002,14 +40212,15 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
40002
40212
|
});
|
|
40003
40213
|
this._cvaDisabled = signal(false, ...ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []);
|
|
40004
40214
|
this.disabled = computed(() => this._disabledInput() || this._cvaDisabled(), ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
40005
|
-
this._generatedName = `
|
|
40215
|
+
this._generatedName = `sp-${Math.random().toString(36).slice(2, 8)}`;
|
|
40006
40216
|
this._descId = `${this._generatedName}-desc`;
|
|
40007
|
-
this._value = signal(
|
|
40217
|
+
this._value = signal("", ...ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []);
|
|
40008
40218
|
this._reveal = createFieldReveal(this.showErrors);
|
|
40009
40219
|
this._issue = computed(() => this._check(this._value()), ...ngDevMode ? [{ debugName: "_issue" }] : /* istanbul ignore next */ []);
|
|
40010
40220
|
this.invalid = computed(() => !!this.error() || !!this._issue(), ...ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []);
|
|
40011
40221
|
this.errorMessage = computed(() => this._issue()?.message ?? "", ...ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []);
|
|
40012
40222
|
this.invalidChange = output();
|
|
40223
|
+
this.valueChange = output();
|
|
40013
40224
|
this._activeError = computed(() => this.error() || (this._reveal.revealed() ? this.errorMessage() : ""), ...ngDevMode ? [{ debugName: "_activeError" }] : /* istanbul ignore next */ []);
|
|
40014
40225
|
this._onValidatorChange = () => {};
|
|
40015
40226
|
this._onChange = (_) => {};
|
|
@@ -40022,13 +40233,14 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
40022
40233
|
this._onValidatorChange();
|
|
40023
40234
|
}
|
|
40024
40235
|
validate(control) {
|
|
40025
|
-
|
|
40236
|
+
const v = control.value;
|
|
40237
|
+
return issueToErrors(this._check(v == null ? "" : String(v)));
|
|
40026
40238
|
}
|
|
40027
40239
|
registerOnValidatorChange(fn) {
|
|
40028
40240
|
this._onValidatorChange = fn;
|
|
40029
40241
|
}
|
|
40030
40242
|
writeValue(val) {
|
|
40031
|
-
this._value.set(
|
|
40243
|
+
this._value.set(val ?? "");
|
|
40032
40244
|
}
|
|
40033
40245
|
registerOnChange(fn) {
|
|
40034
40246
|
this._onChange = fn;
|
|
@@ -40039,18 +40251,21 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
40039
40251
|
setDisabledState(d) {
|
|
40040
40252
|
this._cvaDisabled.set(d);
|
|
40041
40253
|
}
|
|
40042
|
-
onSelect(
|
|
40043
|
-
|
|
40044
|
-
|
|
40045
|
-
|
|
40046
|
-
|
|
40047
|
-
this._value.set(next);
|
|
40048
|
-
this._onChange(next);
|
|
40254
|
+
onSelect(value) {
|
|
40255
|
+
if (this.disabled()) return;
|
|
40256
|
+
this._value.set(value);
|
|
40257
|
+
this._onChange(value);
|
|
40258
|
+
this.valueChange.emit(value);
|
|
40049
40259
|
}
|
|
40050
|
-
|
|
40051
|
-
if (
|
|
40052
|
-
const
|
|
40053
|
-
|
|
40260
|
+
onKeydown(e) {
|
|
40261
|
+
if (e.key !== "Home" && e.key !== "End" || this.disabled()) return;
|
|
40262
|
+
const opts = this.options();
|
|
40263
|
+
const enabled = opts.filter((o) => !o.disabled);
|
|
40264
|
+
if (!enabled.length) return;
|
|
40265
|
+
e.preventDefault();
|
|
40266
|
+
const target = e.key === "Home" ? enabled[0] : enabled[enabled.length - 1];
|
|
40267
|
+
this.onSelect(target.value);
|
|
40268
|
+
this._el.nativeElement.querySelectorAll("input[type=radio]")[opts.indexOf(target)]?.focus();
|
|
40054
40269
|
}
|
|
40055
40270
|
onFocusOut(event) {
|
|
40056
40271
|
const next = event.relatedTarget;
|
|
@@ -40058,24 +40273,14 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
40058
40273
|
this._onTouched();
|
|
40059
40274
|
this._reveal.touched.set(true);
|
|
40060
40275
|
}
|
|
40061
|
-
_toRecord(val) {
|
|
40062
|
-
return val && typeof val === "object" ? { ...val } : {};
|
|
40063
|
-
}
|
|
40064
40276
|
_check(value) {
|
|
40065
40277
|
if (this.disabled()) return null;
|
|
40066
|
-
|
|
40067
|
-
const
|
|
40068
|
-
if (
|
|
40278
|
+
if (!value) return this.required() ? requiredIssue(this.label()) : null;
|
|
40279
|
+
const opts = this.options();
|
|
40280
|
+
if (opts.length > 0 && !opts.some((o) => o.value === value)) return {
|
|
40069
40281
|
key: "option",
|
|
40070
40282
|
message: "Select a valid option."
|
|
40071
40283
|
};
|
|
40072
|
-
if (this.required() && rows.some((r) => !value[r.value])) {
|
|
40073
|
-
const label = this.label().trim();
|
|
40074
|
-
return {
|
|
40075
|
-
key: "required",
|
|
40076
|
-
message: label ? `${label}: choose an option in every row.` : "Choose an option in every row."
|
|
40077
|
-
};
|
|
40078
|
-
}
|
|
40079
40284
|
return null;
|
|
40080
40285
|
}
|
|
40081
40286
|
static {
|
|
@@ -40083,7 +40288,7 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
40083
40288
|
minVersion: "12.0.0",
|
|
40084
40289
|
version: "22.2.2",
|
|
40085
40290
|
ngImport: i0,
|
|
40086
|
-
type:
|
|
40291
|
+
type: SwatchPickerComponent,
|
|
40087
40292
|
deps: [],
|
|
40088
40293
|
target: i0.ɵɵFactoryTarget.Component
|
|
40089
40294
|
});
|
|
@@ -40092,9 +40297,9 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
40092
40297
|
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
40093
40298
|
minVersion: "17.0.0",
|
|
40094
40299
|
version: "22.2.2",
|
|
40095
|
-
type:
|
|
40300
|
+
type: SwatchPickerComponent,
|
|
40096
40301
|
isStandalone: true,
|
|
40097
|
-
selector: "ui-
|
|
40302
|
+
selector: "ui-swatch-picker",
|
|
40098
40303
|
inputs: {
|
|
40099
40304
|
label: {
|
|
40100
40305
|
classPropertyName: "label",
|
|
@@ -40103,23 +40308,853 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
40103
40308
|
isRequired: false,
|
|
40104
40309
|
transformFunction: null
|
|
40105
40310
|
},
|
|
40106
|
-
|
|
40107
|
-
classPropertyName: "
|
|
40108
|
-
publicName: "
|
|
40109
|
-
isSignal: true,
|
|
40110
|
-
isRequired: false,
|
|
40111
|
-
transformFunction: null
|
|
40112
|
-
},
|
|
40113
|
-
|
|
40114
|
-
classPropertyName: "
|
|
40115
|
-
publicName: "
|
|
40116
|
-
isSignal: true,
|
|
40117
|
-
isRequired: false,
|
|
40118
|
-
transformFunction: null
|
|
40119
|
-
},
|
|
40120
|
-
|
|
40121
|
-
classPropertyName: "
|
|
40122
|
-
publicName: "
|
|
40311
|
+
options: {
|
|
40312
|
+
classPropertyName: "options",
|
|
40313
|
+
publicName: "options",
|
|
40314
|
+
isSignal: true,
|
|
40315
|
+
isRequired: false,
|
|
40316
|
+
transformFunction: null
|
|
40317
|
+
},
|
|
40318
|
+
required: {
|
|
40319
|
+
classPropertyName: "required",
|
|
40320
|
+
publicName: "required",
|
|
40321
|
+
isSignal: true,
|
|
40322
|
+
isRequired: false,
|
|
40323
|
+
transformFunction: null
|
|
40324
|
+
},
|
|
40325
|
+
hint: {
|
|
40326
|
+
classPropertyName: "hint",
|
|
40327
|
+
publicName: "hint",
|
|
40328
|
+
isSignal: true,
|
|
40329
|
+
isRequired: false,
|
|
40330
|
+
transformFunction: null
|
|
40331
|
+
},
|
|
40332
|
+
error: {
|
|
40333
|
+
classPropertyName: "error",
|
|
40334
|
+
publicName: "error",
|
|
40335
|
+
isSignal: true,
|
|
40336
|
+
isRequired: false,
|
|
40337
|
+
transformFunction: null
|
|
40338
|
+
},
|
|
40339
|
+
showErrors: {
|
|
40340
|
+
classPropertyName: "showErrors",
|
|
40341
|
+
publicName: "showErrors",
|
|
40342
|
+
isSignal: true,
|
|
40343
|
+
isRequired: false,
|
|
40344
|
+
transformFunction: null
|
|
40345
|
+
},
|
|
40346
|
+
columns: {
|
|
40347
|
+
classPropertyName: "columns",
|
|
40348
|
+
publicName: "columns",
|
|
40349
|
+
isSignal: true,
|
|
40350
|
+
isRequired: false,
|
|
40351
|
+
transformFunction: null
|
|
40352
|
+
},
|
|
40353
|
+
name: {
|
|
40354
|
+
classPropertyName: "name",
|
|
40355
|
+
publicName: "name",
|
|
40356
|
+
isSignal: true,
|
|
40357
|
+
isRequired: false,
|
|
40358
|
+
transformFunction: null
|
|
40359
|
+
},
|
|
40360
|
+
_disabledInput: {
|
|
40361
|
+
classPropertyName: "_disabledInput",
|
|
40362
|
+
publicName: "disabled",
|
|
40363
|
+
isSignal: true,
|
|
40364
|
+
isRequired: false,
|
|
40365
|
+
transformFunction: null
|
|
40366
|
+
}
|
|
40367
|
+
},
|
|
40368
|
+
outputs: {
|
|
40369
|
+
invalidChange: "invalidChange",
|
|
40370
|
+
valueChange: "valueChange"
|
|
40371
|
+
},
|
|
40372
|
+
providers: [
|
|
40373
|
+
{
|
|
40374
|
+
provide: NG_VALUE_ACCESSOR,
|
|
40375
|
+
useExisting: forwardRef(() => SwatchPickerComponent),
|
|
40376
|
+
multi: true
|
|
40377
|
+
},
|
|
40378
|
+
{
|
|
40379
|
+
provide: NG_VALIDATORS,
|
|
40380
|
+
useExisting: forwardRef(() => SwatchPickerComponent),
|
|
40381
|
+
multi: true
|
|
40382
|
+
},
|
|
40383
|
+
{
|
|
40384
|
+
provide: UiFieldValidity,
|
|
40385
|
+
useExisting: forwardRef(() => SwatchPickerComponent)
|
|
40386
|
+
}
|
|
40387
|
+
],
|
|
40388
|
+
usesOnChanges: true,
|
|
40389
|
+
ngImport: i0,
|
|
40390
|
+
template: `
|
|
40391
|
+
<fieldset
|
|
40392
|
+
class="sp-field"
|
|
40393
|
+
role="radiogroup"
|
|
40394
|
+
[class.sp-error]="_activeError()"
|
|
40395
|
+
[class.sp-disabled]="disabled()"
|
|
40396
|
+
[disabled]="disabled()"
|
|
40397
|
+
[attr.aria-required]="required() ? 'true' : null"
|
|
40398
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
40399
|
+
[attr.aria-describedby]="(_activeError() || hint()) ? _descId : null"
|
|
40400
|
+
(focusout)="onFocusOut($event)"
|
|
40401
|
+
(keydown)="onKeydown($event)">
|
|
40402
|
+
@if (label()) {
|
|
40403
|
+
<legend class="sp-label">
|
|
40404
|
+
{{ label() }}
|
|
40405
|
+
@if (required()) { <span class="sp-required" aria-hidden="true">*</span> }
|
|
40406
|
+
</legend>
|
|
40407
|
+
}
|
|
40408
|
+
<div class="sp-options" [class.sp-grid]="columns() > 0" [style.--sp-cols]="columns() > 0 ? columns() : null">
|
|
40409
|
+
@for (opt of options(); track opt.value) {
|
|
40410
|
+
<label class="sp-option" [class.sp-selected]="_value() === opt.value" [class.sp-option-disabled]="disabled() || !!opt.disabled" [attr.title]="opt.label">
|
|
40411
|
+
<input class="sp-input" type="radio"
|
|
40412
|
+
[name]="_name"
|
|
40413
|
+
[value]="opt.value"
|
|
40414
|
+
[checked]="_value() === opt.value"
|
|
40415
|
+
[disabled]="disabled() || !!opt.disabled"
|
|
40416
|
+
[attr.aria-label]="opt.label"
|
|
40417
|
+
[attr.data-testid]="opt.testId || null"
|
|
40418
|
+
(change)="onSelect(opt.value)" />
|
|
40419
|
+
<span class="sp-swatch" [style.background-color]="opt.color" aria-hidden="true">
|
|
40420
|
+
@if (_value() === opt.value) {
|
|
40421
|
+
<svg class="sp-check" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
40422
|
+
<path d="M5 12.5l4.5 4.5L19 7.5" class="sp-check-outline" stroke-width="5"/>
|
|
40423
|
+
<path d="M5 12.5l4.5 4.5L19 7.5" class="sp-check-mark" stroke-width="3"/>
|
|
40424
|
+
</svg>
|
|
40425
|
+
}
|
|
40426
|
+
</span>
|
|
40427
|
+
</label>
|
|
40428
|
+
}
|
|
40429
|
+
</div>
|
|
40430
|
+
@if (_activeError()) {
|
|
40431
|
+
<p class="sp-desc sp-desc-error" [id]="_descId" role="alert">{{ _activeError() }}</p>
|
|
40432
|
+
} @else if (hint()) {
|
|
40433
|
+
<p class="sp-desc" [id]="_descId">{{ hint() }}</p>
|
|
40434
|
+
}
|
|
40435
|
+
</fieldset>
|
|
40436
|
+
`,
|
|
40437
|
+
isInline: true,
|
|
40438
|
+
styles: [":host{display:block}.sp-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.sp-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sp-required{color:#dc2626;margin-left:2px}.sp-options{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.sp-options.sp-grid{display:grid;grid-template-columns:repeat(var(--sp-cols),max-content)}.sp-option{position:relative;display:inline-flex;cursor:pointer}.sp-input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}.sp-swatch{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;box-sizing:border-box;border:2px solid #fff;box-shadow:0 0 0 1px #94a3b8;transition:box-shadow .12s}.sp-option:hover .sp-swatch{box-shadow:0 0 0 2px #64748b}.sp-option.sp-selected .sp-swatch{box-shadow:0 0 0 3px #1e293b}.sp-input:focus-visible+.sp-swatch{outline:2px solid #3b82f6;outline-offset:3px}.sp-check-outline{stroke:#0f172abf}.sp-check-mark{stroke:#fff}.sp-option-disabled{cursor:not-allowed;opacity:.45}.sp-error .sp-option .sp-swatch{box-shadow:0 0 0 1px #dc2626}.sp-error .sp-option.sp-selected .sp-swatch{box-shadow:0 0 0 3px #dc2626}.sp-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b;overflow-wrap:anywhere}.sp-desc-error{color:#dc2626}@media(pointer:coarse),(max-width:480px){.sp-options{gap:4px}.sp-option{min-width:44px;min-height:44px;align-items:center;justify-content:center}.sp-options.sp-grid{grid-template-columns:repeat(auto-fill,44px)}}\n"],
|
|
40439
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
40440
|
+
});
|
|
40441
|
+
}
|
|
40442
|
+
};
|
|
40443
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
40444
|
+
minVersion: "12.0.0",
|
|
40445
|
+
version: "22.2.2",
|
|
40446
|
+
ngImport: i0,
|
|
40447
|
+
type: SwatchPickerComponent,
|
|
40448
|
+
decorators: [{
|
|
40449
|
+
type: Component,
|
|
40450
|
+
args: [{
|
|
40451
|
+
selector: "ui-swatch-picker",
|
|
40452
|
+
standalone: true,
|
|
40453
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
40454
|
+
providers: [
|
|
40455
|
+
{
|
|
40456
|
+
provide: NG_VALUE_ACCESSOR,
|
|
40457
|
+
useExisting: forwardRef(() => SwatchPickerComponent),
|
|
40458
|
+
multi: true
|
|
40459
|
+
},
|
|
40460
|
+
{
|
|
40461
|
+
provide: NG_VALIDATORS,
|
|
40462
|
+
useExisting: forwardRef(() => SwatchPickerComponent),
|
|
40463
|
+
multi: true
|
|
40464
|
+
},
|
|
40465
|
+
{
|
|
40466
|
+
provide: UiFieldValidity,
|
|
40467
|
+
useExisting: forwardRef(() => SwatchPickerComponent)
|
|
40468
|
+
}
|
|
40469
|
+
],
|
|
40470
|
+
template: `
|
|
40471
|
+
<fieldset
|
|
40472
|
+
class="sp-field"
|
|
40473
|
+
role="radiogroup"
|
|
40474
|
+
[class.sp-error]="_activeError()"
|
|
40475
|
+
[class.sp-disabled]="disabled()"
|
|
40476
|
+
[disabled]="disabled()"
|
|
40477
|
+
[attr.aria-required]="required() ? 'true' : null"
|
|
40478
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
40479
|
+
[attr.aria-describedby]="(_activeError() || hint()) ? _descId : null"
|
|
40480
|
+
(focusout)="onFocusOut($event)"
|
|
40481
|
+
(keydown)="onKeydown($event)">
|
|
40482
|
+
@if (label()) {
|
|
40483
|
+
<legend class="sp-label">
|
|
40484
|
+
{{ label() }}
|
|
40485
|
+
@if (required()) { <span class="sp-required" aria-hidden="true">*</span> }
|
|
40486
|
+
</legend>
|
|
40487
|
+
}
|
|
40488
|
+
<div class="sp-options" [class.sp-grid]="columns() > 0" [style.--sp-cols]="columns() > 0 ? columns() : null">
|
|
40489
|
+
@for (opt of options(); track opt.value) {
|
|
40490
|
+
<label class="sp-option" [class.sp-selected]="_value() === opt.value" [class.sp-option-disabled]="disabled() || !!opt.disabled" [attr.title]="opt.label">
|
|
40491
|
+
<input class="sp-input" type="radio"
|
|
40492
|
+
[name]="_name"
|
|
40493
|
+
[value]="opt.value"
|
|
40494
|
+
[checked]="_value() === opt.value"
|
|
40495
|
+
[disabled]="disabled() || !!opt.disabled"
|
|
40496
|
+
[attr.aria-label]="opt.label"
|
|
40497
|
+
[attr.data-testid]="opt.testId || null"
|
|
40498
|
+
(change)="onSelect(opt.value)" />
|
|
40499
|
+
<span class="sp-swatch" [style.background-color]="opt.color" aria-hidden="true">
|
|
40500
|
+
@if (_value() === opt.value) {
|
|
40501
|
+
<svg class="sp-check" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
40502
|
+
<path d="M5 12.5l4.5 4.5L19 7.5" class="sp-check-outline" stroke-width="5"/>
|
|
40503
|
+
<path d="M5 12.5l4.5 4.5L19 7.5" class="sp-check-mark" stroke-width="3"/>
|
|
40504
|
+
</svg>
|
|
40505
|
+
}
|
|
40506
|
+
</span>
|
|
40507
|
+
</label>
|
|
40508
|
+
}
|
|
40509
|
+
</div>
|
|
40510
|
+
@if (_activeError()) {
|
|
40511
|
+
<p class="sp-desc sp-desc-error" [id]="_descId" role="alert">{{ _activeError() }}</p>
|
|
40512
|
+
} @else if (hint()) {
|
|
40513
|
+
<p class="sp-desc" [id]="_descId">{{ hint() }}</p>
|
|
40514
|
+
}
|
|
40515
|
+
</fieldset>
|
|
40516
|
+
`,
|
|
40517
|
+
styles: [":host{display:block}.sp-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.sp-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sp-required{color:#dc2626;margin-left:2px}.sp-options{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.sp-options.sp-grid{display:grid;grid-template-columns:repeat(var(--sp-cols),max-content)}.sp-option{position:relative;display:inline-flex;cursor:pointer}.sp-input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}.sp-swatch{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;box-sizing:border-box;border:2px solid #fff;box-shadow:0 0 0 1px #94a3b8;transition:box-shadow .12s}.sp-option:hover .sp-swatch{box-shadow:0 0 0 2px #64748b}.sp-option.sp-selected .sp-swatch{box-shadow:0 0 0 3px #1e293b}.sp-input:focus-visible+.sp-swatch{outline:2px solid #3b82f6;outline-offset:3px}.sp-check-outline{stroke:#0f172abf}.sp-check-mark{stroke:#fff}.sp-option-disabled{cursor:not-allowed;opacity:.45}.sp-error .sp-option .sp-swatch{box-shadow:0 0 0 1px #dc2626}.sp-error .sp-option.sp-selected .sp-swatch{box-shadow:0 0 0 3px #dc2626}.sp-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b;overflow-wrap:anywhere}.sp-desc-error{color:#dc2626}@media(pointer:coarse),(max-width:480px){.sp-options{gap:4px}.sp-option{min-width:44px;min-height:44px;align-items:center;justify-content:center}.sp-options.sp-grid{grid-template-columns:repeat(auto-fill,44px)}}\n"]
|
|
40518
|
+
}]
|
|
40519
|
+
}],
|
|
40520
|
+
ctorParameters: () => [],
|
|
40521
|
+
propDecorators: {
|
|
40522
|
+
label: [{
|
|
40523
|
+
type: i0.Input,
|
|
40524
|
+
args: [{
|
|
40525
|
+
isSignal: true,
|
|
40526
|
+
alias: "label",
|
|
40527
|
+
required: false
|
|
40528
|
+
}]
|
|
40529
|
+
}],
|
|
40530
|
+
options: [{
|
|
40531
|
+
type: i0.Input,
|
|
40532
|
+
args: [{
|
|
40533
|
+
isSignal: true,
|
|
40534
|
+
alias: "options",
|
|
40535
|
+
required: false
|
|
40536
|
+
}]
|
|
40537
|
+
}],
|
|
40538
|
+
required: [{
|
|
40539
|
+
type: i0.Input,
|
|
40540
|
+
args: [{
|
|
40541
|
+
isSignal: true,
|
|
40542
|
+
alias: "required",
|
|
40543
|
+
required: false
|
|
40544
|
+
}]
|
|
40545
|
+
}],
|
|
40546
|
+
hint: [{
|
|
40547
|
+
type: i0.Input,
|
|
40548
|
+
args: [{
|
|
40549
|
+
isSignal: true,
|
|
40550
|
+
alias: "hint",
|
|
40551
|
+
required: false
|
|
40552
|
+
}]
|
|
40553
|
+
}],
|
|
40554
|
+
error: [{
|
|
40555
|
+
type: i0.Input,
|
|
40556
|
+
args: [{
|
|
40557
|
+
isSignal: true,
|
|
40558
|
+
alias: "error",
|
|
40559
|
+
required: false
|
|
40560
|
+
}]
|
|
40561
|
+
}],
|
|
40562
|
+
showErrors: [{
|
|
40563
|
+
type: i0.Input,
|
|
40564
|
+
args: [{
|
|
40565
|
+
isSignal: true,
|
|
40566
|
+
alias: "showErrors",
|
|
40567
|
+
required: false
|
|
40568
|
+
}]
|
|
40569
|
+
}],
|
|
40570
|
+
columns: [{
|
|
40571
|
+
type: i0.Input,
|
|
40572
|
+
args: [{
|
|
40573
|
+
isSignal: true,
|
|
40574
|
+
alias: "columns",
|
|
40575
|
+
required: false
|
|
40576
|
+
}]
|
|
40577
|
+
}],
|
|
40578
|
+
name: [{
|
|
40579
|
+
type: i0.Input,
|
|
40580
|
+
args: [{
|
|
40581
|
+
isSignal: true,
|
|
40582
|
+
alias: "name",
|
|
40583
|
+
required: false
|
|
40584
|
+
}]
|
|
40585
|
+
}],
|
|
40586
|
+
_disabledInput: [{
|
|
40587
|
+
type: i0.Input,
|
|
40588
|
+
args: [{
|
|
40589
|
+
isSignal: true,
|
|
40590
|
+
alias: "disabled",
|
|
40591
|
+
required: false
|
|
40592
|
+
}]
|
|
40593
|
+
}],
|
|
40594
|
+
invalidChange: [{
|
|
40595
|
+
type: i0.Output,
|
|
40596
|
+
args: ["invalidChange"]
|
|
40597
|
+
}],
|
|
40598
|
+
valueChange: [{
|
|
40599
|
+
type: i0.Output,
|
|
40600
|
+
args: ["valueChange"]
|
|
40601
|
+
}]
|
|
40602
|
+
}
|
|
40603
|
+
});
|
|
40604
|
+
var IconPickerComponent = class IconPickerComponent {
|
|
40605
|
+
_path(o) {
|
|
40606
|
+
return o.path || iconPath(o.iconKey || o.value) || "";
|
|
40607
|
+
}
|
|
40608
|
+
get _name() {
|
|
40609
|
+
return this.name() || this._generatedName;
|
|
40610
|
+
}
|
|
40611
|
+
constructor() {
|
|
40612
|
+
this._el = inject(ElementRef);
|
|
40613
|
+
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
40614
|
+
this.options = input([], ...ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []);
|
|
40615
|
+
this.required = input(false, ...ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []);
|
|
40616
|
+
this.hint = input("", ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
|
|
40617
|
+
this.error = input("", ...ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []);
|
|
40618
|
+
this.showErrors = input(false, ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
40619
|
+
this.columns = input(0, ...ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []);
|
|
40620
|
+
this.name = input("", ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
40621
|
+
this._disabledInput = input(false, {
|
|
40622
|
+
...ngDevMode ? { debugName: "_disabledInput" } : /* istanbul ignore next */ {},
|
|
40623
|
+
alias: "disabled"
|
|
40624
|
+
});
|
|
40625
|
+
this._cvaDisabled = signal(false, ...ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []);
|
|
40626
|
+
this.disabled = computed(() => this._disabledInput() || this._cvaDisabled(), ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
40627
|
+
this._generatedName = `ip-${Math.random().toString(36).slice(2, 8)}`;
|
|
40628
|
+
this._descId = `${this._generatedName}-desc`;
|
|
40629
|
+
this._value = signal("", ...ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []);
|
|
40630
|
+
this._reveal = createFieldReveal(this.showErrors);
|
|
40631
|
+
this._issue = computed(() => this._check(this._value()), ...ngDevMode ? [{ debugName: "_issue" }] : /* istanbul ignore next */ []);
|
|
40632
|
+
this.invalid = computed(() => !!this.error() || !!this._issue(), ...ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []);
|
|
40633
|
+
this.errorMessage = computed(() => this._issue()?.message ?? "", ...ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []);
|
|
40634
|
+
this.invalidChange = output();
|
|
40635
|
+
this.valueChange = output();
|
|
40636
|
+
this._activeError = computed(() => this.error() || (this._reveal.revealed() ? this.errorMessage() : ""), ...ngDevMode ? [{ debugName: "_activeError" }] : /* istanbul ignore next */ []);
|
|
40637
|
+
this._onValidatorChange = () => {};
|
|
40638
|
+
this._onChange = (_) => {};
|
|
40639
|
+
this._onTouched = () => {};
|
|
40640
|
+
effect(() => {
|
|
40641
|
+
this.invalidChange.emit(this.invalid());
|
|
40642
|
+
});
|
|
40643
|
+
}
|
|
40644
|
+
ngOnChanges() {
|
|
40645
|
+
this._onValidatorChange();
|
|
40646
|
+
}
|
|
40647
|
+
validate(control) {
|
|
40648
|
+
const v = control.value;
|
|
40649
|
+
return issueToErrors(this._check(v == null ? "" : String(v)));
|
|
40650
|
+
}
|
|
40651
|
+
registerOnValidatorChange(fn) {
|
|
40652
|
+
this._onValidatorChange = fn;
|
|
40653
|
+
}
|
|
40654
|
+
writeValue(val) {
|
|
40655
|
+
this._value.set(val ?? "");
|
|
40656
|
+
}
|
|
40657
|
+
registerOnChange(fn) {
|
|
40658
|
+
this._onChange = fn;
|
|
40659
|
+
}
|
|
40660
|
+
registerOnTouched(fn) {
|
|
40661
|
+
this._onTouched = fn;
|
|
40662
|
+
}
|
|
40663
|
+
setDisabledState(d) {
|
|
40664
|
+
this._cvaDisabled.set(d);
|
|
40665
|
+
}
|
|
40666
|
+
onSelect(value) {
|
|
40667
|
+
if (this.disabled()) return;
|
|
40668
|
+
this._value.set(value);
|
|
40669
|
+
this._onChange(value);
|
|
40670
|
+
this.valueChange.emit(value);
|
|
40671
|
+
}
|
|
40672
|
+
onKeydown(e) {
|
|
40673
|
+
if (e.key !== "Home" && e.key !== "End" || this.disabled()) return;
|
|
40674
|
+
const opts = this.options();
|
|
40675
|
+
const enabled = opts.filter((o) => !o.disabled);
|
|
40676
|
+
if (!enabled.length) return;
|
|
40677
|
+
e.preventDefault();
|
|
40678
|
+
const target = e.key === "Home" ? enabled[0] : enabled[enabled.length - 1];
|
|
40679
|
+
this.onSelect(target.value);
|
|
40680
|
+
this._el.nativeElement.querySelectorAll("input[type=radio]")[opts.indexOf(target)]?.focus();
|
|
40681
|
+
}
|
|
40682
|
+
onFocusOut(event) {
|
|
40683
|
+
const next = event.relatedTarget;
|
|
40684
|
+
if (next && event.currentTarget.contains(next)) return;
|
|
40685
|
+
this._onTouched();
|
|
40686
|
+
this._reveal.touched.set(true);
|
|
40687
|
+
}
|
|
40688
|
+
_check(value) {
|
|
40689
|
+
if (this.disabled()) return null;
|
|
40690
|
+
if (!value) return this.required() ? requiredIssue(this.label()) : null;
|
|
40691
|
+
const opts = this.options();
|
|
40692
|
+
if (opts.length > 0 && !opts.some((o) => o.value === value)) return {
|
|
40693
|
+
key: "option",
|
|
40694
|
+
message: "Select a valid option."
|
|
40695
|
+
};
|
|
40696
|
+
return null;
|
|
40697
|
+
}
|
|
40698
|
+
static {
|
|
40699
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
40700
|
+
minVersion: "12.0.0",
|
|
40701
|
+
version: "22.2.2",
|
|
40702
|
+
ngImport: i0,
|
|
40703
|
+
type: IconPickerComponent,
|
|
40704
|
+
deps: [],
|
|
40705
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
40706
|
+
});
|
|
40707
|
+
}
|
|
40708
|
+
static {
|
|
40709
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
40710
|
+
minVersion: "17.0.0",
|
|
40711
|
+
version: "22.2.2",
|
|
40712
|
+
type: IconPickerComponent,
|
|
40713
|
+
isStandalone: true,
|
|
40714
|
+
selector: "ui-icon-picker",
|
|
40715
|
+
inputs: {
|
|
40716
|
+
label: {
|
|
40717
|
+
classPropertyName: "label",
|
|
40718
|
+
publicName: "label",
|
|
40719
|
+
isSignal: true,
|
|
40720
|
+
isRequired: false,
|
|
40721
|
+
transformFunction: null
|
|
40722
|
+
},
|
|
40723
|
+
options: {
|
|
40724
|
+
classPropertyName: "options",
|
|
40725
|
+
publicName: "options",
|
|
40726
|
+
isSignal: true,
|
|
40727
|
+
isRequired: false,
|
|
40728
|
+
transformFunction: null
|
|
40729
|
+
},
|
|
40730
|
+
required: {
|
|
40731
|
+
classPropertyName: "required",
|
|
40732
|
+
publicName: "required",
|
|
40733
|
+
isSignal: true,
|
|
40734
|
+
isRequired: false,
|
|
40735
|
+
transformFunction: null
|
|
40736
|
+
},
|
|
40737
|
+
hint: {
|
|
40738
|
+
classPropertyName: "hint",
|
|
40739
|
+
publicName: "hint",
|
|
40740
|
+
isSignal: true,
|
|
40741
|
+
isRequired: false,
|
|
40742
|
+
transformFunction: null
|
|
40743
|
+
},
|
|
40744
|
+
error: {
|
|
40745
|
+
classPropertyName: "error",
|
|
40746
|
+
publicName: "error",
|
|
40747
|
+
isSignal: true,
|
|
40748
|
+
isRequired: false,
|
|
40749
|
+
transformFunction: null
|
|
40750
|
+
},
|
|
40751
|
+
showErrors: {
|
|
40752
|
+
classPropertyName: "showErrors",
|
|
40753
|
+
publicName: "showErrors",
|
|
40754
|
+
isSignal: true,
|
|
40755
|
+
isRequired: false,
|
|
40756
|
+
transformFunction: null
|
|
40757
|
+
},
|
|
40758
|
+
columns: {
|
|
40759
|
+
classPropertyName: "columns",
|
|
40760
|
+
publicName: "columns",
|
|
40761
|
+
isSignal: true,
|
|
40762
|
+
isRequired: false,
|
|
40763
|
+
transformFunction: null
|
|
40764
|
+
},
|
|
40765
|
+
name: {
|
|
40766
|
+
classPropertyName: "name",
|
|
40767
|
+
publicName: "name",
|
|
40768
|
+
isSignal: true,
|
|
40769
|
+
isRequired: false,
|
|
40770
|
+
transformFunction: null
|
|
40771
|
+
},
|
|
40772
|
+
_disabledInput: {
|
|
40773
|
+
classPropertyName: "_disabledInput",
|
|
40774
|
+
publicName: "disabled",
|
|
40775
|
+
isSignal: true,
|
|
40776
|
+
isRequired: false,
|
|
40777
|
+
transformFunction: null
|
|
40778
|
+
}
|
|
40779
|
+
},
|
|
40780
|
+
outputs: {
|
|
40781
|
+
invalidChange: "invalidChange",
|
|
40782
|
+
valueChange: "valueChange"
|
|
40783
|
+
},
|
|
40784
|
+
providers: [
|
|
40785
|
+
{
|
|
40786
|
+
provide: NG_VALUE_ACCESSOR,
|
|
40787
|
+
useExisting: forwardRef(() => IconPickerComponent),
|
|
40788
|
+
multi: true
|
|
40789
|
+
},
|
|
40790
|
+
{
|
|
40791
|
+
provide: NG_VALIDATORS,
|
|
40792
|
+
useExisting: forwardRef(() => IconPickerComponent),
|
|
40793
|
+
multi: true
|
|
40794
|
+
},
|
|
40795
|
+
{
|
|
40796
|
+
provide: UiFieldValidity,
|
|
40797
|
+
useExisting: forwardRef(() => IconPickerComponent)
|
|
40798
|
+
}
|
|
40799
|
+
],
|
|
40800
|
+
usesOnChanges: true,
|
|
40801
|
+
ngImport: i0,
|
|
40802
|
+
template: `
|
|
40803
|
+
<fieldset
|
|
40804
|
+
class="ip-field"
|
|
40805
|
+
role="radiogroup"
|
|
40806
|
+
[class.ip-error]="_activeError()"
|
|
40807
|
+
[class.ip-disabled]="disabled()"
|
|
40808
|
+
[disabled]="disabled()"
|
|
40809
|
+
[attr.aria-required]="required() ? 'true' : null"
|
|
40810
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
40811
|
+
[attr.aria-describedby]="(_activeError() || hint()) ? _descId : null"
|
|
40812
|
+
(focusout)="onFocusOut($event)"
|
|
40813
|
+
(keydown)="onKeydown($event)">
|
|
40814
|
+
@if (label()) {
|
|
40815
|
+
<legend class="ip-label">
|
|
40816
|
+
{{ label() }}
|
|
40817
|
+
@if (required()) { <span class="ip-required" aria-hidden="true">*</span> }
|
|
40818
|
+
</legend>
|
|
40819
|
+
}
|
|
40820
|
+
<div class="ip-options" [class.ip-grid]="columns() > 0" [style.--ip-cols]="columns() > 0 ? columns() : null">
|
|
40821
|
+
@for (opt of options(); track opt.value) {
|
|
40822
|
+
<label class="ip-option" [class.ip-selected]="_value() === opt.value" [class.ip-option-disabled]="disabled() || !!opt.disabled" [attr.title]="opt.label">
|
|
40823
|
+
<input class="ip-input" type="radio"
|
|
40824
|
+
[name]="_name"
|
|
40825
|
+
[value]="opt.value"
|
|
40826
|
+
[checked]="_value() === opt.value"
|
|
40827
|
+
[disabled]="disabled() || !!opt.disabled"
|
|
40828
|
+
[attr.aria-label]="opt.label"
|
|
40829
|
+
[attr.data-testid]="opt.testId || null"
|
|
40830
|
+
(change)="onSelect(opt.value)" />
|
|
40831
|
+
<span class="ip-swatch" aria-hidden="true">
|
|
40832
|
+
<svg class="ip-glyph" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
40833
|
+
<path [attr.d]="_path(opt)"/>
|
|
40834
|
+
</svg>
|
|
40835
|
+
@if (_value() === opt.value) {
|
|
40836
|
+
<svg class="ip-check" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
40837
|
+
<path d="M5 12.5l4.5 4.5L19 7.5"/>
|
|
40838
|
+
</svg>
|
|
40839
|
+
}
|
|
40840
|
+
</span>
|
|
40841
|
+
</label>
|
|
40842
|
+
}
|
|
40843
|
+
</div>
|
|
40844
|
+
@if (_activeError()) {
|
|
40845
|
+
<p class="ip-desc ip-desc-error" [id]="_descId" role="alert">{{ _activeError() }}</p>
|
|
40846
|
+
} @else if (hint()) {
|
|
40847
|
+
<p class="ip-desc" [id]="_descId">{{ hint() }}</p>
|
|
40848
|
+
}
|
|
40849
|
+
</fieldset>
|
|
40850
|
+
`,
|
|
40851
|
+
isInline: true,
|
|
40852
|
+
styles: [":host{display:block}.ip-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.ip-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ip-required{color:#dc2626;margin-left:2px}.ip-options{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.ip-options.ip-grid{display:grid;grid-template-columns:repeat(var(--ip-cols),max-content)}.ip-option{position:relative;display:inline-flex;cursor:pointer}.ip-input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}.ip-swatch{display:inline-flex;align-items:center;justify-content:center;position:relative;width:36px;height:36px;border-radius:8px;box-sizing:border-box;background:#fff;color:#334155;border:1px solid #cbd5e1;box-shadow:0 0 0 0 transparent;transition:box-shadow .12s}.ip-option:hover .ip-swatch{border-color:#64748b}.ip-input:focus-visible+.ip-swatch{outline:2px solid #3b82f6;outline-offset:3px}.ip-option.ip-selected .ip-swatch{background:#1e293b;color:#fff;border-color:#1e293b}.ip-check{position:absolute;right:2px;bottom:2px;padding:1px;border-radius:50%;background:#fff;color:#1e293b;border:1px solid #1e293b;box-sizing:content-box}.ip-option-disabled{cursor:not-allowed;opacity:.45}.ip-error .ip-option .ip-swatch{border-color:#dc2626}.ip-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b;overflow-wrap:anywhere}.ip-desc-error{color:#dc2626}@media(pointer:coarse),(max-width:480px){.ip-options{gap:4px}.ip-option{min-width:44px;min-height:44px;align-items:center;justify-content:center}.ip-options.ip-grid{grid-template-columns:repeat(auto-fill,44px)}}\n"],
|
|
40853
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
40854
|
+
});
|
|
40855
|
+
}
|
|
40856
|
+
};
|
|
40857
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
40858
|
+
minVersion: "12.0.0",
|
|
40859
|
+
version: "22.2.2",
|
|
40860
|
+
ngImport: i0,
|
|
40861
|
+
type: IconPickerComponent,
|
|
40862
|
+
decorators: [{
|
|
40863
|
+
type: Component,
|
|
40864
|
+
args: [{
|
|
40865
|
+
selector: "ui-icon-picker",
|
|
40866
|
+
standalone: true,
|
|
40867
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
40868
|
+
providers: [
|
|
40869
|
+
{
|
|
40870
|
+
provide: NG_VALUE_ACCESSOR,
|
|
40871
|
+
useExisting: forwardRef(() => IconPickerComponent),
|
|
40872
|
+
multi: true
|
|
40873
|
+
},
|
|
40874
|
+
{
|
|
40875
|
+
provide: NG_VALIDATORS,
|
|
40876
|
+
useExisting: forwardRef(() => IconPickerComponent),
|
|
40877
|
+
multi: true
|
|
40878
|
+
},
|
|
40879
|
+
{
|
|
40880
|
+
provide: UiFieldValidity,
|
|
40881
|
+
useExisting: forwardRef(() => IconPickerComponent)
|
|
40882
|
+
}
|
|
40883
|
+
],
|
|
40884
|
+
template: `
|
|
40885
|
+
<fieldset
|
|
40886
|
+
class="ip-field"
|
|
40887
|
+
role="radiogroup"
|
|
40888
|
+
[class.ip-error]="_activeError()"
|
|
40889
|
+
[class.ip-disabled]="disabled()"
|
|
40890
|
+
[disabled]="disabled()"
|
|
40891
|
+
[attr.aria-required]="required() ? 'true' : null"
|
|
40892
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
40893
|
+
[attr.aria-describedby]="(_activeError() || hint()) ? _descId : null"
|
|
40894
|
+
(focusout)="onFocusOut($event)"
|
|
40895
|
+
(keydown)="onKeydown($event)">
|
|
40896
|
+
@if (label()) {
|
|
40897
|
+
<legend class="ip-label">
|
|
40898
|
+
{{ label() }}
|
|
40899
|
+
@if (required()) { <span class="ip-required" aria-hidden="true">*</span> }
|
|
40900
|
+
</legend>
|
|
40901
|
+
}
|
|
40902
|
+
<div class="ip-options" [class.ip-grid]="columns() > 0" [style.--ip-cols]="columns() > 0 ? columns() : null">
|
|
40903
|
+
@for (opt of options(); track opt.value) {
|
|
40904
|
+
<label class="ip-option" [class.ip-selected]="_value() === opt.value" [class.ip-option-disabled]="disabled() || !!opt.disabled" [attr.title]="opt.label">
|
|
40905
|
+
<input class="ip-input" type="radio"
|
|
40906
|
+
[name]="_name"
|
|
40907
|
+
[value]="opt.value"
|
|
40908
|
+
[checked]="_value() === opt.value"
|
|
40909
|
+
[disabled]="disabled() || !!opt.disabled"
|
|
40910
|
+
[attr.aria-label]="opt.label"
|
|
40911
|
+
[attr.data-testid]="opt.testId || null"
|
|
40912
|
+
(change)="onSelect(opt.value)" />
|
|
40913
|
+
<span class="ip-swatch" aria-hidden="true">
|
|
40914
|
+
<svg class="ip-glyph" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
40915
|
+
<path [attr.d]="_path(opt)"/>
|
|
40916
|
+
</svg>
|
|
40917
|
+
@if (_value() === opt.value) {
|
|
40918
|
+
<svg class="ip-check" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
40919
|
+
<path d="M5 12.5l4.5 4.5L19 7.5"/>
|
|
40920
|
+
</svg>
|
|
40921
|
+
}
|
|
40922
|
+
</span>
|
|
40923
|
+
</label>
|
|
40924
|
+
}
|
|
40925
|
+
</div>
|
|
40926
|
+
@if (_activeError()) {
|
|
40927
|
+
<p class="ip-desc ip-desc-error" [id]="_descId" role="alert">{{ _activeError() }}</p>
|
|
40928
|
+
} @else if (hint()) {
|
|
40929
|
+
<p class="ip-desc" [id]="_descId">{{ hint() }}</p>
|
|
40930
|
+
}
|
|
40931
|
+
</fieldset>
|
|
40932
|
+
`,
|
|
40933
|
+
styles: [":host{display:block}.ip-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.ip-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ip-required{color:#dc2626;margin-left:2px}.ip-options{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.ip-options.ip-grid{display:grid;grid-template-columns:repeat(var(--ip-cols),max-content)}.ip-option{position:relative;display:inline-flex;cursor:pointer}.ip-input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}.ip-swatch{display:inline-flex;align-items:center;justify-content:center;position:relative;width:36px;height:36px;border-radius:8px;box-sizing:border-box;background:#fff;color:#334155;border:1px solid #cbd5e1;box-shadow:0 0 0 0 transparent;transition:box-shadow .12s}.ip-option:hover .ip-swatch{border-color:#64748b}.ip-input:focus-visible+.ip-swatch{outline:2px solid #3b82f6;outline-offset:3px}.ip-option.ip-selected .ip-swatch{background:#1e293b;color:#fff;border-color:#1e293b}.ip-check{position:absolute;right:2px;bottom:2px;padding:1px;border-radius:50%;background:#fff;color:#1e293b;border:1px solid #1e293b;box-sizing:content-box}.ip-option-disabled{cursor:not-allowed;opacity:.45}.ip-error .ip-option .ip-swatch{border-color:#dc2626}.ip-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b;overflow-wrap:anywhere}.ip-desc-error{color:#dc2626}@media(pointer:coarse),(max-width:480px){.ip-options{gap:4px}.ip-option{min-width:44px;min-height:44px;align-items:center;justify-content:center}.ip-options.ip-grid{grid-template-columns:repeat(auto-fill,44px)}}\n"]
|
|
40934
|
+
}]
|
|
40935
|
+
}],
|
|
40936
|
+
ctorParameters: () => [],
|
|
40937
|
+
propDecorators: {
|
|
40938
|
+
label: [{
|
|
40939
|
+
type: i0.Input,
|
|
40940
|
+
args: [{
|
|
40941
|
+
isSignal: true,
|
|
40942
|
+
alias: "label",
|
|
40943
|
+
required: false
|
|
40944
|
+
}]
|
|
40945
|
+
}],
|
|
40946
|
+
options: [{
|
|
40947
|
+
type: i0.Input,
|
|
40948
|
+
args: [{
|
|
40949
|
+
isSignal: true,
|
|
40950
|
+
alias: "options",
|
|
40951
|
+
required: false
|
|
40952
|
+
}]
|
|
40953
|
+
}],
|
|
40954
|
+
required: [{
|
|
40955
|
+
type: i0.Input,
|
|
40956
|
+
args: [{
|
|
40957
|
+
isSignal: true,
|
|
40958
|
+
alias: "required",
|
|
40959
|
+
required: false
|
|
40960
|
+
}]
|
|
40961
|
+
}],
|
|
40962
|
+
hint: [{
|
|
40963
|
+
type: i0.Input,
|
|
40964
|
+
args: [{
|
|
40965
|
+
isSignal: true,
|
|
40966
|
+
alias: "hint",
|
|
40967
|
+
required: false
|
|
40968
|
+
}]
|
|
40969
|
+
}],
|
|
40970
|
+
error: [{
|
|
40971
|
+
type: i0.Input,
|
|
40972
|
+
args: [{
|
|
40973
|
+
isSignal: true,
|
|
40974
|
+
alias: "error",
|
|
40975
|
+
required: false
|
|
40976
|
+
}]
|
|
40977
|
+
}],
|
|
40978
|
+
showErrors: [{
|
|
40979
|
+
type: i0.Input,
|
|
40980
|
+
args: [{
|
|
40981
|
+
isSignal: true,
|
|
40982
|
+
alias: "showErrors",
|
|
40983
|
+
required: false
|
|
40984
|
+
}]
|
|
40985
|
+
}],
|
|
40986
|
+
columns: [{
|
|
40987
|
+
type: i0.Input,
|
|
40988
|
+
args: [{
|
|
40989
|
+
isSignal: true,
|
|
40990
|
+
alias: "columns",
|
|
40991
|
+
required: false
|
|
40992
|
+
}]
|
|
40993
|
+
}],
|
|
40994
|
+
name: [{
|
|
40995
|
+
type: i0.Input,
|
|
40996
|
+
args: [{
|
|
40997
|
+
isSignal: true,
|
|
40998
|
+
alias: "name",
|
|
40999
|
+
required: false
|
|
41000
|
+
}]
|
|
41001
|
+
}],
|
|
41002
|
+
_disabledInput: [{
|
|
41003
|
+
type: i0.Input,
|
|
41004
|
+
args: [{
|
|
41005
|
+
isSignal: true,
|
|
41006
|
+
alias: "disabled",
|
|
41007
|
+
required: false
|
|
41008
|
+
}]
|
|
41009
|
+
}],
|
|
41010
|
+
invalidChange: [{
|
|
41011
|
+
type: i0.Output,
|
|
41012
|
+
args: ["invalidChange"]
|
|
41013
|
+
}],
|
|
41014
|
+
valueChange: [{
|
|
41015
|
+
type: i0.Output,
|
|
41016
|
+
args: ["valueChange"]
|
|
41017
|
+
}]
|
|
41018
|
+
}
|
|
41019
|
+
});
|
|
41020
|
+
var RadioMatrixComponent = class RadioMatrixComponent {
|
|
41021
|
+
get _name() {
|
|
41022
|
+
return this.name() || this._generatedName;
|
|
41023
|
+
}
|
|
41024
|
+
constructor() {
|
|
41025
|
+
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
41026
|
+
this.rowHeader = input("", ...ngDevMode ? [{ debugName: "rowHeader" }] : /* istanbul ignore next */ []);
|
|
41027
|
+
this.rows = input([], ...ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []);
|
|
41028
|
+
this.columns = input([], ...ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []);
|
|
41029
|
+
this.required = input(false, ...ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []);
|
|
41030
|
+
this.hint = input("", ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
|
|
41031
|
+
this.error = input("", ...ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []);
|
|
41032
|
+
this.showErrors = input(false, ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
41033
|
+
this.name = input("", ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
41034
|
+
this._disabledInput = input(false, {
|
|
41035
|
+
...ngDevMode ? { debugName: "_disabledInput" } : /* istanbul ignore next */ {},
|
|
41036
|
+
alias: "disabled"
|
|
41037
|
+
});
|
|
41038
|
+
this._cvaDisabled = signal(false, ...ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []);
|
|
41039
|
+
this.disabled = computed(() => this._disabledInput() || this._cvaDisabled(), ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
41040
|
+
this._generatedName = `rm-${Math.random().toString(36).slice(2, 8)}`;
|
|
41041
|
+
this._descId = `${this._generatedName}-desc`;
|
|
41042
|
+
this._value = signal({}, ...ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []);
|
|
41043
|
+
this._reveal = createFieldReveal(this.showErrors);
|
|
41044
|
+
this._issue = computed(() => this._check(this._value()), ...ngDevMode ? [{ debugName: "_issue" }] : /* istanbul ignore next */ []);
|
|
41045
|
+
this.invalid = computed(() => !!this.error() || !!this._issue(), ...ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []);
|
|
41046
|
+
this.errorMessage = computed(() => this._issue()?.message ?? "", ...ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []);
|
|
41047
|
+
this.invalidChange = output();
|
|
41048
|
+
this._activeError = computed(() => this.error() || (this._reveal.revealed() ? this.errorMessage() : ""), ...ngDevMode ? [{ debugName: "_activeError" }] : /* istanbul ignore next */ []);
|
|
41049
|
+
this._onValidatorChange = () => {};
|
|
41050
|
+
this._onChange = (_) => {};
|
|
41051
|
+
this._onTouched = () => {};
|
|
41052
|
+
effect(() => {
|
|
41053
|
+
this.invalidChange.emit(this.invalid());
|
|
41054
|
+
});
|
|
41055
|
+
}
|
|
41056
|
+
ngOnChanges() {
|
|
41057
|
+
this._onValidatorChange();
|
|
41058
|
+
}
|
|
41059
|
+
validate(control) {
|
|
41060
|
+
return issueToErrors(this._check(this._toRecord(control.value)));
|
|
41061
|
+
}
|
|
41062
|
+
registerOnValidatorChange(fn) {
|
|
41063
|
+
this._onValidatorChange = fn;
|
|
41064
|
+
}
|
|
41065
|
+
writeValue(val) {
|
|
41066
|
+
this._value.set(this._toRecord(val));
|
|
41067
|
+
}
|
|
41068
|
+
registerOnChange(fn) {
|
|
41069
|
+
this._onChange = fn;
|
|
41070
|
+
}
|
|
41071
|
+
registerOnTouched(fn) {
|
|
41072
|
+
this._onTouched = fn;
|
|
41073
|
+
}
|
|
41074
|
+
setDisabledState(d) {
|
|
41075
|
+
this._cvaDisabled.set(d);
|
|
41076
|
+
}
|
|
41077
|
+
onSelect(row, column) {
|
|
41078
|
+
const next = {
|
|
41079
|
+
...this._value(),
|
|
41080
|
+
[row]: column
|
|
41081
|
+
};
|
|
41082
|
+
this._value.set(next);
|
|
41083
|
+
this._onChange(next);
|
|
41084
|
+
}
|
|
41085
|
+
_rowInvalid(row) {
|
|
41086
|
+
if (this.disabled() || row.disabled || !this._reveal.revealed()) return false;
|
|
41087
|
+
const v = this._value()[row.value] ?? "";
|
|
41088
|
+
return v ? !this.columns().some((c) => c.value === v) : this.required();
|
|
41089
|
+
}
|
|
41090
|
+
onFocusOut(event) {
|
|
41091
|
+
const next = event.relatedTarget;
|
|
41092
|
+
if (next && event.currentTarget.contains(next)) return;
|
|
41093
|
+
this._onTouched();
|
|
41094
|
+
this._reveal.touched.set(true);
|
|
41095
|
+
}
|
|
41096
|
+
_toRecord(val) {
|
|
41097
|
+
return val && typeof val === "object" ? { ...val } : {};
|
|
41098
|
+
}
|
|
41099
|
+
_check(value) {
|
|
41100
|
+
if (this.disabled()) return null;
|
|
41101
|
+
const cols = this.columns();
|
|
41102
|
+
const rows = this.rows().filter((r) => !r.disabled);
|
|
41103
|
+
if (cols.length > 0 && rows.some((r) => value[r.value] && !cols.some((c) => c.value === value[r.value]))) return {
|
|
41104
|
+
key: "option",
|
|
41105
|
+
message: "Select a valid option."
|
|
41106
|
+
};
|
|
41107
|
+
if (this.required() && rows.some((r) => !value[r.value])) {
|
|
41108
|
+
const label = this.label().trim();
|
|
41109
|
+
return {
|
|
41110
|
+
key: "required",
|
|
41111
|
+
message: label ? `${label}: choose an option in every row.` : "Choose an option in every row."
|
|
41112
|
+
};
|
|
41113
|
+
}
|
|
41114
|
+
return null;
|
|
41115
|
+
}
|
|
41116
|
+
static {
|
|
41117
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
41118
|
+
minVersion: "12.0.0",
|
|
41119
|
+
version: "22.2.2",
|
|
41120
|
+
ngImport: i0,
|
|
41121
|
+
type: RadioMatrixComponent,
|
|
41122
|
+
deps: [],
|
|
41123
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
41124
|
+
});
|
|
41125
|
+
}
|
|
41126
|
+
static {
|
|
41127
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
41128
|
+
minVersion: "17.0.0",
|
|
41129
|
+
version: "22.2.2",
|
|
41130
|
+
type: RadioMatrixComponent,
|
|
41131
|
+
isStandalone: true,
|
|
41132
|
+
selector: "ui-radio-matrix",
|
|
41133
|
+
inputs: {
|
|
41134
|
+
label: {
|
|
41135
|
+
classPropertyName: "label",
|
|
41136
|
+
publicName: "label",
|
|
41137
|
+
isSignal: true,
|
|
41138
|
+
isRequired: false,
|
|
41139
|
+
transformFunction: null
|
|
41140
|
+
},
|
|
41141
|
+
rowHeader: {
|
|
41142
|
+
classPropertyName: "rowHeader",
|
|
41143
|
+
publicName: "rowHeader",
|
|
41144
|
+
isSignal: true,
|
|
41145
|
+
isRequired: false,
|
|
41146
|
+
transformFunction: null
|
|
41147
|
+
},
|
|
41148
|
+
rows: {
|
|
41149
|
+
classPropertyName: "rows",
|
|
41150
|
+
publicName: "rows",
|
|
41151
|
+
isSignal: true,
|
|
41152
|
+
isRequired: false,
|
|
41153
|
+
transformFunction: null
|
|
41154
|
+
},
|
|
41155
|
+
columns: {
|
|
41156
|
+
classPropertyName: "columns",
|
|
41157
|
+
publicName: "columns",
|
|
40123
41158
|
isSignal: true,
|
|
40124
41159
|
isRequired: false,
|
|
40125
41160
|
transformFunction: null
|
|
@@ -45769,7 +46804,11 @@ var CalendarComponent = class CalendarComponent {
|
|
|
45769
46804
|
kind: "component",
|
|
45770
46805
|
type: BadgeComponent,
|
|
45771
46806
|
selector: "ui-badge",
|
|
45772
|
-
inputs: [
|
|
46807
|
+
inputs: [
|
|
46808
|
+
"label",
|
|
46809
|
+
"variant",
|
|
46810
|
+
"color"
|
|
46811
|
+
]
|
|
45773
46812
|
},
|
|
45774
46813
|
{
|
|
45775
46814
|
kind: "component",
|
|
@@ -45802,7 +46841,9 @@ var CalendarComponent = class CalendarComponent {
|
|
|
45802
46841
|
"name",
|
|
45803
46842
|
"noWrap",
|
|
45804
46843
|
"orientation",
|
|
45805
|
-
"controlsPanels"
|
|
46844
|
+
"controlsPanels",
|
|
46845
|
+
"showDescription",
|
|
46846
|
+
"headingLevel"
|
|
45806
46847
|
],
|
|
45807
46848
|
outputs: ["tabChange"]
|
|
45808
46849
|
},
|
|
@@ -49983,7 +51024,11 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
49983
51024
|
kind: "component",
|
|
49984
51025
|
type: BadgeComponent,
|
|
49985
51026
|
selector: "ui-badge",
|
|
49986
|
-
inputs: [
|
|
51027
|
+
inputs: [
|
|
51028
|
+
"label",
|
|
51029
|
+
"variant",
|
|
51030
|
+
"color"
|
|
51031
|
+
]
|
|
49987
51032
|
},
|
|
49988
51033
|
{
|
|
49989
51034
|
kind: "component",
|
|
@@ -50110,7 +51155,9 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
50110
51155
|
"name",
|
|
50111
51156
|
"noWrap",
|
|
50112
51157
|
"orientation",
|
|
50113
|
-
"controlsPanels"
|
|
51158
|
+
"controlsPanels",
|
|
51159
|
+
"showDescription",
|
|
51160
|
+
"headingLevel"
|
|
50114
51161
|
],
|
|
50115
51162
|
outputs: ["tabChange"]
|
|
50116
51163
|
},
|
|
@@ -52312,7 +53359,9 @@ var EmailTemplateEditorComponent = class EmailTemplateEditorComponent {
|
|
|
52312
53359
|
"name",
|
|
52313
53360
|
"noWrap",
|
|
52314
53361
|
"orientation",
|
|
52315
|
-
"controlsPanels"
|
|
53362
|
+
"controlsPanels",
|
|
53363
|
+
"showDescription",
|
|
53364
|
+
"headingLevel"
|
|
52316
53365
|
],
|
|
52317
53366
|
outputs: ["tabChange"]
|
|
52318
53367
|
},
|
|
@@ -54092,7 +55141,11 @@ var ReminderAlertsComponent = class ReminderAlertsComponent {
|
|
|
54092
55141
|
kind: "component",
|
|
54093
55142
|
type: BadgeComponent,
|
|
54094
55143
|
selector: "ui-badge",
|
|
54095
|
-
inputs: [
|
|
55144
|
+
inputs: [
|
|
55145
|
+
"label",
|
|
55146
|
+
"variant",
|
|
55147
|
+
"color"
|
|
55148
|
+
]
|
|
54096
55149
|
},
|
|
54097
55150
|
{
|
|
54098
55151
|
kind: "component",
|
|
@@ -55783,7 +56836,11 @@ var ConversationsComponent = class ConversationsComponent {
|
|
|
55783
56836
|
kind: "component",
|
|
55784
56837
|
type: BadgeComponent,
|
|
55785
56838
|
selector: "ui-badge",
|
|
55786
|
-
inputs: [
|
|
56839
|
+
inputs: [
|
|
56840
|
+
"label",
|
|
56841
|
+
"variant",
|
|
56842
|
+
"color"
|
|
56843
|
+
]
|
|
55787
56844
|
},
|
|
55788
56845
|
{
|
|
55789
56846
|
kind: "component",
|
|
@@ -59417,6 +60474,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
59417
60474
|
}]
|
|
59418
60475
|
}
|
|
59419
60476
|
});
|
|
59420
|
-
export { ALLOCATION_CUSTOM, ASCII_SPECIAL_PASSWORD_RULES, ActionBarComponent, AddressInputComponent, AlertComponent, AppShellComponent, AudioPlayerComponent, AvatarComponent, BADGE_VARIANT_STYLES, BadgeComponent, BankAccountFormComponent, BarRowComponent, BoardCardDirective, BoardComponent, BulkMessagePanelComponent, BusinessHoursComponent, ButtonComponent, COMMON_DETAIL_GROUP_STYLES, CalendarComponent, CardListItemComponent, CheckboxComponent, CheckboxTrailingDirective, ChipComponent, ChipGroupComponent, ColorInputComponent, ColumnFilterComponent, ColumnsComponent, ComboboxComponent, ConfirmOutletComponent, ConfirmService, ContactPickerComponent, ConversationRichBodyComponent, ConversationsComponent, DEFAULT_ALLOCATION_MODES, DEFAULT_BANK_ACCOUNT_TYPE_OPTIONS, DEFAULT_BANK_HOLDER_TYPE_OPTIONS, DEFAULT_BANK_MANDATE_TEXT, DEFAULT_EMAIL_TEMPLATE_BLOCK_GROUPS, DEFAULT_EMAIL_TEMPLATE_VARIABLE_GROUPS, DEFAULT_PASSWORD_RULES, DEFAULT_PAYMENT_METHODS, DETAIL_CARD_HEADER_BG, DETAIL_GROUP_HEADER_BG, DROPDOWN_GROUP, DataTableComponent, DateInputComponent, DateRangePickerComponent, DatetimeInputComponent, DetailCardComponent, DiscountSelectorComponent, DividerComponent, DropdownComponent, EMAIL_BLOCK_DRAG_TYPE, EMAIL_TEMPLATE_MAX_BODY, EMAIL_TEMPLATE_MAX_TEXT, EMAIL_TEMPLATE_START_TEXT, EmailTemplateEditorComponent, EmptyStateComponent, ErrorComponent, ErrorStateComponent, FORGEROUTE_CONFIG, FadeComponent, FileInputComponent, FillViewportDirective, FixedFooterComponent, FormColSpanDirective, FormComponent, FormRowComponent, FormSectionComponent, HintComponent, ICON_NAMES, IDX_BEHAVIOR_SIGNALS, INTEGRATION_CATALOG, INTEGRATION_FIELD_DEFS, INTEGRATION_GROUP_ORDER, INTEGRATION_OPTION_DEFS, IconComponent, ImageComponent, ImageGalleryComponent, ImageGalleryDialogComponent, ImagePreviewComponent, ImageRepositionComponent, ImportExportComponent, ImportSourceGridComponent, KeypadComponent, KpiCardComponent, LAYOUT_GAP_PX, LISTED_SPECIAL_PASSWORD_RULES, ListComponent, ListItemComponent, LiveRegionComponent, MAX_EMAIL_ADDRESS_LENGTH, MAX_PAYMENT_AMOUNT, MIN_PAYMENT_AMOUNT, ModalComponent, MoreMenuComponent, MultiSelectComponent, NOTES_MAX_LENGTH, NotesComponent, OfflineBannerComponent, OptionCardComponent, PASSWORD_MAX_LENGTH, PAYMENT_METHOD, PAYMENT_METHOD_PLUGIN, PHONE_NUMBER_AREA_CODE_LENGTH, PHONE_NUMBER_ZIP_LENGTH, PageComponent, PaginationComponent, PanelInfoListComponent, PasswordRequirementsComponent, PaymentCustomMethodComponent, PaymentMethodPlugin, PaymentSidePanelComponent, PdfHotspotComponent, PhoneNumberPickerComponent, PillTabPanelDirective, PillTabsComponent, ProgressBarComponent, ProgressRingComponent, QrCodeComponent, QuickFilterTabsComponent, RICH_TEXT_OPTIONS, RadioComponent, RadioGroupComponent, RadioMatrixComponent, RadioOptionContentDirective, ReadonlyFieldsetComponent, ReminderAlertsComponent, RichTextEditorComponent, SEMANTIC_BADGE_MAP, SETUP_DONE_KEY, SETUP_INTEGRATIONS, SearchInputComponent, SectionHeaderComponent, SelectComponent, SetupWizardComponent, SetupWizardStepDirective, SetupWizardStepHeaderDirective, ShareMenuComponent, ShowComponent, SidePanelComponent, SidebarLayoutComponent, SignaturePadComponent, SkeletonComponent, SnackbarComponent, SnackbarService, StackComponent, StarComponent, StepperComponent, TableToolbarComponent, TextComponent, TextInputComponent, TextTemplatePickerComponent, TextareaInputComponent, TimeInputComponent, TimelineComponent, ToastComponent, ToastService, ToggleBadgeComponent, ToggleComponent, TooltipDirective, US_LOCATIONS, US_STATES, US_STATE_OPTIONS, US_ZIP_PATTERN, UiFieldValidity, acceptLabel, appShellGroupsStorageKey, autoVariant, blockHasContent, buildDefaultSchedule, buildPreviewDocument, buildVideoBlockHtml, builtInActionIcon, businessTimeOptions, callHost, conversationDateLabel, conversationHtmlToText, conversationInitial, conversationMessageStatusLabel, conversationMessageStatusMark, createFieldReveal, createPasswordPolicyValidator, decodeFilterValues, digitsOnly, downloadBlob, emailShareUrl, emptyAddress, encodeFilterValue, encodeFilterValues, errorContextInterceptor, escapeHtml, facebookShareUrl, fileMatchesAccept, fileNameFromContentDisposition, formatAddress, formatAddressValue, formatAddressValueOneLine, formatCategoryLabel, formatConversationPhone, formatConversationTime, formatCurrency, formatDuration, formatFileSize, formatIsoDate, formatIsoDateTime, formatMessageTime, formatPhone, formatPhoneDisplay, formatShortDate, formatTime, formatVideoDuration, getEligibleIds, getEligibleOptions, getErrorMessage, getInitials, gmailShareUrl, groupMessagesByDay, hostErrorMessage, humanReadableMessage, iconPath, insideEditorBlock, integrationPlainText, integrationsForApp, integrationsOnlyFor, isBlockDrag, isEmptyAddress, isValidAmount, isValidEmailAddress, isValidZip, isWebUrl, isoKey, issueToErrors, last4Error, linkedInShareUrl, maxLengthIssue, mergeDescribedBy, normalizeAddress, normalizeHexColor, outlookShareUrl, parseAddressOneLine, parseAddressValue, parseBizHours, parseIso, parseTime, passwordMeetsRules, periodGroup, pillTabId, pillTabPanelId, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours, serializedTextLength, setupIntegrations, splitIntro, terminalTimeoutText, terminalVerdict, todayInTimezone, truncateConversationText, xShareUrl };
|
|
60477
|
+
export { ALLOCATION_CUSTOM, ASCII_SPECIAL_PASSWORD_RULES, ActionBarComponent, AddressInputComponent, AlertComponent, AppShellComponent, AudioPlayerComponent, AvatarComponent, BADGE_VARIANT_STYLES, BadgeComponent, BankAccountFormComponent, BarRowComponent, BoardCardDirective, BoardComponent, BulkMessagePanelComponent, BusinessHoursComponent, ButtonComponent, COMMON_DETAIL_GROUP_STYLES, CalendarComponent, CardListItemComponent, CheckboxComponent, CheckboxTrailingDirective, ChipComponent, ChipGroupComponent, ColorInputComponent, ColumnFilterComponent, ColumnsComponent, ComboboxComponent, ConfirmOutletComponent, ConfirmService, ContactPickerComponent, ConversationRichBodyComponent, ConversationsComponent, DEFAULT_ALLOCATION_MODES, DEFAULT_BANK_ACCOUNT_TYPE_OPTIONS, DEFAULT_BANK_HOLDER_TYPE_OPTIONS, DEFAULT_BANK_MANDATE_TEXT, DEFAULT_EMAIL_TEMPLATE_BLOCK_GROUPS, DEFAULT_EMAIL_TEMPLATE_VARIABLE_GROUPS, DEFAULT_PASSWORD_RULES, DEFAULT_PAYMENT_METHODS, DETAIL_CARD_HEADER_BG, DETAIL_GROUP_HEADER_BG, DROPDOWN_GROUP, DataTableComponent, DateInputComponent, DateRangePickerComponent, DatetimeInputComponent, DetailCardComponent, DiscountSelectorComponent, DividerComponent, DropdownComponent, EMAIL_BLOCK_DRAG_TYPE, EMAIL_TEMPLATE_MAX_BODY, EMAIL_TEMPLATE_MAX_TEXT, EMAIL_TEMPLATE_START_TEXT, EmailTemplateEditorComponent, EmptyStateComponent, ErrorComponent, ErrorStateComponent, FORGEROUTE_CONFIG, FadeComponent, FileInputComponent, FillViewportDirective, FixedFooterComponent, FormColSpanDirective, FormComponent, FormRowComponent, FormSectionComponent, HintComponent, ICON_NAMES, IDX_BEHAVIOR_SIGNALS, INTEGRATION_CATALOG, INTEGRATION_FIELD_DEFS, INTEGRATION_GROUP_ORDER, INTEGRATION_OPTION_DEFS, IconComponent, IconPickerComponent, ImageComponent, ImageGalleryComponent, ImageGalleryDialogComponent, ImagePreviewComponent, ImageRepositionComponent, ImportExportComponent, ImportSourceGridComponent, KeypadComponent, KpiCardComponent, LAYOUT_GAP_PX, LISTED_SPECIAL_PASSWORD_RULES, ListComponent, ListItemComponent, LiveRegionComponent, MAX_EMAIL_ADDRESS_LENGTH, MAX_PAYMENT_AMOUNT, MIN_PAYMENT_AMOUNT, ModalComponent, MoreMenuComponent, MultiSelectComponent, NOTES_MAX_LENGTH, NotesComponent, OfflineBannerComponent, OptionCardComponent, PASSWORD_MAX_LENGTH, PAYMENT_METHOD, PAYMENT_METHOD_PLUGIN, PHONE_NUMBER_AREA_CODE_LENGTH, PHONE_NUMBER_ZIP_LENGTH, PageComponent, PaginationComponent, PanelInfoListComponent, PasswordRequirementsComponent, PaymentCustomMethodComponent, PaymentMethodPlugin, PaymentSidePanelComponent, PdfHotspotComponent, PhoneNumberPickerComponent, PillTabPanelDirective, PillTabsComponent, ProgressBarComponent, ProgressRingComponent, QrCodeComponent, QuickFilterTabsComponent, RICH_TEXT_OPTIONS, RadioComponent, RadioGroupComponent, RadioMatrixComponent, RadioOptionContentDirective, ReadonlyFieldsetComponent, ReminderAlertsComponent, RichTextEditorComponent, SEMANTIC_BADGE_MAP, SETUP_DONE_KEY, SETUP_INTEGRATIONS, SearchInputComponent, SectionHeaderComponent, SelectComponent, SetupWizardComponent, SetupWizardStepDirective, SetupWizardStepHeaderDirective, ShareMenuComponent, ShowComponent, SidePanelComponent, SidebarLayoutComponent, SignaturePadComponent, SkeletonComponent, SnackbarComponent, SnackbarService, StackComponent, StarComponent, StepperComponent, SwatchPickerComponent, TableToolbarComponent, TextComponent, TextInputComponent, TextTemplatePickerComponent, TextareaInputComponent, TimeInputComponent, TimelineComponent, ToastComponent, ToastService, ToggleBadgeComponent, ToggleComponent, TooltipDirective, US_LOCATIONS, US_STATES, US_STATE_OPTIONS, US_ZIP_PATTERN, UiFieldValidity, acceptLabel, appShellGroupsStorageKey, autoVariant, blockHasContent, buildDefaultSchedule, buildPreviewDocument, buildVideoBlockHtml, builtInActionIcon, businessTimeOptions, callHost, conversationDateLabel, conversationHtmlToText, conversationInitial, conversationMessageStatusLabel, conversationMessageStatusMark, createFieldReveal, createPasswordPolicyValidator, decodeFilterValues, digitsOnly, downloadBlob, emailShareUrl, emptyAddress, encodeFilterValue, encodeFilterValues, errorContextInterceptor, escapeHtml, facebookShareUrl, fileMatchesAccept, fileNameFromContentDisposition, formatAddress, formatAddressValue, formatAddressValueOneLine, formatCategoryLabel, formatConversationPhone, formatConversationTime, formatCurrency, formatDuration, formatFileSize, formatIsoDate, formatIsoDateTime, formatMessageTime, formatPhone, formatPhoneDisplay, formatShortDate, formatTime, formatVideoDuration, getEligibleIds, getEligibleOptions, getErrorMessage, getInitials, gmailShareUrl, groupMessagesByDay, hostErrorMessage, humanReadableMessage, iconPath, insideEditorBlock, integrationPlainText, integrationsForApp, integrationsOnlyFor, isBlockDrag, isEmptyAddress, isValidAmount, isValidEmailAddress, isValidZip, isWebUrl, isoKey, issueToErrors, last4Error, linkedInShareUrl, maxLengthIssue, mergeDescribedBy, normalizeAddress, normalizeHexColor, outlookShareUrl, parseAddressOneLine, parseAddressValue, parseBizHours, parseIso, parseTime, passwordMeetsRules, periodGroup, pillTabDescriptionId, pillTabId, pillTabPanelId, pillTabTitleId, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours, serializedTextLength, setupIntegrations, splitIntro, terminalTimeoutText, terminalVerdict, todayInTimezone, truncateConversationText, xShareUrl };
|
|
59421
60478
|
|
|
59422
60479
|
//# sourceMappingURL=forgeroute-ui.mjs.map
|