@forgeroute/ui 0.4.15 → 0.4.17
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 +14 -1
- package/fesm2022/forgeroute-ui-messaging.mjs.map +1 -1
- package/fesm2022/forgeroute-ui-stripe.mjs +5 -1
- package/fesm2022/forgeroute-ui-stripe.mjs.map +1 -1
- package/fesm2022/forgeroute-ui.mjs +1434 -518
- package/fesm2022/forgeroute-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/forgeroute-ui.d.ts +215 -13
|
@@ -1205,7 +1205,7 @@ var ColumnFilterComponent = class ColumnFilterComponent {
|
|
|
1205
1205
|
</div>
|
|
1206
1206
|
`,
|
|
1207
1207
|
isInline: true,
|
|
1208
|
-
styles: [":host{display:inline-block;position:relative}.cf-wrapper{position:relative}.cf-trigger{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;color:#94a3b8;padding:2px 4px;border-radius:4px;font-family:inherit;font-size:.75rem;transition:color .15s}.cf-trigger:hover{color:#1e293b}.cf-trigger.cf-active{color:#3b82f6}.cf-trigger:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media(max-width:640px),(pointer:coarse){.cf-trigger{position:relative}.cf-trigger:after{content:\"\";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}}.cf-active-label{font-size:.75rem;font-weight:500;color:#3b82f6}.cf-trigger--chip{min-height:44px;padding:0 14px;gap:6px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#334155;font-size:.8125rem;font-weight:500}.cf-trigger--chip.cf-active{border-color:#bfdbfe;background:#eff6ff}.cf-trigger--chip:after{display:none}.cf-chip-label{white-space:nowrap}.cf-dropdown{position:fixed;display:flex;flex-direction:column;max-height:calc(100vh - 16px);z-index:9999;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 6px #0000000a,0 12px 28px #0000001a;min-width:220px;animation:cf-drop .16s cubic-bezier(.16,1,.3,1)}.cf-header{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 10px 16px;border-bottom:1px solid #f1f5f9}.cf-header-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#64748b}.cf-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:none;border:none;cursor:pointer;color:#94a3b8;flex-shrink:0;transition:background .13s,color .13s}.cf-close:hover{background:#f1f5f9;color:#1e293b}@media(max-width:640px),(pointer:coarse){.cf-close{position:relative}.cf-close:after{content:\"\";position:absolute;inset:-10px}}.cf-options{padding:6px 8px;overflow-y:auto;min-height:0}.cf-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px;background:none;border:none;border-bottom:1px solid #e2e8f0;cursor:pointer;font-size:.875rem;color:#1e293b;font-family:inherit;text-align:left;border-radius:0;transition:background .12s}.cf-option:last-child{border-bottom:none}.cf-option:hover{background:#f8fafc}.cf-option.cf-selected{background:#eff6ff;color:#1d4ed8;font-weight:500}.cf-option:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.cf-checkbox{flex-shrink:0;width:16px;height:16px;border-radius:4px;border:1.5px solid #d1d5db;display:flex;align-items:center;justify-content:center;background:#fff;transition:background .12s,border-color .12s}.cf-checkbox.cf-checkbox--checked{background:#3b82f6;border-color:#3b82f6;color:#fff}.cf-count{margin-left:auto;font-size:.7rem;font-weight:600;line-height:1;background:#f1f5f9;color:#64748b;border-radius:999px;padding:2px 7px;min-width:22px;text-align:center}.cf-option.cf-selected .cf-count{background:#dbeafe;color:#2563eb}.cf-footer{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid #f1f5f9}.cf-clear{flex:1;padding:8px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;color:#64748b;cursor:pointer;font-family:inherit;font-weight:500;transition:background .12s,color .12s}.cf-clear:hover{background:#f8fafc;color:#1e293b}.cf-apply{flex:1;padding:8px;border-radius:8px;border:none;background:#0f172a;color:#fff;font-size:.8125rem;cursor:pointer;font-family:inherit;font-weight:600;transition:background .12s}.cf-apply:hover{background:#1e293b}@keyframes cf-drop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1024px){.cf-trigger{padding:6px 8px}.cf-option{padding:11px 10px;min-height:40px}.cf-clear,.cf-apply{padding:10px}}@media(max-width:640px){.cf-dropdown{min-width:200px;max-width:calc(100vw - 16px)}.cf-option{padding:12px 10px;min-height:44px}.cf-clear,.cf-apply{padding:11px}}\n"],
|
|
1208
|
+
styles: [":host{display:inline-block;position:relative}.cf-wrapper{position:relative}.cf-trigger{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;color:#94a3b8;padding:2px 4px;border-radius:4px;font-family:inherit;font-size:.75rem;transition:color .15s}.cf-trigger:hover{color:#1e293b}.cf-trigger.cf-active{color:#3b82f6}.cf-trigger:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media(max-width:640px),(pointer:coarse){.cf-trigger{position:relative}.cf-trigger:after{content:\"\";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}}.cf-active-label{font-size:.75rem;font-weight:500;color:#3b82f6}.cf-trigger--chip{min-height:44px;padding:0 14px;gap:6px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#334155;font-size:.8125rem;font-weight:500}.cf-trigger--chip.cf-active{border-color:#bfdbfe;background:#eff6ff}.cf-trigger--chip:after{display:none}.cf-chip-label{white-space:nowrap}.cf-dropdown{position:fixed;display:flex;flex-direction:column;max-height:calc(100vh - 16px);z-index:9999;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 6px #0000000a,0 12px 28px #0000001a;min-width:220px;animation:cf-drop .16s cubic-bezier(.16,1,.3,1)}.cf-header{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 10px 16px;border-bottom:1px solid #f1f5f9}.cf-header-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#64748b}.cf-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:none;border:none;cursor:pointer;color:#94a3b8;flex-shrink:0;transition:background .13s,color .13s}.cf-close:hover{background:#f1f5f9;color:#1e293b}@media(max-width:640px),(pointer:coarse){.cf-close{position:relative}.cf-close:after{content:\"\";position:absolute;inset:-10px}}.cf-options{padding:6px 8px;overflow-y:auto;min-height:0}.cf-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px;background:none;border:none;border-bottom:1px solid #e2e8f0;cursor:pointer;font-size:.875rem;font-weight:400;color:#1e293b;font-family:inherit;text-align:left;border-radius:0;transition:background .12s}.cf-option:last-child{border-bottom:none}.cf-option:hover{background:#f8fafc}.cf-option.cf-selected{background:#eff6ff;color:#1d4ed8;font-weight:500}.cf-option:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.cf-checkbox{flex-shrink:0;width:16px;height:16px;border-radius:4px;border:1.5px solid #d1d5db;display:flex;align-items:center;justify-content:center;background:#fff;transition:background .12s,border-color .12s}.cf-checkbox.cf-checkbox--checked{background:#3b82f6;border-color:#3b82f6;color:#fff}.cf-count{margin-left:auto;font-size:.7rem;font-weight:600;line-height:1;background:#f1f5f9;color:#64748b;border-radius:999px;padding:2px 7px;min-width:22px;text-align:center}.cf-option.cf-selected .cf-count{background:#dbeafe;color:#2563eb}.cf-footer{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid #f1f5f9}.cf-clear{flex:1;padding:8px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;color:#64748b;cursor:pointer;font-family:inherit;font-weight:500;transition:background .12s,color .12s}.cf-clear:hover{background:#f8fafc;color:#1e293b}.cf-apply{flex:1;padding:8px;border-radius:8px;border:none;background:#0f172a;color:#fff;font-size:.8125rem;cursor:pointer;font-family:inherit;font-weight:600;transition:background .12s}.cf-apply:hover{background:#1e293b}@keyframes cf-drop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1024px){.cf-trigger{padding:6px 8px}.cf-option{padding:11px 10px;min-height:40px}.cf-clear,.cf-apply{padding:10px}}@media(max-width:640px){.cf-dropdown{min-width:200px;max-width:calc(100vw - 16px)}.cf-option{padding:12px 10px;min-height:44px}.cf-clear,.cf-apply{padding:11px}}\n"],
|
|
1209
1209
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
1210
1210
|
});
|
|
1211
1211
|
}
|
|
@@ -1294,7 +1294,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
1294
1294
|
}
|
|
1295
1295
|
</div>
|
|
1296
1296
|
`,
|
|
1297
|
-
styles: [":host{display:inline-block;position:relative}.cf-wrapper{position:relative}.cf-trigger{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;color:#94a3b8;padding:2px 4px;border-radius:4px;font-family:inherit;font-size:.75rem;transition:color .15s}.cf-trigger:hover{color:#1e293b}.cf-trigger.cf-active{color:#3b82f6}.cf-trigger:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media(max-width:640px),(pointer:coarse){.cf-trigger{position:relative}.cf-trigger:after{content:\"\";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}}.cf-active-label{font-size:.75rem;font-weight:500;color:#3b82f6}.cf-trigger--chip{min-height:44px;padding:0 14px;gap:6px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#334155;font-size:.8125rem;font-weight:500}.cf-trigger--chip.cf-active{border-color:#bfdbfe;background:#eff6ff}.cf-trigger--chip:after{display:none}.cf-chip-label{white-space:nowrap}.cf-dropdown{position:fixed;display:flex;flex-direction:column;max-height:calc(100vh - 16px);z-index:9999;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 6px #0000000a,0 12px 28px #0000001a;min-width:220px;animation:cf-drop .16s cubic-bezier(.16,1,.3,1)}.cf-header{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 10px 16px;border-bottom:1px solid #f1f5f9}.cf-header-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#64748b}.cf-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:none;border:none;cursor:pointer;color:#94a3b8;flex-shrink:0;transition:background .13s,color .13s}.cf-close:hover{background:#f1f5f9;color:#1e293b}@media(max-width:640px),(pointer:coarse){.cf-close{position:relative}.cf-close:after{content:\"\";position:absolute;inset:-10px}}.cf-options{padding:6px 8px;overflow-y:auto;min-height:0}.cf-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px;background:none;border:none;border-bottom:1px solid #e2e8f0;cursor:pointer;font-size:.875rem;color:#1e293b;font-family:inherit;text-align:left;border-radius:0;transition:background .12s}.cf-option:last-child{border-bottom:none}.cf-option:hover{background:#f8fafc}.cf-option.cf-selected{background:#eff6ff;color:#1d4ed8;font-weight:500}.cf-option:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.cf-checkbox{flex-shrink:0;width:16px;height:16px;border-radius:4px;border:1.5px solid #d1d5db;display:flex;align-items:center;justify-content:center;background:#fff;transition:background .12s,border-color .12s}.cf-checkbox.cf-checkbox--checked{background:#3b82f6;border-color:#3b82f6;color:#fff}.cf-count{margin-left:auto;font-size:.7rem;font-weight:600;line-height:1;background:#f1f5f9;color:#64748b;border-radius:999px;padding:2px 7px;min-width:22px;text-align:center}.cf-option.cf-selected .cf-count{background:#dbeafe;color:#2563eb}.cf-footer{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid #f1f5f9}.cf-clear{flex:1;padding:8px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;color:#64748b;cursor:pointer;font-family:inherit;font-weight:500;transition:background .12s,color .12s}.cf-clear:hover{background:#f8fafc;color:#1e293b}.cf-apply{flex:1;padding:8px;border-radius:8px;border:none;background:#0f172a;color:#fff;font-size:.8125rem;cursor:pointer;font-family:inherit;font-weight:600;transition:background .12s}.cf-apply:hover{background:#1e293b}@keyframes cf-drop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1024px){.cf-trigger{padding:6px 8px}.cf-option{padding:11px 10px;min-height:40px}.cf-clear,.cf-apply{padding:10px}}@media(max-width:640px){.cf-dropdown{min-width:200px;max-width:calc(100vw - 16px)}.cf-option{padding:12px 10px;min-height:44px}.cf-clear,.cf-apply{padding:11px}}\n"]
|
|
1297
|
+
styles: [":host{display:inline-block;position:relative}.cf-wrapper{position:relative}.cf-trigger{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;color:#94a3b8;padding:2px 4px;border-radius:4px;font-family:inherit;font-size:.75rem;transition:color .15s}.cf-trigger:hover{color:#1e293b}.cf-trigger.cf-active{color:#3b82f6}.cf-trigger:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media(max-width:640px),(pointer:coarse){.cf-trigger{position:relative}.cf-trigger:after{content:\"\";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}}.cf-active-label{font-size:.75rem;font-weight:500;color:#3b82f6}.cf-trigger--chip{min-height:44px;padding:0 14px;gap:6px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#334155;font-size:.8125rem;font-weight:500}.cf-trigger--chip.cf-active{border-color:#bfdbfe;background:#eff6ff}.cf-trigger--chip:after{display:none}.cf-chip-label{white-space:nowrap}.cf-dropdown{position:fixed;display:flex;flex-direction:column;max-height:calc(100vh - 16px);z-index:9999;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 6px #0000000a,0 12px 28px #0000001a;min-width:220px;animation:cf-drop .16s cubic-bezier(.16,1,.3,1)}.cf-header{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 10px 16px;border-bottom:1px solid #f1f5f9}.cf-header-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#64748b}.cf-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:none;border:none;cursor:pointer;color:#94a3b8;flex-shrink:0;transition:background .13s,color .13s}.cf-close:hover{background:#f1f5f9;color:#1e293b}@media(max-width:640px),(pointer:coarse){.cf-close{position:relative}.cf-close:after{content:\"\";position:absolute;inset:-10px}}.cf-options{padding:6px 8px;overflow-y:auto;min-height:0}.cf-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px;background:none;border:none;border-bottom:1px solid #e2e8f0;cursor:pointer;font-size:.875rem;font-weight:400;color:#1e293b;font-family:inherit;text-align:left;border-radius:0;transition:background .12s}.cf-option:last-child{border-bottom:none}.cf-option:hover{background:#f8fafc}.cf-option.cf-selected{background:#eff6ff;color:#1d4ed8;font-weight:500}.cf-option:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.cf-checkbox{flex-shrink:0;width:16px;height:16px;border-radius:4px;border:1.5px solid #d1d5db;display:flex;align-items:center;justify-content:center;background:#fff;transition:background .12s,border-color .12s}.cf-checkbox.cf-checkbox--checked{background:#3b82f6;border-color:#3b82f6;color:#fff}.cf-count{margin-left:auto;font-size:.7rem;font-weight:600;line-height:1;background:#f1f5f9;color:#64748b;border-radius:999px;padding:2px 7px;min-width:22px;text-align:center}.cf-option.cf-selected .cf-count{background:#dbeafe;color:#2563eb}.cf-footer{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid #f1f5f9}.cf-clear{flex:1;padding:8px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:.8125rem;color:#64748b;cursor:pointer;font-family:inherit;font-weight:500;transition:background .12s,color .12s}.cf-clear:hover{background:#f8fafc;color:#1e293b}.cf-apply{flex:1;padding:8px;border-radius:8px;border:none;background:#0f172a;color:#fff;font-size:.8125rem;cursor:pointer;font-family:inherit;font-weight:600;transition:background .12s}.cf-apply:hover{background:#1e293b}@keyframes cf-drop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1024px){.cf-trigger{padding:6px 8px}.cf-option{padding:11px 10px;min-height:40px}.cf-clear,.cf-apply{padding:10px}}@media(max-width:640px){.cf-dropdown{min-width:200px;max-width:calc(100vw - 16px)}.cf-option{padding:12px 10px;min-height:44px}.cf-clear,.cf-apply{padding:11px}}\n"]
|
|
1298
1298
|
}]
|
|
1299
1299
|
}],
|
|
1300
1300
|
ctorParameters: () => [],
|
|
@@ -2068,8 +2068,114 @@ function isUsableField(el) {
|
|
|
2068
2068
|
const view = el.ownerDocument.defaultView;
|
|
2069
2069
|
return !view || view.getComputedStyle(el).visibility !== "hidden";
|
|
2070
2070
|
}
|
|
2071
|
+
const TABBABLE_SELECTOR = "button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), iframe, [tabindex]:not([tabindex=\"-1\"])";
|
|
2071
2072
|
function tabbables(root) {
|
|
2072
|
-
return Array.from(root.querySelectorAll(
|
|
2073
|
+
return Array.from(root.querySelectorAll(TABBABLE_SELECTOR)).filter((el) => {
|
|
2074
|
+
if (el.getAttribute("tabindex") === "-1") return false;
|
|
2075
|
+
if (el.hasAttribute("data-ui-focus-guard")) return false;
|
|
2076
|
+
return el.tagName !== "IFRAME" || isRenderedFrame(el);
|
|
2077
|
+
});
|
|
2078
|
+
}
|
|
2079
|
+
function isRenderedFrame(el) {
|
|
2080
|
+
if (!el.getClientRects().length || el.closest("[inert]")) return false;
|
|
2081
|
+
const view = el.ownerDocument.defaultView;
|
|
2082
|
+
return !view || view.getComputedStyle(el).visibility !== "hidden";
|
|
2083
|
+
}
|
|
2084
|
+
function redirectFromGuard(which, host, dialog, relatedTarget = null) {
|
|
2085
|
+
const list = tabbables(host);
|
|
2086
|
+
if (!list.length) {
|
|
2087
|
+
dialog?.focus();
|
|
2088
|
+
return;
|
|
2089
|
+
}
|
|
2090
|
+
if (which === "start" && dialog && relatedTarget === dialog) {
|
|
2091
|
+
list[0].focus();
|
|
2092
|
+
return;
|
|
2093
|
+
}
|
|
2094
|
+
(which === "start" ? list[list.length - 1] : list[0]).focus();
|
|
2095
|
+
}
|
|
2096
|
+
function neighbourTabbable(list, ref, dir) {
|
|
2097
|
+
if (!list.length) return null;
|
|
2098
|
+
if (dir === 1) return list.find((el) => el !== ref && !ref.contains(el) && (ref.compareDocumentPosition(el) & 4) !== 0) ?? list[0];
|
|
2099
|
+
return [...list].reverse().find((el) => el !== ref && !el.contains(ref) && (ref.compareDocumentPosition(el) & 2) !== 0) ?? list[list.length - 1];
|
|
2100
|
+
}
|
|
2101
|
+
function accessibleDocument(frame) {
|
|
2102
|
+
try {
|
|
2103
|
+
return frame.contentDocument ?? null;
|
|
2104
|
+
} catch {
|
|
2105
|
+
return null;
|
|
2106
|
+
}
|
|
2107
|
+
}
|
|
2108
|
+
function bridgeIframeKeys(root, doc, options) {
|
|
2109
|
+
if (!doc.defaultView) return () => {};
|
|
2110
|
+
const bound = /* @__PURE__ */ new Map();
|
|
2111
|
+
const makeHandler = (frame) => (event) => {
|
|
2112
|
+
if (event.key === "Escape") {
|
|
2113
|
+
options.onEscape(event);
|
|
2114
|
+
return;
|
|
2115
|
+
}
|
|
2116
|
+
if (event.key !== "Tab" || !options.isActive()) return;
|
|
2117
|
+
const inner = accessibleDocument(frame);
|
|
2118
|
+
if (!inner) return;
|
|
2119
|
+
const own = tabbables(inner.body);
|
|
2120
|
+
const active = inner.activeElement;
|
|
2121
|
+
if (!(event.shiftKey ? !own.length || active === own[0] || active === inner.body || active === inner.documentElement : !own.length || active === own[own.length - 1])) return;
|
|
2122
|
+
const target = neighbourTabbable(tabbables(root), frame, event.shiftKey ? -1 : 1);
|
|
2123
|
+
if (!target) return;
|
|
2124
|
+
event.preventDefault();
|
|
2125
|
+
target.focus();
|
|
2126
|
+
};
|
|
2127
|
+
const unbindDoc = (b) => {
|
|
2128
|
+
if (!b.doc) return;
|
|
2129
|
+
try {
|
|
2130
|
+
b.doc.removeEventListener("keydown", b.onKey, true);
|
|
2131
|
+
} catch {}
|
|
2132
|
+
b.doc = null;
|
|
2133
|
+
};
|
|
2134
|
+
const bindDoc = (frame, b) => {
|
|
2135
|
+
unbindDoc(b);
|
|
2136
|
+
const inner = accessibleDocument(frame);
|
|
2137
|
+
if (!inner) return;
|
|
2138
|
+
inner.addEventListener("keydown", b.onKey, true);
|
|
2139
|
+
b.doc = inner;
|
|
2140
|
+
};
|
|
2141
|
+
const attach = (frame) => {
|
|
2142
|
+
const b = {
|
|
2143
|
+
doc: null,
|
|
2144
|
+
onKey: makeHandler(frame),
|
|
2145
|
+
onLoad: () => bindDoc(frame, b)
|
|
2146
|
+
};
|
|
2147
|
+
frame.addEventListener("load", b.onLoad);
|
|
2148
|
+
bound.set(frame, b);
|
|
2149
|
+
bindDoc(frame, b);
|
|
2150
|
+
};
|
|
2151
|
+
const detach = (frame) => {
|
|
2152
|
+
const b = bound.get(frame);
|
|
2153
|
+
if (!b) return;
|
|
2154
|
+
frame.removeEventListener("load", b.onLoad);
|
|
2155
|
+
unbindDoc(b);
|
|
2156
|
+
bound.delete(frame);
|
|
2157
|
+
};
|
|
2158
|
+
const sync = () => {
|
|
2159
|
+
const current = new Set(Array.from(root.querySelectorAll("iframe")));
|
|
2160
|
+
for (const frame of Array.from(bound.keys())) if (!current.has(frame)) detach(frame);
|
|
2161
|
+
for (const frame of current) if (!bound.has(frame)) attach(frame);
|
|
2162
|
+
};
|
|
2163
|
+
sync();
|
|
2164
|
+
const touchesFrame = (n) => n.nodeType === 1 && (n.tagName === "IFRAME" || !!n.querySelector("iframe"));
|
|
2165
|
+
const observer = typeof MutationObserver === "undefined" ? null : new MutationObserver((records) => {
|
|
2166
|
+
if (records.some((r) => Array.from(r.addedNodes).some(touchesFrame) || Array.from(r.removedNodes).some(touchesFrame))) sync();
|
|
2167
|
+
});
|
|
2168
|
+
observer?.observe(root, {
|
|
2169
|
+
childList: true,
|
|
2170
|
+
subtree: true
|
|
2171
|
+
});
|
|
2172
|
+
let destroyed = false;
|
|
2173
|
+
return () => {
|
|
2174
|
+
if (destroyed) return;
|
|
2175
|
+
destroyed = true;
|
|
2176
|
+
observer?.disconnect();
|
|
2177
|
+
for (const frame of Array.from(bound.keys())) detach(frame);
|
|
2178
|
+
};
|
|
2073
2179
|
}
|
|
2074
2180
|
function focusInitial(dialog, body, doc) {
|
|
2075
2181
|
if (!dialog) return;
|
|
@@ -2091,6 +2197,105 @@ function focusInitial(dialog, body, doc) {
|
|
|
2091
2197
|
for (const f of fields) if (isUsableField(f) && tryFocus(f)) return;
|
|
2092
2198
|
dialog.focus();
|
|
2093
2199
|
}
|
|
2200
|
+
const FOCUSABLE_ANCESTOR = "button, a[href], [tabindex], [role=\"button\"], input:not([type=\"hidden\"]), select, textarea, summary";
|
|
2201
|
+
var LastInteraction = class LastInteraction {
|
|
2202
|
+
constructor() {
|
|
2203
|
+
this._target = null;
|
|
2204
|
+
this._at = 0;
|
|
2205
|
+
this._users = 0;
|
|
2206
|
+
this._off = null;
|
|
2207
|
+
}
|
|
2208
|
+
get target() {
|
|
2209
|
+
return this._target;
|
|
2210
|
+
}
|
|
2211
|
+
consume() {
|
|
2212
|
+
const fresh = this._target && Date.now() - this._at <= 1e3 ? this._target : null;
|
|
2213
|
+
this._target = null;
|
|
2214
|
+
return fresh;
|
|
2215
|
+
}
|
|
2216
|
+
acquire(doc) {
|
|
2217
|
+
this._users++;
|
|
2218
|
+
if (this._off || !doc.defaultView) return;
|
|
2219
|
+
const remember = (e) => {
|
|
2220
|
+
if (e.target instanceof Element) {
|
|
2221
|
+
this._target = e.target;
|
|
2222
|
+
this._at = Date.now();
|
|
2223
|
+
}
|
|
2224
|
+
};
|
|
2225
|
+
const onKey = (e) => {
|
|
2226
|
+
if (e.key === "Enter" || e.key === " ") remember(e);
|
|
2227
|
+
};
|
|
2228
|
+
doc.addEventListener("pointerdown", remember, true);
|
|
2229
|
+
doc.addEventListener("click", remember, true);
|
|
2230
|
+
doc.addEventListener("keydown", onKey, true);
|
|
2231
|
+
this._off = () => {
|
|
2232
|
+
doc.removeEventListener("pointerdown", remember, true);
|
|
2233
|
+
doc.removeEventListener("click", remember, true);
|
|
2234
|
+
doc.removeEventListener("keydown", onKey, true);
|
|
2235
|
+
};
|
|
2236
|
+
}
|
|
2237
|
+
release() {
|
|
2238
|
+
this._users = Math.max(0, this._users - 1);
|
|
2239
|
+
if (this._users > 0) return;
|
|
2240
|
+
this._off?.();
|
|
2241
|
+
this._off = null;
|
|
2242
|
+
this._target = null;
|
|
2243
|
+
}
|
|
2244
|
+
static {
|
|
2245
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
2246
|
+
minVersion: "12.0.0",
|
|
2247
|
+
version: "22.2.2",
|
|
2248
|
+
ngImport: i0,
|
|
2249
|
+
type: LastInteraction,
|
|
2250
|
+
deps: [],
|
|
2251
|
+
target: i0.ɵɵFactoryTarget.Injectable
|
|
2252
|
+
});
|
|
2253
|
+
}
|
|
2254
|
+
static {
|
|
2255
|
+
this.ɵprov = i0.ɵɵngDeclareInjectable({
|
|
2256
|
+
minVersion: "12.0.0",
|
|
2257
|
+
version: "22.2.2",
|
|
2258
|
+
ngImport: i0,
|
|
2259
|
+
type: LastInteraction,
|
|
2260
|
+
providedIn: "root"
|
|
2261
|
+
});
|
|
2262
|
+
}
|
|
2263
|
+
};
|
|
2264
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
2265
|
+
minVersion: "12.0.0",
|
|
2266
|
+
version: "22.2.2",
|
|
2267
|
+
ngImport: i0,
|
|
2268
|
+
type: LastInteraction,
|
|
2269
|
+
decorators: [{
|
|
2270
|
+
type: Injectable,
|
|
2271
|
+
args: [{ providedIn: "root" }]
|
|
2272
|
+
}]
|
|
2273
|
+
});
|
|
2274
|
+
function closestFocusable(target) {
|
|
2275
|
+
return target?.closest(FOCUSABLE_ANCESTOR) ?? null;
|
|
2276
|
+
}
|
|
2277
|
+
function resolveTrigger(doc, tracker) {
|
|
2278
|
+
const consumed = tracker.consume();
|
|
2279
|
+
const active = doc.activeElement;
|
|
2280
|
+
const isBody = !active || active === doc.body || active === doc.documentElement;
|
|
2281
|
+
const isDialog = !isBody && active.matches("[role=\"dialog\"]");
|
|
2282
|
+
if (!isBody && !isDialog) return active;
|
|
2283
|
+
const tracked = closestFocusable(consumed);
|
|
2284
|
+
if (!tracked) return active;
|
|
2285
|
+
return isDialog && !active.contains(tracked) ? active : tracked;
|
|
2286
|
+
}
|
|
2287
|
+
function isUsable(el) {
|
|
2288
|
+
if (!el || !el.isConnected || !el.getClientRects().length) return false;
|
|
2289
|
+
const view = el.ownerDocument.defaultView;
|
|
2290
|
+
return !view || view.getComputedStyle(el).visibility !== "hidden";
|
|
2291
|
+
}
|
|
2292
|
+
function restoreFocus(explicit, captured) {
|
|
2293
|
+
for (const candidate of [explicit, captured]) if (isUsable(candidate)) {
|
|
2294
|
+
candidate.focus();
|
|
2295
|
+
return;
|
|
2296
|
+
}
|
|
2297
|
+
captured?.focus();
|
|
2298
|
+
}
|
|
2094
2299
|
function trackVisualViewport(win, host) {
|
|
2095
2300
|
const vv = win?.visualViewport;
|
|
2096
2301
|
if (!win || !vv) return () => {};
|
|
@@ -2120,6 +2325,7 @@ var ModalComponent = class ModalComponent {
|
|
|
2120
2325
|
this.hideClose = input(false, ...ngDevMode ? [{ debugName: "hideClose" }] : /* istanbul ignore next */ []);
|
|
2121
2326
|
this.closable = input(true, ...ngDevMode ? [{ debugName: "closable" }] : /* istanbul ignore next */ []);
|
|
2122
2327
|
this.close = output();
|
|
2328
|
+
this.returnFocusTo = input(null, ...ngDevMode ? [{ debugName: "returnFocusTo" }] : /* istanbul ignore next */ []);
|
|
2123
2329
|
this.titleId = `m-title-${Math.random().toString(36).slice(2, 8)}`;
|
|
2124
2330
|
this.el = inject(ElementRef);
|
|
2125
2331
|
this.ren = inject(Renderer2);
|
|
@@ -2128,10 +2334,18 @@ var ModalComponent = class ModalComponent {
|
|
|
2128
2334
|
this._prevFocus = null;
|
|
2129
2335
|
this._scrollLocked = false;
|
|
2130
2336
|
this._stopViewport = null;
|
|
2337
|
+
this._stopIframeKeys = null;
|
|
2338
|
+
this._interaction = inject(LastInteraction);
|
|
2339
|
+
this._interaction.acquire(this.doc);
|
|
2131
2340
|
effect(() => {
|
|
2132
2341
|
if (this.open()) {
|
|
2133
2342
|
this._overlays.push(this);
|
|
2134
|
-
this._prevFocus = this.doc.
|
|
2343
|
+
this._prevFocus = resolveTrigger(this.doc, this._interaction);
|
|
2344
|
+
this._stopIframeKeys?.();
|
|
2345
|
+
this._stopIframeKeys = bridgeIframeKeys(this.el.nativeElement, this.doc, {
|
|
2346
|
+
onEscape: (e) => this.onKeydown(e),
|
|
2347
|
+
isActive: () => this.open() && this._overlays.isTop(this)
|
|
2348
|
+
});
|
|
2135
2349
|
this.doc.body.style.overflow = "hidden";
|
|
2136
2350
|
this._scrollLocked = true;
|
|
2137
2351
|
this._stopViewport?.();
|
|
@@ -2143,7 +2357,9 @@ var ModalComponent = class ModalComponent {
|
|
|
2143
2357
|
this._scrollLocked = false;
|
|
2144
2358
|
this._stopViewport?.();
|
|
2145
2359
|
this._stopViewport = null;
|
|
2146
|
-
this.
|
|
2360
|
+
this._stopIframeKeys?.();
|
|
2361
|
+
this._stopIframeKeys = null;
|
|
2362
|
+
restoreFocus(untracked(() => this.returnFocusTo()), this._prevFocus);
|
|
2147
2363
|
this._prevFocus = null;
|
|
2148
2364
|
}
|
|
2149
2365
|
});
|
|
@@ -2175,6 +2391,10 @@ var ModalComponent = class ModalComponent {
|
|
|
2175
2391
|
}
|
|
2176
2392
|
}
|
|
2177
2393
|
}
|
|
2394
|
+
onGuardFocus(which, event) {
|
|
2395
|
+
if (!this._overlays.isTop(this)) return;
|
|
2396
|
+
redirectFromGuard(which, this.el.nativeElement, this.el.nativeElement.querySelector(".m-modal"), event?.relatedTarget ?? null);
|
|
2397
|
+
}
|
|
2178
2398
|
_focusFirst() {
|
|
2179
2399
|
focusInitial(this.el.nativeElement.querySelector(".m-modal"), this.el.nativeElement.querySelector(".m-body"), this.doc);
|
|
2180
2400
|
}
|
|
@@ -2185,6 +2405,9 @@ var ModalComponent = class ModalComponent {
|
|
|
2185
2405
|
this.ren.appendChild(this.doc.body, this.el.nativeElement);
|
|
2186
2406
|
}
|
|
2187
2407
|
ngOnDestroy() {
|
|
2408
|
+
this._interaction.release();
|
|
2409
|
+
this._stopIframeKeys?.();
|
|
2410
|
+
this._stopIframeKeys = null;
|
|
2188
2411
|
this._stopViewport?.();
|
|
2189
2412
|
this._stopViewport = null;
|
|
2190
2413
|
this._overlays.remove(this);
|
|
@@ -2265,6 +2488,13 @@ var ModalComponent = class ModalComponent {
|
|
|
2265
2488
|
isSignal: true,
|
|
2266
2489
|
isRequired: false,
|
|
2267
2490
|
transformFunction: null
|
|
2491
|
+
},
|
|
2492
|
+
returnFocusTo: {
|
|
2493
|
+
classPropertyName: "returnFocusTo",
|
|
2494
|
+
publicName: "returnFocusTo",
|
|
2495
|
+
isSignal: true,
|
|
2496
|
+
isRequired: false,
|
|
2497
|
+
transformFunction: null
|
|
2268
2498
|
}
|
|
2269
2499
|
},
|
|
2270
2500
|
outputs: { close: "close" },
|
|
@@ -2274,6 +2504,7 @@ var ModalComponent = class ModalComponent {
|
|
|
2274
2504
|
@if (open()) {
|
|
2275
2505
|
<div class="m-backdrop" (click)="closable() && close.emit()"></div>
|
|
2276
2506
|
<div class="m-modal" role="dialog" aria-modal="true" tabindex="-1" [attr.aria-labelledby]="titleId" [attr.data-testid]="dialogTestId() || null" [style.max-width]="maxWidth()">
|
|
2507
|
+
<span class="m-focus-guard" data-ui-focus-guard="start" tabindex="0" (focus)="onGuardFocus('start', $event)"></span>
|
|
2277
2508
|
<div class="m-header">
|
|
2278
2509
|
<div class="m-header-text">
|
|
2279
2510
|
<h3 class="m-title" [id]="titleId">{{ title() }}</h3>
|
|
@@ -2297,11 +2528,12 @@ var ModalComponent = class ModalComponent {
|
|
|
2297
2528
|
<div class="m-footer-center"><ng-content select="[modal-footer-center]" /></div>
|
|
2298
2529
|
<div class="m-footer-right"><ng-content select="[modal-footer-right]" /></div>
|
|
2299
2530
|
</div>
|
|
2531
|
+
<span class="m-focus-guard" data-ui-focus-guard="end" tabindex="0" (focus)="onGuardFocus('end', $event)"></span>
|
|
2300
2532
|
</div>
|
|
2301
2533
|
}
|
|
2302
2534
|
`,
|
|
2303
2535
|
isInline: true,
|
|
2304
|
-
styles: [".m-backdrop{position:fixed;inset:0;background:#02081773;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;animation:m-fade .18s ease}.m-modal:focus{outline:none}.m-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;border:1px solid rgba(0,0,0,.07);z-index:201;width:calc(100% - 32px);box-shadow:0 4px 6px #0000000a,0 16px 32px #0000001f,0 48px 96px #0000001a;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;animation:m-scale .22s cubic-bezier(.16,1,.3,1)}.m-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:16px 16px 0 0;flex-shrink:0}.m-header-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.m-title{font-size:1.125rem;font-weight:700;color:#0f172a;margin:0;letter-spacing:-.02em;line-height:1.3}.m-description{font-size:.8125rem;color:#64748b;margin:0;line-height:1.4}.m-close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:none;background:none;cursor:pointer;color:#94a3b8;flex-shrink:0;margin-left:12px;transition:background .13s,color .13s}.m-close:hover{background:#f1f5f9;color:#1e293b}.m-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.m-body{padding:20px 24px;overflow-y:auto;flex:1;min-height:0;font-size:.9rem;color:#475569;line-height:1.65}.m-footer{padding:14px 24px 18px;background:#f8fafc;border-top:1px solid #e2e8f0;border-radius:0 0 16px 16px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.m-footer:not(:has(*)){display:none}.m-footer-left{display:flex;align-items:center;gap:8px}.m-footer-right{display:flex;align-items:center;gap:8px;margin-left:auto}.m-footer-center{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px}.m-footer-center:empty{display:none}@media(max-width:480px){.m-modal{top:auto;bottom:var(--ui-kb, 0px);left:0;right:0;transform:none;width:100vw;max-width:none!important;max-height:min(85dvh,var(--ui-vvh, 100dvh));border-radius:20px 20px 0 0;animation:m-up .24s cubic-bezier(.16,1,.3,1)}.m-footer{border-radius:0;flex-direction:column-reverse;align-items:stretch;padding-bottom:max(18px,env(safe-area-inset-bottom))}}@media(pointer:coarse),(max-width:480px){.m-close{position:relative}.m-close:after{content:\"\";position:absolute;inset:-7px}}@keyframes m-fade{0%{opacity:0}to{opacity:1}}@keyframes m-scale{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes m-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"],
|
|
2536
|
+
styles: [".m-backdrop{position:fixed;inset:0;background:#02081773;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;animation:m-fade .18s ease}.m-modal:focus{outline:none}.m-focus-guard{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;outline:none}.m-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;border:1px solid rgba(0,0,0,.07);z-index:201;width:calc(100% - 32px);box-shadow:0 4px 6px #0000000a,0 16px 32px #0000001f,0 48px 96px #0000001a;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;animation:m-scale .22s cubic-bezier(.16,1,.3,1)}.m-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:16px 16px 0 0;flex-shrink:0}.m-header-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.m-title{font-size:1.125rem;font-weight:700;color:#0f172a;margin:0;letter-spacing:-.02em;line-height:1.3}.m-description{font-size:.8125rem;color:#64748b;margin:0;line-height:1.4}.m-close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:none;background:none;cursor:pointer;color:#94a3b8;flex-shrink:0;margin-left:12px;transition:background .13s,color .13s}.m-close:hover{background:#f1f5f9;color:#1e293b}.m-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.m-body{padding:20px 24px;overflow-y:auto;flex:1;min-height:0;font-size:.9rem;color:#475569;line-height:1.65}.m-footer{padding:14px 24px 18px;background:#f8fafc;border-top:1px solid #e2e8f0;border-radius:0 0 16px 16px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.m-footer:not(:has(*)){display:none}.m-footer-left{display:flex;align-items:center;gap:8px}.m-footer-right{display:flex;align-items:center;gap:8px;margin-left:auto}.m-footer-center{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px}.m-footer-center:empty{display:none}@media(max-width:480px){.m-modal{top:auto;bottom:var(--ui-kb, 0px);left:0;right:0;transform:none;width:100vw;max-width:none!important;max-height:min(85dvh,var(--ui-vvh, 100dvh));border-radius:20px 20px 0 0;animation:m-up .24s cubic-bezier(.16,1,.3,1)}.m-footer{border-radius:0;flex-direction:column-reverse;align-items:stretch;padding-bottom:max(18px,env(safe-area-inset-bottom))}}@media(pointer:coarse),(max-width:480px){.m-close{position:relative}.m-close:after{content:\"\";position:absolute;inset:-7px}}@keyframes m-fade{0%{opacity:0}to{opacity:1}}@keyframes m-scale{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes m-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"],
|
|
2305
2537
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
2306
2538
|
});
|
|
2307
2539
|
}
|
|
@@ -2322,6 +2554,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2322
2554
|
@if (open()) {
|
|
2323
2555
|
<div class="m-backdrop" (click)="closable() && close.emit()"></div>
|
|
2324
2556
|
<div class="m-modal" role="dialog" aria-modal="true" tabindex="-1" [attr.aria-labelledby]="titleId" [attr.data-testid]="dialogTestId() || null" [style.max-width]="maxWidth()">
|
|
2557
|
+
<span class="m-focus-guard" data-ui-focus-guard="start" tabindex="0" (focus)="onGuardFocus('start', $event)"></span>
|
|
2325
2558
|
<div class="m-header">
|
|
2326
2559
|
<div class="m-header-text">
|
|
2327
2560
|
<h3 class="m-title" [id]="titleId">{{ title() }}</h3>
|
|
@@ -2345,10 +2578,11 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2345
2578
|
<div class="m-footer-center"><ng-content select="[modal-footer-center]" /></div>
|
|
2346
2579
|
<div class="m-footer-right"><ng-content select="[modal-footer-right]" /></div>
|
|
2347
2580
|
</div>
|
|
2581
|
+
<span class="m-focus-guard" data-ui-focus-guard="end" tabindex="0" (focus)="onGuardFocus('end', $event)"></span>
|
|
2348
2582
|
</div>
|
|
2349
2583
|
}
|
|
2350
2584
|
`,
|
|
2351
|
-
styles: [".m-backdrop{position:fixed;inset:0;background:#02081773;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;animation:m-fade .18s ease}.m-modal:focus{outline:none}.m-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;border:1px solid rgba(0,0,0,.07);z-index:201;width:calc(100% - 32px);box-shadow:0 4px 6px #0000000a,0 16px 32px #0000001f,0 48px 96px #0000001a;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;animation:m-scale .22s cubic-bezier(.16,1,.3,1)}.m-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:16px 16px 0 0;flex-shrink:0}.m-header-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.m-title{font-size:1.125rem;font-weight:700;color:#0f172a;margin:0;letter-spacing:-.02em;line-height:1.3}.m-description{font-size:.8125rem;color:#64748b;margin:0;line-height:1.4}.m-close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:none;background:none;cursor:pointer;color:#94a3b8;flex-shrink:0;margin-left:12px;transition:background .13s,color .13s}.m-close:hover{background:#f1f5f9;color:#1e293b}.m-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.m-body{padding:20px 24px;overflow-y:auto;flex:1;min-height:0;font-size:.9rem;color:#475569;line-height:1.65}.m-footer{padding:14px 24px 18px;background:#f8fafc;border-top:1px solid #e2e8f0;border-radius:0 0 16px 16px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.m-footer:not(:has(*)){display:none}.m-footer-left{display:flex;align-items:center;gap:8px}.m-footer-right{display:flex;align-items:center;gap:8px;margin-left:auto}.m-footer-center{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px}.m-footer-center:empty{display:none}@media(max-width:480px){.m-modal{top:auto;bottom:var(--ui-kb, 0px);left:0;right:0;transform:none;width:100vw;max-width:none!important;max-height:min(85dvh,var(--ui-vvh, 100dvh));border-radius:20px 20px 0 0;animation:m-up .24s cubic-bezier(.16,1,.3,1)}.m-footer{border-radius:0;flex-direction:column-reverse;align-items:stretch;padding-bottom:max(18px,env(safe-area-inset-bottom))}}@media(pointer:coarse),(max-width:480px){.m-close{position:relative}.m-close:after{content:\"\";position:absolute;inset:-7px}}@keyframes m-fade{0%{opacity:0}to{opacity:1}}@keyframes m-scale{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes m-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"]
|
|
2585
|
+
styles: [".m-backdrop{position:fixed;inset:0;background:#02081773;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;animation:m-fade .18s ease}.m-modal:focus{outline:none}.m-focus-guard{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;outline:none}.m-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;border:1px solid rgba(0,0,0,.07);z-index:201;width:calc(100% - 32px);box-shadow:0 4px 6px #0000000a,0 16px 32px #0000001f,0 48px 96px #0000001a;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;animation:m-scale .22s cubic-bezier(.16,1,.3,1)}.m-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:16px 16px 0 0;flex-shrink:0}.m-header-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.m-title{font-size:1.125rem;font-weight:700;color:#0f172a;margin:0;letter-spacing:-.02em;line-height:1.3}.m-description{font-size:.8125rem;color:#64748b;margin:0;line-height:1.4}.m-close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:none;background:none;cursor:pointer;color:#94a3b8;flex-shrink:0;margin-left:12px;transition:background .13s,color .13s}.m-close:hover{background:#f1f5f9;color:#1e293b}.m-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.m-body{padding:20px 24px;overflow-y:auto;flex:1;min-height:0;font-size:.9rem;color:#475569;line-height:1.65}.m-footer{padding:14px 24px 18px;background:#f8fafc;border-top:1px solid #e2e8f0;border-radius:0 0 16px 16px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.m-footer:not(:has(*)){display:none}.m-footer-left{display:flex;align-items:center;gap:8px}.m-footer-right{display:flex;align-items:center;gap:8px;margin-left:auto}.m-footer-center{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px}.m-footer-center:empty{display:none}@media(max-width:480px){.m-modal{top:auto;bottom:var(--ui-kb, 0px);left:0;right:0;transform:none;width:100vw;max-width:none!important;max-height:min(85dvh,var(--ui-vvh, 100dvh));border-radius:20px 20px 0 0;animation:m-up .24s cubic-bezier(.16,1,.3,1)}.m-footer{border-radius:0;flex-direction:column-reverse;align-items:stretch;padding-bottom:max(18px,env(safe-area-inset-bottom))}}@media(pointer:coarse),(max-width:480px){.m-close{position:relative}.m-close:after{content:\"\";position:absolute;inset:-7px}}@keyframes m-fade{0%{opacity:0}to{opacity:1}}@keyframes m-scale{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes m-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"]
|
|
2352
2586
|
}]
|
|
2353
2587
|
}],
|
|
2354
2588
|
ctorParameters: () => [],
|
|
@@ -2420,6 +2654,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2420
2654
|
close: [{
|
|
2421
2655
|
type: i0.Output,
|
|
2422
2656
|
args: ["close"]
|
|
2657
|
+
}],
|
|
2658
|
+
returnFocusTo: [{
|
|
2659
|
+
type: i0.Input,
|
|
2660
|
+
args: [{
|
|
2661
|
+
isSignal: true,
|
|
2662
|
+
alias: "returnFocusTo",
|
|
2663
|
+
required: false
|
|
2664
|
+
}]
|
|
2423
2665
|
}]
|
|
2424
2666
|
}
|
|
2425
2667
|
});
|
|
@@ -2871,10 +3113,11 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2871
3113
|
template: `
|
|
2872
3114
|
@if (groupMode()) {
|
|
2873
3115
|
<fieldset class="cb-group" [class.cb-indent]="indent()" [class.cb-error]="_activeError()" [disabled]="disabled()"
|
|
2874
|
-
[attr.aria-
|
|
3116
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
2875
3117
|
[attr.aria-describedby]="(_activeError() || hint()) ? _descId : null">
|
|
2876
3118
|
@if (_legend()) {
|
|
2877
|
-
|
|
3119
|
+
<!-- aria-required is not allowed on a fieldset / group, so "required" is part of the legend's text for assistive technology -->
|
|
3120
|
+
<legend class="cb-legend">{{ _legend() }}@if (required()) { <span class="cb-required" aria-hidden="true">*</span><span class="cb-sr-only"> (required)</span> }</legend>
|
|
2878
3121
|
}
|
|
2879
3122
|
<div class="cb-options" [class.cb-horizontal]="orientation() === 'horizontal'">
|
|
2880
3123
|
@for (opt of options(); track opt.value; let i = $index) {
|
|
@@ -2965,7 +3208,7 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2965
3208
|
}
|
|
2966
3209
|
`,
|
|
2967
3210
|
isInline: true,
|
|
2968
|
-
styles: [".cb-field{display:inline-flex;flex-direction:column;gap:4px;vertical-align:top}.cb-group{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.cb-legend{padding:0;margin:0 0 8px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1.2}.cb-required{color:#
|
|
3211
|
+
styles: [".cb-field{display:inline-flex;flex-direction:column;gap:4px;vertical-align:top}.cb-group{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.cb-legend{padding:0;margin:0 0 8px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1.2}.cb-required{color:#dc2626;margin-left:2px}.cb-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-options{display:flex;flex-direction:column;gap:10px}.cb-options.cb-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.cb-field.cb-has-trailing{display:flex}.cb-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cb-trailing{display:inline-flex;align-items:center;flex-shrink:0}.cb-option{display:flex;flex-direction:column;gap:4px}.cb-group-desc{margin-left:0}.cb-indent{margin-left:29px}.cb-desc{margin:0 0 0 29px;font-size:.75rem;line-height:1.4;color:#64748b}.cb-desc-error{color:#dc2626}.cb-error .cb-box:not(.cb-checked){border-color:#ef4444}.cb-wrap{position:relative;vertical-align:top;display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none}.cb-wrap.cb-disabled{cursor:not-allowed;opacity:.5}.cb-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-wrap:has(.cb-hidden:focus-visible) .cb-box{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.cb-wrap{position:relative}.cb-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:50%;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:1}.cb-wrap.cb-disabled .cb-hidden{cursor:not-allowed}}.cb-box{flex-shrink:0;width:20px;height:20px;border:2px solid #cbd5e1;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.cb-box.cb-checked,.cb-box.cb-indeterminate{background:#3b82f6;border-color:#3b82f6}.cb-wrap:hover .cb-box:not(.cb-checked):not(.cb-disabled){border-color:#3b82f6}@media(max-width:640px),(pointer:coarse){.cb-box{position:relative}.cb-box:after{content:\"\";position:absolute;inset:-12px}}.cb-label{font-size:.875rem;color:#334155;line-height:1.4}\n"],
|
|
2969
3212
|
dependencies: [{
|
|
2970
3213
|
kind: "directive",
|
|
2971
3214
|
type: NgTemplateOutlet,
|
|
@@ -3011,10 +3254,11 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3011
3254
|
template: `
|
|
3012
3255
|
@if (groupMode()) {
|
|
3013
3256
|
<fieldset class="cb-group" [class.cb-indent]="indent()" [class.cb-error]="_activeError()" [disabled]="disabled()"
|
|
3014
|
-
[attr.aria-
|
|
3257
|
+
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
3015
3258
|
[attr.aria-describedby]="(_activeError() || hint()) ? _descId : null">
|
|
3016
3259
|
@if (_legend()) {
|
|
3017
|
-
|
|
3260
|
+
<!-- aria-required is not allowed on a fieldset / group, so "required" is part of the legend's text for assistive technology -->
|
|
3261
|
+
<legend class="cb-legend">{{ _legend() }}@if (required()) { <span class="cb-required" aria-hidden="true">*</span><span class="cb-sr-only"> (required)</span> }</legend>
|
|
3018
3262
|
}
|
|
3019
3263
|
<div class="cb-options" [class.cb-horizontal]="orientation() === 'horizontal'">
|
|
3020
3264
|
@for (opt of options(); track opt.value; let i = $index) {
|
|
@@ -3104,7 +3348,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3104
3348
|
</div>
|
|
3105
3349
|
}
|
|
3106
3350
|
`,
|
|
3107
|
-
styles: [".cb-field{display:inline-flex;flex-direction:column;gap:4px;vertical-align:top}.cb-group{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.cb-legend{padding:0;margin:0 0 8px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1.2}.cb-required{color:#
|
|
3351
|
+
styles: [".cb-field{display:inline-flex;flex-direction:column;gap:4px;vertical-align:top}.cb-group{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.cb-legend{padding:0;margin:0 0 8px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1.2}.cb-required{color:#dc2626;margin-left:2px}.cb-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-options{display:flex;flex-direction:column;gap:10px}.cb-options.cb-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.cb-field.cb-has-trailing{display:flex}.cb-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cb-trailing{display:inline-flex;align-items:center;flex-shrink:0}.cb-option{display:flex;flex-direction:column;gap:4px}.cb-group-desc{margin-left:0}.cb-indent{margin-left:29px}.cb-desc{margin:0 0 0 29px;font-size:.75rem;line-height:1.4;color:#64748b}.cb-desc-error{color:#dc2626}.cb-error .cb-box:not(.cb-checked){border-color:#ef4444}.cb-wrap{position:relative;vertical-align:top;display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none}.cb-wrap.cb-disabled{cursor:not-allowed;opacity:.5}.cb-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-wrap:has(.cb-hidden:focus-visible) .cb-box{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.cb-wrap{position:relative}.cb-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:50%;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:1}.cb-wrap.cb-disabled .cb-hidden{cursor:not-allowed}}.cb-box{flex-shrink:0;width:20px;height:20px;border:2px solid #cbd5e1;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.cb-box.cb-checked,.cb-box.cb-indeterminate{background:#3b82f6;border-color:#3b82f6}.cb-wrap:hover .cb-box:not(.cb-checked):not(.cb-disabled){border-color:#3b82f6}@media(max-width:640px),(pointer:coarse){.cb-box{position:relative}.cb-box:after{content:\"\";position:absolute;inset:-12px}}.cb-label{font-size:.875rem;color:#334155;line-height:1.4}\n"]
|
|
3108
3352
|
}]
|
|
3109
3353
|
}],
|
|
3110
3354
|
ctorParameters: () => [],
|
|
@@ -3912,6 +4156,583 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3912
4156
|
}]
|
|
3913
4157
|
}
|
|
3914
4158
|
});
|
|
4159
|
+
let nextTooltipId = 0;
|
|
4160
|
+
var TooltipDirective = class TooltipDirective {
|
|
4161
|
+
constructor() {
|
|
4162
|
+
this.uiTooltip = input("", ...ngDevMode ? [{ debugName: "uiTooltip" }] : /* istanbul ignore next */ []);
|
|
4163
|
+
this.tooltipPosition = input("top", ...ngDevMode ? [{ debugName: "tooltipPosition" }] : /* istanbul ignore next */ []);
|
|
4164
|
+
this.host = inject(ElementRef).nativeElement;
|
|
4165
|
+
this.doc = inject(DOCUMENT);
|
|
4166
|
+
this.bubble = null;
|
|
4167
|
+
this.id = `ui-tooltip-${nextTooltipId++}`;
|
|
4168
|
+
inject(DestroyRef).onDestroy(() => this.hide());
|
|
4169
|
+
}
|
|
4170
|
+
show() {
|
|
4171
|
+
const text = this.uiTooltip();
|
|
4172
|
+
if (!text || this.bubble) return;
|
|
4173
|
+
const el = this.doc.createElement("div");
|
|
4174
|
+
el.id = this.id;
|
|
4175
|
+
el.setAttribute("role", "tooltip");
|
|
4176
|
+
el.textContent = text;
|
|
4177
|
+
Object.assign(el.style, {
|
|
4178
|
+
position: "fixed",
|
|
4179
|
+
zIndex: "10000",
|
|
4180
|
+
maxWidth: "280px",
|
|
4181
|
+
padding: "6px 10px",
|
|
4182
|
+
background: "#0f172a",
|
|
4183
|
+
color: "#fff",
|
|
4184
|
+
fontSize: "0.75rem",
|
|
4185
|
+
lineHeight: "1.4",
|
|
4186
|
+
borderRadius: "6px",
|
|
4187
|
+
boxShadow: "0 4px 12px rgba(15,23,42,.25)",
|
|
4188
|
+
whiteSpace: "pre-line",
|
|
4189
|
+
pointerEvents: "none",
|
|
4190
|
+
visibility: "hidden"
|
|
4191
|
+
});
|
|
4192
|
+
this.doc.body.appendChild(el);
|
|
4193
|
+
this.bubble = el;
|
|
4194
|
+
this.host.setAttribute("aria-describedby", this.id);
|
|
4195
|
+
const r = this.host.getBoundingClientRect();
|
|
4196
|
+
const b = el.getBoundingClientRect();
|
|
4197
|
+
const gap = 6;
|
|
4198
|
+
let top = this.tooltipPosition() === "top" ? r.top - b.height - gap : r.bottom + gap;
|
|
4199
|
+
if (top < 4) top = r.bottom + gap;
|
|
4200
|
+
else if (top + b.height > window.innerHeight - 4) top = r.top - b.height - gap;
|
|
4201
|
+
const left = Math.min(Math.max(4, r.left + r.width / 2 - b.width / 2), window.innerWidth - b.width - 4);
|
|
4202
|
+
el.style.top = `${top}px`;
|
|
4203
|
+
el.style.left = `${left}px`;
|
|
4204
|
+
el.style.visibility = "visible";
|
|
4205
|
+
}
|
|
4206
|
+
hide() {
|
|
4207
|
+
this.bubble?.remove();
|
|
4208
|
+
this.bubble = null;
|
|
4209
|
+
this.host.removeAttribute("aria-describedby");
|
|
4210
|
+
}
|
|
4211
|
+
static {
|
|
4212
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
4213
|
+
minVersion: "12.0.0",
|
|
4214
|
+
version: "22.2.2",
|
|
4215
|
+
ngImport: i0,
|
|
4216
|
+
type: TooltipDirective,
|
|
4217
|
+
deps: [],
|
|
4218
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
4219
|
+
});
|
|
4220
|
+
}
|
|
4221
|
+
static {
|
|
4222
|
+
this.ɵdir = i0.ɵɵngDeclareDirective({
|
|
4223
|
+
minVersion: "17.1.0",
|
|
4224
|
+
version: "22.2.2",
|
|
4225
|
+
type: TooltipDirective,
|
|
4226
|
+
isStandalone: true,
|
|
4227
|
+
selector: "[uiTooltip]",
|
|
4228
|
+
inputs: {
|
|
4229
|
+
uiTooltip: {
|
|
4230
|
+
classPropertyName: "uiTooltip",
|
|
4231
|
+
publicName: "uiTooltip",
|
|
4232
|
+
isSignal: true,
|
|
4233
|
+
isRequired: false,
|
|
4234
|
+
transformFunction: null
|
|
4235
|
+
},
|
|
4236
|
+
tooltipPosition: {
|
|
4237
|
+
classPropertyName: "tooltipPosition",
|
|
4238
|
+
publicName: "tooltipPosition",
|
|
4239
|
+
isSignal: true,
|
|
4240
|
+
isRequired: false,
|
|
4241
|
+
transformFunction: null
|
|
4242
|
+
}
|
|
4243
|
+
},
|
|
4244
|
+
host: { listeners: {
|
|
4245
|
+
"mouseenter": "show()",
|
|
4246
|
+
"mouseleave": "hide()",
|
|
4247
|
+
"focusin": "show()",
|
|
4248
|
+
"focusout": "hide()",
|
|
4249
|
+
"keydown.escape": "hide()",
|
|
4250
|
+
"click": "hide()"
|
|
4251
|
+
} },
|
|
4252
|
+
ngImport: i0
|
|
4253
|
+
});
|
|
4254
|
+
}
|
|
4255
|
+
};
|
|
4256
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
4257
|
+
minVersion: "12.0.0",
|
|
4258
|
+
version: "22.2.2",
|
|
4259
|
+
ngImport: i0,
|
|
4260
|
+
type: TooltipDirective,
|
|
4261
|
+
decorators: [{
|
|
4262
|
+
type: Directive,
|
|
4263
|
+
args: [{
|
|
4264
|
+
selector: "[uiTooltip]",
|
|
4265
|
+
standalone: true,
|
|
4266
|
+
host: {
|
|
4267
|
+
"(mouseenter)": "show()",
|
|
4268
|
+
"(mouseleave)": "hide()",
|
|
4269
|
+
"(focusin)": "show()",
|
|
4270
|
+
"(focusout)": "hide()",
|
|
4271
|
+
"(keydown.escape)": "hide()",
|
|
4272
|
+
"(click)": "hide()"
|
|
4273
|
+
}
|
|
4274
|
+
}]
|
|
4275
|
+
}],
|
|
4276
|
+
ctorParameters: () => [],
|
|
4277
|
+
propDecorators: {
|
|
4278
|
+
uiTooltip: [{
|
|
4279
|
+
type: i0.Input,
|
|
4280
|
+
args: [{
|
|
4281
|
+
isSignal: true,
|
|
4282
|
+
alias: "uiTooltip",
|
|
4283
|
+
required: false
|
|
4284
|
+
}]
|
|
4285
|
+
}],
|
|
4286
|
+
tooltipPosition: [{
|
|
4287
|
+
type: i0.Input,
|
|
4288
|
+
args: [{
|
|
4289
|
+
isSignal: true,
|
|
4290
|
+
alias: "tooltipPosition",
|
|
4291
|
+
required: false
|
|
4292
|
+
}]
|
|
4293
|
+
}]
|
|
4294
|
+
}
|
|
4295
|
+
});
|
|
4296
|
+
const EXTRA_ICONS = {
|
|
4297
|
+
"delete": "M3 6h18 M8 6V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2 M5 6l1 14a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-14 M10 11v6 M14 11v6",
|
|
4298
|
+
"add": "M12 5v14 M5 12h14",
|
|
4299
|
+
"close": "M18 6L6 18 M6 6l12 12",
|
|
4300
|
+
"check": "M20 6L9 17l-5-5",
|
|
4301
|
+
"upload": "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4 M17 8l-5-5-5 5 M12 3v12",
|
|
4302
|
+
"image": "M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z M8.5 8.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z M21 15l-5-5L5 21",
|
|
4303
|
+
"chevron-up": "M18 15l-6-6-6 6",
|
|
4304
|
+
"chevron-down": "M6 9l6 6 6-6",
|
|
4305
|
+
"arrow-left": "M19 12H5 M12 19l-7-7 7-7",
|
|
4306
|
+
"bell": "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9 M13.73 21a2 2 0 0 1-3.46 0",
|
|
4307
|
+
"print": "M6 9V2h12v7 M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2 M6 14h12v8H6z",
|
|
4308
|
+
"shield": "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",
|
|
4309
|
+
"lock": "M5 11h14a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2z M7 11V7a5 5 0 0 1 10 0v4",
|
|
4310
|
+
"arrow-up": "M12 19V5 M5 12l7-7 7 7",
|
|
4311
|
+
"arrow-down": "M12 5v14 M19 12l-7 7-7-7",
|
|
4312
|
+
"arrow-right": "M5 12h14 M12 5l7 7-7 7",
|
|
4313
|
+
"document": "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",
|
|
4314
|
+
"grip": "M9 5h.01 M15 5h.01 M9 12h.01 M15 12h.01 M9 19h.01 M15 19h.01",
|
|
4315
|
+
"card": "M3 4h18a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z M1 10h22",
|
|
4316
|
+
"view-off": "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z M12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6z M3 3l18 18",
|
|
4317
|
+
"bank": "M3 21h18 M3 10h18 M5 6l7-3 7 3 M4 10v11 M20 10v11 M8 14v3 M12 14v3 M16 14v3"
|
|
4318
|
+
};
|
|
4319
|
+
function iconPath(name) {
|
|
4320
|
+
return Object.prototype.hasOwnProperty.call(EXTRA_ICONS, name) ? EXTRA_ICONS[name] : builtInActionIcon(name);
|
|
4321
|
+
}
|
|
4322
|
+
var IconComponent = class IconComponent {
|
|
4323
|
+
constructor() {
|
|
4324
|
+
this.name = input.required(...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
4325
|
+
this.tooltip = input("", ...ngDevMode ? [{ debugName: "tooltip" }] : /* istanbul ignore next */ []);
|
|
4326
|
+
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
4327
|
+
this.size = input(16, ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
|
|
4328
|
+
this.variant = input("default", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
|
|
4329
|
+
this.disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
4330
|
+
this.loading = input(false, ...ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []);
|
|
4331
|
+
this.interactive = input(true, ...ngDevMode ? [{ debugName: "interactive" }] : /* istanbul ignore next */ []);
|
|
4332
|
+
this.iconClick = output();
|
|
4333
|
+
this.accessibleName = computed(() => this.ariaLabel() || this.tooltip(), ...ngDevMode ? [{ debugName: "accessibleName" }] : /* istanbul ignore next */ []);
|
|
4334
|
+
this.path = computed(() => iconPath(this.name()), ...ngDevMode ? [{ debugName: "path" }] : /* istanbul ignore next */ []);
|
|
4335
|
+
}
|
|
4336
|
+
onClick(event) {
|
|
4337
|
+
event.stopPropagation();
|
|
4338
|
+
this.iconClick.emit(event);
|
|
4339
|
+
}
|
|
4340
|
+
static {
|
|
4341
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
4342
|
+
minVersion: "12.0.0",
|
|
4343
|
+
version: "22.2.2",
|
|
4344
|
+
ngImport: i0,
|
|
4345
|
+
type: IconComponent,
|
|
4346
|
+
deps: [],
|
|
4347
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
4348
|
+
});
|
|
4349
|
+
}
|
|
4350
|
+
static {
|
|
4351
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
4352
|
+
minVersion: "17.0.0",
|
|
4353
|
+
version: "22.2.2",
|
|
4354
|
+
type: IconComponent,
|
|
4355
|
+
isStandalone: true,
|
|
4356
|
+
selector: "ui-icon",
|
|
4357
|
+
inputs: {
|
|
4358
|
+
name: {
|
|
4359
|
+
classPropertyName: "name",
|
|
4360
|
+
publicName: "name",
|
|
4361
|
+
isSignal: true,
|
|
4362
|
+
isRequired: true,
|
|
4363
|
+
transformFunction: null
|
|
4364
|
+
},
|
|
4365
|
+
tooltip: {
|
|
4366
|
+
classPropertyName: "tooltip",
|
|
4367
|
+
publicName: "tooltip",
|
|
4368
|
+
isSignal: true,
|
|
4369
|
+
isRequired: false,
|
|
4370
|
+
transformFunction: null
|
|
4371
|
+
},
|
|
4372
|
+
ariaLabel: {
|
|
4373
|
+
classPropertyName: "ariaLabel",
|
|
4374
|
+
publicName: "ariaLabel",
|
|
4375
|
+
isSignal: true,
|
|
4376
|
+
isRequired: false,
|
|
4377
|
+
transformFunction: null
|
|
4378
|
+
},
|
|
4379
|
+
size: {
|
|
4380
|
+
classPropertyName: "size",
|
|
4381
|
+
publicName: "size",
|
|
4382
|
+
isSignal: true,
|
|
4383
|
+
isRequired: false,
|
|
4384
|
+
transformFunction: null
|
|
4385
|
+
},
|
|
4386
|
+
variant: {
|
|
4387
|
+
classPropertyName: "variant",
|
|
4388
|
+
publicName: "variant",
|
|
4389
|
+
isSignal: true,
|
|
4390
|
+
isRequired: false,
|
|
4391
|
+
transformFunction: null
|
|
4392
|
+
},
|
|
4393
|
+
disabled: {
|
|
4394
|
+
classPropertyName: "disabled",
|
|
4395
|
+
publicName: "disabled",
|
|
4396
|
+
isSignal: true,
|
|
4397
|
+
isRequired: false,
|
|
4398
|
+
transformFunction: null
|
|
4399
|
+
},
|
|
4400
|
+
loading: {
|
|
4401
|
+
classPropertyName: "loading",
|
|
4402
|
+
publicName: "loading",
|
|
4403
|
+
isSignal: true,
|
|
4404
|
+
isRequired: false,
|
|
4405
|
+
transformFunction: null
|
|
4406
|
+
},
|
|
4407
|
+
interactive: {
|
|
4408
|
+
classPropertyName: "interactive",
|
|
4409
|
+
publicName: "interactive",
|
|
4410
|
+
isSignal: true,
|
|
4411
|
+
isRequired: false,
|
|
4412
|
+
transformFunction: null
|
|
4413
|
+
}
|
|
4414
|
+
},
|
|
4415
|
+
outputs: { iconClick: "iconClick" },
|
|
4416
|
+
ngImport: i0,
|
|
4417
|
+
template: `
|
|
4418
|
+
@if (interactive()) {
|
|
4419
|
+
<button type="button" class="icon-btn" [class.danger]="variant() === 'danger'"
|
|
4420
|
+
[class.loading]="loading()" [disabled]="disabled() || loading()" [attr.aria-busy]="loading() ? 'true' : null"
|
|
4421
|
+
[attr.aria-label]="accessibleName() || null" [uiTooltip]="tooltip()" (click)="onClick($event)">
|
|
4422
|
+
<ng-container *ngTemplateOutlet="glyph" />
|
|
4423
|
+
</button>
|
|
4424
|
+
} @else {
|
|
4425
|
+
<span class="icon-static" [class.danger]="variant() === 'danger'" [attr.aria-busy]="loading() ? 'true' : null"
|
|
4426
|
+
[attr.role]="accessibleName() ? 'img' : null" [attr.aria-label]="accessibleName() || null" [uiTooltip]="tooltip()" [attr.aria-hidden]="accessibleName() ? null : 'true'">
|
|
4427
|
+
<ng-container *ngTemplateOutlet="glyph" />
|
|
4428
|
+
</span>
|
|
4429
|
+
}
|
|
4430
|
+
<ng-template #glyph>
|
|
4431
|
+
@if (loading()) {
|
|
4432
|
+
<span class="spinner" [style.width.px]="size()" [style.height.px]="size()" aria-hidden="true"></span>
|
|
4433
|
+
} @else if (path(); as d) {
|
|
4434
|
+
<svg viewBox="0 0 24 24" [attr.width]="size()" [attr.height]="size()" fill="none" stroke="currentColor"
|
|
4435
|
+
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
|
|
4436
|
+
<path [attr.d]="d" />
|
|
4437
|
+
</svg>
|
|
4438
|
+
}
|
|
4439
|
+
</ng-template>
|
|
4440
|
+
`,
|
|
4441
|
+
isInline: true,
|
|
4442
|
+
styles: [":host{display:inline-flex}.icon-static{display:inline-flex;align-items:center;justify-content:center;color:inherit}.icon-static.danger{color:#b91c1c}.icon-static svg{display:block}.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;color:#475569;cursor:pointer;-webkit-appearance:none;appearance:none;font:inherit;transition:background .15s ease,color .15s ease}.icon-btn:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.icon-btn.danger{color:#b91c1c}.icon-btn.danger:hover:not(:disabled){background:#fef2f2;color:#991b1b}.icon-btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn.loading:disabled{opacity:1;cursor:progress}.spinner{display:block;box-sizing:border-box;border:2px solid rgba(100,116,139,.3);border-top-color:currentColor;border-radius:50%;animation:ui-icon-spin .6s linear infinite}@keyframes ui-icon-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.icon-btn:after{content:\"\";position:absolute;inset:-8px}\n"],
|
|
4443
|
+
dependencies: [{
|
|
4444
|
+
kind: "directive",
|
|
4445
|
+
type: NgTemplateOutlet,
|
|
4446
|
+
selector: "[ngTemplateOutlet]",
|
|
4447
|
+
inputs: [
|
|
4448
|
+
"ngTemplateOutletContext",
|
|
4449
|
+
"ngTemplateOutlet",
|
|
4450
|
+
"ngTemplateOutletInjector"
|
|
4451
|
+
]
|
|
4452
|
+
}, {
|
|
4453
|
+
kind: "directive",
|
|
4454
|
+
type: TooltipDirective,
|
|
4455
|
+
selector: "[uiTooltip]",
|
|
4456
|
+
inputs: ["uiTooltip", "tooltipPosition"]
|
|
4457
|
+
}],
|
|
4458
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
4459
|
+
});
|
|
4460
|
+
}
|
|
4461
|
+
};
|
|
4462
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
4463
|
+
minVersion: "12.0.0",
|
|
4464
|
+
version: "22.2.2",
|
|
4465
|
+
ngImport: i0,
|
|
4466
|
+
type: IconComponent,
|
|
4467
|
+
decorators: [{
|
|
4468
|
+
type: Component,
|
|
4469
|
+
args: [{
|
|
4470
|
+
selector: "ui-icon",
|
|
4471
|
+
standalone: true,
|
|
4472
|
+
imports: [NgTemplateOutlet, TooltipDirective],
|
|
4473
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4474
|
+
template: `
|
|
4475
|
+
@if (interactive()) {
|
|
4476
|
+
<button type="button" class="icon-btn" [class.danger]="variant() === 'danger'"
|
|
4477
|
+
[class.loading]="loading()" [disabled]="disabled() || loading()" [attr.aria-busy]="loading() ? 'true' : null"
|
|
4478
|
+
[attr.aria-label]="accessibleName() || null" [uiTooltip]="tooltip()" (click)="onClick($event)">
|
|
4479
|
+
<ng-container *ngTemplateOutlet="glyph" />
|
|
4480
|
+
</button>
|
|
4481
|
+
} @else {
|
|
4482
|
+
<span class="icon-static" [class.danger]="variant() === 'danger'" [attr.aria-busy]="loading() ? 'true' : null"
|
|
4483
|
+
[attr.role]="accessibleName() ? 'img' : null" [attr.aria-label]="accessibleName() || null" [uiTooltip]="tooltip()" [attr.aria-hidden]="accessibleName() ? null : 'true'">
|
|
4484
|
+
<ng-container *ngTemplateOutlet="glyph" />
|
|
4485
|
+
</span>
|
|
4486
|
+
}
|
|
4487
|
+
<ng-template #glyph>
|
|
4488
|
+
@if (loading()) {
|
|
4489
|
+
<span class="spinner" [style.width.px]="size()" [style.height.px]="size()" aria-hidden="true"></span>
|
|
4490
|
+
} @else if (path(); as d) {
|
|
4491
|
+
<svg viewBox="0 0 24 24" [attr.width]="size()" [attr.height]="size()" fill="none" stroke="currentColor"
|
|
4492
|
+
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
|
|
4493
|
+
<path [attr.d]="d" />
|
|
4494
|
+
</svg>
|
|
4495
|
+
}
|
|
4496
|
+
</ng-template>
|
|
4497
|
+
`,
|
|
4498
|
+
styles: [":host{display:inline-flex}.icon-static{display:inline-flex;align-items:center;justify-content:center;color:inherit}.icon-static.danger{color:#b91c1c}.icon-static svg{display:block}.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;color:#475569;cursor:pointer;-webkit-appearance:none;appearance:none;font:inherit;transition:background .15s ease,color .15s ease}.icon-btn:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.icon-btn.danger{color:#b91c1c}.icon-btn.danger:hover:not(:disabled){background:#fef2f2;color:#991b1b}.icon-btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn.loading:disabled{opacity:1;cursor:progress}.spinner{display:block;box-sizing:border-box;border:2px solid rgba(100,116,139,.3);border-top-color:currentColor;border-radius:50%;animation:ui-icon-spin .6s linear infinite}@keyframes ui-icon-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.icon-btn:after{content:\"\";position:absolute;inset:-8px}\n"]
|
|
4499
|
+
}]
|
|
4500
|
+
}],
|
|
4501
|
+
propDecorators: {
|
|
4502
|
+
name: [{
|
|
4503
|
+
type: i0.Input,
|
|
4504
|
+
args: [{
|
|
4505
|
+
isSignal: true,
|
|
4506
|
+
alias: "name",
|
|
4507
|
+
required: true
|
|
4508
|
+
}]
|
|
4509
|
+
}],
|
|
4510
|
+
tooltip: [{
|
|
4511
|
+
type: i0.Input,
|
|
4512
|
+
args: [{
|
|
4513
|
+
isSignal: true,
|
|
4514
|
+
alias: "tooltip",
|
|
4515
|
+
required: false
|
|
4516
|
+
}]
|
|
4517
|
+
}],
|
|
4518
|
+
ariaLabel: [{
|
|
4519
|
+
type: i0.Input,
|
|
4520
|
+
args: [{
|
|
4521
|
+
isSignal: true,
|
|
4522
|
+
alias: "ariaLabel",
|
|
4523
|
+
required: false
|
|
4524
|
+
}]
|
|
4525
|
+
}],
|
|
4526
|
+
size: [{
|
|
4527
|
+
type: i0.Input,
|
|
4528
|
+
args: [{
|
|
4529
|
+
isSignal: true,
|
|
4530
|
+
alias: "size",
|
|
4531
|
+
required: false
|
|
4532
|
+
}]
|
|
4533
|
+
}],
|
|
4534
|
+
variant: [{
|
|
4535
|
+
type: i0.Input,
|
|
4536
|
+
args: [{
|
|
4537
|
+
isSignal: true,
|
|
4538
|
+
alias: "variant",
|
|
4539
|
+
required: false
|
|
4540
|
+
}]
|
|
4541
|
+
}],
|
|
4542
|
+
disabled: [{
|
|
4543
|
+
type: i0.Input,
|
|
4544
|
+
args: [{
|
|
4545
|
+
isSignal: true,
|
|
4546
|
+
alias: "disabled",
|
|
4547
|
+
required: false
|
|
4548
|
+
}]
|
|
4549
|
+
}],
|
|
4550
|
+
loading: [{
|
|
4551
|
+
type: i0.Input,
|
|
4552
|
+
args: [{
|
|
4553
|
+
isSignal: true,
|
|
4554
|
+
alias: "loading",
|
|
4555
|
+
required: false
|
|
4556
|
+
}]
|
|
4557
|
+
}],
|
|
4558
|
+
interactive: [{
|
|
4559
|
+
type: i0.Input,
|
|
4560
|
+
args: [{
|
|
4561
|
+
isSignal: true,
|
|
4562
|
+
alias: "interactive",
|
|
4563
|
+
required: false
|
|
4564
|
+
}]
|
|
4565
|
+
}],
|
|
4566
|
+
iconClick: [{
|
|
4567
|
+
type: i0.Output,
|
|
4568
|
+
args: ["iconClick"]
|
|
4569
|
+
}]
|
|
4570
|
+
}
|
|
4571
|
+
});
|
|
4572
|
+
const DEFAULT_PASSWORD_RULES = [
|
|
4573
|
+
{
|
|
4574
|
+
id: "length",
|
|
4575
|
+
label: "At least 8 characters",
|
|
4576
|
+
test: (p) => p.length >= 8
|
|
4577
|
+
},
|
|
4578
|
+
{
|
|
4579
|
+
id: "uppercase",
|
|
4580
|
+
label: "One uppercase letter",
|
|
4581
|
+
test: (p) => /[A-Z]/.test(p)
|
|
4582
|
+
},
|
|
4583
|
+
{
|
|
4584
|
+
id: "lowercase",
|
|
4585
|
+
label: "One lowercase letter",
|
|
4586
|
+
test: (p) => /[a-z]/.test(p)
|
|
4587
|
+
},
|
|
4588
|
+
{
|
|
4589
|
+
id: "digit",
|
|
4590
|
+
label: "One digit",
|
|
4591
|
+
test: (p) => /[0-9]/.test(p)
|
|
4592
|
+
},
|
|
4593
|
+
{
|
|
4594
|
+
id: "special",
|
|
4595
|
+
label: "One special character (!@#$%^&*...)",
|
|
4596
|
+
test: (p) => /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(p)
|
|
4597
|
+
}
|
|
4598
|
+
];
|
|
4599
|
+
function passwordMeetsRules(password, rules = DEFAULT_PASSWORD_RULES) {
|
|
4600
|
+
return rules.every((r) => r.test(password));
|
|
4601
|
+
}
|
|
4602
|
+
var PasswordRequirementsComponent = class PasswordRequirementsComponent {
|
|
4603
|
+
constructor() {
|
|
4604
|
+
this.value = input("", ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
4605
|
+
this.rules = input(DEFAULT_PASSWORD_RULES, ...ngDevMode ? [{ debugName: "rules" }] : /* istanbul ignore next */ []);
|
|
4606
|
+
this.title = input("Password Requirements:", ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
|
|
4607
|
+
this._check = iconPath("check");
|
|
4608
|
+
this._results = computed(() => this.rules().map((r) => ({
|
|
4609
|
+
id: r.id,
|
|
4610
|
+
label: r.label,
|
|
4611
|
+
met: r.test(this.value() ?? "")
|
|
4612
|
+
})), ...ngDevMode ? [{ debugName: "_results" }] : /* istanbul ignore next */ []);
|
|
4613
|
+
}
|
|
4614
|
+
static {
|
|
4615
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
4616
|
+
minVersion: "12.0.0",
|
|
4617
|
+
version: "22.2.2",
|
|
4618
|
+
ngImport: i0,
|
|
4619
|
+
type: PasswordRequirementsComponent,
|
|
4620
|
+
deps: [],
|
|
4621
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
4622
|
+
});
|
|
4623
|
+
}
|
|
4624
|
+
static {
|
|
4625
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
4626
|
+
minVersion: "17.0.0",
|
|
4627
|
+
version: "22.2.2",
|
|
4628
|
+
type: PasswordRequirementsComponent,
|
|
4629
|
+
isStandalone: true,
|
|
4630
|
+
selector: "ui-password-requirements",
|
|
4631
|
+
inputs: {
|
|
4632
|
+
value: {
|
|
4633
|
+
classPropertyName: "value",
|
|
4634
|
+
publicName: "value",
|
|
4635
|
+
isSignal: true,
|
|
4636
|
+
isRequired: false,
|
|
4637
|
+
transformFunction: null
|
|
4638
|
+
},
|
|
4639
|
+
rules: {
|
|
4640
|
+
classPropertyName: "rules",
|
|
4641
|
+
publicName: "rules",
|
|
4642
|
+
isSignal: true,
|
|
4643
|
+
isRequired: false,
|
|
4644
|
+
transformFunction: null
|
|
4645
|
+
},
|
|
4646
|
+
title: {
|
|
4647
|
+
classPropertyName: "title",
|
|
4648
|
+
publicName: "title",
|
|
4649
|
+
isSignal: true,
|
|
4650
|
+
isRequired: false,
|
|
4651
|
+
transformFunction: null
|
|
4652
|
+
}
|
|
4653
|
+
},
|
|
4654
|
+
ngImport: i0,
|
|
4655
|
+
template: `
|
|
4656
|
+
<div class="pr" role="group" [attr.aria-label]="title()" data-testid="password-requirements">
|
|
4657
|
+
<p class="pr-title">{{ title() }}</p>
|
|
4658
|
+
<ul class="pr-list">
|
|
4659
|
+
@for (r of _results(); track r.id) {
|
|
4660
|
+
<li class="pr-item" [class.pr-met]="r.met" [attr.data-testid]="'password-requirement-' + r.id" [attr.data-met]="r.met">
|
|
4661
|
+
<svg class="pr-icon" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.5"
|
|
4662
|
+
stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
|
|
4663
|
+
@if (r.met) { <path [attr.d]="_check" /> } @else { <circle cx="12" cy="12" r="8" /> }
|
|
4664
|
+
</svg>
|
|
4665
|
+
<span>{{ r.label }}</span>
|
|
4666
|
+
<span class="pr-sr">{{ r.met ? ', met' : ', not met' }}</span>
|
|
4667
|
+
</li>
|
|
4668
|
+
}
|
|
4669
|
+
</ul>
|
|
4670
|
+
</div>
|
|
4671
|
+
`,
|
|
4672
|
+
isInline: true,
|
|
4673
|
+
styles: [":host{display:block}.pr-title{margin:0 0 6px;font-size:.8125rem;color:#64748b}.pr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.pr-item{display:flex;align-items:center;gap:8px;font-size:.8125rem;line-height:1.3;color:#64748b;transition:color .15s}.pr-icon{flex:0 0 auto}.pr-met{color:#15803d;font-weight:500}.pr-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}\n"],
|
|
4674
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
4675
|
+
});
|
|
4676
|
+
}
|
|
4677
|
+
};
|
|
4678
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
4679
|
+
minVersion: "12.0.0",
|
|
4680
|
+
version: "22.2.2",
|
|
4681
|
+
ngImport: i0,
|
|
4682
|
+
type: PasswordRequirementsComponent,
|
|
4683
|
+
decorators: [{
|
|
4684
|
+
type: Component,
|
|
4685
|
+
args: [{
|
|
4686
|
+
selector: "ui-password-requirements",
|
|
4687
|
+
standalone: true,
|
|
4688
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4689
|
+
template: `
|
|
4690
|
+
<div class="pr" role="group" [attr.aria-label]="title()" data-testid="password-requirements">
|
|
4691
|
+
<p class="pr-title">{{ title() }}</p>
|
|
4692
|
+
<ul class="pr-list">
|
|
4693
|
+
@for (r of _results(); track r.id) {
|
|
4694
|
+
<li class="pr-item" [class.pr-met]="r.met" [attr.data-testid]="'password-requirement-' + r.id" [attr.data-met]="r.met">
|
|
4695
|
+
<svg class="pr-icon" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.5"
|
|
4696
|
+
stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
|
|
4697
|
+
@if (r.met) { <path [attr.d]="_check" /> } @else { <circle cx="12" cy="12" r="8" /> }
|
|
4698
|
+
</svg>
|
|
4699
|
+
<span>{{ r.label }}</span>
|
|
4700
|
+
<span class="pr-sr">{{ r.met ? ', met' : ', not met' }}</span>
|
|
4701
|
+
</li>
|
|
4702
|
+
}
|
|
4703
|
+
</ul>
|
|
4704
|
+
</div>
|
|
4705
|
+
`,
|
|
4706
|
+
styles: [":host{display:block}.pr-title{margin:0 0 6px;font-size:.8125rem;color:#64748b}.pr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.pr-item{display:flex;align-items:center;gap:8px;font-size:.8125rem;line-height:1.3;color:#64748b;transition:color .15s}.pr-icon{flex:0 0 auto}.pr-met{color:#15803d;font-weight:500}.pr-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}\n"]
|
|
4707
|
+
}]
|
|
4708
|
+
}],
|
|
4709
|
+
propDecorators: {
|
|
4710
|
+
value: [{
|
|
4711
|
+
type: i0.Input,
|
|
4712
|
+
args: [{
|
|
4713
|
+
isSignal: true,
|
|
4714
|
+
alias: "value",
|
|
4715
|
+
required: false
|
|
4716
|
+
}]
|
|
4717
|
+
}],
|
|
4718
|
+
rules: [{
|
|
4719
|
+
type: i0.Input,
|
|
4720
|
+
args: [{
|
|
4721
|
+
isSignal: true,
|
|
4722
|
+
alias: "rules",
|
|
4723
|
+
required: false
|
|
4724
|
+
}]
|
|
4725
|
+
}],
|
|
4726
|
+
title: [{
|
|
4727
|
+
type: i0.Input,
|
|
4728
|
+
args: [{
|
|
4729
|
+
isSignal: true,
|
|
4730
|
+
alias: "title",
|
|
4731
|
+
required: false
|
|
4732
|
+
}]
|
|
4733
|
+
}]
|
|
4734
|
+
}
|
|
4735
|
+
});
|
|
3915
4736
|
var TextInputComponent = class TextInputComponent {
|
|
3916
4737
|
static {
|
|
3917
4738
|
this._EMAIL_RE = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
@@ -3921,6 +4742,9 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3921
4742
|
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
3922
4743
|
this.placeholder = input("", ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
|
|
3923
4744
|
this.prefix = input("", ...ngDevMode ? [{ debugName: "prefix" }] : /* istanbul ignore next */ []);
|
|
4745
|
+
this.revealable = input(false, ...ngDevMode ? [{ debugName: "revealable" }] : /* istanbul ignore next */ []);
|
|
4746
|
+
this.passwordRequirements = input(false, ...ngDevMode ? [{ debugName: "passwordRequirements" }] : /* istanbul ignore next */ []);
|
|
4747
|
+
this.passwordRules = input(void 0, ...ngDevMode ? [{ debugName: "passwordRules" }] : /* istanbul ignore next */ []);
|
|
3924
4748
|
this.type = input("text", ...ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []);
|
|
3925
4749
|
this.maxlength = input(void 0, ...ngDevMode ? [{ debugName: "maxlength" }] : /* istanbul ignore next */ []);
|
|
3926
4750
|
this.required = input(false, ...ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []);
|
|
@@ -3957,6 +4781,18 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3957
4781
|
if (this.type() === "number" && typeof step === "number" && Number.isFinite(step) && step > 0) return String(step);
|
|
3958
4782
|
return this.type() === "number" && this.integer() ? "1" : null;
|
|
3959
4783
|
}, ...ngDevMode ? [{ debugName: "_stepAttr" }] : /* istanbul ignore next */ []);
|
|
4784
|
+
this._revealable = computed(() => this.revealable() && this.type() === "password", ...ngDevMode ? [{ debugName: "_revealable" }] : /* istanbul ignore next */ []);
|
|
4785
|
+
this._shown = signal(false, ...ngDevMode ? [{ debugName: "_shown" }] : /* istanbul ignore next */ []);
|
|
4786
|
+
this._inputType = computed(() => this._revealable() && this._shown() ? "text" : this.type(), ...ngDevMode ? [{ debugName: "_inputType" }] : /* istanbul ignore next */ []);
|
|
4787
|
+
this._eyePath = iconPath("view");
|
|
4788
|
+
this._eyeOffPath = iconPath("view-off");
|
|
4789
|
+
this._showRequirements = computed(() => this.passwordRequirements() && this.type() === "password" && this._typed(), ...ngDevMode ? [{ debugName: "_showRequirements" }] : /* istanbul ignore next */ []);
|
|
4790
|
+
this._describedBy = computed(() => {
|
|
4791
|
+
const ids = [this._activeError() || this.hint() ? this._inputId + "-desc" : "", this._showRequirements() ? this._inputId + "-req" : ""].filter(Boolean);
|
|
4792
|
+
return ids.length ? ids.join(" ") : null;
|
|
4793
|
+
}, ...ngDevMode ? [{ debugName: "_describedBy" }] : /* istanbul ignore next */ []);
|
|
4794
|
+
this._typed = signal(false, ...ngDevMode ? [{ debugName: "_typed" }] : /* istanbul ignore next */ []);
|
|
4795
|
+
this._defaultRules = DEFAULT_PASSWORD_RULES;
|
|
3960
4796
|
this._warned = false;
|
|
3961
4797
|
this._formatting = computed(() => this.phoneFormat() || this.type() === "tel", ...ngDevMode ? [{ debugName: "_formatting" }] : /* istanbul ignore next */ []);
|
|
3962
4798
|
this._issue = computed(() => this._check(this._value()), ...ngDevMode ? [{ debugName: "_issue" }] : /* istanbul ignore next */ []);
|
|
@@ -3983,6 +4819,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3983
4819
|
writeValue(val) {
|
|
3984
4820
|
const text = val == null || typeof val === "number" && Number.isNaN(val) && this._numeric() ? "" : String(val);
|
|
3985
4821
|
this._value.set(this._formatting() ? TextInputComponent._formatPhone(text) : text);
|
|
4822
|
+
if (text === "") this._typed.set(false);
|
|
3986
4823
|
}
|
|
3987
4824
|
validate(control) {
|
|
3988
4825
|
const v = control.value;
|
|
@@ -4006,6 +4843,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
4006
4843
|
this._cvaDisabled.set(d);
|
|
4007
4844
|
}
|
|
4008
4845
|
onInput(event) {
|
|
4846
|
+
this._typed.set(true);
|
|
4009
4847
|
const input = event.target;
|
|
4010
4848
|
const raw = input.value;
|
|
4011
4849
|
let val = this._formatting() ? TextInputComponent._formatPhone(raw) : raw;
|
|
@@ -4147,6 +4985,27 @@ var TextInputComponent = class TextInputComponent {
|
|
|
4147
4985
|
isRequired: false,
|
|
4148
4986
|
transformFunction: null
|
|
4149
4987
|
},
|
|
4988
|
+
revealable: {
|
|
4989
|
+
classPropertyName: "revealable",
|
|
4990
|
+
publicName: "revealable",
|
|
4991
|
+
isSignal: true,
|
|
4992
|
+
isRequired: false,
|
|
4993
|
+
transformFunction: null
|
|
4994
|
+
},
|
|
4995
|
+
passwordRequirements: {
|
|
4996
|
+
classPropertyName: "passwordRequirements",
|
|
4997
|
+
publicName: "passwordRequirements",
|
|
4998
|
+
isSignal: true,
|
|
4999
|
+
isRequired: false,
|
|
5000
|
+
transformFunction: null
|
|
5001
|
+
},
|
|
5002
|
+
passwordRules: {
|
|
5003
|
+
classPropertyName: "passwordRules",
|
|
5004
|
+
publicName: "passwordRules",
|
|
5005
|
+
isSignal: true,
|
|
5006
|
+
isRequired: false,
|
|
5007
|
+
transformFunction: null
|
|
5008
|
+
},
|
|
4150
5009
|
type: {
|
|
4151
5010
|
classPropertyName: "type",
|
|
4152
5011
|
publicName: "type",
|
|
@@ -4300,7 +5159,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
4300
5159
|
ngImport: i0,
|
|
4301
5160
|
template: `
|
|
4302
5161
|
<div class="ti-field" [class.ti-error]="_activeError()" [class.ti-disabled]="disabled()"
|
|
4303
|
-
[class.ti-prefixed]="!!prefix()" [style.--ti-input-row]="prefix() ? (label() ? 2 : 1) : null">
|
|
5162
|
+
[class.ti-prefixed]="!!prefix() || _revealable()" [style.--ti-input-row]="(prefix() || _revealable()) ? (label() ? 2 : 1) : null">
|
|
4304
5163
|
@if (label()) {
|
|
4305
5164
|
<label class="ti-label" [for]="_inputId">
|
|
4306
5165
|
{{ label() }}
|
|
@@ -4310,8 +5169,9 @@ var TextInputComponent = class TextInputComponent {
|
|
|
4310
5169
|
<input
|
|
4311
5170
|
class="ti-input"
|
|
4312
5171
|
[style.padding-left]="_prefixPadding()"
|
|
5172
|
+
[style.padding-right]="_revealable() ? '44px' : null"
|
|
4313
5173
|
[id]="_inputId"
|
|
4314
|
-
[type]="
|
|
5174
|
+
[type]="_inputType()"
|
|
4315
5175
|
[attr.inputmode]="inputmode() || (type() === 'tel' ? 'tel' : integer() ? 'numeric' : null)"
|
|
4316
5176
|
[placeholder]="placeholder()"
|
|
4317
5177
|
[value]="_value()"
|
|
@@ -4323,7 +5183,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
4323
5183
|
[attr.required]="required() || null"
|
|
4324
5184
|
[attr.aria-label]="ariaLabel() || null"
|
|
4325
5185
|
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
4326
|
-
[attr.aria-describedby]="(
|
|
5186
|
+
[attr.aria-describedby]="_describedBy()"
|
|
4327
5187
|
(input)="onInput($event)"
|
|
4328
5188
|
(focus)="onFocus()"
|
|
4329
5189
|
(blur)="onBlur()"
|
|
@@ -4332,6 +5192,18 @@ var TextInputComponent = class TextInputComponent {
|
|
|
4332
5192
|
<!-- Optional leading mark ("$"): a sibling after the input, laid over it by the grid of .ti-prefixed, so toggling it never recreates the input (focus and caret stay). -->
|
|
4333
5193
|
<span class="ti-prefix" aria-hidden="true">{{ prefix() }}</span>
|
|
4334
5194
|
}
|
|
5195
|
+
@if (_revealable()) {
|
|
5196
|
+
<!-- Show / hide toggle laid over the end of the input by the grid of .ti-prefixed. The name stays "Show password"; aria-pressed carries the state. -->
|
|
5197
|
+
<button type="button" class="ti-reveal" data-testid="ti-reveal" aria-label="Show password"
|
|
5198
|
+
[attr.aria-pressed]="_shown()" [attr.aria-controls]="_inputId" [disabled]="disabled()" (click)="_shown.set(!_shown())">
|
|
5199
|
+
<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
|
|
5200
|
+
<path [attr.d]="_shown() ? _eyeOffPath : _eyePath" />
|
|
5201
|
+
</svg>
|
|
5202
|
+
</button>
|
|
5203
|
+
}
|
|
5204
|
+
@if (_showRequirements()) {
|
|
5205
|
+
<ui-password-requirements [attr.id]="_inputId + '-req'" [value]="_value()" [rules]="passwordRules() ?? _defaultRules" />
|
|
5206
|
+
}
|
|
4335
5207
|
@if (_activeError()) {
|
|
4336
5208
|
<p class="ti-desc ti-desc-error" [id]="_inputId + '-desc'" role="alert">{{ _activeError() }}</p>
|
|
4337
5209
|
} @else if (hint()) {
|
|
@@ -4340,7 +5212,17 @@ var TextInputComponent = class TextInputComponent {
|
|
|
4340
5212
|
</div>
|
|
4341
5213
|
`,
|
|
4342
5214
|
isInline: true,
|
|
4343
|
-
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ti-required{color:#
|
|
5215
|
+
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ti-required{color:#dc2626;margin-left:2px}.ti-prefixed{display:grid;grid-template-columns:minmax(0,1fr)}.ti-prefixed .ti-input{grid-row:var(--ti-input-row);grid-column:1}.ti-prefix{grid-row:var(--ti-input-row);grid-column:1;justify-self:start;align-self:center;margin-left:12px;font-size:.875rem;line-height:1;color:#64748b;pointer-events:none}@media(max-width:480px){.ti-prefix{font-size:1rem}}.ti-disabled .ti-prefix{opacity:.5}.ti-reveal{grid-row:var(--ti-input-row);grid-column:1;justify-self:end;align-self:center;margin-right:6px;position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:#64748b;cursor:pointer}.ti-reveal:hover:not(:disabled){color:#1e293b;background:#f1f5f9}.ti-reveal:focus-visible{outline:2px solid #3b82f6;outline-offset:0}.ti-reveal:disabled{opacity:.5;cursor:not-allowed}@media(pointer:coarse),(max-width:480px){.ti-reveal{width:44px;height:44px;margin-right:0}}.ti-input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.ti-input::placeholder{color:#94a3b8}.ti-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.ti-input:read-only{background:#f8fafc;cursor:default}.ti-error .ti-input{border-color:#ef4444}.ti-error .ti-input:focus{box-shadow:0 0 0 3px #ef44441f}.ti-disabled .ti-input{opacity:.5;cursor:not-allowed}.ti-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.ti-desc-error{color:#dc2626}@media(max-width:480px){.ti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.ti-input{min-height:44px}}\n"],
|
|
5216
|
+
dependencies: [{
|
|
5217
|
+
kind: "component",
|
|
5218
|
+
type: PasswordRequirementsComponent,
|
|
5219
|
+
selector: "ui-password-requirements",
|
|
5220
|
+
inputs: [
|
|
5221
|
+
"value",
|
|
5222
|
+
"rules",
|
|
5223
|
+
"title"
|
|
5224
|
+
]
|
|
5225
|
+
}],
|
|
4344
5226
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
4345
5227
|
});
|
|
4346
5228
|
}
|
|
@@ -4356,6 +5238,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
4356
5238
|
selector: "ui-text-input",
|
|
4357
5239
|
standalone: true,
|
|
4358
5240
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5241
|
+
imports: [PasswordRequirementsComponent],
|
|
4359
5242
|
providers: [
|
|
4360
5243
|
{
|
|
4361
5244
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -4374,7 +5257,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
4374
5257
|
],
|
|
4375
5258
|
template: `
|
|
4376
5259
|
<div class="ti-field" [class.ti-error]="_activeError()" [class.ti-disabled]="disabled()"
|
|
4377
|
-
[class.ti-prefixed]="!!prefix()" [style.--ti-input-row]="prefix() ? (label() ? 2 : 1) : null">
|
|
5260
|
+
[class.ti-prefixed]="!!prefix() || _revealable()" [style.--ti-input-row]="(prefix() || _revealable()) ? (label() ? 2 : 1) : null">
|
|
4378
5261
|
@if (label()) {
|
|
4379
5262
|
<label class="ti-label" [for]="_inputId">
|
|
4380
5263
|
{{ label() }}
|
|
@@ -4384,8 +5267,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
4384
5267
|
<input
|
|
4385
5268
|
class="ti-input"
|
|
4386
5269
|
[style.padding-left]="_prefixPadding()"
|
|
5270
|
+
[style.padding-right]="_revealable() ? '44px' : null"
|
|
4387
5271
|
[id]="_inputId"
|
|
4388
|
-
[type]="
|
|
5272
|
+
[type]="_inputType()"
|
|
4389
5273
|
[attr.inputmode]="inputmode() || (type() === 'tel' ? 'tel' : integer() ? 'numeric' : null)"
|
|
4390
5274
|
[placeholder]="placeholder()"
|
|
4391
5275
|
[value]="_value()"
|
|
@@ -4397,7 +5281,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
4397
5281
|
[attr.required]="required() || null"
|
|
4398
5282
|
[attr.aria-label]="ariaLabel() || null"
|
|
4399
5283
|
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
4400
|
-
[attr.aria-describedby]="(
|
|
5284
|
+
[attr.aria-describedby]="_describedBy()"
|
|
4401
5285
|
(input)="onInput($event)"
|
|
4402
5286
|
(focus)="onFocus()"
|
|
4403
5287
|
(blur)="onBlur()"
|
|
@@ -4406,6 +5290,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
4406
5290
|
<!-- Optional leading mark ("$"): a sibling after the input, laid over it by the grid of .ti-prefixed, so toggling it never recreates the input (focus and caret stay). -->
|
|
4407
5291
|
<span class="ti-prefix" aria-hidden="true">{{ prefix() }}</span>
|
|
4408
5292
|
}
|
|
5293
|
+
@if (_revealable()) {
|
|
5294
|
+
<!-- Show / hide toggle laid over the end of the input by the grid of .ti-prefixed. The name stays "Show password"; aria-pressed carries the state. -->
|
|
5295
|
+
<button type="button" class="ti-reveal" data-testid="ti-reveal" aria-label="Show password"
|
|
5296
|
+
[attr.aria-pressed]="_shown()" [attr.aria-controls]="_inputId" [disabled]="disabled()" (click)="_shown.set(!_shown())">
|
|
5297
|
+
<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
|
|
5298
|
+
<path [attr.d]="_shown() ? _eyeOffPath : _eyePath" />
|
|
5299
|
+
</svg>
|
|
5300
|
+
</button>
|
|
5301
|
+
}
|
|
5302
|
+
@if (_showRequirements()) {
|
|
5303
|
+
<ui-password-requirements [attr.id]="_inputId + '-req'" [value]="_value()" [rules]="passwordRules() ?? _defaultRules" />
|
|
5304
|
+
}
|
|
4409
5305
|
@if (_activeError()) {
|
|
4410
5306
|
<p class="ti-desc ti-desc-error" [id]="_inputId + '-desc'" role="alert">{{ _activeError() }}</p>
|
|
4411
5307
|
} @else if (hint()) {
|
|
@@ -4413,7 +5309,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
4413
5309
|
}
|
|
4414
5310
|
</div>
|
|
4415
5311
|
`,
|
|
4416
|
-
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ti-required{color:#
|
|
5312
|
+
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ti-required{color:#dc2626;margin-left:2px}.ti-prefixed{display:grid;grid-template-columns:minmax(0,1fr)}.ti-prefixed .ti-input{grid-row:var(--ti-input-row);grid-column:1}.ti-prefix{grid-row:var(--ti-input-row);grid-column:1;justify-self:start;align-self:center;margin-left:12px;font-size:.875rem;line-height:1;color:#64748b;pointer-events:none}@media(max-width:480px){.ti-prefix{font-size:1rem}}.ti-disabled .ti-prefix{opacity:.5}.ti-reveal{grid-row:var(--ti-input-row);grid-column:1;justify-self:end;align-self:center;margin-right:6px;position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:#64748b;cursor:pointer}.ti-reveal:hover:not(:disabled){color:#1e293b;background:#f1f5f9}.ti-reveal:focus-visible{outline:2px solid #3b82f6;outline-offset:0}.ti-reveal:disabled{opacity:.5;cursor:not-allowed}@media(pointer:coarse),(max-width:480px){.ti-reveal{width:44px;height:44px;margin-right:0}}.ti-input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.ti-input::placeholder{color:#94a3b8}.ti-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.ti-input:read-only{background:#f8fafc;cursor:default}.ti-error .ti-input{border-color:#ef4444}.ti-error .ti-input:focus{box-shadow:0 0 0 3px #ef44441f}.ti-disabled .ti-input{opacity:.5;cursor:not-allowed}.ti-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.ti-desc-error{color:#dc2626}@media(max-width:480px){.ti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.ti-input{min-height:44px}}\n"]
|
|
4417
5313
|
}]
|
|
4418
5314
|
}],
|
|
4419
5315
|
ctorParameters: () => [],
|
|
@@ -4450,6 +5346,30 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
4450
5346
|
required: false
|
|
4451
5347
|
}]
|
|
4452
5348
|
}],
|
|
5349
|
+
revealable: [{
|
|
5350
|
+
type: i0.Input,
|
|
5351
|
+
args: [{
|
|
5352
|
+
isSignal: true,
|
|
5353
|
+
alias: "revealable",
|
|
5354
|
+
required: false
|
|
5355
|
+
}]
|
|
5356
|
+
}],
|
|
5357
|
+
passwordRequirements: [{
|
|
5358
|
+
type: i0.Input,
|
|
5359
|
+
args: [{
|
|
5360
|
+
isSignal: true,
|
|
5361
|
+
alias: "passwordRequirements",
|
|
5362
|
+
required: false
|
|
5363
|
+
}]
|
|
5364
|
+
}],
|
|
5365
|
+
passwordRules: [{
|
|
5366
|
+
type: i0.Input,
|
|
5367
|
+
args: [{
|
|
5368
|
+
isSignal: true,
|
|
5369
|
+
alias: "passwordRules",
|
|
5370
|
+
required: false
|
|
5371
|
+
}]
|
|
5372
|
+
}],
|
|
4453
5373
|
type: [{
|
|
4454
5374
|
type: i0.Input,
|
|
4455
5375
|
args: [{
|
|
@@ -4992,7 +5912,8 @@ var TableToolbarComponent = class TableToolbarComponent {
|
|
|
4992
5912
|
"bodyOverflow",
|
|
4993
5913
|
"dialogTestId",
|
|
4994
5914
|
"hideClose",
|
|
4995
|
-
"closable"
|
|
5915
|
+
"closable",
|
|
5916
|
+
"returnFocusTo"
|
|
4996
5917
|
],
|
|
4997
5918
|
outputs: ["close"]
|
|
4998
5919
|
},
|
|
@@ -5066,6 +5987,9 @@ var TableToolbarComponent = class TableToolbarComponent {
|
|
|
5066
5987
|
"ariaLabel",
|
|
5067
5988
|
"placeholder",
|
|
5068
5989
|
"prefix",
|
|
5990
|
+
"revealable",
|
|
5991
|
+
"passwordRequirements",
|
|
5992
|
+
"passwordRules",
|
|
5069
5993
|
"type",
|
|
5070
5994
|
"maxlength",
|
|
5071
5995
|
"required",
|
|
@@ -5565,143 +6489,6 @@ function getEligibleIds(items, selectedIds, action, options = {}) {
|
|
|
5565
6489
|
skippedCount: selected.length - eligible.length
|
|
5566
6490
|
};
|
|
5567
6491
|
}
|
|
5568
|
-
let nextTooltipId = 0;
|
|
5569
|
-
var TooltipDirective = class TooltipDirective {
|
|
5570
|
-
constructor() {
|
|
5571
|
-
this.uiTooltip = input("", ...ngDevMode ? [{ debugName: "uiTooltip" }] : /* istanbul ignore next */ []);
|
|
5572
|
-
this.tooltipPosition = input("top", ...ngDevMode ? [{ debugName: "tooltipPosition" }] : /* istanbul ignore next */ []);
|
|
5573
|
-
this.host = inject(ElementRef).nativeElement;
|
|
5574
|
-
this.doc = inject(DOCUMENT);
|
|
5575
|
-
this.bubble = null;
|
|
5576
|
-
this.id = `ui-tooltip-${nextTooltipId++}`;
|
|
5577
|
-
inject(DestroyRef).onDestroy(() => this.hide());
|
|
5578
|
-
}
|
|
5579
|
-
show() {
|
|
5580
|
-
const text = this.uiTooltip();
|
|
5581
|
-
if (!text || this.bubble) return;
|
|
5582
|
-
const el = this.doc.createElement("div");
|
|
5583
|
-
el.id = this.id;
|
|
5584
|
-
el.setAttribute("role", "tooltip");
|
|
5585
|
-
el.textContent = text;
|
|
5586
|
-
Object.assign(el.style, {
|
|
5587
|
-
position: "fixed",
|
|
5588
|
-
zIndex: "10000",
|
|
5589
|
-
maxWidth: "280px",
|
|
5590
|
-
padding: "6px 10px",
|
|
5591
|
-
background: "#0f172a",
|
|
5592
|
-
color: "#fff",
|
|
5593
|
-
fontSize: "0.75rem",
|
|
5594
|
-
lineHeight: "1.4",
|
|
5595
|
-
borderRadius: "6px",
|
|
5596
|
-
boxShadow: "0 4px 12px rgba(15,23,42,.25)",
|
|
5597
|
-
whiteSpace: "pre-line",
|
|
5598
|
-
pointerEvents: "none",
|
|
5599
|
-
visibility: "hidden"
|
|
5600
|
-
});
|
|
5601
|
-
this.doc.body.appendChild(el);
|
|
5602
|
-
this.bubble = el;
|
|
5603
|
-
this.host.setAttribute("aria-describedby", this.id);
|
|
5604
|
-
const r = this.host.getBoundingClientRect();
|
|
5605
|
-
const b = el.getBoundingClientRect();
|
|
5606
|
-
const gap = 6;
|
|
5607
|
-
let top = this.tooltipPosition() === "top" ? r.top - b.height - gap : r.bottom + gap;
|
|
5608
|
-
if (top < 4) top = r.bottom + gap;
|
|
5609
|
-
else if (top + b.height > window.innerHeight - 4) top = r.top - b.height - gap;
|
|
5610
|
-
const left = Math.min(Math.max(4, r.left + r.width / 2 - b.width / 2), window.innerWidth - b.width - 4);
|
|
5611
|
-
el.style.top = `${top}px`;
|
|
5612
|
-
el.style.left = `${left}px`;
|
|
5613
|
-
el.style.visibility = "visible";
|
|
5614
|
-
}
|
|
5615
|
-
hide() {
|
|
5616
|
-
this.bubble?.remove();
|
|
5617
|
-
this.bubble = null;
|
|
5618
|
-
this.host.removeAttribute("aria-describedby");
|
|
5619
|
-
}
|
|
5620
|
-
static {
|
|
5621
|
-
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
5622
|
-
minVersion: "12.0.0",
|
|
5623
|
-
version: "22.2.2",
|
|
5624
|
-
ngImport: i0,
|
|
5625
|
-
type: TooltipDirective,
|
|
5626
|
-
deps: [],
|
|
5627
|
-
target: i0.ɵɵFactoryTarget.Directive
|
|
5628
|
-
});
|
|
5629
|
-
}
|
|
5630
|
-
static {
|
|
5631
|
-
this.ɵdir = i0.ɵɵngDeclareDirective({
|
|
5632
|
-
minVersion: "17.1.0",
|
|
5633
|
-
version: "22.2.2",
|
|
5634
|
-
type: TooltipDirective,
|
|
5635
|
-
isStandalone: true,
|
|
5636
|
-
selector: "[uiTooltip]",
|
|
5637
|
-
inputs: {
|
|
5638
|
-
uiTooltip: {
|
|
5639
|
-
classPropertyName: "uiTooltip",
|
|
5640
|
-
publicName: "uiTooltip",
|
|
5641
|
-
isSignal: true,
|
|
5642
|
-
isRequired: false,
|
|
5643
|
-
transformFunction: null
|
|
5644
|
-
},
|
|
5645
|
-
tooltipPosition: {
|
|
5646
|
-
classPropertyName: "tooltipPosition",
|
|
5647
|
-
publicName: "tooltipPosition",
|
|
5648
|
-
isSignal: true,
|
|
5649
|
-
isRequired: false,
|
|
5650
|
-
transformFunction: null
|
|
5651
|
-
}
|
|
5652
|
-
},
|
|
5653
|
-
host: { listeners: {
|
|
5654
|
-
"mouseenter": "show()",
|
|
5655
|
-
"mouseleave": "hide()",
|
|
5656
|
-
"focusin": "show()",
|
|
5657
|
-
"focusout": "hide()",
|
|
5658
|
-
"keydown.escape": "hide()",
|
|
5659
|
-
"click": "hide()"
|
|
5660
|
-
} },
|
|
5661
|
-
ngImport: i0
|
|
5662
|
-
});
|
|
5663
|
-
}
|
|
5664
|
-
};
|
|
5665
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
5666
|
-
minVersion: "12.0.0",
|
|
5667
|
-
version: "22.2.2",
|
|
5668
|
-
ngImport: i0,
|
|
5669
|
-
type: TooltipDirective,
|
|
5670
|
-
decorators: [{
|
|
5671
|
-
type: Directive,
|
|
5672
|
-
args: [{
|
|
5673
|
-
selector: "[uiTooltip]",
|
|
5674
|
-
standalone: true,
|
|
5675
|
-
host: {
|
|
5676
|
-
"(mouseenter)": "show()",
|
|
5677
|
-
"(mouseleave)": "hide()",
|
|
5678
|
-
"(focusin)": "show()",
|
|
5679
|
-
"(focusout)": "hide()",
|
|
5680
|
-
"(keydown.escape)": "hide()",
|
|
5681
|
-
"(click)": "hide()"
|
|
5682
|
-
}
|
|
5683
|
-
}]
|
|
5684
|
-
}],
|
|
5685
|
-
ctorParameters: () => [],
|
|
5686
|
-
propDecorators: {
|
|
5687
|
-
uiTooltip: [{
|
|
5688
|
-
type: i0.Input,
|
|
5689
|
-
args: [{
|
|
5690
|
-
isSignal: true,
|
|
5691
|
-
alias: "uiTooltip",
|
|
5692
|
-
required: false
|
|
5693
|
-
}]
|
|
5694
|
-
}],
|
|
5695
|
-
tooltipPosition: [{
|
|
5696
|
-
type: i0.Input,
|
|
5697
|
-
args: [{
|
|
5698
|
-
isSignal: true,
|
|
5699
|
-
alias: "tooltipPosition",
|
|
5700
|
-
required: false
|
|
5701
|
-
}]
|
|
5702
|
-
}]
|
|
5703
|
-
}
|
|
5704
|
-
});
|
|
5705
6492
|
var StarComponent = class StarComponent {
|
|
5706
6493
|
constructor() {
|
|
5707
6494
|
this.tooltip = input("", ...ngDevMode ? [{ debugName: "tooltip" }] : /* istanbul ignore next */ []);
|
|
@@ -5762,7 +6549,7 @@ var StarComponent = class StarComponent {
|
|
|
5762
6549
|
ngImport: i0,
|
|
5763
6550
|
template: `
|
|
5764
6551
|
@if (interactive()) {
|
|
5765
|
-
<button type="button" class="star star-btn" [class.star-off]="!filled()" [uiTooltip]="tooltip()"
|
|
6552
|
+
<button type="button" class="star star-btn" [class.star-off]="!filled()" [style.--star-size.px]="size()" [uiTooltip]="tooltip()"
|
|
5766
6553
|
[attr.aria-label]="tooltip() || null" (click)="starClick.emit($event)">
|
|
5767
6554
|
<ng-container *ngTemplateOutlet="shape" />
|
|
5768
6555
|
</button>
|
|
@@ -5783,7 +6570,7 @@ var StarComponent = class StarComponent {
|
|
|
5783
6570
|
</ng-template>
|
|
5784
6571
|
`,
|
|
5785
6572
|
isInline: true,
|
|
5786
|
-
styles: [":host{display:inline-flex;vertical-align:middle;line-height:1}.star{display:inline-flex;align-items:center;justify-content:center;border-radius:3px}.star-btn{border:0;background:none;padding:0;margin:0;cursor:pointer;font:inherit}.star-off .star-shape{fill:none;stroke:#94a3b8;stroke-width:1.25}.star-btn.star-off:hover .star-shape{stroke:#64748b}.star:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.star-shape{fill:#f5b301;stroke:#d99a00;stroke-width:.75;stroke-linejoin:round}\n"],
|
|
6573
|
+
styles: [":host{display:inline-flex;vertical-align:middle;line-height:1}.star{display:inline-flex;align-items:center;justify-content:center;border-radius:3px}.star-btn{position:relative;border:0;background:none;padding:0;margin:0;cursor:pointer;font:inherit}@media(pointer:coarse){.star-btn:after{content:\"\";position:absolute;inset:min(-8px,calc((var(--star-size, 16px) - 44px) / 2))}}.star-off .star-shape{fill:none;stroke:#94a3b8;stroke-width:1.25}.star-btn.star-off:hover .star-shape{stroke:#64748b}.star:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.star-shape{fill:#f5b301;stroke:#d99a00;stroke-width:.75;stroke-linejoin:round}\n"],
|
|
5787
6574
|
dependencies: [{
|
|
5788
6575
|
kind: "directive",
|
|
5789
6576
|
type: TooltipDirective,
|
|
@@ -5817,7 +6604,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5817
6604
|
imports: [TooltipDirective, NgTemplateOutlet],
|
|
5818
6605
|
template: `
|
|
5819
6606
|
@if (interactive()) {
|
|
5820
|
-
<button type="button" class="star star-btn" [class.star-off]="!filled()" [uiTooltip]="tooltip()"
|
|
6607
|
+
<button type="button" class="star star-btn" [class.star-off]="!filled()" [style.--star-size.px]="size()" [uiTooltip]="tooltip()"
|
|
5821
6608
|
[attr.aria-label]="tooltip() || null" (click)="starClick.emit($event)">
|
|
5822
6609
|
<ng-container *ngTemplateOutlet="shape" />
|
|
5823
6610
|
</button>
|
|
@@ -5837,7 +6624,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5837
6624
|
</svg>
|
|
5838
6625
|
</ng-template>
|
|
5839
6626
|
`,
|
|
5840
|
-
styles: [":host{display:inline-flex;vertical-align:middle;line-height:1}.star{display:inline-flex;align-items:center;justify-content:center;border-radius:3px}.star-btn{border:0;background:none;padding:0;margin:0;cursor:pointer;font:inherit}.star-off .star-shape{fill:none;stroke:#94a3b8;stroke-width:1.25}.star-btn.star-off:hover .star-shape{stroke:#64748b}.star:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.star-shape{fill:#f5b301;stroke:#d99a00;stroke-width:.75;stroke-linejoin:round}\n"]
|
|
6627
|
+
styles: [":host{display:inline-flex;vertical-align:middle;line-height:1}.star{display:inline-flex;align-items:center;justify-content:center;border-radius:3px}.star-btn{position:relative;border:0;background:none;padding:0;margin:0;cursor:pointer;font:inherit}@media(pointer:coarse){.star-btn:after{content:\"\";position:absolute;inset:min(-8px,calc((var(--star-size, 16px) - 44px) / 2))}}.star-off .star-shape{fill:none;stroke:#94a3b8;stroke-width:1.25}.star-btn.star-off:hover .star-shape{stroke:#64748b}.star:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.star-shape{fill:#f5b301;stroke:#d99a00;stroke-width:.75;stroke-linejoin:round}\n"]
|
|
5841
6628
|
}]
|
|
5842
6629
|
}],
|
|
5843
6630
|
propDecorators: {
|
|
@@ -6535,7 +7322,7 @@ var SelectComponent = class SelectComponent {
|
|
|
6535
7322
|
</div>
|
|
6536
7323
|
`,
|
|
6537
7324
|
isInline: true,
|
|
6538
|
-
styles: [":host{display:block}.sl-field{display:flex;flex-direction:column;gap:6px}.sl-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sl-required{color:#
|
|
7325
|
+
styles: [":host{display:block}.sl-field{display:flex;flex-direction:column;gap:6px}.sl-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sl-required{color:#dc2626;margin-left:2px}.sl-wrap{position:relative;display:flex;align-items:center}.sl-select{width:100%;box-sizing:border-box;padding:9px 32px 9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;appearance:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.sl-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.sl-error .sl-select{border-color:#ef4444}.sl-error .sl-select:focus{box-shadow:0 0 0 3px #ef44441f}.sl-disabled .sl-select{opacity:.5;cursor:not-allowed}.sl-select-sm{padding:6px 32px 6px 12px;font-size:.8125rem;border-radius:6px}.sl-chevron{position:absolute;right:10px;pointer-events:none;color:#94a3b8;flex-shrink:0}.sl-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.sl-desc-error{color:#dc2626}@media(max-width:480px){.sl-select{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.sl-select,.sl-select-sm{min-height:44px}}\n"],
|
|
6539
7326
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
6540
7327
|
});
|
|
6541
7328
|
}
|
|
@@ -6605,7 +7392,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
6605
7392
|
}
|
|
6606
7393
|
</div>
|
|
6607
7394
|
`,
|
|
6608
|
-
styles: [":host{display:block}.sl-field{display:flex;flex-direction:column;gap:6px}.sl-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sl-required{color:#
|
|
7395
|
+
styles: [":host{display:block}.sl-field{display:flex;flex-direction:column;gap:6px}.sl-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sl-required{color:#dc2626;margin-left:2px}.sl-wrap{position:relative;display:flex;align-items:center}.sl-select{width:100%;box-sizing:border-box;padding:9px 32px 9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;appearance:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.sl-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.sl-error .sl-select{border-color:#ef4444}.sl-error .sl-select:focus{box-shadow:0 0 0 3px #ef44441f}.sl-disabled .sl-select{opacity:.5;cursor:not-allowed}.sl-select-sm{padding:6px 32px 6px 12px;font-size:.8125rem;border-radius:6px}.sl-chevron{position:absolute;right:10px;pointer-events:none;color:#94a3b8;flex-shrink:0}.sl-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.sl-desc-error{color:#dc2626}@media(max-width:480px){.sl-select{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.sl-select,.sl-select-sm{min-height:44px}}\n"]
|
|
6609
7396
|
}]
|
|
6610
7397
|
}],
|
|
6611
7398
|
ctorParameters: () => [],
|
|
@@ -7707,7 +8494,7 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
7707
8494
|
</ui-modal>
|
|
7708
8495
|
`,
|
|
7709
8496
|
isInline: true,
|
|
7710
|
-
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:#94a3b8;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-divider{flex:1;height:1px;background:#e2e8f0;margin:0 8px;min-width:16px}.ie-source-step{display:flex;flex-direction:column;gap:16px}.ie-source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:520px){.ie-source-grid{grid-template-columns:repeat(2,1fr)}}.ie-source-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;font-family:inherit;text-align:left;transition:all .15s}.ie-source-card:hover{border-color:#94a3b8;background:#f8fafc}.ie-source-card.ie-source-card--active{border-color:#3b82f6;background:#eff6ff}.ie-source-card:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.ie-source-letter{width:36px;height:36px;border-radius:8px;color:#fff;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ie-source-label{font-size:.8125rem;font-weight:600;color:#1e293b;line-height:1.2}.ie-source-desc{font-size:.75rem;color:#64748b}.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{display:none}.ie-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 24px;border:2px dashed #cbd5e1;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.has-error{border-color:#ef4444}.ie-dropzone-text{font-size:.9375rem;font-weight:600;color:#1e293b}.ie-dropzone-sub{font-size:.8125rem;color:#94a3b8}.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:#
|
|
8497
|
+
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:#94a3b8;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-divider{flex:1;height:1px;background:#e2e8f0;margin:0 8px;min-width:16px}.ie-source-step{display:flex;flex-direction:column;gap:16px}.ie-source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:520px){.ie-source-grid{grid-template-columns:repeat(2,1fr)}}.ie-source-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;font-family:inherit;text-align:left;transition:all .15s}.ie-source-card:hover{border-color:#94a3b8;background:#f8fafc}.ie-source-card.ie-source-card--active{border-color:#3b82f6;background:#eff6ff}.ie-source-card:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.ie-source-letter{width:36px;height:36px;border-radius:8px;color:#fff;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ie-source-label{font-size:.8125rem;font-weight:600;color:#1e293b;line-height:1.2}.ie-source-desc{font-size:.75rem;color:#64748b}.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{display:none}.ie-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 24px;border:2px dashed #cbd5e1;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.has-error{border-color:#ef4444}.ie-dropzone-text{font-size:.9375rem;font-weight:600;color:#1e293b}.ie-dropzone-sub{font-size:.8125rem;color:#94a3b8}.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-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-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{display:none}.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"],
|
|
7711
8498
|
dependencies: [
|
|
7712
8499
|
{
|
|
7713
8500
|
kind: "ngmodule",
|
|
@@ -7743,7 +8530,8 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
7743
8530
|
"bodyOverflow",
|
|
7744
8531
|
"dialogTestId",
|
|
7745
8532
|
"hideClose",
|
|
7746
|
-
"closable"
|
|
8533
|
+
"closable",
|
|
8534
|
+
"returnFocusTo"
|
|
7747
8535
|
],
|
|
7748
8536
|
outputs: ["close"]
|
|
7749
8537
|
},
|
|
@@ -8063,7 +8851,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
8063
8851
|
|
|
8064
8852
|
</ui-modal>
|
|
8065
8853
|
`,
|
|
8066
|
-
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:#94a3b8;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-divider{flex:1;height:1px;background:#e2e8f0;margin:0 8px;min-width:16px}.ie-source-step{display:flex;flex-direction:column;gap:16px}.ie-source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:520px){.ie-source-grid{grid-template-columns:repeat(2,1fr)}}.ie-source-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;font-family:inherit;text-align:left;transition:all .15s}.ie-source-card:hover{border-color:#94a3b8;background:#f8fafc}.ie-source-card.ie-source-card--active{border-color:#3b82f6;background:#eff6ff}.ie-source-card:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.ie-source-letter{width:36px;height:36px;border-radius:8px;color:#fff;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ie-source-label{font-size:.8125rem;font-weight:600;color:#1e293b;line-height:1.2}.ie-source-desc{font-size:.75rem;color:#64748b}.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{display:none}.ie-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 24px;border:2px dashed #cbd5e1;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.has-error{border-color:#ef4444}.ie-dropzone-text{font-size:.9375rem;font-weight:600;color:#1e293b}.ie-dropzone-sub{font-size:.8125rem;color:#94a3b8}.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:#
|
|
8854
|
+
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:#94a3b8;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-divider{flex:1;height:1px;background:#e2e8f0;margin:0 8px;min-width:16px}.ie-source-step{display:flex;flex-direction:column;gap:16px}.ie-source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:520px){.ie-source-grid{grid-template-columns:repeat(2,1fr)}}.ie-source-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;font-family:inherit;text-align:left;transition:all .15s}.ie-source-card:hover{border-color:#94a3b8;background:#f8fafc}.ie-source-card.ie-source-card--active{border-color:#3b82f6;background:#eff6ff}.ie-source-card:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.ie-source-letter{width:36px;height:36px;border-radius:8px;color:#fff;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ie-source-label{font-size:.8125rem;font-weight:600;color:#1e293b;line-height:1.2}.ie-source-desc{font-size:.75rem;color:#64748b}.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{display:none}.ie-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 24px;border:2px dashed #cbd5e1;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.has-error{border-color:#ef4444}.ie-dropzone-text{font-size:.9375rem;font-weight:600;color:#1e293b}.ie-dropzone-sub{font-size:.8125rem;color:#94a3b8}.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-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-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{display:none}.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"]
|
|
8067
8855
|
}]
|
|
8068
8856
|
}],
|
|
8069
8857
|
ctorParameters: () => [],
|
|
@@ -8244,7 +9032,8 @@ var ConfirmOutletComponent = class ConfirmOutletComponent {
|
|
|
8244
9032
|
"bodyOverflow",
|
|
8245
9033
|
"dialogTestId",
|
|
8246
9034
|
"hideClose",
|
|
8247
|
-
"closable"
|
|
9035
|
+
"closable",
|
|
9036
|
+
"returnFocusTo"
|
|
8248
9037
|
],
|
|
8249
9038
|
outputs: ["close"]
|
|
8250
9039
|
}, {
|
|
@@ -8698,6 +9487,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
8698
9487
|
}]
|
|
8699
9488
|
}
|
|
8700
9489
|
});
|
|
9490
|
+
let reorderHelpSeq = 0;
|
|
8701
9491
|
function formatPhone$1(raw) {
|
|
8702
9492
|
if (!raw) return "—";
|
|
8703
9493
|
const digits = raw.replace(/\D/g, "");
|
|
@@ -8743,6 +9533,96 @@ var DataTableComponent = class DataTableComponent {
|
|
|
8743
9533
|
const listeners = this.rowClick.listeners;
|
|
8744
9534
|
return listeners === void 0 ? true : (listeners?.length ?? 0) > 0;
|
|
8745
9535
|
}
|
|
9536
|
+
reorderLabel(item) {
|
|
9537
|
+
const name = this.rowAccessibleName(item);
|
|
9538
|
+
return name ? `Reorder ${name}` : "Reorder row";
|
|
9539
|
+
}
|
|
9540
|
+
onGripDragStart(e, index) {
|
|
9541
|
+
if (!this._reorderActive()) {
|
|
9542
|
+
e.preventDefault();
|
|
9543
|
+
return;
|
|
9544
|
+
}
|
|
9545
|
+
this._dragFrom.set(index);
|
|
9546
|
+
this._dragKey = this.trackItem(this._items()[index], index);
|
|
9547
|
+
if (e.dataTransfer) {
|
|
9548
|
+
e.dataTransfer.effectAllowed = "move";
|
|
9549
|
+
e.dataTransfer.setData("text/plain", String(index));
|
|
9550
|
+
const row = e.target.closest("tr, .dt-card");
|
|
9551
|
+
if (row) e.dataTransfer.setDragImage(row, 16, 16);
|
|
9552
|
+
}
|
|
9553
|
+
}
|
|
9554
|
+
onGripDragEnd() {
|
|
9555
|
+
this._dragFrom.set(null);
|
|
9556
|
+
this._dragOver.set(null);
|
|
9557
|
+
this._dragKey = null;
|
|
9558
|
+
}
|
|
9559
|
+
onRowDragOver(e, index) {
|
|
9560
|
+
if (this._dragFrom() === null) return;
|
|
9561
|
+
e.preventDefault();
|
|
9562
|
+
if (e.dataTransfer) e.dataTransfer.dropEffect = "move";
|
|
9563
|
+
this._dragOver.set(index);
|
|
9564
|
+
}
|
|
9565
|
+
onRowDrop(e, index) {
|
|
9566
|
+
const dragged = this._dragFrom();
|
|
9567
|
+
if (dragged === null) return;
|
|
9568
|
+
e.preventDefault();
|
|
9569
|
+
const key = this._dragKey;
|
|
9570
|
+
const from = key === null ? dragged : this._items().findIndex((item, i) => this.trackItem(item, i) === key);
|
|
9571
|
+
this.onGripDragEnd();
|
|
9572
|
+
if (from >= 0) this.moveRow(from, index);
|
|
9573
|
+
}
|
|
9574
|
+
onGripKeydown(e, index) {
|
|
9575
|
+
if (!this._reorderActive()) return;
|
|
9576
|
+
const last = this._items().length - 1;
|
|
9577
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
9578
|
+
e.preventDefault();
|
|
9579
|
+
e.stopPropagation();
|
|
9580
|
+
const name = this.rowAccessibleName(this._items()[index]) || "Row";
|
|
9581
|
+
this._reorderAnnouncement.set("");
|
|
9582
|
+
afterNextRender(() => this._reorderAnnouncement.set(`${name} is at position ${index + 1} of ${last + 1}. Use the up and down arrow keys to move it, Home for the top, End for the bottom.`), { injector: this._injector });
|
|
9583
|
+
return;
|
|
9584
|
+
}
|
|
9585
|
+
const target = e.key === "ArrowUp" ? index - 1 : e.key === "ArrowDown" ? index + 1 : e.key === "Home" ? 0 : e.key === "End" ? last : null;
|
|
9586
|
+
if (target === null) return;
|
|
9587
|
+
e.preventDefault();
|
|
9588
|
+
e.stopPropagation();
|
|
9589
|
+
if (this.moveRow(index, target)) {
|
|
9590
|
+
const key = String(this._items()[Math.max(0, Math.min(last, target))]["id"] ?? target);
|
|
9591
|
+
afterNextRender(() => {
|
|
9592
|
+
this._host.nativeElement.querySelector(`[data-row-key="${CSS.escape(key)}"] .dt-grip`)?.focus();
|
|
9593
|
+
}, { injector: this._injector });
|
|
9594
|
+
}
|
|
9595
|
+
}
|
|
9596
|
+
moveByButton(index, direction) {
|
|
9597
|
+
const key = String(this.trackItem(this._items()[index], index));
|
|
9598
|
+
if (!this.moveRow(index, index + direction)) return;
|
|
9599
|
+
afterNextRender(() => {
|
|
9600
|
+
const row = this._host.nativeElement.querySelector(`[data-row-key="${CSS.escape(key)}"]`);
|
|
9601
|
+
const suffix = direction === -1 ? " up" : " down";
|
|
9602
|
+
(row?.querySelector(`button[aria-label$="${suffix}"]:not(:disabled)`) ?? row?.querySelector(".dt-row-move button:not(:disabled), .dt-card-move button:not(:disabled)"))?.focus();
|
|
9603
|
+
}, { injector: this._injector });
|
|
9604
|
+
}
|
|
9605
|
+
moveRow(from, to) {
|
|
9606
|
+
const items = this._items();
|
|
9607
|
+
if (!this._reorderActive() || !Number.isInteger(from) || from < 0 || from >= items.length) return false;
|
|
9608
|
+
const target = Math.max(0, Math.min(items.length - 1, to));
|
|
9609
|
+
if (target === from) return false;
|
|
9610
|
+
const next = [...items];
|
|
9611
|
+
const [moved] = next.splice(from, 1);
|
|
9612
|
+
next.splice(target, 0, moved);
|
|
9613
|
+
this._items.set(next);
|
|
9614
|
+
const name = this.rowAccessibleName(moved) || "Row";
|
|
9615
|
+
this._reorderAnnouncement.set("");
|
|
9616
|
+
afterNextRender(() => this._reorderAnnouncement.set(`${name} moved to position ${target + 1} of ${next.length}`), { injector: this._injector });
|
|
9617
|
+
this.rowReorder.emit({
|
|
9618
|
+
item: moved,
|
|
9619
|
+
from,
|
|
9620
|
+
to: target,
|
|
9621
|
+
items: next,
|
|
9622
|
+
offset: (this._page() - 1) * this.pageSize()
|
|
9623
|
+
});
|
|
9624
|
+
return true;
|
|
9625
|
+
}
|
|
8746
9626
|
_bulkOptionsFor(def) {
|
|
8747
9627
|
const opts = this._getOptionsForField(def.field);
|
|
8748
9628
|
return def.exclude?.length ? opts.filter((o) => !this._isBulkExcluded(def, o.value)) : opts;
|
|
@@ -9075,6 +9955,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
9075
9955
|
this.savedViews = input([], ...ngDevMode ? [{ debugName: "savedViews" }] : /* istanbul ignore next */ []);
|
|
9076
9956
|
this.page = input("", ...ngDevMode ? [{ debugName: "page" }] : /* istanbul ignore next */ []);
|
|
9077
9957
|
this.showToolbar = input(true, ...ngDevMode ? [{ debugName: "showToolbar" }] : /* istanbul ignore next */ []);
|
|
9958
|
+
this.showMoreActions = input(true, ...ngDevMode ? [{ debugName: "showMoreActions" }] : /* istanbul ignore next */ []);
|
|
9078
9959
|
this.showSearch = input(true, ...ngDevMode ? [{ debugName: "showSearch" }] : /* istanbul ignore next */ []);
|
|
9079
9960
|
this._showHeader = computed(() => this.showSearch() || this.showToolbar() || this._effectiveTabs().length > 0, ...ngDevMode ? [{ debugName: "_showHeader" }] : /* istanbul ignore next */ []);
|
|
9080
9961
|
this.countsEndpoint = input("", ...ngDevMode ? [{ debugName: "countsEndpoint" }] : /* istanbul ignore next */ []);
|
|
@@ -9103,6 +9984,8 @@ var DataTableComponent = class DataTableComponent {
|
|
|
9103
9984
|
this.tabChange = output();
|
|
9104
9985
|
this.bulkAction = output();
|
|
9105
9986
|
this.rowDeleted = output();
|
|
9987
|
+
this.reorderable = input(false, ...ngDevMode ? [{ debugName: "reorderable" }] : /* istanbul ignore next */ []);
|
|
9988
|
+
this.rowReorder = output();
|
|
9106
9989
|
this.config = inject(FORGEROUTE_CONFIG);
|
|
9107
9990
|
this.http = inject(HttpClient);
|
|
9108
9991
|
this.destroyRef = inject(DestroyRef);
|
|
@@ -9199,6 +10082,15 @@ var DataTableComponent = class DataTableComponent {
|
|
|
9199
10082
|
this._emptyUnfiltered = computed(() => this._hasLoaded() && !this._loading() && !this._error() && this._items().length === 0 && !this._hasActiveFilters(), ...ngDevMode ? [{ debugName: "_emptyUnfiltered" }] : /* istanbul ignore next */ []);
|
|
9200
10083
|
this._toolbarButtons = computed(() => this._emptyUnfiltered() ? this._effectiveButtons().filter((b) => b.variant === "primary" || b.keepWhenEmpty) : this._effectiveButtons(), ...ngDevMode ? [{ debugName: "_toolbarButtons" }] : /* istanbul ignore next */ []);
|
|
9201
10084
|
this._keepMoreActions = computed(() => this._emptyUnfiltered() && this._toolbarButtons().some((b) => !b.variant && !b.hidden), ...ngDevMode ? [{ debugName: "_keepMoreActions" }] : /* istanbul ignore next */ []);
|
|
10085
|
+
this._reorderOn = computed(() => this.reorderable() && this._canEdit(), ...ngDevMode ? [{ debugName: "_reorderOn" }] : /* istanbul ignore next */ []);
|
|
10086
|
+
this._reorderActive = computed(() => this._reorderOn() && !this._loading() && !this._error() && !this._sortField() && !this._hasActiveFilters() && this._items().length > 1, ...ngDevMode ? [{ debugName: "_reorderActive" }] : /* istanbul ignore next */ []);
|
|
10087
|
+
this._reorderHint = computed(() => this._sortField() || this._hasActiveFilters() ? "Clear the sort, search and filters to change the order" : this._items().length < 2 ? "There is nothing to reorder" : "Reordering is not available right now", ...ngDevMode ? [{ debugName: "_reorderHint" }] : /* istanbul ignore next */ []);
|
|
10088
|
+
this._reorderHelpId = `dt-reorder-help-${++reorderHelpSeq}`;
|
|
10089
|
+
this._dragFrom = signal(null, ...ngDevMode ? [{ debugName: "_dragFrom" }] : /* istanbul ignore next */ []);
|
|
10090
|
+
this._dragKey = null;
|
|
10091
|
+
this._dragOver = signal(null, ...ngDevMode ? [{ debugName: "_dragOver" }] : /* istanbul ignore next */ []);
|
|
10092
|
+
this._reorderAnnouncement = signal("", ...ngDevMode ? [{ debugName: "_reorderAnnouncement" }] : /* istanbul ignore next */ []);
|
|
10093
|
+
this._host = inject(ElementRef);
|
|
9202
10094
|
this._hasActiveFilters = computed(() => {
|
|
9203
10095
|
const cf = this._colFilterValues();
|
|
9204
10096
|
return !!this._search() || !!this._activeTab() || Object.values(cf).some((v) => v.length > 0);
|
|
@@ -10022,6 +10914,13 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10022
10914
|
isRequired: false,
|
|
10023
10915
|
transformFunction: null
|
|
10024
10916
|
},
|
|
10917
|
+
showMoreActions: {
|
|
10918
|
+
classPropertyName: "showMoreActions",
|
|
10919
|
+
publicName: "showMoreActions",
|
|
10920
|
+
isSignal: true,
|
|
10921
|
+
isRequired: false,
|
|
10922
|
+
transformFunction: null
|
|
10923
|
+
},
|
|
10025
10924
|
showSearch: {
|
|
10026
10925
|
classPropertyName: "showSearch",
|
|
10027
10926
|
publicName: "showSearch",
|
|
@@ -10119,6 +11018,13 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10119
11018
|
isSignal: true,
|
|
10120
11019
|
isRequired: false,
|
|
10121
11020
|
transformFunction: null
|
|
11021
|
+
},
|
|
11022
|
+
reorderable: {
|
|
11023
|
+
classPropertyName: "reorderable",
|
|
11024
|
+
publicName: "reorderable",
|
|
11025
|
+
isSignal: true,
|
|
11026
|
+
isRequired: false,
|
|
11027
|
+
transformFunction: null
|
|
10122
11028
|
}
|
|
10123
11029
|
},
|
|
10124
11030
|
outputs: {
|
|
@@ -10133,7 +11039,8 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10133
11039
|
selectionChange: "selectionChange",
|
|
10134
11040
|
tabChange: "tabChange",
|
|
10135
11041
|
bulkAction: "bulkAction",
|
|
10136
|
-
rowDeleted: "rowDeleted"
|
|
11042
|
+
rowDeleted: "rowDeleted",
|
|
11043
|
+
rowReorder: "rowReorder"
|
|
10137
11044
|
},
|
|
10138
11045
|
providers: [DatePipe, {
|
|
10139
11046
|
provide: DROPDOWN_GROUP,
|
|
@@ -10207,7 +11114,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10207
11114
|
[showSavedViews]="_effectiveSavedViews().length > 0 || !!page() || showToolbar()"
|
|
10208
11115
|
[readOnly]="!_canEdit()"
|
|
10209
11116
|
[tableButtons]="_toolbarButtons()"
|
|
10210
|
-
[hideMoreActions]="_emptyUnfiltered() && !_keepMoreActions()"
|
|
11117
|
+
[hideMoreActions]="!showMoreActions() || (_emptyUnfiltered() && !_keepMoreActions())"
|
|
10211
11118
|
(visibleColumnsChange)="_visibleColumns.set(_configurableKeys($event))"
|
|
10212
11119
|
(saveViewClick)="onSaveViewClick($event)"
|
|
10213
11120
|
(loadViewClick)="onLoadViewClick($event)"
|
|
@@ -10288,6 +11195,9 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10288
11195
|
<table [attr.aria-label]="tableLabel()" [attr.aria-busy]="_loading()">
|
|
10289
11196
|
<thead>
|
|
10290
11197
|
<tr>
|
|
11198
|
+
@if (_reorderOn()) {
|
|
11199
|
+
<th class="dt-th-grip" scope="col"><span class="dt-sr-only">Reorder</span></th>
|
|
11200
|
+
}
|
|
10291
11201
|
@if (_isSelectable()) {
|
|
10292
11202
|
<th class="dt-th-cb" scope="col">
|
|
10293
11203
|
<ui-checkbox
|
|
@@ -10342,6 +11252,9 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10342
11252
|
@if (_loading()) {
|
|
10343
11253
|
@for (_ of skeletonRows(); track $index) {
|
|
10344
11254
|
<tr class="dt-sk-reload-row">
|
|
11255
|
+
@if (_reorderOn()) {
|
|
11256
|
+
<td class="dt-td-grip"></td>
|
|
11257
|
+
}
|
|
10345
11258
|
@if (_isSelectable()) {
|
|
10346
11259
|
<td class="dt-td-cb"></td>
|
|
10347
11260
|
}
|
|
@@ -10355,7 +11268,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10355
11268
|
<!-- Error -->
|
|
10356
11269
|
@else if (_error()) {
|
|
10357
11270
|
<tr>
|
|
10358
|
-
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0)" class="dt-state-cell">
|
|
11271
|
+
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0) + (_reorderOn() ? 1 : 0)" class="dt-state-cell">
|
|
10359
11272
|
<ui-error-state [message]="_error()!" [retryLabel]="_retryLabel()" (retry)="load()" />
|
|
10360
11273
|
</td>
|
|
10361
11274
|
</tr>
|
|
@@ -10364,7 +11277,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10364
11277
|
<!-- Empty (no filters active) -->
|
|
10365
11278
|
@else if (_items().length === 0 && !_hasActiveFilters()) {
|
|
10366
11279
|
<tr>
|
|
10367
|
-
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0)" class="dt-state-cell">
|
|
11280
|
+
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0) + (_reorderOn() ? 1 : 0)" class="dt-state-cell">
|
|
10368
11281
|
<ui-empty-state iconType="table" [message]="emptyMessage()" />
|
|
10369
11282
|
</td>
|
|
10370
11283
|
</tr>
|
|
@@ -10373,7 +11286,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10373
11286
|
<!-- No match -->
|
|
10374
11287
|
@else if (_items().length === 0 && _hasActiveFilters()) {
|
|
10375
11288
|
<tr>
|
|
10376
|
-
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0)" class="dt-state-cell">
|
|
11289
|
+
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0) + (_reorderOn() ? 1 : 0)" class="dt-state-cell">
|
|
10377
11290
|
<ui-empty-state iconType="search" message="No results match your search or filters.">
|
|
10378
11291
|
<ui-button variant="secondary" size="sm" (click)="clearFilters()">Clear filters</ui-button>
|
|
10379
11292
|
</ui-empty-state>
|
|
@@ -10389,10 +11302,44 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10389
11302
|
[style.--i]="$index < 8 ? $index : 8"
|
|
10390
11303
|
[class.dt-row-clickable]="isRowClickable(item)"
|
|
10391
11304
|
[class.dt-row-selected]="_isSelectable() && _selectedIds().has(item['id'])"
|
|
11305
|
+
[class.dt-row-dragging]="_dragFrom() === $index"
|
|
11306
|
+
[class.dt-row-over-before]="_reorderOn() && _dragFrom() !== null && _dragOver() === $index && _dragFrom()! > $index"
|
|
11307
|
+
[class.dt-row-over-after]="_reorderOn() && _dragFrom() !== null && _dragOver() === $index && _dragFrom()! < $index"
|
|
11308
|
+
[attr.data-row-key]="_reorderOn() ? trackItem(item, $index) : null"
|
|
10392
11309
|
[attr.tabindex]="isRowClickable(item) ? 0 : null"
|
|
10393
11310
|
[attr.aria-label]="rowLabel(item)"
|
|
10394
11311
|
(keydown)="onRowKeydown($event, item)"
|
|
11312
|
+
(dragover)="onRowDragOver($event, $index)"
|
|
11313
|
+
(drop)="onRowDrop($event, $index)"
|
|
10395
11314
|
(click)="onRowClick(item)">
|
|
11315
|
+
@if (_reorderOn()) {
|
|
11316
|
+
<td class="dt-td-grip" (click)="$event.stopPropagation()">
|
|
11317
|
+
<span class="dt-grip" role="button" [attr.tabindex]="_reorderActive() ? 0 : null"
|
|
11318
|
+
[attr.draggable]="_reorderActive() ? 'true' : null"
|
|
11319
|
+
[attr.aria-label]="reorderLabel(item)"
|
|
11320
|
+
[attr.aria-disabled]="_reorderActive() ? null : 'true'"
|
|
11321
|
+
[attr.aria-roledescription]="'drag handle'"
|
|
11322
|
+
[attr.aria-describedby]="_reorderHelpId"
|
|
11323
|
+
[attr.title]="_reorderActive() ? 'Drag to reorder, or use the up and down arrow keys' : _reorderHint()"
|
|
11324
|
+
[class.dt-grip-off]="!_reorderActive()"
|
|
11325
|
+
(dragstart)="onGripDragStart($event, $index)"
|
|
11326
|
+
(dragend)="onGripDragEnd()"
|
|
11327
|
+
(keydown)="onGripKeydown($event, $index)">
|
|
11328
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true" focusable="false"><circle cx="9" cy="6" r="1.6"/><circle cx="15" cy="6" r="1.6"/><circle cx="9" cy="12" r="1.6"/><circle cx="15" cy="12" r="1.6"/><circle cx="9" cy="18" r="1.6"/><circle cx="15" cy="18" r="1.6"/></svg>
|
|
11329
|
+
</span>
|
|
11330
|
+
<!-- Touch screens (coarse primary pointer, e.g. a tablet) cannot rely on native drag: they get Move up / Move down instead of the grip. -->
|
|
11331
|
+
<span class="dt-row-move">
|
|
11332
|
+
<ui-button variant="icon" size="sm" [ariaLabel]="'Move ' + (rowAccessibleName(item) || 'row') + ' up'"
|
|
11333
|
+
[disabled]="!_reorderActive() || $first" (click)="moveByButton($index, -1)">
|
|
11334
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 15l6-6 6 6"/></svg>
|
|
11335
|
+
</ui-button>
|
|
11336
|
+
<ui-button variant="icon" size="sm" [ariaLabel]="'Move ' + (rowAccessibleName(item) || 'row') + ' down'"
|
|
11337
|
+
[disabled]="!_reorderActive() || $last" (click)="moveByButton($index, 1)">
|
|
11338
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
|
|
11339
|
+
</ui-button>
|
|
11340
|
+
</span>
|
|
11341
|
+
</td>
|
|
11342
|
+
}
|
|
10396
11343
|
@if (_isSelectable()) {
|
|
10397
11344
|
<td class="dt-td-cb" (click)="$event.stopPropagation()">
|
|
10398
11345
|
<ui-checkbox
|
|
@@ -10598,6 +11545,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10598
11545
|
@for (item of _items(); track trackItem(item, $index)) {
|
|
10599
11546
|
<div
|
|
10600
11547
|
class="dt-card alive-row"
|
|
11548
|
+
[attr.data-row-key]="_reorderOn() ? trackItem(item, $index) : null"
|
|
10601
11549
|
[style.--i]="$index < 8 ? $index : 8"
|
|
10602
11550
|
role="listitem"
|
|
10603
11551
|
[class.dt-card-clickable]="isRowClickable(item)"
|
|
@@ -10643,6 +11591,18 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10643
11591
|
</span>
|
|
10644
11592
|
}
|
|
10645
11593
|
}
|
|
11594
|
+
@if (_reorderOn()) {
|
|
11595
|
+
<span class="dt-card-move" (click)="$event.stopPropagation()">
|
|
11596
|
+
<ui-button variant="icon" size="sm" [ariaLabel]="'Move ' + (rowAccessibleName(item) || 'row') + ' up'"
|
|
11597
|
+
[disabled]="!_reorderActive() || $first" (click)="moveByButton($index, -1)">
|
|
11598
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 15l6-6 6 6"/></svg>
|
|
11599
|
+
</ui-button>
|
|
11600
|
+
<ui-button variant="icon" size="sm" [ariaLabel]="'Move ' + (rowAccessibleName(item) || 'row') + ' down'"
|
|
11601
|
+
[disabled]="!_reorderActive() || $last" (click)="moveByButton($index, 1)">
|
|
11602
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
|
|
11603
|
+
</ui-button>
|
|
11604
|
+
</span>
|
|
11605
|
+
}
|
|
10646
11606
|
@if (_cardCols().actionsCol; as ac) {
|
|
10647
11607
|
@let cardActions = _rowActions(ac, item);
|
|
10648
11608
|
@if (cardActions.length) {
|
|
@@ -10706,6 +11666,13 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10706
11666
|
</div>
|
|
10707
11667
|
}
|
|
10708
11668
|
|
|
11669
|
+
@if (_reorderOn()) {
|
|
11670
|
+
<span class="dt-sr-only" [id]="_reorderHelpId">{{ _reorderActive()
|
|
11671
|
+
? 'Drag to reorder with a mouse, or use the up and down arrow keys; Home moves to the top and End to the bottom.'
|
|
11672
|
+
: _reorderHint() }}</span>
|
|
11673
|
+
<span class="dt-sr-only" role="status" aria-live="polite" aria-atomic="true">{{ _reorderAnnouncement() }}</span>
|
|
11674
|
+
}
|
|
11675
|
+
|
|
10709
11676
|
<!-- ── PAGINATION ─────────────────────────────────────────── -->
|
|
10710
11677
|
@if (_total() > pageSize()) {
|
|
10711
11678
|
<ui-pagination
|
|
@@ -10764,7 +11731,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10764
11731
|
</div>
|
|
10765
11732
|
`,
|
|
10766
11733
|
isInline: true,
|
|
10767
|
-
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#94a3b8}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;align-items:stretch}.dt-header-left,.dt-header-right{width:100%}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1}.dt-bulk-actions{width:100%}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#64748b;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 12px;font-family:inherit;font-size:1rem;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}\n"],
|
|
11734
|
+
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#94a3b8}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;align-items:stretch}.dt-header-left,.dt-header-right{width:100%}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1}.dt-bulk-actions{width:100%}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#64748b;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 12px;font-family:inherit;font-size:1rem;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}\n"],
|
|
10768
11735
|
dependencies: [
|
|
10769
11736
|
{
|
|
10770
11737
|
kind: "directive",
|
|
@@ -11065,7 +12032,8 @@ var DataTableComponent = class DataTableComponent {
|
|
|
11065
12032
|
"bodyOverflow",
|
|
11066
12033
|
"dialogTestId",
|
|
11067
12034
|
"hideClose",
|
|
11068
|
-
"closable"
|
|
12035
|
+
"closable",
|
|
12036
|
+
"returnFocusTo"
|
|
11069
12037
|
],
|
|
11070
12038
|
outputs: ["close"]
|
|
11071
12039
|
},
|
|
@@ -11200,7 +12168,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11200
12168
|
[showSavedViews]="_effectiveSavedViews().length > 0 || !!page() || showToolbar()"
|
|
11201
12169
|
[readOnly]="!_canEdit()"
|
|
11202
12170
|
[tableButtons]="_toolbarButtons()"
|
|
11203
|
-
[hideMoreActions]="_emptyUnfiltered() && !_keepMoreActions()"
|
|
12171
|
+
[hideMoreActions]="!showMoreActions() || (_emptyUnfiltered() && !_keepMoreActions())"
|
|
11204
12172
|
(visibleColumnsChange)="_visibleColumns.set(_configurableKeys($event))"
|
|
11205
12173
|
(saveViewClick)="onSaveViewClick($event)"
|
|
11206
12174
|
(loadViewClick)="onLoadViewClick($event)"
|
|
@@ -11281,6 +12249,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11281
12249
|
<table [attr.aria-label]="tableLabel()" [attr.aria-busy]="_loading()">
|
|
11282
12250
|
<thead>
|
|
11283
12251
|
<tr>
|
|
12252
|
+
@if (_reorderOn()) {
|
|
12253
|
+
<th class="dt-th-grip" scope="col"><span class="dt-sr-only">Reorder</span></th>
|
|
12254
|
+
}
|
|
11284
12255
|
@if (_isSelectable()) {
|
|
11285
12256
|
<th class="dt-th-cb" scope="col">
|
|
11286
12257
|
<ui-checkbox
|
|
@@ -11335,6 +12306,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11335
12306
|
@if (_loading()) {
|
|
11336
12307
|
@for (_ of skeletonRows(); track $index) {
|
|
11337
12308
|
<tr class="dt-sk-reload-row">
|
|
12309
|
+
@if (_reorderOn()) {
|
|
12310
|
+
<td class="dt-td-grip"></td>
|
|
12311
|
+
}
|
|
11338
12312
|
@if (_isSelectable()) {
|
|
11339
12313
|
<td class="dt-td-cb"></td>
|
|
11340
12314
|
}
|
|
@@ -11348,7 +12322,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11348
12322
|
<!-- Error -->
|
|
11349
12323
|
@else if (_error()) {
|
|
11350
12324
|
<tr>
|
|
11351
|
-
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0)" class="dt-state-cell">
|
|
12325
|
+
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0) + (_reorderOn() ? 1 : 0)" class="dt-state-cell">
|
|
11352
12326
|
<ui-error-state [message]="_error()!" [retryLabel]="_retryLabel()" (retry)="load()" />
|
|
11353
12327
|
</td>
|
|
11354
12328
|
</tr>
|
|
@@ -11357,7 +12331,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11357
12331
|
<!-- Empty (no filters active) -->
|
|
11358
12332
|
@else if (_items().length === 0 && !_hasActiveFilters()) {
|
|
11359
12333
|
<tr>
|
|
11360
|
-
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0)" class="dt-state-cell">
|
|
12334
|
+
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0) + (_reorderOn() ? 1 : 0)" class="dt-state-cell">
|
|
11361
12335
|
<ui-empty-state iconType="table" [message]="emptyMessage()" />
|
|
11362
12336
|
</td>
|
|
11363
12337
|
</tr>
|
|
@@ -11366,7 +12340,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11366
12340
|
<!-- No match -->
|
|
11367
12341
|
@else if (_items().length === 0 && _hasActiveFilters()) {
|
|
11368
12342
|
<tr>
|
|
11369
|
-
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0)" class="dt-state-cell">
|
|
12343
|
+
<td [attr.colspan]="visibleCols().length + (_isSelectable() ? 1 : 0) + (_reorderOn() ? 1 : 0)" class="dt-state-cell">
|
|
11370
12344
|
<ui-empty-state iconType="search" message="No results match your search or filters.">
|
|
11371
12345
|
<ui-button variant="secondary" size="sm" (click)="clearFilters()">Clear filters</ui-button>
|
|
11372
12346
|
</ui-empty-state>
|
|
@@ -11382,10 +12356,44 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11382
12356
|
[style.--i]="$index < 8 ? $index : 8"
|
|
11383
12357
|
[class.dt-row-clickable]="isRowClickable(item)"
|
|
11384
12358
|
[class.dt-row-selected]="_isSelectable() && _selectedIds().has(item['id'])"
|
|
12359
|
+
[class.dt-row-dragging]="_dragFrom() === $index"
|
|
12360
|
+
[class.dt-row-over-before]="_reorderOn() && _dragFrom() !== null && _dragOver() === $index && _dragFrom()! > $index"
|
|
12361
|
+
[class.dt-row-over-after]="_reorderOn() && _dragFrom() !== null && _dragOver() === $index && _dragFrom()! < $index"
|
|
12362
|
+
[attr.data-row-key]="_reorderOn() ? trackItem(item, $index) : null"
|
|
11385
12363
|
[attr.tabindex]="isRowClickable(item) ? 0 : null"
|
|
11386
12364
|
[attr.aria-label]="rowLabel(item)"
|
|
11387
12365
|
(keydown)="onRowKeydown($event, item)"
|
|
12366
|
+
(dragover)="onRowDragOver($event, $index)"
|
|
12367
|
+
(drop)="onRowDrop($event, $index)"
|
|
11388
12368
|
(click)="onRowClick(item)">
|
|
12369
|
+
@if (_reorderOn()) {
|
|
12370
|
+
<td class="dt-td-grip" (click)="$event.stopPropagation()">
|
|
12371
|
+
<span class="dt-grip" role="button" [attr.tabindex]="_reorderActive() ? 0 : null"
|
|
12372
|
+
[attr.draggable]="_reorderActive() ? 'true' : null"
|
|
12373
|
+
[attr.aria-label]="reorderLabel(item)"
|
|
12374
|
+
[attr.aria-disabled]="_reorderActive() ? null : 'true'"
|
|
12375
|
+
[attr.aria-roledescription]="'drag handle'"
|
|
12376
|
+
[attr.aria-describedby]="_reorderHelpId"
|
|
12377
|
+
[attr.title]="_reorderActive() ? 'Drag to reorder, or use the up and down arrow keys' : _reorderHint()"
|
|
12378
|
+
[class.dt-grip-off]="!_reorderActive()"
|
|
12379
|
+
(dragstart)="onGripDragStart($event, $index)"
|
|
12380
|
+
(dragend)="onGripDragEnd()"
|
|
12381
|
+
(keydown)="onGripKeydown($event, $index)">
|
|
12382
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true" focusable="false"><circle cx="9" cy="6" r="1.6"/><circle cx="15" cy="6" r="1.6"/><circle cx="9" cy="12" r="1.6"/><circle cx="15" cy="12" r="1.6"/><circle cx="9" cy="18" r="1.6"/><circle cx="15" cy="18" r="1.6"/></svg>
|
|
12383
|
+
</span>
|
|
12384
|
+
<!-- Touch screens (coarse primary pointer, e.g. a tablet) cannot rely on native drag: they get Move up / Move down instead of the grip. -->
|
|
12385
|
+
<span class="dt-row-move">
|
|
12386
|
+
<ui-button variant="icon" size="sm" [ariaLabel]="'Move ' + (rowAccessibleName(item) || 'row') + ' up'"
|
|
12387
|
+
[disabled]="!_reorderActive() || $first" (click)="moveByButton($index, -1)">
|
|
12388
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 15l6-6 6 6"/></svg>
|
|
12389
|
+
</ui-button>
|
|
12390
|
+
<ui-button variant="icon" size="sm" [ariaLabel]="'Move ' + (rowAccessibleName(item) || 'row') + ' down'"
|
|
12391
|
+
[disabled]="!_reorderActive() || $last" (click)="moveByButton($index, 1)">
|
|
12392
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
|
|
12393
|
+
</ui-button>
|
|
12394
|
+
</span>
|
|
12395
|
+
</td>
|
|
12396
|
+
}
|
|
11389
12397
|
@if (_isSelectable()) {
|
|
11390
12398
|
<td class="dt-td-cb" (click)="$event.stopPropagation()">
|
|
11391
12399
|
<ui-checkbox
|
|
@@ -11591,6 +12599,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11591
12599
|
@for (item of _items(); track trackItem(item, $index)) {
|
|
11592
12600
|
<div
|
|
11593
12601
|
class="dt-card alive-row"
|
|
12602
|
+
[attr.data-row-key]="_reorderOn() ? trackItem(item, $index) : null"
|
|
11594
12603
|
[style.--i]="$index < 8 ? $index : 8"
|
|
11595
12604
|
role="listitem"
|
|
11596
12605
|
[class.dt-card-clickable]="isRowClickable(item)"
|
|
@@ -11636,6 +12645,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11636
12645
|
</span>
|
|
11637
12646
|
}
|
|
11638
12647
|
}
|
|
12648
|
+
@if (_reorderOn()) {
|
|
12649
|
+
<span class="dt-card-move" (click)="$event.stopPropagation()">
|
|
12650
|
+
<ui-button variant="icon" size="sm" [ariaLabel]="'Move ' + (rowAccessibleName(item) || 'row') + ' up'"
|
|
12651
|
+
[disabled]="!_reorderActive() || $first" (click)="moveByButton($index, -1)">
|
|
12652
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 15l6-6 6 6"/></svg>
|
|
12653
|
+
</ui-button>
|
|
12654
|
+
<ui-button variant="icon" size="sm" [ariaLabel]="'Move ' + (rowAccessibleName(item) || 'row') + ' down'"
|
|
12655
|
+
[disabled]="!_reorderActive() || $last" (click)="moveByButton($index, 1)">
|
|
12656
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
|
|
12657
|
+
</ui-button>
|
|
12658
|
+
</span>
|
|
12659
|
+
}
|
|
11639
12660
|
@if (_cardCols().actionsCol; as ac) {
|
|
11640
12661
|
@let cardActions = _rowActions(ac, item);
|
|
11641
12662
|
@if (cardActions.length) {
|
|
@@ -11699,6 +12720,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11699
12720
|
</div>
|
|
11700
12721
|
}
|
|
11701
12722
|
|
|
12723
|
+
@if (_reorderOn()) {
|
|
12724
|
+
<span class="dt-sr-only" [id]="_reorderHelpId">{{ _reorderActive()
|
|
12725
|
+
? 'Drag to reorder with a mouse, or use the up and down arrow keys; Home moves to the top and End to the bottom.'
|
|
12726
|
+
: _reorderHint() }}</span>
|
|
12727
|
+
<span class="dt-sr-only" role="status" aria-live="polite" aria-atomic="true">{{ _reorderAnnouncement() }}</span>
|
|
12728
|
+
}
|
|
12729
|
+
|
|
11702
12730
|
<!-- ── PAGINATION ─────────────────────────────────────────── -->
|
|
11703
12731
|
@if (_total() > pageSize()) {
|
|
11704
12732
|
<ui-pagination
|
|
@@ -11756,7 +12784,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11756
12784
|
}
|
|
11757
12785
|
</div>
|
|
11758
12786
|
`,
|
|
11759
|
-
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#94a3b8}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;align-items:stretch}.dt-header-left,.dt-header-right{width:100%}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1}.dt-bulk-actions{width:100%}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#64748b;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 12px;font-family:inherit;font-size:1rem;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}\n"]
|
|
12787
|
+
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#94a3b8}.dt-link{position:relative;display:inline-block;max-width:100%;padding:1px 2px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb;text-decoration:none;border-radius:3px;cursor:pointer}.dt-link:hover{text-decoration:underline;color:#1d4ed8}.dt-link:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;text-decoration:underline}.dt-card-detail-value .dt-link,.dt-card-name .dt-link{white-space:normal;overflow-wrap:anywhere}.dt-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dt-tags{display:flex;align-items:center;gap:4px}.dt-tags-more{font-size:.75rem;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0}.dt-tags-more:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:999px}.dt-tag-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#1e293b;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 6px #0000000f,0 10px 24px #00000024;transform:translate(-50%) translateY(-100%);animation:dt-tip-in .12s ease;max-width:220px}@keyframes dt-tip-in{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% + 4px))}to{opacity:1;transform:translate(-50%) translateY(-100%)}}.dt-cell-star{margin-right:6px}.dt-actions-cell{display:flex;align-items:center;justify-content:center}.dt-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;align-self:flex-start;padding:10px 14px;margin-bottom:8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.dt-bulk-count{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.dt-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.dt-bulk-actions ui-select{max-width:180px;min-width:120px}.dt-bulk-hint{font-size:.8125rem;line-height:1.35;color:#475569}.dt-card-cb{display:flex;align-items:center;padding:0 0 6px}.dt-card-selected{background:#eff6ff!important;border-color:#bfdbfe!important}.dt-th-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-cb{width:44px;padding:0 10px!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-th-grip{width:36px;padding:0!important;border-right:1px solid #e2e8f0;background:#f8fafc}.dt-td-grip{width:36px;padding:0!important;text-align:center!important;border-right:1px solid #f1f5f9}.dt-grip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:#64748b;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.dt-grip:hover{background:#f1f5f9;color:#334155}.dt-grip:active{cursor:grabbing}.dt-grip:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.dt-grip-off{color:#cbd5e1;cursor:not-allowed}.dt-grip-off:hover{background:none;color:#cbd5e1}.dt-row-move{display:none}@media(pointer:coarse){.dt-grip{display:none}.dt-row-move{display:inline-flex;flex-direction:column;align-items:center}.dt-th-grip,.dt-td-grip{width:56px}}.dt-row-dragging{opacity:.45}.dt-row-over-before>td{box-shadow:inset 0 2px #3b82f6}.dt-row-over-after>td{box-shadow:inset 0 -2px #3b82f6}.dt-card-move{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}@media(forced-colors:active){.dt-row-over-before>td{box-shadow:inset 0 2px 0 Highlight}.dt-row-over-after>td{box-shadow:inset 0 -2px 0 Highlight}.dt-grip:focus-visible{outline-color:Highlight}}.dt-row-selected{background:#eff6ff!important}.dt-row-selected:hover{background:#dbeafe!important}.dt-state-cell{padding:0!important;border:none!important;background:#fff!important}@media(max-width:1024px){th{padding:10px 12px}td{padding:11px 12px}.dt-sort-btn{padding:4px 0}.dt-td-actions{padding:6px}.dt-bulk-bar{align-self:stretch}}@media(max-width:820px){.dt-header-left{flex-basis:100%}.dt-header-right{flex-basis:100%;justify-content:flex-start}}@media(max-width:768px){th{padding:9px 10px;font-size:.8125rem}td{padding:10px;font-size:.8125rem}.dt-sk-search{width:100%}}@media(max-width:640px){.dt-header{flex-direction:column;align-items:stretch}.dt-header-left,.dt-header-right{width:100%}.dt-table-wrap{display:none}.dt-sk-search{width:100%}.dt-sk-toolbar{flex-direction:column;align-items:stretch;gap:8px}.dt-sk-toolbar-right{align-self:flex-end}.dt-bulk-bar{align-self:stretch;padding:10px 12px;row-gap:8px}.dt-bulk-count{flex:1}.dt-bulk-actions{width:100%}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#64748b;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 12px;font-family:inherit;font-size:1rem;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}\n"]
|
|
11760
12788
|
}]
|
|
11761
12789
|
}],
|
|
11762
12790
|
ctorParameters: () => [],
|
|
@@ -11849,6 +12877,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11849
12877
|
required: false
|
|
11850
12878
|
}]
|
|
11851
12879
|
}],
|
|
12880
|
+
showMoreActions: [{
|
|
12881
|
+
type: i0.Input,
|
|
12882
|
+
args: [{
|
|
12883
|
+
isSignal: true,
|
|
12884
|
+
alias: "showMoreActions",
|
|
12885
|
+
required: false
|
|
12886
|
+
}]
|
|
12887
|
+
}],
|
|
11852
12888
|
showSearch: [{
|
|
11853
12889
|
type: i0.Input,
|
|
11854
12890
|
args: [{
|
|
@@ -12009,6 +13045,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
12009
13045
|
type: i0.Output,
|
|
12010
13046
|
args: ["rowDeleted"]
|
|
12011
13047
|
}],
|
|
13048
|
+
reorderable: [{
|
|
13049
|
+
type: i0.Input,
|
|
13050
|
+
args: [{
|
|
13051
|
+
isSignal: true,
|
|
13052
|
+
alias: "reorderable",
|
|
13053
|
+
required: false
|
|
13054
|
+
}]
|
|
13055
|
+
}],
|
|
13056
|
+
rowReorder: [{
|
|
13057
|
+
type: i0.Output,
|
|
13058
|
+
args: ["rowReorder"]
|
|
13059
|
+
}],
|
|
12012
13060
|
_ieRef: [{
|
|
12013
13061
|
type: i0.ViewChild,
|
|
12014
13062
|
args: ["ieRef", { isSignal: true }]
|
|
@@ -12029,6 +13077,7 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
12029
13077
|
this.primaryDisabled = input(false, ...ngDevMode ? [{ debugName: "primaryDisabled" }] : /* istanbul ignore next */ []);
|
|
12030
13078
|
this.cancelTestId = input("", ...ngDevMode ? [{ debugName: "cancelTestId" }] : /* istanbul ignore next */ []);
|
|
12031
13079
|
this.primaryTestId = input("", ...ngDevMode ? [{ debugName: "primaryTestId" }] : /* istanbul ignore next */ []);
|
|
13080
|
+
this.returnFocusTo = input(null, ...ngDevMode ? [{ debugName: "returnFocusTo" }] : /* istanbul ignore next */ []);
|
|
12032
13081
|
this.closed = output();
|
|
12033
13082
|
this.primaryClick = output();
|
|
12034
13083
|
this.titleId = `sp-title-${Math.random().toString(36).slice(2, 8)}`;
|
|
@@ -12038,10 +13087,18 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
12038
13087
|
this._prevFocus = null;
|
|
12039
13088
|
this._scrollLocked = false;
|
|
12040
13089
|
this._stopViewport = null;
|
|
13090
|
+
this._stopIframeKeys = null;
|
|
13091
|
+
this._interaction = inject(LastInteraction);
|
|
13092
|
+
this._interaction.acquire(this._doc);
|
|
12041
13093
|
effect(() => {
|
|
12042
13094
|
if (this.open()) {
|
|
12043
13095
|
this._overlays.push(this);
|
|
12044
|
-
this._prevFocus = this._doc.
|
|
13096
|
+
this._prevFocus = resolveTrigger(this._doc, this._interaction);
|
|
13097
|
+
this._stopIframeKeys?.();
|
|
13098
|
+
this._stopIframeKeys = bridgeIframeKeys(this._el.nativeElement, this._doc, {
|
|
13099
|
+
onEscape: (e) => this.onKeydown(e),
|
|
13100
|
+
isActive: () => this.open() && this._overlays.isTop(this)
|
|
13101
|
+
});
|
|
12045
13102
|
this._doc.body.style.overflow = "hidden";
|
|
12046
13103
|
this._scrollLocked = true;
|
|
12047
13104
|
this._stopViewport?.();
|
|
@@ -12053,7 +13110,9 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
12053
13110
|
this._scrollLocked = false;
|
|
12054
13111
|
this._stopViewport?.();
|
|
12055
13112
|
this._stopViewport = null;
|
|
12056
|
-
this.
|
|
13113
|
+
this._stopIframeKeys?.();
|
|
13114
|
+
this._stopIframeKeys = null;
|
|
13115
|
+
restoreFocus(untracked(() => this.returnFocusTo()), this._prevFocus);
|
|
12057
13116
|
this._prevFocus = null;
|
|
12058
13117
|
}
|
|
12059
13118
|
});
|
|
@@ -12086,6 +13145,10 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
12086
13145
|
}
|
|
12087
13146
|
}
|
|
12088
13147
|
}
|
|
13148
|
+
onGuardFocus(which, event) {
|
|
13149
|
+
if (!this._overlays.isTop(this)) return;
|
|
13150
|
+
redirectFromGuard(which, this._el.nativeElement, this._el.nativeElement.querySelector(".sp-panel"), event?.relatedTarget ?? null);
|
|
13151
|
+
}
|
|
12089
13152
|
_focusFirst() {
|
|
12090
13153
|
focusInitial(this._el.nativeElement.querySelector(".sp-panel"), this._el.nativeElement.querySelector(".sp-body"), this._doc);
|
|
12091
13154
|
}
|
|
@@ -12093,6 +13156,9 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
12093
13156
|
return tabbables(this._el.nativeElement);
|
|
12094
13157
|
}
|
|
12095
13158
|
ngOnDestroy() {
|
|
13159
|
+
this._interaction.release();
|
|
13160
|
+
this._stopIframeKeys?.();
|
|
13161
|
+
this._stopIframeKeys = null;
|
|
12096
13162
|
this._stopViewport?.();
|
|
12097
13163
|
this._stopViewport = null;
|
|
12098
13164
|
this._overlays.remove(this);
|
|
@@ -12199,6 +13265,13 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
12199
13265
|
isSignal: true,
|
|
12200
13266
|
isRequired: false,
|
|
12201
13267
|
transformFunction: null
|
|
13268
|
+
},
|
|
13269
|
+
returnFocusTo: {
|
|
13270
|
+
classPropertyName: "returnFocusTo",
|
|
13271
|
+
publicName: "returnFocusTo",
|
|
13272
|
+
isSignal: true,
|
|
13273
|
+
isRequired: false,
|
|
13274
|
+
transformFunction: null
|
|
12202
13275
|
}
|
|
12203
13276
|
},
|
|
12204
13277
|
outputs: {
|
|
@@ -12218,6 +13291,7 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
12218
13291
|
aria-modal="true"
|
|
12219
13292
|
tabindex="-1"
|
|
12220
13293
|
[attr.aria-labelledby]="titleId">
|
|
13294
|
+
<span class="sp-focus-guard" data-ui-focus-guard="start" tabindex="0" (focus)="onGuardFocus('start', $event)"></span>
|
|
12221
13295
|
|
|
12222
13296
|
<!-- Header -->
|
|
12223
13297
|
<div class="sp-header">
|
|
@@ -12271,11 +13345,12 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
12271
13345
|
}
|
|
12272
13346
|
</div>
|
|
12273
13347
|
}
|
|
13348
|
+
<span class="sp-focus-guard" data-ui-focus-guard="end" tabindex="0" (focus)="onGuardFocus('end', $event)"></span>
|
|
12274
13349
|
</aside>
|
|
12275
13350
|
}
|
|
12276
13351
|
`,
|
|
12277
13352
|
isInline: true,
|
|
12278
|
-
styles: [".sp-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90;animation:sp-fade .2s ease}.sp-panel{position:fixed;top:0;right:0;bottom:var(--ui-kb, 0px);width:480px;max-width:100vw;max-height:100vh;max-height:var(--ui-vvh, 100dvh);background:#fff;z-index:100;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:sp-slide .25s ease}.sp-panel:focus{outline:none}.sp-wide{width:620px}.sp-extra-wide{width:760px}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;gap:12px;flex-shrink:0;background:linear-gradient(135deg,#1e293b,#334155)}.sp-header-text{flex:1;min-width:0}.sp-title{font-size:1.125rem;font-weight:700;color:#fff;margin:0}.sp-subtitle{font-size:.8125rem;color:#94a3b8;margin:4px 0 0}.sp-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;cursor:pointer;color:#cbd5e1;transition:background .15s,border-color .15s}.sp-close:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.sp-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-body{padding:20px 24px 24px;flex:1;overflow-y:auto;overflow-x:hidden}.sp-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.sp-footer-extra{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px;min-width:0}.sp-footer-extra:empty{display:none}.sp-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:7px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .1s,border-color .1s,opacity .1s}.sp-btn:disabled{opacity:.5;cursor:default}.sp-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#475569}.sp-btn-cancel:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sp-btn-primary{background:#3b82f6;border:1px solid #3b82f6;color:#fff}.sp-btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.sp-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.sp-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.sp-btn-warning{background:#d97706;border:1px solid #d97706;color:#fff}.sp-btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}.sp-spinner{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp-spin .55s linear infinite;flex-shrink:0}@media(max-width:768px){.sp-panel,.sp-wide,.sp-extra-wide{width:100vw}}@media(max-width:480px){.sp-panel,.sp-wide,.sp-extra-wide{inset:auto 0 0;width:100vw;max-height:90vh;max-height:min(90dvh,var(--ui-vvh, 100dvh));border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000026;animation:sp-up .25s ease}.sp-header{padding:16px 16px 14px}.sp-body{padding:16px}.sp-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media(pointer:coarse),(max-width:480px){.sp-close{position:relative}.sp-close:after{content:\"\";position:absolute;inset:-5px}.sp-btn{min-height:44px;justify-content:center}}@keyframes sp-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sp-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-spin{to{transform:rotate(360deg)}}\n"],
|
|
13353
|
+
styles: [".sp-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90;animation:sp-fade .2s ease}.sp-panel{position:fixed;top:0;right:0;bottom:var(--ui-kb, 0px);width:480px;max-width:100vw;max-height:100vh;max-height:var(--ui-vvh, 100dvh);background:#fff;z-index:100;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:sp-slide .25s ease}.sp-panel:focus{outline:none}.sp-focus-guard{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;outline:none}.sp-wide{width:620px}.sp-extra-wide{width:760px}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;gap:12px;flex-shrink:0;background:linear-gradient(135deg,#1e293b,#334155)}.sp-header-text{flex:1;min-width:0}.sp-title{font-size:1.125rem;font-weight:700;color:#fff;margin:0}.sp-subtitle{font-size:.8125rem;color:#94a3b8;margin:4px 0 0}.sp-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;cursor:pointer;color:#cbd5e1;transition:background .15s,border-color .15s}.sp-close:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.sp-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-body{padding:20px 24px 24px;flex:1;overflow-y:auto;overflow-x:hidden}.sp-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.sp-footer-extra{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px;min-width:0}.sp-footer-extra:empty{display:none}.sp-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:7px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .1s,border-color .1s,opacity .1s}.sp-btn:disabled{opacity:.5;cursor:default}.sp-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#475569}.sp-btn-cancel:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sp-btn-primary{background:#3b82f6;border:1px solid #3b82f6;color:#fff}.sp-btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.sp-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.sp-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.sp-btn-warning{background:#d97706;border:1px solid #d97706;color:#fff}.sp-btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}.sp-spinner{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp-spin .55s linear infinite;flex-shrink:0}@media(max-width:768px){.sp-panel,.sp-wide,.sp-extra-wide{width:100vw}}@media(max-width:480px){.sp-panel,.sp-wide,.sp-extra-wide{inset:auto 0 0;width:100vw;max-height:90vh;max-height:min(90dvh,var(--ui-vvh, 100dvh));border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000026;animation:sp-up .25s ease}.sp-header{padding:16px 16px 14px}.sp-body{padding:16px}.sp-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media(pointer:coarse),(max-width:480px){.sp-close{position:relative}.sp-close:after{content:\"\";position:absolute;inset:-5px}.sp-btn{min-height:44px;justify-content:center}}@keyframes sp-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sp-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-spin{to{transform:rotate(360deg)}}\n"],
|
|
12279
13354
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
12280
13355
|
});
|
|
12281
13356
|
}
|
|
@@ -12303,6 +13378,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
12303
13378
|
aria-modal="true"
|
|
12304
13379
|
tabindex="-1"
|
|
12305
13380
|
[attr.aria-labelledby]="titleId">
|
|
13381
|
+
<span class="sp-focus-guard" data-ui-focus-guard="start" tabindex="0" (focus)="onGuardFocus('start', $event)"></span>
|
|
12306
13382
|
|
|
12307
13383
|
<!-- Header -->
|
|
12308
13384
|
<div class="sp-header">
|
|
@@ -12356,10 +13432,11 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
12356
13432
|
}
|
|
12357
13433
|
</div>
|
|
12358
13434
|
}
|
|
13435
|
+
<span class="sp-focus-guard" data-ui-focus-guard="end" tabindex="0" (focus)="onGuardFocus('end', $event)"></span>
|
|
12359
13436
|
</aside>
|
|
12360
13437
|
}
|
|
12361
13438
|
`,
|
|
12362
|
-
styles: [".sp-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90;animation:sp-fade .2s ease}.sp-panel{position:fixed;top:0;right:0;bottom:var(--ui-kb, 0px);width:480px;max-width:100vw;max-height:100vh;max-height:var(--ui-vvh, 100dvh);background:#fff;z-index:100;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:sp-slide .25s ease}.sp-panel:focus{outline:none}.sp-wide{width:620px}.sp-extra-wide{width:760px}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;gap:12px;flex-shrink:0;background:linear-gradient(135deg,#1e293b,#334155)}.sp-header-text{flex:1;min-width:0}.sp-title{font-size:1.125rem;font-weight:700;color:#fff;margin:0}.sp-subtitle{font-size:.8125rem;color:#94a3b8;margin:4px 0 0}.sp-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;cursor:pointer;color:#cbd5e1;transition:background .15s,border-color .15s}.sp-close:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.sp-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-body{padding:20px 24px 24px;flex:1;overflow-y:auto;overflow-x:hidden}.sp-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.sp-footer-extra{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px;min-width:0}.sp-footer-extra:empty{display:none}.sp-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:7px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .1s,border-color .1s,opacity .1s}.sp-btn:disabled{opacity:.5;cursor:default}.sp-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#475569}.sp-btn-cancel:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sp-btn-primary{background:#3b82f6;border:1px solid #3b82f6;color:#fff}.sp-btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.sp-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.sp-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.sp-btn-warning{background:#d97706;border:1px solid #d97706;color:#fff}.sp-btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}.sp-spinner{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp-spin .55s linear infinite;flex-shrink:0}@media(max-width:768px){.sp-panel,.sp-wide,.sp-extra-wide{width:100vw}}@media(max-width:480px){.sp-panel,.sp-wide,.sp-extra-wide{inset:auto 0 0;width:100vw;max-height:90vh;max-height:min(90dvh,var(--ui-vvh, 100dvh));border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000026;animation:sp-up .25s ease}.sp-header{padding:16px 16px 14px}.sp-body{padding:16px}.sp-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media(pointer:coarse),(max-width:480px){.sp-close{position:relative}.sp-close:after{content:\"\";position:absolute;inset:-5px}.sp-btn{min-height:44px;justify-content:center}}@keyframes sp-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sp-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-spin{to{transform:rotate(360deg)}}\n"]
|
|
13439
|
+
styles: [".sp-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90;animation:sp-fade .2s ease}.sp-panel{position:fixed;top:0;right:0;bottom:var(--ui-kb, 0px);width:480px;max-width:100vw;max-height:100vh;max-height:var(--ui-vvh, 100dvh);background:#fff;z-index:100;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:sp-slide .25s ease}.sp-panel:focus{outline:none}.sp-focus-guard{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;outline:none}.sp-wide{width:620px}.sp-extra-wide{width:760px}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;gap:12px;flex-shrink:0;background:linear-gradient(135deg,#1e293b,#334155)}.sp-header-text{flex:1;min-width:0}.sp-title{font-size:1.125rem;font-weight:700;color:#fff;margin:0}.sp-subtitle{font-size:.8125rem;color:#94a3b8;margin:4px 0 0}.sp-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;cursor:pointer;color:#cbd5e1;transition:background .15s,border-color .15s}.sp-close:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.sp-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-body{padding:20px 24px 24px;flex:1;overflow-y:auto;overflow-x:hidden}.sp-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.sp-footer-extra{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px;min-width:0}.sp-footer-extra:empty{display:none}.sp-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:7px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .1s,border-color .1s,opacity .1s}.sp-btn:disabled{opacity:.5;cursor:default}.sp-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#475569}.sp-btn-cancel:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sp-btn-primary{background:#3b82f6;border:1px solid #3b82f6;color:#fff}.sp-btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.sp-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.sp-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.sp-btn-warning{background:#d97706;border:1px solid #d97706;color:#fff}.sp-btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}.sp-spinner{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp-spin .55s linear infinite;flex-shrink:0}@media(max-width:768px){.sp-panel,.sp-wide,.sp-extra-wide{width:100vw}}@media(max-width:480px){.sp-panel,.sp-wide,.sp-extra-wide{inset:auto 0 0;width:100vw;max-height:90vh;max-height:min(90dvh,var(--ui-vvh, 100dvh));border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000026;animation:sp-up .25s ease}.sp-header{padding:16px 16px 14px}.sp-body{padding:16px}.sp-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media(pointer:coarse),(max-width:480px){.sp-close{position:relative}.sp-close:after{content:\"\";position:absolute;inset:-5px}.sp-btn{min-height:44px;justify-content:center}}@keyframes sp-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sp-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-spin{to{transform:rotate(360deg)}}\n"]
|
|
12363
13440
|
}]
|
|
12364
13441
|
}],
|
|
12365
13442
|
ctorParameters: () => [],
|
|
@@ -12460,6 +13537,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
12460
13537
|
required: false
|
|
12461
13538
|
}]
|
|
12462
13539
|
}],
|
|
13540
|
+
returnFocusTo: [{
|
|
13541
|
+
type: i0.Input,
|
|
13542
|
+
args: [{
|
|
13543
|
+
isSignal: true,
|
|
13544
|
+
alias: "returnFocusTo",
|
|
13545
|
+
required: false
|
|
13546
|
+
}]
|
|
13547
|
+
}],
|
|
12463
13548
|
closed: [{
|
|
12464
13549
|
type: i0.Output,
|
|
12465
13550
|
args: ["closed"]
|
|
@@ -13123,6 +14208,7 @@ var ToggleComponent = class ToggleComponent {
|
|
|
13123
14208
|
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
13124
14209
|
this.hint = input("", ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
|
|
13125
14210
|
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
14211
|
+
this.ariaDescribedBy = input("", ...ngDevMode ? [{ debugName: "ariaDescribedBy" }] : /* istanbul ignore next */ []);
|
|
13126
14212
|
this.checked = model(false, ...ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []);
|
|
13127
14213
|
this._disabledInput = input(false, {
|
|
13128
14214
|
...ngDevMode ? { debugName: "_disabledInput" } : /* istanbul ignore next */ {},
|
|
@@ -13134,6 +14220,10 @@ var ToggleComponent = class ToggleComponent {
|
|
|
13134
14220
|
this._inputId = `${this._id}-input`;
|
|
13135
14221
|
this._labelId = `${this._id}-label`;
|
|
13136
14222
|
this._hintId = `${this._id}-hint`;
|
|
14223
|
+
this._describedBy = computed(() => {
|
|
14224
|
+
const ids = [this.hint() ? this._hintId : "", this.ariaDescribedBy().trim()].filter(Boolean);
|
|
14225
|
+
return ids.length ? ids.join(" ") : null;
|
|
14226
|
+
}, ...ngDevMode ? [{ debugName: "_describedBy" }] : /* istanbul ignore next */ []);
|
|
13137
14227
|
this._onChange = (_) => {};
|
|
13138
14228
|
this._onTouched = () => {};
|
|
13139
14229
|
}
|
|
@@ -13201,6 +14291,13 @@ var ToggleComponent = class ToggleComponent {
|
|
|
13201
14291
|
isRequired: false,
|
|
13202
14292
|
transformFunction: null
|
|
13203
14293
|
},
|
|
14294
|
+
ariaDescribedBy: {
|
|
14295
|
+
classPropertyName: "ariaDescribedBy",
|
|
14296
|
+
publicName: "ariaDescribedBy",
|
|
14297
|
+
isSignal: true,
|
|
14298
|
+
isRequired: false,
|
|
14299
|
+
transformFunction: null
|
|
14300
|
+
},
|
|
13204
14301
|
checked: {
|
|
13205
14302
|
classPropertyName: "checked",
|
|
13206
14303
|
publicName: "checked",
|
|
@@ -13242,7 +14339,7 @@ var ToggleComponent = class ToggleComponent {
|
|
|
13242
14339
|
[attr.aria-checked]="checked() ? 'true' : 'false'"
|
|
13243
14340
|
[attr.aria-labelledby]="label() ? _labelId : null"
|
|
13244
14341
|
[attr.aria-label]="label() ? null : (ariaLabel() || null)"
|
|
13245
|
-
[attr.aria-describedby]="
|
|
14342
|
+
[attr.aria-describedby]="_describedBy()"
|
|
13246
14343
|
(change)="onToggle($event)"
|
|
13247
14344
|
(blur)="onTouched()" />
|
|
13248
14345
|
<span class="tg-slider" aria-hidden="true"></span>
|
|
@@ -13290,7 +14387,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13290
14387
|
[attr.aria-checked]="checked() ? 'true' : 'false'"
|
|
13291
14388
|
[attr.aria-labelledby]="label() ? _labelId : null"
|
|
13292
14389
|
[attr.aria-label]="label() ? null : (ariaLabel() || null)"
|
|
13293
|
-
[attr.aria-describedby]="
|
|
14390
|
+
[attr.aria-describedby]="_describedBy()"
|
|
13294
14391
|
(change)="onToggle($event)"
|
|
13295
14392
|
(blur)="onTouched()" />
|
|
13296
14393
|
<span class="tg-slider" aria-hidden="true"></span>
|
|
@@ -13325,6 +14422,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13325
14422
|
required: false
|
|
13326
14423
|
}]
|
|
13327
14424
|
}],
|
|
14425
|
+
ariaDescribedBy: [{
|
|
14426
|
+
type: i0.Input,
|
|
14427
|
+
args: [{
|
|
14428
|
+
isSignal: true,
|
|
14429
|
+
alias: "ariaDescribedBy",
|
|
14430
|
+
required: false
|
|
14431
|
+
}]
|
|
14432
|
+
}],
|
|
13328
14433
|
checked: [{
|
|
13329
14434
|
type: i0.Input,
|
|
13330
14435
|
args: [{
|
|
@@ -14292,7 +15397,7 @@ var BusinessHoursComponent = class BusinessHoursComponent {
|
|
|
14292
15397
|
</div>
|
|
14293
15398
|
`,
|
|
14294
15399
|
isInline: true,
|
|
14295
|
-
styles: [":host{display:block}.bh-label{display:block;font-size:.8125rem;font-weight:600;color:#334155;margin-bottom:4px}.bh-tools{margin:2px 0 4px}.bh-grid{display:flex;flex-direction:column}.bh-row{display:flex;align-items:flex-start;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9}.bh-row:last-child{border-bottom:none}.bh-day{width:140px;flex-shrink:0;padding-top:6px}.bh-times{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.bh-shift{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bh-to{font-size:.8125rem;color:#94a3b8}.bh-closed{font-size:.8125rem;color:#94a3b8;font-style:italic;padding-top:8px}.bh-desc{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#64748b}.bh-desc-error{color:#
|
|
15400
|
+
styles: [":host{display:block}.bh-label{display:block;font-size:.8125rem;font-weight:600;color:#334155;margin-bottom:4px}.bh-tools{margin:2px 0 4px}.bh-grid{display:flex;flex-direction:column}.bh-row{display:flex;align-items:flex-start;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9}.bh-row:last-child{border-bottom:none}.bh-day{width:140px;flex-shrink:0;padding-top:6px}.bh-times{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.bh-shift{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bh-to{font-size:.8125rem;color:#94a3b8}.bh-closed{font-size:.8125rem;color:#94a3b8;font-style:italic;padding-top:8px}.bh-desc{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#64748b}.bh-desc-error{color:#dc2626}@media(max-width:480px){.bh-row{flex-direction:column;gap:4px}.bh-day{width:auto;padding-top:0}.bh-closed{padding-top:0}}\n"],
|
|
14296
15401
|
dependencies: [
|
|
14297
15402
|
{
|
|
14298
15403
|
kind: "ngmodule",
|
|
@@ -14478,7 +15583,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14478
15583
|
}
|
|
14479
15584
|
</div>
|
|
14480
15585
|
`,
|
|
14481
|
-
styles: [":host{display:block}.bh-label{display:block;font-size:.8125rem;font-weight:600;color:#334155;margin-bottom:4px}.bh-tools{margin:2px 0 4px}.bh-grid{display:flex;flex-direction:column}.bh-row{display:flex;align-items:flex-start;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9}.bh-row:last-child{border-bottom:none}.bh-day{width:140px;flex-shrink:0;padding-top:6px}.bh-times{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.bh-shift{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bh-to{font-size:.8125rem;color:#94a3b8}.bh-closed{font-size:.8125rem;color:#94a3b8;font-style:italic;padding-top:8px}.bh-desc{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#64748b}.bh-desc-error{color:#
|
|
15586
|
+
styles: [":host{display:block}.bh-label{display:block;font-size:.8125rem;font-weight:600;color:#334155;margin-bottom:4px}.bh-tools{margin:2px 0 4px}.bh-grid{display:flex;flex-direction:column}.bh-row{display:flex;align-items:flex-start;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9}.bh-row:last-child{border-bottom:none}.bh-day{width:140px;flex-shrink:0;padding-top:6px}.bh-times{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.bh-shift{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bh-to{font-size:.8125rem;color:#94a3b8}.bh-closed{font-size:.8125rem;color:#94a3b8;font-style:italic;padding-top:8px}.bh-desc{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#64748b}.bh-desc-error{color:#dc2626}@media(max-width:480px){.bh-row{flex-direction:column;gap:4px}.bh-day{width:auto;padding-top:0}.bh-closed{padding-top:0}}\n"]
|
|
14482
15587
|
}]
|
|
14483
15588
|
}],
|
|
14484
15589
|
ctorParameters: () => [],
|
|
@@ -15187,7 +16292,7 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
15187
16292
|
</fieldset>
|
|
15188
16293
|
`,
|
|
15189
16294
|
isInline: true,
|
|
15190
|
-
styles: [":host{display:block}.rg-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.rg-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rg-required{color:#
|
|
16295
|
+
styles: [":host{display:block}.rg-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.rg-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rg-required{color:#dc2626;margin-left:2px}.rg-options{display:flex;flex-direction:column;gap:10px}.rg-options.rg-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.rg-nested{padding-left:29px;min-width:0}.rg-options.rg-horizontal .rg-nested{flex:1 0 100%}.rg-disabled{cursor:not-allowed}.rg-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.rg-desc-error{color:#dc2626}@media(pointer:coarse),(max-width:480px){.rg-options{gap:4px}}\n"],
|
|
15191
16296
|
dependencies: [{
|
|
15192
16297
|
kind: "component",
|
|
15193
16298
|
type: RadioComponent,
|
|
@@ -15293,7 +16398,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15293
16398
|
}
|
|
15294
16399
|
</fieldset>
|
|
15295
16400
|
`,
|
|
15296
|
-
styles: [":host{display:block}.rg-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.rg-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rg-required{color:#
|
|
16401
|
+
styles: [":host{display:block}.rg-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.rg-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rg-required{color:#dc2626;margin-left:2px}.rg-options{display:flex;flex-direction:column;gap:10px}.rg-options.rg-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.rg-nested{padding-left:29px;min-width:0}.rg-options.rg-horizontal .rg-nested{flex:1 0 100%}.rg-disabled{cursor:not-allowed}.rg-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.rg-desc-error{color:#dc2626}@media(pointer:coarse),(max-width:480px){.rg-options{gap:4px}}\n"]
|
|
15297
16402
|
}]
|
|
15298
16403
|
}],
|
|
15299
16404
|
ctorParameters: () => [],
|
|
@@ -15469,7 +16574,7 @@ var AlertComponent = class AlertComponent {
|
|
|
15469
16574
|
</div>
|
|
15470
16575
|
`,
|
|
15471
16576
|
isInline: true,
|
|
15472
|
-
styles: [":host{display:block}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border-left:4px solid transparent;font-size:13px;line-height:1.5}.alert--info{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.alert--success{background:#dcfce7;border-color:#22c55e;color:#14532d}.alert--warning{background:#ffedd5;border-color:#f97316;color:#7c2d12}.alert--danger{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.alert--neutral{background:#f1f5f9;border-color:#64748b;color:#334155}.alert--compact{padding:8px 12px;gap:8px;font-size:12.5px;line-height:1.4}.alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.alert-title{font-weight:700}.alert-body{opacity:.9;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.alert-body--inline{display:block}.alert-body--inline>*{vertical-align:middle}.alert-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px;border-radius:4px;color:inherit;opacity:.6;display:flex;align-items:center;transition:opacity .15s}.alert-dismiss:hover{opacity:1}\n"],
|
|
16577
|
+
styles: [":host{display:block}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border-left:4px solid transparent;font-size:13px;line-height:1.5}.alert--info{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.alert--success{background:#dcfce7;border-color:#22c55e;color:#14532d}.alert--warning{background:#ffedd5;border-color:#f97316;color:#7c2d12}.alert--danger{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.alert--neutral{background:#f1f5f9;border-color:#64748b;color:#334155}.alert--compact{padding:8px 12px;gap:8px;font-size:12.5px;line-height:1.4}.alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.alert-title{font-weight:700}.alert-body{opacity:.9;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.alert-body--inline{display:block}.alert-body--inline>*{vertical-align:middle}.alert-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px;border-radius:4px;color:inherit;opacity:.6;display:flex;align-items:center;transition:opacity .15s}.alert-dismiss:hover{opacity:1}.alert-dismiss:focus-visible{outline:2px solid currentColor;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.alert-dismiss{position:relative}.alert-dismiss:after{content:\"\";position:absolute;inset:-13px}}\n"],
|
|
15473
16578
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
15474
16579
|
});
|
|
15475
16580
|
}
|
|
@@ -15500,7 +16605,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15500
16605
|
}
|
|
15501
16606
|
</div>
|
|
15502
16607
|
`,
|
|
15503
|
-
styles: [":host{display:block}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border-left:4px solid transparent;font-size:13px;line-height:1.5}.alert--info{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.alert--success{background:#dcfce7;border-color:#22c55e;color:#14532d}.alert--warning{background:#ffedd5;border-color:#f97316;color:#7c2d12}.alert--danger{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.alert--neutral{background:#f1f5f9;border-color:#64748b;color:#334155}.alert--compact{padding:8px 12px;gap:8px;font-size:12.5px;line-height:1.4}.alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.alert-title{font-weight:700}.alert-body{opacity:.9;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.alert-body--inline{display:block}.alert-body--inline>*{vertical-align:middle}.alert-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px;border-radius:4px;color:inherit;opacity:.6;display:flex;align-items:center;transition:opacity .15s}.alert-dismiss:hover{opacity:1}\n"]
|
|
16608
|
+
styles: [":host{display:block}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border-left:4px solid transparent;font-size:13px;line-height:1.5}.alert--info{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.alert--success{background:#dcfce7;border-color:#22c55e;color:#14532d}.alert--warning{background:#ffedd5;border-color:#f97316;color:#7c2d12}.alert--danger{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.alert--neutral{background:#f1f5f9;border-color:#64748b;color:#334155}.alert--compact{padding:8px 12px;gap:8px;font-size:12.5px;line-height:1.4}.alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.alert-title{font-weight:700}.alert-body{opacity:.9;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.alert-body--inline{display:block}.alert-body--inline>*{vertical-align:middle}.alert-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px;border-radius:4px;color:inherit;opacity:.6;display:flex;align-items:center;transition:opacity .15s}.alert-dismiss:hover{opacity:1}.alert-dismiss:focus-visible{outline:2px solid currentColor;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.alert-dismiss{position:relative}.alert-dismiss:after{content:\"\";position:absolute;inset:-13px}}\n"]
|
|
15504
16609
|
}]
|
|
15505
16610
|
}],
|
|
15506
16611
|
propDecorators: {
|
|
@@ -16023,7 +17128,8 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
16023
17128
|
"primaryLoading",
|
|
16024
17129
|
"primaryDisabled",
|
|
16025
17130
|
"cancelTestId",
|
|
16026
|
-
"primaryTestId"
|
|
17131
|
+
"primaryTestId",
|
|
17132
|
+
"returnFocusTo"
|
|
16027
17133
|
],
|
|
16028
17134
|
outputs: ["closed", "primaryClick"]
|
|
16029
17135
|
},
|
|
@@ -16036,6 +17142,9 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
16036
17142
|
"ariaLabel",
|
|
16037
17143
|
"placeholder",
|
|
16038
17144
|
"prefix",
|
|
17145
|
+
"revealable",
|
|
17146
|
+
"passwordRequirements",
|
|
17147
|
+
"passwordRules",
|
|
16039
17148
|
"type",
|
|
16040
17149
|
"maxlength",
|
|
16041
17150
|
"required",
|
|
@@ -17174,7 +18283,7 @@ var ContactPickerComponent = class ContactPickerComponent {
|
|
|
17174
18283
|
</div>
|
|
17175
18284
|
`,
|
|
17176
18285
|
isInline: true,
|
|
17177
|
-
styles: [".picker-wrapper{position:relative;overflow:visible}.picker-label{display:block;font-size:.8125rem;font-weight:600;color:#374151;margin-bottom:6px}.picker-req{color:#
|
|
18286
|
+
styles: [".picker-wrapper{position:relative;overflow:visible}.picker-label{display:block;font-size:.8125rem;font-weight:600;color:#374151;margin-bottom:6px}.picker-req{color:#dc2626}.picker-hint{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#64748b}.picker-input{width:100%;padding:9px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;color:#1e293b;font-family:inherit;outline:none;box-sizing:border-box}.picker-input::placeholder{color:#94a3b8}.picker-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.picker-input:focus-visible{outline:2px solid transparent}@media(max-width:480px){.picker-input{font-size:1rem}}.picker-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.picker-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:9999;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 6px 16px #0000001a;max-height:240px;overflow-y:auto}@media(pointer:coarse),(max-width:480px){.picker-input{min-height:44px}.picker-dropdown{max-height:min(240px,40vh);overscroll-behavior:contain}.picker-option{min-height:44px;justify-content:center;box-sizing:border-box}.picker-option--check{min-height:44px}.chip-remove{position:relative}.chip-remove:after{content:\"\";position:absolute;inset:-13px}}@media(max-width:480px){:host-context(.m-body) .picker-dropdown{position:static;margin-top:4px;max-height:min(240px,calc(var(--ui-vvh, 100dvh) * .3))}}.picker-option{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 12px;border:none;background:none;text-align:left;cursor:pointer;font-family:inherit}.picker-option:hover,.picker-option.picker-option--active{background:#f8fafc}.picker-option:first-child{border-radius:8px 8px 0 0}.picker-option:last-child{border-radius:0 0 8px 8px}.picker-option--check{flex-direction:row;align-items:center;gap:10px}.picker-option--check .option-body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.picker-option--check .option-name,.picker-option--check .option-detail{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.option-check{display:flex;pointer-events:none}.option-name{font-size:.875rem;font-weight:600;color:#1e293b;overflow-wrap:anywhere}.option-detail{font-size:.75rem;color:#94a3b8;overflow-wrap:anywhere}.picker-loading,.picker-empty{padding:12px;font-size:.8125rem;color:#94a3b8;text-align:center}.selected-input{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;font-size:.875rem;font-weight:600;color:#1e293b;gap:8px;overflow-wrap:anywhere;min-width:0}.selected-input:focus{outline:none}.selected-input:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.clear-btn{width:18px;height:18px;border:none;background:#e2e8f0;border-radius:50%;cursor:pointer;font-size:.75rem;color:#64748b;display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}.clear-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.clear-btn:hover{background:#cbd5e1;color:#1e293b}.clear-btn:after{content:\"\";position:absolute;inset:-13px}.recipient-details{margin-top:16px}.details-label{display:block;font-size:.6875rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.details-card{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid #f1f5f9}.detail-row.last{border-bottom:none}.detail-row:nth-child(2n){background:#f8fafc}.detail-key{font-size:.8125rem;color:#94a3b8;font-weight:500}.detail-val{font-size:.875rem;color:#1e293b;font-weight:600}.multi-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.multi-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px 4px 10px;background:#dbeafe;border-radius:20px;font-size:.8125rem;font-weight:500;color:#1e40af}.chip-remove{width:18px;height:18px;border:none;background:#1e40af26;border-radius:50%;cursor:pointer;font-size:.875rem;line-height:1;color:#1e40af;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chip-remove:hover{background:#1e40af4d}.chip-remove:focus-visible{outline:2px solid #1e40af;outline-offset:2px}@media(forced-colors:active){.picker-input:focus{outline:2px solid Highlight;outline-offset:1px}.picker-option--active{outline:2px solid Highlight;outline-offset:-2px}}\n"],
|
|
17178
18287
|
dependencies: [
|
|
17179
18288
|
{
|
|
17180
18289
|
kind: "ngmodule",
|
|
@@ -17415,7 +18524,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
17415
18524
|
}
|
|
17416
18525
|
</div>
|
|
17417
18526
|
`,
|
|
17418
|
-
styles: [".picker-wrapper{position:relative;overflow:visible}.picker-label{display:block;font-size:.8125rem;font-weight:600;color:#374151;margin-bottom:6px}.picker-req{color:#
|
|
18527
|
+
styles: [".picker-wrapper{position:relative;overflow:visible}.picker-label{display:block;font-size:.8125rem;font-weight:600;color:#374151;margin-bottom:6px}.picker-req{color:#dc2626}.picker-hint{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#64748b}.picker-input{width:100%;padding:9px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;color:#1e293b;font-family:inherit;outline:none;box-sizing:border-box}.picker-input::placeholder{color:#94a3b8}.picker-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.picker-input:focus-visible{outline:2px solid transparent}@media(max-width:480px){.picker-input{font-size:1rem}}.picker-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.picker-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:9999;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 6px 16px #0000001a;max-height:240px;overflow-y:auto}@media(pointer:coarse),(max-width:480px){.picker-input{min-height:44px}.picker-dropdown{max-height:min(240px,40vh);overscroll-behavior:contain}.picker-option{min-height:44px;justify-content:center;box-sizing:border-box}.picker-option--check{min-height:44px}.chip-remove{position:relative}.chip-remove:after{content:\"\";position:absolute;inset:-13px}}@media(max-width:480px){:host-context(.m-body) .picker-dropdown{position:static;margin-top:4px;max-height:min(240px,calc(var(--ui-vvh, 100dvh) * .3))}}.picker-option{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 12px;border:none;background:none;text-align:left;cursor:pointer;font-family:inherit}.picker-option:hover,.picker-option.picker-option--active{background:#f8fafc}.picker-option:first-child{border-radius:8px 8px 0 0}.picker-option:last-child{border-radius:0 0 8px 8px}.picker-option--check{flex-direction:row;align-items:center;gap:10px}.picker-option--check .option-body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.picker-option--check .option-name,.picker-option--check .option-detail{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.option-check{display:flex;pointer-events:none}.option-name{font-size:.875rem;font-weight:600;color:#1e293b;overflow-wrap:anywhere}.option-detail{font-size:.75rem;color:#94a3b8;overflow-wrap:anywhere}.picker-loading,.picker-empty{padding:12px;font-size:.8125rem;color:#94a3b8;text-align:center}.selected-input{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;font-size:.875rem;font-weight:600;color:#1e293b;gap:8px;overflow-wrap:anywhere;min-width:0}.selected-input:focus{outline:none}.selected-input:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.clear-btn{width:18px;height:18px;border:none;background:#e2e8f0;border-radius:50%;cursor:pointer;font-size:.75rem;color:#64748b;display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}.clear-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.clear-btn:hover{background:#cbd5e1;color:#1e293b}.clear-btn:after{content:\"\";position:absolute;inset:-13px}.recipient-details{margin-top:16px}.details-label{display:block;font-size:.6875rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.details-card{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid #f1f5f9}.detail-row.last{border-bottom:none}.detail-row:nth-child(2n){background:#f8fafc}.detail-key{font-size:.8125rem;color:#94a3b8;font-weight:500}.detail-val{font-size:.875rem;color:#1e293b;font-weight:600}.multi-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.multi-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px 4px 10px;background:#dbeafe;border-radius:20px;font-size:.8125rem;font-weight:500;color:#1e40af}.chip-remove{width:18px;height:18px;border:none;background:#1e40af26;border-radius:50%;cursor:pointer;font-size:.875rem;line-height:1;color:#1e40af;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chip-remove:hover{background:#1e40af4d}.chip-remove:focus-visible{outline:2px solid #1e40af;outline-offset:2px}@media(forced-colors:active){.picker-input:focus{outline:2px solid Highlight;outline-offset:1px}.picker-option--active{outline:2px solid Highlight;outline-offset:-2px}}\n"]
|
|
17419
18528
|
}]
|
|
17420
18529
|
}],
|
|
17421
18530
|
ctorParameters: () => [],
|
|
@@ -17773,7 +18882,7 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
17773
18882
|
</div>
|
|
17774
18883
|
`,
|
|
17775
18884
|
isInline: true,
|
|
17776
|
-
styles: [":host{display:block}.ta-field{display:flex;flex-direction:column;gap:6px}.ta-head{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:4px;row-gap:2px}.ta-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ta-required{color:#
|
|
18885
|
+
styles: [":host{display:block}.ta-field{display:flex;flex-direction:column;gap:6px}.ta-head{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:4px;row-gap:2px}.ta-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ta-required{color:#dc2626;margin-left:2px}.ta-hint-inline{font-size:.75rem;color:#64748b;font-weight:400;margin-left:4px}.ta-head .ta-hint-inline{margin-left:0;line-height:1}.ta-input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;resize:vertical;transition:border-color .15s,box-shadow .15s}.ta-input::placeholder{color:#94a3b8}.ta-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.ta-input:read-only{background:#f8fafc;cursor:default}.ta-input.ta-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}@media(min-width:481px){.ta-input.ta-mono{font-size:.8125rem}}.ta-error .ta-input{border-color:#ef4444}.ta-error .ta-input:focus{box-shadow:0 0 0 3px #ef44441f}.ta-disabled .ta-input{opacity:.5;cursor:not-allowed}.ta-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.ta-desc-error{color:#dc2626}@media(max-width:480px){.ta-input{font-size:1rem}}\n"],
|
|
17777
18886
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
17778
18887
|
});
|
|
17779
18888
|
}
|
|
@@ -17846,7 +18955,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
17846
18955
|
}
|
|
17847
18956
|
</div>
|
|
17848
18957
|
`,
|
|
17849
|
-
styles: [":host{display:block}.ta-field{display:flex;flex-direction:column;gap:6px}.ta-head{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:4px;row-gap:2px}.ta-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ta-required{color:#
|
|
18958
|
+
styles: [":host{display:block}.ta-field{display:flex;flex-direction:column;gap:6px}.ta-head{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:4px;row-gap:2px}.ta-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ta-required{color:#dc2626;margin-left:2px}.ta-hint-inline{font-size:.75rem;color:#64748b;font-weight:400;margin-left:4px}.ta-head .ta-hint-inline{margin-left:0;line-height:1}.ta-input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;resize:vertical;transition:border-color .15s,box-shadow .15s}.ta-input::placeholder{color:#94a3b8}.ta-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.ta-input:read-only{background:#f8fafc;cursor:default}.ta-input.ta-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}@media(min-width:481px){.ta-input.ta-mono{font-size:.8125rem}}.ta-error .ta-input{border-color:#ef4444}.ta-error .ta-input:focus{box-shadow:0 0 0 3px #ef44441f}.ta-disabled .ta-input{opacity:.5;cursor:not-allowed}.ta-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.ta-desc-error{color:#dc2626}@media(max-width:480px){.ta-input{font-size:1rem}}\n"]
|
|
17850
18959
|
}]
|
|
17851
18960
|
}],
|
|
17852
18961
|
ctorParameters: () => [],
|
|
@@ -18156,7 +19265,8 @@ var BulkMessagePanelComponent = class BulkMessagePanelComponent {
|
|
|
18156
19265
|
"primaryLoading",
|
|
18157
19266
|
"primaryDisabled",
|
|
18158
19267
|
"cancelTestId",
|
|
18159
|
-
"primaryTestId"
|
|
19268
|
+
"primaryTestId",
|
|
19269
|
+
"returnFocusTo"
|
|
18160
19270
|
],
|
|
18161
19271
|
outputs: ["closed", "primaryClick"]
|
|
18162
19272
|
},
|
|
@@ -18176,6 +19286,9 @@ var BulkMessagePanelComponent = class BulkMessagePanelComponent {
|
|
|
18176
19286
|
"ariaLabel",
|
|
18177
19287
|
"placeholder",
|
|
18178
19288
|
"prefix",
|
|
19289
|
+
"revealable",
|
|
19290
|
+
"passwordRequirements",
|
|
19291
|
+
"passwordRules",
|
|
18179
19292
|
"type",
|
|
18180
19293
|
"maxlength",
|
|
18181
19294
|
"required",
|
|
@@ -19288,7 +20401,7 @@ var FileInputComponent = class FileInputComponent {
|
|
|
19288
20401
|
</div>
|
|
19289
20402
|
`,
|
|
19290
20403
|
isInline: true,
|
|
19291
|
-
styles: [":host{display:block}:host(:has(.fi-hidden)){display:contents}.fi-field{display:flex;flex-direction:column;gap:6px}.fi-hidden{display:contents}.fi-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.fi-required{color:#
|
|
20404
|
+
styles: [":host{display:block}:host(:has(.fi-hidden)){display:contents}.fi-field{display:flex;flex-direction:column;gap:6px}.fi-hidden{display:contents}.fi-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.fi-required{color:#dc2626;margin-left:2px}.fi-hint-inline{font-size:.75rem;color:#94a3b8;font-weight:400;margin-left:4px}.fi-native{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.fi-row{display:flex;align-items:stretch;gap:8px}.fi-control{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1 1 auto;min-width:0;box-sizing:border-box;text-align:left;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.fi-control:focus-visible{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.fi-control:has(ui-image-preview){padding-top:6px;padding-bottom:6px}.fi-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fi-loading{overflow:visible}.fi-placeholder{color:#94a3b8}.fi-browse{flex-shrink:0;font-size:.75rem;font-weight:600;color:#374151;padding:3px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.fi-remove{flex-shrink:0;align-self:center;font-family:inherit;font-size:.75rem;font-weight:600;color:#b91c1c;padding:6px 10px;border:1px solid #fecaca;border-radius:6px;background:#fff;cursor:pointer;-webkit-appearance:none;appearance:none}.fi-remove:hover{background:#fef2f2}.fi-remove:focus-visible{outline:2px solid #ef4444;outline-offset:2px}.fi-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.fi-error .fi-control{border-color:#ef4444}.fi-error .fi-control:focus-visible{box-shadow:0 0 0 3px #ef44441f}.fi-drag .fi-control{border-color:#3b82f6;border-style:dashed;background:#eff6ff}.fi-disabled .fi-control{opacity:.5;cursor:not-allowed}.fi-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.fi-desc-error{color:#dc2626}@media(max-width:480px){.fi-control{font-size:1rem}.fi-remove{padding:10px 12px}}@media(pointer:coarse){.fi-control,.fi-remove{min-height:44px}}\n"],
|
|
19292
20405
|
dependencies: [{
|
|
19293
20406
|
kind: "component",
|
|
19294
20407
|
type: ImagePreviewComponent,
|
|
@@ -19399,7 +20512,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
19399
20512
|
}
|
|
19400
20513
|
</div>
|
|
19401
20514
|
`,
|
|
19402
|
-
styles: [":host{display:block}:host(:has(.fi-hidden)){display:contents}.fi-field{display:flex;flex-direction:column;gap:6px}.fi-hidden{display:contents}.fi-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.fi-required{color:#
|
|
20515
|
+
styles: [":host{display:block}:host(:has(.fi-hidden)){display:contents}.fi-field{display:flex;flex-direction:column;gap:6px}.fi-hidden{display:contents}.fi-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.fi-required{color:#dc2626;margin-left:2px}.fi-hint-inline{font-size:.75rem;color:#94a3b8;font-weight:400;margin-left:4px}.fi-native{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.fi-row{display:flex;align-items:stretch;gap:8px}.fi-control{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1 1 auto;min-width:0;box-sizing:border-box;text-align:left;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.fi-control:focus-visible{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.fi-control:has(ui-image-preview){padding-top:6px;padding-bottom:6px}.fi-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fi-loading{overflow:visible}.fi-placeholder{color:#94a3b8}.fi-browse{flex-shrink:0;font-size:.75rem;font-weight:600;color:#374151;padding:3px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.fi-remove{flex-shrink:0;align-self:center;font-family:inherit;font-size:.75rem;font-weight:600;color:#b91c1c;padding:6px 10px;border:1px solid #fecaca;border-radius:6px;background:#fff;cursor:pointer;-webkit-appearance:none;appearance:none}.fi-remove:hover{background:#fef2f2}.fi-remove:focus-visible{outline:2px solid #ef4444;outline-offset:2px}.fi-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.fi-error .fi-control{border-color:#ef4444}.fi-error .fi-control:focus-visible{box-shadow:0 0 0 3px #ef44441f}.fi-drag .fi-control{border-color:#3b82f6;border-style:dashed;background:#eff6ff}.fi-disabled .fi-control{opacity:.5;cursor:not-allowed}.fi-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.fi-desc-error{color:#dc2626}@media(max-width:480px){.fi-control{font-size:1rem}.fi-remove{padding:10px 12px}}@media(pointer:coarse){.fi-control,.fi-remove{min-height:44px}}\n"]
|
|
19403
20516
|
}]
|
|
19404
20517
|
}],
|
|
19405
20518
|
ctorParameters: () => [],
|
|
@@ -19869,7 +20982,7 @@ var DateInputComponent = class DateInputComponent {
|
|
|
19869
20982
|
</div>
|
|
19870
20983
|
`,
|
|
19871
20984
|
isInline: true,
|
|
19872
|
-
styles: [":host{display:block}.di-field{display:flex;flex-direction:column;gap:6px}.di-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.di-required{color:#
|
|
20985
|
+
styles: [":host{display:block}.di-field{display:flex;flex-direction:column;gap:6px}.di-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.di-required{color:#dc2626;margin-left:2px}.di-input{width:100%;box-sizing:border-box;padding:8px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s;appearance:none}.di-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.di-error .di-input{border-color:#ef4444}.di-error .di-input:focus{box-shadow:0 0 0 3px #ef44441f}.di-disabled .di-input{opacity:.5;cursor:not-allowed}.di-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.di-desc-error{color:#dc2626}@media(max-width:480px){.di-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.di-input{min-height:44px}}\n"],
|
|
19873
20986
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
19874
20987
|
});
|
|
19875
20988
|
}
|
|
@@ -19930,7 +21043,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
19930
21043
|
}
|
|
19931
21044
|
</div>
|
|
19932
21045
|
`,
|
|
19933
|
-
styles: [":host{display:block}.di-field{display:flex;flex-direction:column;gap:6px}.di-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.di-required{color:#
|
|
21046
|
+
styles: [":host{display:block}.di-field{display:flex;flex-direction:column;gap:6px}.di-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.di-required{color:#dc2626;margin-left:2px}.di-input{width:100%;box-sizing:border-box;padding:8px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s;appearance:none}.di-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.di-error .di-input{border-color:#ef4444}.di-error .di-input:focus{box-shadow:0 0 0 3px #ef44441f}.di-disabled .di-input{opacity:.5;cursor:not-allowed}.di-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.di-desc-error{color:#dc2626}@media(max-width:480px){.di-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.di-input{min-height:44px}}\n"]
|
|
19934
21047
|
}]
|
|
19935
21048
|
}],
|
|
19936
21049
|
ctorParameters: () => [],
|
|
@@ -20223,7 +21336,7 @@ var DatetimeInputComponent = class DatetimeInputComponent {
|
|
|
20223
21336
|
</div>
|
|
20224
21337
|
`,
|
|
20225
21338
|
isInline: true,
|
|
20226
|
-
styles: [":host{display:block}.dti-field{display:flex;flex-direction:column;gap:6px}.dti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.dti-required{color:#
|
|
21339
|
+
styles: [":host{display:block}.dti-field{display:flex;flex-direction:column;gap:6px}.dti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.dti-required{color:#dc2626;margin-left:2px}.dti-input{width:100%;box-sizing:border-box;padding:8px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s;appearance:none}.dti-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.dti-error .dti-input{border-color:#ef4444}.dti-error .dti-input:focus{box-shadow:0 0 0 3px #ef44441f}.dti-disabled .dti-input{opacity:.5;cursor:not-allowed}.dti-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.dti-desc-error{color:#dc2626}@media(max-width:480px){.dti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.dti-input{min-height:44px}}\n"],
|
|
20227
21340
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
20228
21341
|
});
|
|
20229
21342
|
}
|
|
@@ -20284,7 +21397,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
20284
21397
|
}
|
|
20285
21398
|
</div>
|
|
20286
21399
|
`,
|
|
20287
|
-
styles: [":host{display:block}.dti-field{display:flex;flex-direction:column;gap:6px}.dti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.dti-required{color:#
|
|
21400
|
+
styles: [":host{display:block}.dti-field{display:flex;flex-direction:column;gap:6px}.dti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.dti-required{color:#dc2626;margin-left:2px}.dti-input{width:100%;box-sizing:border-box;padding:8px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s;appearance:none}.dti-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.dti-error .dti-input{border-color:#ef4444}.dti-error .dti-input:focus{box-shadow:0 0 0 3px #ef44441f}.dti-disabled .dti-input{opacity:.5;cursor:not-allowed}.dti-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.dti-desc-error{color:#dc2626}@media(max-width:480px){.dti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.dti-input{min-height:44px}}\n"]
|
|
20288
21401
|
}]
|
|
20289
21402
|
}],
|
|
20290
21403
|
ctorParameters: () => [],
|
|
@@ -20587,7 +21700,7 @@ var TimeInputComponent = class TimeInputComponent {
|
|
|
20587
21700
|
</div>
|
|
20588
21701
|
`,
|
|
20589
21702
|
isInline: true,
|
|
20590
|
-
styles: [":host{display:block}.tmi-field{display:flex;flex-direction:column;gap:6px}.tmi-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.tmi-required{color:#
|
|
21703
|
+
styles: [":host{display:block}.tmi-field{display:flex;flex-direction:column;gap:6px}.tmi-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.tmi-required{color:#dc2626;margin-left:2px}.tmi-input{width:100%;box-sizing:border-box;padding:8px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s;appearance:none}.tmi-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.tmi-error .tmi-input{border-color:#ef4444}.tmi-error .tmi-input:focus{box-shadow:0 0 0 3px #ef44441f}.tmi-disabled .tmi-input{opacity:.5;cursor:not-allowed}.tmi-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.tmi-desc-error{color:#dc2626}@media(max-width:480px){.tmi-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.tmi-input{min-height:44px}}\n"],
|
|
20591
21704
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
20592
21705
|
});
|
|
20593
21706
|
}
|
|
@@ -20650,7 +21763,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
20650
21763
|
}
|
|
20651
21764
|
</div>
|
|
20652
21765
|
`,
|
|
20653
|
-
styles: [":host{display:block}.tmi-field{display:flex;flex-direction:column;gap:6px}.tmi-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.tmi-required{color:#
|
|
21766
|
+
styles: [":host{display:block}.tmi-field{display:flex;flex-direction:column;gap:6px}.tmi-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.tmi-required{color:#dc2626;margin-left:2px}.tmi-input{width:100%;box-sizing:border-box;padding:8px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s;appearance:none}.tmi-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.tmi-error .tmi-input{border-color:#ef4444}.tmi-error .tmi-input:focus{box-shadow:0 0 0 3px #ef44441f}.tmi-disabled .tmi-input{opacity:.5;cursor:not-allowed}.tmi-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.tmi-desc-error{color:#dc2626}@media(max-width:480px){.tmi-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.tmi-input{min-height:44px}}\n"]
|
|
20654
21767
|
}]
|
|
20655
21768
|
}],
|
|
20656
21769
|
ctorParameters: () => [],
|
|
@@ -21218,7 +22331,7 @@ var ComboboxComponent = class ComboboxComponent {
|
|
|
21218
22331
|
</div>
|
|
21219
22332
|
`,
|
|
21220
22333
|
isInline: true,
|
|
21221
|
-
styles: [":host{display:block}.cb-field{display:flex;flex-direction:column;gap:6px}.cb-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.cb-required{color:#
|
|
22334
|
+
styles: [":host{display:block}.cb-field{display:flex;flex-direction:column;gap:6px}.cb-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.cb-required{color:#dc2626;margin-left:2px}.cb-control{position:relative}.cb-input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.cb-input::placeholder{color:#94a3b8}.cb-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.cb-has-clear{padding-right:40px}.cb-warning .cb-input{border-color:#f59e0b;background:#fffbeb}.cb-error .cb-input{border-color:#ef4444}.cb-error .cb-input:focus{box-shadow:0 0 0 3px #ef44441f}.cb-disabled .cb-input{opacity:.5;cursor:not-allowed}.cb-clear{position:absolute;top:50%;right:4px;transform:translateY(-50%);border:0;background:transparent;cursor:pointer;color:#64748b;font-size:1.25rem;line-height:1;min-width:32px;min-height:32px;padding:0 8px;border-radius:6px}.cb-clear:hover{color:#0f172a}.cb-clear:focus-visible{outline:2px solid #3b82f6}.cb-popup{position:absolute;z-index:30;left:0;right:0;top:100%;margin-top:4px;box-sizing:border-box;max-width:100%;max-height:min(260px,40vh);overflow-y:auto;overscroll-behavior:contain;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 24px #0f172a1f}.cb-list:empty{display:none}.cb-status{padding:12px;font-size:.875rem;color:#64748b}.cb-option{display:flex;flex-direction:column;gap:2px;padding:8px 12px;min-height:40px;justify-content:center;box-sizing:border-box;cursor:pointer}.cb-option-active{background:#eff6ff}.cb-option-selected .cb-option-label{font-weight:600}.cb-option-disabled{opacity:.5;cursor:not-allowed}.cb-option-label{font-size:.875rem;color:#0f172a;overflow-wrap:anywhere}.cb-option-desc{font-size:.75rem;color:#64748b;overflow-wrap:anywhere}.cb-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.cb-desc-error{color:#dc2626}.cb-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(prefers-reduced-motion:reduce){.cb-input{transition:none}}@media(forced-colors:active){.cb-input:focus{outline:2px solid Highlight;outline-offset:1px}.cb-option-active{outline:2px solid Highlight;outline-offset:-2px}}@media(pointer:coarse),(max-width:480px){.cb-input{min-height:44px}.cb-clear{min-width:44px;min-height:44px}}@media(pointer:coarse){.cb-option{min-height:44px}}@media(max-width:480px){.cb-input{font-size:1rem}.cb-option{min-height:44px}}\n"],
|
|
21222
22335
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
21223
22336
|
});
|
|
21224
22337
|
}
|
|
@@ -21321,7 +22434,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
21321
22434
|
}
|
|
21322
22435
|
</div>
|
|
21323
22436
|
`,
|
|
21324
|
-
styles: [":host{display:block}.cb-field{display:flex;flex-direction:column;gap:6px}.cb-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.cb-required{color:#
|
|
22437
|
+
styles: [":host{display:block}.cb-field{display:flex;flex-direction:column;gap:6px}.cb-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.cb-required{color:#dc2626;margin-left:2px}.cb-control{position:relative}.cb-input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.cb-input::placeholder{color:#94a3b8}.cb-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.cb-has-clear{padding-right:40px}.cb-warning .cb-input{border-color:#f59e0b;background:#fffbeb}.cb-error .cb-input{border-color:#ef4444}.cb-error .cb-input:focus{box-shadow:0 0 0 3px #ef44441f}.cb-disabled .cb-input{opacity:.5;cursor:not-allowed}.cb-clear{position:absolute;top:50%;right:4px;transform:translateY(-50%);border:0;background:transparent;cursor:pointer;color:#64748b;font-size:1.25rem;line-height:1;min-width:32px;min-height:32px;padding:0 8px;border-radius:6px}.cb-clear:hover{color:#0f172a}.cb-clear:focus-visible{outline:2px solid #3b82f6}.cb-popup{position:absolute;z-index:30;left:0;right:0;top:100%;margin-top:4px;box-sizing:border-box;max-width:100%;max-height:min(260px,40vh);overflow-y:auto;overscroll-behavior:contain;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 24px #0f172a1f}.cb-list:empty{display:none}.cb-status{padding:12px;font-size:.875rem;color:#64748b}.cb-option{display:flex;flex-direction:column;gap:2px;padding:8px 12px;min-height:40px;justify-content:center;box-sizing:border-box;cursor:pointer}.cb-option-active{background:#eff6ff}.cb-option-selected .cb-option-label{font-weight:600}.cb-option-disabled{opacity:.5;cursor:not-allowed}.cb-option-label{font-size:.875rem;color:#0f172a;overflow-wrap:anywhere}.cb-option-desc{font-size:.75rem;color:#64748b;overflow-wrap:anywhere}.cb-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.cb-desc-error{color:#dc2626}.cb-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(prefers-reduced-motion:reduce){.cb-input{transition:none}}@media(forced-colors:active){.cb-input:focus{outline:2px solid Highlight;outline-offset:1px}.cb-option-active{outline:2px solid Highlight;outline-offset:-2px}}@media(pointer:coarse),(max-width:480px){.cb-input{min-height:44px}.cb-clear{min-width:44px;min-height:44px}}@media(pointer:coarse){.cb-option{min-height:44px}}@media(max-width:480px){.cb-input{font-size:1rem}.cb-option{min-height:44px}}\n"]
|
|
21325
22438
|
}]
|
|
21326
22439
|
}],
|
|
21327
22440
|
ctorParameters: () => [],
|
|
@@ -21937,7 +23050,7 @@ var MultiSelectComponent = class MultiSelectComponent {
|
|
|
21937
23050
|
</div>
|
|
21938
23051
|
`,
|
|
21939
23052
|
isInline: true,
|
|
21940
|
-
styles: [":host{display:block}.ms-field{display:flex;flex-direction:column;gap:6px}.ms-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ms-required{color:#
|
|
23053
|
+
styles: [":host{display:block}.ms-field{display:flex;flex-direction:column;gap:6px}.ms-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ms-required{color:#dc2626;margin-left:2px}.ms-tags{display:flex;flex-wrap:wrap;gap:6px}.ms-wrap{position:relative}.ms-trigger{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;padding:9px 10px 9px 12px;font-size:.875rem;font-family:inherit;text-align:left;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s}.ms-trigger:focus-visible,.ms-trigger.ms-open{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.ms-has-error .ms-trigger{border-color:#ef4444}.ms-disabled .ms-trigger{opacity:.5;cursor:not-allowed}.ms-placeholder{color:#64748b}.ms-chevron{color:#94a3b8;flex-shrink:0;margin-left:8px;transition:transform .2s ease}.ms-chevron-open{transform:rotate(180deg)}.ms-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;display:flex;flex-direction:column;max-height:260px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 16px #0f172a1a}.ms-search-wrap{padding:8px;border-bottom:1px solid #e2e8f0}.ms-search{width:100%;box-sizing:border-box;padding:7px 10px;font-size:.8125rem;font-family:inherit;color:#1e293b;border:1px solid #e2e8f0;border-radius:6px;outline:none}.ms-search::placeholder{color:#94a3b8}.ms-search:focus{border-color:#3b82f6}.ms-options{overflow-y:auto;padding:4px 0}.ms-option{padding:7px 12px;font-size:.8125rem}.ms-option:hover{background:#f8fafc}.ms-option-selected{background:#eff6ff}.ms-empty{padding:16px;text-align:center;color:#94a3b8;font-size:.8125rem}.ms-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.ms-desc-error{color:#dc2626}@media(max-width:480px){.ms-trigger,.ms-search{font-size:1rem}}\n"],
|
|
21941
23054
|
dependencies: [{
|
|
21942
23055
|
kind: "component",
|
|
21943
23056
|
type: ChipComponent,
|
|
@@ -22066,7 +23179,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
22066
23179
|
}
|
|
22067
23180
|
</div>
|
|
22068
23181
|
`,
|
|
22069
|
-
styles: [":host{display:block}.ms-field{display:flex;flex-direction:column;gap:6px}.ms-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ms-required{color:#
|
|
23182
|
+
styles: [":host{display:block}.ms-field{display:flex;flex-direction:column;gap:6px}.ms-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ms-required{color:#dc2626;margin-left:2px}.ms-tags{display:flex;flex-wrap:wrap;gap:6px}.ms-wrap{position:relative}.ms-trigger{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;padding:9px 10px 9px 12px;font-size:.875rem;font-family:inherit;text-align:left;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s}.ms-trigger:focus-visible,.ms-trigger.ms-open{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.ms-has-error .ms-trigger{border-color:#ef4444}.ms-disabled .ms-trigger{opacity:.5;cursor:not-allowed}.ms-placeholder{color:#64748b}.ms-chevron{color:#94a3b8;flex-shrink:0;margin-left:8px;transition:transform .2s ease}.ms-chevron-open{transform:rotate(180deg)}.ms-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;display:flex;flex-direction:column;max-height:260px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 16px #0f172a1a}.ms-search-wrap{padding:8px;border-bottom:1px solid #e2e8f0}.ms-search{width:100%;box-sizing:border-box;padding:7px 10px;font-size:.8125rem;font-family:inherit;color:#1e293b;border:1px solid #e2e8f0;border-radius:6px;outline:none}.ms-search::placeholder{color:#94a3b8}.ms-search:focus{border-color:#3b82f6}.ms-options{overflow-y:auto;padding:4px 0}.ms-option{padding:7px 12px;font-size:.8125rem}.ms-option:hover{background:#f8fafc}.ms-option-selected{background:#eff6ff}.ms-empty{padding:16px;text-align:center;color:#94a3b8;font-size:.8125rem}.ms-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.ms-desc-error{color:#dc2626}@media(max-width:480px){.ms-trigger,.ms-search{font-size:1rem}}\n"]
|
|
22070
23183
|
}]
|
|
22071
23184
|
}],
|
|
22072
23185
|
propDecorators: {
|
|
@@ -26667,7 +27780,7 @@ var AppShellComponent = class AppShellComponent {
|
|
|
26667
27780
|
<ui-confirm-outlet />
|
|
26668
27781
|
`,
|
|
26669
27782
|
isInline: true,
|
|
26670
|
-
styles: [":host{display:contents}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:199}.sidebar{width:256px;background:var(--shell-bg, linear-gradient(175deg, #0f172a 0%, #111827 100%));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;padding:0 20px;min-height:64px;border-bottom:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent);box-sizing:border-box}.brand-default{display:flex;align-items:center;gap:10px}.brand-text{font-size:1.125rem;font-weight:700;color:var(--shell-text, #fff);letter-spacing:-.01em}.sidebar-nav{padding:6px 0 8px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent) transparent}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent);border-radius:2px}.nav-group{margin-bottom:6px}.nav-group-label{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;font-size:.6875rem;font-weight:700;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.12em;background:none;border:none;cursor:pointer;transition:color .15s;text-align:left;border-radius:6px;background:color-mix(in srgb,var(--shell-text, #fff) 10%,transparent);margin:6px 4px 4px;width:calc(100% - 8px);box-sizing:border-box}.nav-group-label:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.nav-group-label:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-1px}.chevron{flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);opacity:.85}.chevron.collapsed{transform:rotate(-90deg)}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 32px;color:color-mix(in srgb,var(--shell-text, #fff) 95%,transparent);font-size:.9375rem;font-weight:500;text-decoration:none;border-left:2px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent);background:color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.sidebar-nav a.active{color:var(--shell-text, #fff);background:#60a5fa21;border-left-color:#60a5fa;font-weight:600}.sidebar-nav a:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-2px}.nav-icon{display:flex;align-items:center;flex-shrink:0}.nav-icon ::ng-deep svg{width:17px;height:17px;stroke:color-mix(in srgb,var(--shell-text, #fff) 90%,transparent);transition:stroke .15s;flex-shrink:0}.sidebar-nav a:hover .nav-icon ::ng-deep svg{stroke:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.sidebar-nav a.active .nav-icon ::ng-deep svg{stroke:#93c5fd}.nav-label{flex:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;margin-left:auto}.sidebar-footer{padding:10px 14px;border-top:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#60a5fa38,#60a5fa14);border:1px solid rgba(96,165,250,.18);color:color-mix(in srgb,var(--shell-text, #fff) 88%,transparent);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:.8125rem;font-weight:600;color:var(--shell-text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.6875rem;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.btn-logout{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.btn-logout:hover{color:#f87171;background:#f871711a}.btn-logout:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.brand-full{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{display:none}.shell.collapsed .brand-mark{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:var(--shell-text, #fff);background:color-mix(in srgb,var(--shell-text, #fff) 15%,transparent)}.rail-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;border-radius:8px;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);transition:background .15s,color .15s}.rail-toggle:hover{background:color-mix(in srgb,var(--shell-text, #fff) 12%,transparent);color:var(--shell-text, #fff)}.rail-toggle:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.rail-divider{display:none}@media(min-width:1025px){.rail-toggle{display:flex}.sidebar{transition:width .2s cubic-bezier(.4,0,.2,1)}.shell.collapsed .sidebar{width:68px}.shell.collapsed .sidebar-header{flex-direction:column;justify-content:center;gap:4px;padding:8px 0}.shell.collapsed .brand-full{flex:none;width:44px;height:44px;overflow:hidden;border-radius:10px;justify-content:center}.shell.collapsed .brand-full ::ng-deep img,.shell.collapsed .brand-full ::ng-deep svg{width:44px;height:44px;max-width:none;object-fit:cover;object-position:50% 42%}.shell.collapsed .brand-text{display:none}.shell.collapsed .rail-toggle{margin-left:0}.shell.collapsed .nav-group-label{display:none}.shell.collapsed .rail-divider{display:block;height:1px;margin:8px 14px;background:color-mix(in srgb,var(--shell-text, #fff) 20%,transparent)}.shell.collapsed .nav-group:first-child .rail-divider{display:none}.shell.collapsed .sidebar-nav a{position:relative;justify-content:center;padding:10px 0;margin:0 8px 2px;border-left:none;border-radius:8px}.shell.collapsed .sidebar-nav a.active{box-shadow:inset 3px 0 #60a5fa}.shell.collapsed .nav-label{display:none}.shell.collapsed .nav-icon ::ng-deep svg{width:20px;height:20px}.shell.collapsed .nav-badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;margin:0}.shell.collapsed .sidebar-footer{padding:10px 8px}.shell.collapsed .user-info{flex-direction:column;gap:8px}.shell.collapsed .user-details{display:none}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{display:flex;align-items:center;gap:8px;padding:0 24px;background:#fff;box-shadow:0 1px 3px #00000012,0 1px #0000000a;min-height:64px;box-sizing:border-box;position:relative;z-index:50}.hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;cursor:pointer;color:#374151;border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.hamburger:hover{background:#f3f4f6}.hamburger:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.page-title:focus{outline:none}.read-only-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#fef9c3;color:#854d0e;border:1px solid #fde68a;white-space:nowrap}.header-end{display:flex;align-items:center;margin-left:auto}.content{flex:1;overflow-y:auto;padding:24px;background:#f7f8f6;display:flex;flex-direction:column;box-sizing:border-box;min-height:0}.content>*{flex:1;min-height:0;display:flex;flex-direction:column}@media(max-width:1024px){.hamburger{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 32px #0000004d}.shell.sidebar-open .sidebar{transform:translate(0)}.shell.sidebar-open .sidebar-backdrop{display:block}.main-area{width:100%}.top-header{padding:0 16px;gap:4px}.content{padding:16px}}@media(max-width:480px){.page-title{font-size:1.0625rem}.content{padding:12px}}@media(prefers-reduced-motion:reduce){.chevron,.sidebar-nav a,.sidebar,.nav-icon ::ng-deep svg{transition:none!important}}\n"],
|
|
27783
|
+
styles: [":host{display:contents}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:199}.sidebar{width:256px;background:var(--shell-bg, linear-gradient(175deg, #0f172a 0%, #111827 100%));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;padding:0 20px;min-height:64px;border-bottom:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent);box-sizing:border-box}.brand-default{display:flex;align-items:center;gap:10px}.brand-text{font-size:1.125rem;font-weight:700;color:var(--shell-text, #fff);letter-spacing:-.01em}.sidebar-nav{padding:6px 0 8px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent) transparent}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent);border-radius:2px}.nav-group{margin-bottom:6px}.nav-group-label{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;font-size:.6875rem;font-weight:700;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.12em;background:none;border:none;cursor:pointer;transition:color .15s;text-align:left;border-radius:6px;background:color-mix(in srgb,var(--shell-text, #fff) 10%,transparent);margin:6px 4px 4px;width:calc(100% - 8px);box-sizing:border-box}.nav-group-label:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.nav-group-label:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-1px}.chevron{flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);opacity:.85}.chevron.collapsed{transform:rotate(-90deg)}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 32px;color:color-mix(in srgb,var(--shell-text, #fff) 95%,transparent);font-size:.9375rem;font-weight:500;text-decoration:none;border-left:2px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent);background:color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.sidebar-nav a.active{color:var(--shell-text, #fff);background:#60a5fa21;border-left-color:#60a5fa;font-weight:600}.sidebar-nav a:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-2px}.nav-icon{display:flex;align-items:center;flex-shrink:0}.nav-icon ::ng-deep svg{width:17px;height:17px;stroke:color-mix(in srgb,var(--shell-text, #fff) 90%,transparent);transition:stroke .15s;flex-shrink:0}.sidebar-nav a:hover .nav-icon ::ng-deep svg{stroke:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.sidebar-nav a.active .nav-icon ::ng-deep svg{stroke:#93c5fd}.nav-label{flex:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;margin-left:auto}.sidebar-footer{padding:10px 14px;border-top:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#60a5fa38,#60a5fa14);border:1px solid rgba(96,165,250,.18);color:color-mix(in srgb,var(--shell-text, #fff) 88%,transparent);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:.8125rem;font-weight:600;color:var(--shell-text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.6875rem;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.btn-logout{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.btn-logout:hover{color:#f87171;background:#f871711a}.btn-logout:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.brand-full{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{display:none}.shell.collapsed .brand-mark{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:var(--shell-text, #fff);background:color-mix(in srgb,var(--shell-text, #fff) 15%,transparent)}.rail-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;border-radius:8px;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);transition:background .15s,color .15s}.rail-toggle:hover{background:color-mix(in srgb,var(--shell-text, #fff) 12%,transparent);color:var(--shell-text, #fff)}.rail-toggle:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.rail-divider{display:none}@media(min-width:1025px){.rail-toggle{display:flex}.sidebar{transition:width .2s cubic-bezier(.4,0,.2,1)}.shell.collapsed .sidebar{width:68px}.shell.collapsed .sidebar-header{flex-direction:column;justify-content:center;gap:4px;padding:8px 0}.shell.collapsed .brand-full{flex:none;width:44px;height:44px;overflow:hidden;border-radius:10px;justify-content:center}.shell.collapsed .brand-full ::ng-deep img,.shell.collapsed .brand-full ::ng-deep svg{width:44px;height:44px;max-width:none;object-fit:cover;object-position:50% 42%}.shell.collapsed .brand-text{display:none}.shell.collapsed .rail-toggle{margin-left:0}.shell.collapsed .nav-group-label{display:none}.shell.collapsed .rail-divider{display:block;height:1px;margin:8px 14px;background:color-mix(in srgb,var(--shell-text, #fff) 20%,transparent)}.shell.collapsed .nav-group:first-child .rail-divider{display:none}.shell.collapsed .sidebar-nav a{position:relative;justify-content:center;padding:10px 0;margin:0 8px 2px;border-left:none;border-radius:8px}.shell.collapsed .sidebar-nav a.active{box-shadow:inset 3px 0 #60a5fa}.shell.collapsed .nav-label{display:none}.shell.collapsed .nav-icon ::ng-deep svg{width:20px;height:20px}.shell.collapsed .nav-badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;margin:0}.shell.collapsed .sidebar-footer{padding:10px 8px}.shell.collapsed .user-info{flex-direction:column;gap:8px}.shell.collapsed .user-details{display:none}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{display:flex;align-items:center;gap:8px;padding:0 24px;background:#fff;box-shadow:0 1px 3px #00000012,0 1px #0000000a;min-height:64px;box-sizing:border-box;position:relative;z-index:50}.hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;cursor:pointer;color:#374151;border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.hamburger:hover{background:#f3f4f6}.hamburger:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.page-title:focus{outline:none}.read-only-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#fef9c3;color:#854d0e;border:1px solid #fde68a;white-space:nowrap}.header-end{display:flex;align-items:center;margin-left:auto}.content{flex:1;overflow-y:auto;padding:24px;background:#f7f8f6;display:flex;flex-direction:column;box-sizing:border-box;min-height:0}.content>*{flex:1;min-height:0;display:flex;flex-direction:column}@media(max-width:1024px){.hamburger{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 32px #0000004d}.shell.sidebar-open .sidebar{transform:translate(0)}.shell.sidebar-open .sidebar-backdrop{display:block}.main-area{width:100%}.top-header{padding:0 16px;gap:4px}.content{padding:16px}}@media(max-width:480px){.page-title{font-size:1.0625rem}.content{padding:12px}}@media(pointer:coarse),(max-width:480px){.sidebar-nav a,.nav-group-label{min-height:44px}.btn-logout,.hamburger,.rail-toggle{min-width:44px;min-height:44px}}@media(prefers-reduced-motion:reduce){.chevron,.sidebar-nav a,.sidebar,.nav-icon ::ng-deep svg{transition:none!important}}\n"],
|
|
26671
27784
|
dependencies: [
|
|
26672
27785
|
{
|
|
26673
27786
|
kind: "directive",
|
|
@@ -26918,7 +28031,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
26918
28031
|
<!-- Global confirm overlay — position:fixed so it overlays without affecting layout -->
|
|
26919
28032
|
<ui-confirm-outlet />
|
|
26920
28033
|
`,
|
|
26921
|
-
styles: [":host{display:contents}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:199}.sidebar{width:256px;background:var(--shell-bg, linear-gradient(175deg, #0f172a 0%, #111827 100%));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;padding:0 20px;min-height:64px;border-bottom:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent);box-sizing:border-box}.brand-default{display:flex;align-items:center;gap:10px}.brand-text{font-size:1.125rem;font-weight:700;color:var(--shell-text, #fff);letter-spacing:-.01em}.sidebar-nav{padding:6px 0 8px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent) transparent}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent);border-radius:2px}.nav-group{margin-bottom:6px}.nav-group-label{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;font-size:.6875rem;font-weight:700;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.12em;background:none;border:none;cursor:pointer;transition:color .15s;text-align:left;border-radius:6px;background:color-mix(in srgb,var(--shell-text, #fff) 10%,transparent);margin:6px 4px 4px;width:calc(100% - 8px);box-sizing:border-box}.nav-group-label:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.nav-group-label:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-1px}.chevron{flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);opacity:.85}.chevron.collapsed{transform:rotate(-90deg)}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 32px;color:color-mix(in srgb,var(--shell-text, #fff) 95%,transparent);font-size:.9375rem;font-weight:500;text-decoration:none;border-left:2px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent);background:color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.sidebar-nav a.active{color:var(--shell-text, #fff);background:#60a5fa21;border-left-color:#60a5fa;font-weight:600}.sidebar-nav a:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-2px}.nav-icon{display:flex;align-items:center;flex-shrink:0}.nav-icon ::ng-deep svg{width:17px;height:17px;stroke:color-mix(in srgb,var(--shell-text, #fff) 90%,transparent);transition:stroke .15s;flex-shrink:0}.sidebar-nav a:hover .nav-icon ::ng-deep svg{stroke:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.sidebar-nav a.active .nav-icon ::ng-deep svg{stroke:#93c5fd}.nav-label{flex:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;margin-left:auto}.sidebar-footer{padding:10px 14px;border-top:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#60a5fa38,#60a5fa14);border:1px solid rgba(96,165,250,.18);color:color-mix(in srgb,var(--shell-text, #fff) 88%,transparent);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:.8125rem;font-weight:600;color:var(--shell-text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.6875rem;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.btn-logout{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.btn-logout:hover{color:#f87171;background:#f871711a}.btn-logout:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.brand-full{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{display:none}.shell.collapsed .brand-mark{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:var(--shell-text, #fff);background:color-mix(in srgb,var(--shell-text, #fff) 15%,transparent)}.rail-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;border-radius:8px;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);transition:background .15s,color .15s}.rail-toggle:hover{background:color-mix(in srgb,var(--shell-text, #fff) 12%,transparent);color:var(--shell-text, #fff)}.rail-toggle:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.rail-divider{display:none}@media(min-width:1025px){.rail-toggle{display:flex}.sidebar{transition:width .2s cubic-bezier(.4,0,.2,1)}.shell.collapsed .sidebar{width:68px}.shell.collapsed .sidebar-header{flex-direction:column;justify-content:center;gap:4px;padding:8px 0}.shell.collapsed .brand-full{flex:none;width:44px;height:44px;overflow:hidden;border-radius:10px;justify-content:center}.shell.collapsed .brand-full ::ng-deep img,.shell.collapsed .brand-full ::ng-deep svg{width:44px;height:44px;max-width:none;object-fit:cover;object-position:50% 42%}.shell.collapsed .brand-text{display:none}.shell.collapsed .rail-toggle{margin-left:0}.shell.collapsed .nav-group-label{display:none}.shell.collapsed .rail-divider{display:block;height:1px;margin:8px 14px;background:color-mix(in srgb,var(--shell-text, #fff) 20%,transparent)}.shell.collapsed .nav-group:first-child .rail-divider{display:none}.shell.collapsed .sidebar-nav a{position:relative;justify-content:center;padding:10px 0;margin:0 8px 2px;border-left:none;border-radius:8px}.shell.collapsed .sidebar-nav a.active{box-shadow:inset 3px 0 #60a5fa}.shell.collapsed .nav-label{display:none}.shell.collapsed .nav-icon ::ng-deep svg{width:20px;height:20px}.shell.collapsed .nav-badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;margin:0}.shell.collapsed .sidebar-footer{padding:10px 8px}.shell.collapsed .user-info{flex-direction:column;gap:8px}.shell.collapsed .user-details{display:none}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{display:flex;align-items:center;gap:8px;padding:0 24px;background:#fff;box-shadow:0 1px 3px #00000012,0 1px #0000000a;min-height:64px;box-sizing:border-box;position:relative;z-index:50}.hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;cursor:pointer;color:#374151;border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.hamburger:hover{background:#f3f4f6}.hamburger:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.page-title:focus{outline:none}.read-only-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#fef9c3;color:#854d0e;border:1px solid #fde68a;white-space:nowrap}.header-end{display:flex;align-items:center;margin-left:auto}.content{flex:1;overflow-y:auto;padding:24px;background:#f7f8f6;display:flex;flex-direction:column;box-sizing:border-box;min-height:0}.content>*{flex:1;min-height:0;display:flex;flex-direction:column}@media(max-width:1024px){.hamburger{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 32px #0000004d}.shell.sidebar-open .sidebar{transform:translate(0)}.shell.sidebar-open .sidebar-backdrop{display:block}.main-area{width:100%}.top-header{padding:0 16px;gap:4px}.content{padding:16px}}@media(max-width:480px){.page-title{font-size:1.0625rem}.content{padding:12px}}@media(prefers-reduced-motion:reduce){.chevron,.sidebar-nav a,.sidebar,.nav-icon ::ng-deep svg{transition:none!important}}\n"]
|
|
28034
|
+
styles: [":host{display:contents}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:199}.sidebar{width:256px;background:var(--shell-bg, linear-gradient(175deg, #0f172a 0%, #111827 100%));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;padding:0 20px;min-height:64px;border-bottom:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent);box-sizing:border-box}.brand-default{display:flex;align-items:center;gap:10px}.brand-text{font-size:1.125rem;font-weight:700;color:var(--shell-text, #fff);letter-spacing:-.01em}.sidebar-nav{padding:6px 0 8px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent) transparent}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--shell-text, #fff) 8%,transparent);border-radius:2px}.nav-group{margin-bottom:6px}.nav-group-label{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;font-size:.6875rem;font-weight:700;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.12em;background:none;border:none;cursor:pointer;transition:color .15s;text-align:left;border-radius:6px;background:color-mix(in srgb,var(--shell-text, #fff) 10%,transparent);margin:6px 4px 4px;width:calc(100% - 8px);box-sizing:border-box}.nav-group-label:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.nav-group-label:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-1px}.chevron{flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);opacity:.85}.chevron.collapsed{transform:rotate(-90deg)}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 32px;color:color-mix(in srgb,var(--shell-text, #fff) 95%,transparent);font-size:.9375rem;font-weight:500;text-decoration:none;border-left:2px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover{color:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent);background:color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.sidebar-nav a.active{color:var(--shell-text, #fff);background:#60a5fa21;border-left-color:#60a5fa;font-weight:600}.sidebar-nav a:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:-2px}.nav-icon{display:flex;align-items:center;flex-shrink:0}.nav-icon ::ng-deep svg{width:17px;height:17px;stroke:color-mix(in srgb,var(--shell-text, #fff) 90%,transparent);transition:stroke .15s;flex-shrink:0}.sidebar-nav a:hover .nav-icon ::ng-deep svg{stroke:color-mix(in srgb,var(--shell-text, #fff) 100%,transparent)}.sidebar-nav a.active .nav-icon ::ng-deep svg{stroke:#93c5fd}.nav-label{flex:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;margin-left:auto}.sidebar-footer{padding:10px 14px;border-top:1px solid color-mix(in srgb,var(--shell-text, #fff) 6%,transparent)}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#60a5fa38,#60a5fa14);border:1px solid rgba(96,165,250,.18);color:color-mix(in srgb,var(--shell-text, #fff) 88%,transparent);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0;flex:1}.user-name{font-size:.8125rem;font-weight:600;color:var(--shell-text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.6875rem;color:color-mix(in srgb,var(--shell-text, #fff) 80%,transparent);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.btn-logout{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.btn-logout:hover{color:#f87171;background:#f871711a}.btn-logout:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.brand-full{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{display:none}.shell.collapsed .brand-mark{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:var(--shell-text, #fff);background:color-mix(in srgb,var(--shell-text, #fff) 15%,transparent)}.rail-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;border-radius:8px;color:color-mix(in srgb,var(--shell-text, #fff) 85%,transparent);transition:background .15s,color .15s}.rail-toggle:hover{background:color-mix(in srgb,var(--shell-text, #fff) 12%,transparent);color:var(--shell-text, #fff)}.rail-toggle:focus-visible{outline:2px solid rgba(96,165,250,.5);outline-offset:2px}.rail-divider{display:none}@media(min-width:1025px){.rail-toggle{display:flex}.sidebar{transition:width .2s cubic-bezier(.4,0,.2,1)}.shell.collapsed .sidebar{width:68px}.shell.collapsed .sidebar-header{flex-direction:column;justify-content:center;gap:4px;padding:8px 0}.shell.collapsed .brand-full{flex:none;width:44px;height:44px;overflow:hidden;border-radius:10px;justify-content:center}.shell.collapsed .brand-full ::ng-deep img,.shell.collapsed .brand-full ::ng-deep svg{width:44px;height:44px;max-width:none;object-fit:cover;object-position:50% 42%}.shell.collapsed .brand-text{display:none}.shell.collapsed .rail-toggle{margin-left:0}.shell.collapsed .nav-group-label{display:none}.shell.collapsed .rail-divider{display:block;height:1px;margin:8px 14px;background:color-mix(in srgb,var(--shell-text, #fff) 20%,transparent)}.shell.collapsed .nav-group:first-child .rail-divider{display:none}.shell.collapsed .sidebar-nav a{position:relative;justify-content:center;padding:10px 0;margin:0 8px 2px;border-left:none;border-radius:8px}.shell.collapsed .sidebar-nav a.active{box-shadow:inset 3px 0 #60a5fa}.shell.collapsed .nav-label{display:none}.shell.collapsed .nav-icon ::ng-deep svg{width:20px;height:20px}.shell.collapsed .nav-badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;margin:0}.shell.collapsed .sidebar-footer{padding:10px 8px}.shell.collapsed .user-info{flex-direction:column;gap:8px}.shell.collapsed .user-details{display:none}}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{display:flex;align-items:center;gap:8px;padding:0 24px;background:#fff;box-shadow:0 1px 3px #00000012,0 1px #0000000a;min-height:64px;box-sizing:border-box;position:relative;z-index:50}.hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;cursor:pointer;color:#374151;border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.hamburger:hover{background:#f3f4f6}.hamburger:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.page-title:focus{outline:none}.read-only-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#fef9c3;color:#854d0e;border:1px solid #fde68a;white-space:nowrap}.header-end{display:flex;align-items:center;margin-left:auto}.content{flex:1;overflow-y:auto;padding:24px;background:#f7f8f6;display:flex;flex-direction:column;box-sizing:border-box;min-height:0}.content>*{flex:1;min-height:0;display:flex;flex-direction:column}@media(max-width:1024px){.hamburger{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 32px #0000004d}.shell.sidebar-open .sidebar{transform:translate(0)}.shell.sidebar-open .sidebar-backdrop{display:block}.main-area{width:100%}.top-header{padding:0 16px;gap:4px}.content{padding:16px}}@media(max-width:480px){.page-title{font-size:1.0625rem}.content{padding:12px}}@media(pointer:coarse),(max-width:480px){.sidebar-nav a,.nav-group-label{min-height:44px}.btn-logout,.hamburger,.rail-toggle{min-width:44px;min-height:44px}}@media(prefers-reduced-motion:reduce){.chevron,.sidebar-nav a,.sidebar,.nav-icon ::ng-deep svg{transition:none!important}}\n"]
|
|
26922
28035
|
}]
|
|
26923
28036
|
}],
|
|
26924
28037
|
propDecorators: {
|
|
@@ -27042,281 +28155,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
27042
28155
|
}]
|
|
27043
28156
|
}]
|
|
27044
28157
|
});
|
|
27045
|
-
const EXTRA_ICONS = {
|
|
27046
|
-
"delete": "M3 6h18 M8 6V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2 M5 6l1 14a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-14 M10 11v6 M14 11v6",
|
|
27047
|
-
"add": "M12 5v14 M5 12h14",
|
|
27048
|
-
"close": "M18 6L6 18 M6 6l12 12",
|
|
27049
|
-
"check": "M20 6L9 17l-5-5",
|
|
27050
|
-
"upload": "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4 M17 8l-5-5-5 5 M12 3v12",
|
|
27051
|
-
"image": "M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z M8.5 8.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z M21 15l-5-5L5 21",
|
|
27052
|
-
"chevron-up": "M18 15l-6-6-6 6",
|
|
27053
|
-
"chevron-down": "M6 9l6 6 6-6",
|
|
27054
|
-
"arrow-left": "M19 12H5 M12 19l-7-7 7-7",
|
|
27055
|
-
"bell": "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9 M13.73 21a2 2 0 0 1-3.46 0",
|
|
27056
|
-
"print": "M6 9V2h12v7 M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2 M6 14h12v8H6z",
|
|
27057
|
-
"shield": "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",
|
|
27058
|
-
"lock": "M5 11h14a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2z M7 11V7a5 5 0 0 1 10 0v4",
|
|
27059
|
-
"arrow-up": "M12 19V5 M5 12l7-7 7 7",
|
|
27060
|
-
"arrow-down": "M12 5v14 M19 12l-7 7-7-7",
|
|
27061
|
-
"arrow-right": "M5 12h14 M12 5l7 7-7 7",
|
|
27062
|
-
"document": "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",
|
|
27063
|
-
"grip": "M9 5h.01 M15 5h.01 M9 12h.01 M15 12h.01 M9 19h.01 M15 19h.01",
|
|
27064
|
-
"card": "M3 4h18a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z M1 10h22",
|
|
27065
|
-
"bank": "M3 21h18 M3 10h18 M5 6l7-3 7 3 M4 10v11 M20 10v11 M8 14v3 M12 14v3 M16 14v3"
|
|
27066
|
-
};
|
|
27067
|
-
function iconPath(name) {
|
|
27068
|
-
return Object.prototype.hasOwnProperty.call(EXTRA_ICONS, name) ? EXTRA_ICONS[name] : builtInActionIcon(name);
|
|
27069
|
-
}
|
|
27070
|
-
var IconComponent = class IconComponent {
|
|
27071
|
-
constructor() {
|
|
27072
|
-
this.name = input.required(...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
27073
|
-
this.tooltip = input("", ...ngDevMode ? [{ debugName: "tooltip" }] : /* istanbul ignore next */ []);
|
|
27074
|
-
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
27075
|
-
this.size = input(16, ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
|
|
27076
|
-
this.variant = input("default", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
|
|
27077
|
-
this.disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
27078
|
-
this.loading = input(false, ...ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []);
|
|
27079
|
-
this.interactive = input(true, ...ngDevMode ? [{ debugName: "interactive" }] : /* istanbul ignore next */ []);
|
|
27080
|
-
this.iconClick = output();
|
|
27081
|
-
this.accessibleName = computed(() => this.ariaLabel() || this.tooltip(), ...ngDevMode ? [{ debugName: "accessibleName" }] : /* istanbul ignore next */ []);
|
|
27082
|
-
this.path = computed(() => iconPath(this.name()), ...ngDevMode ? [{ debugName: "path" }] : /* istanbul ignore next */ []);
|
|
27083
|
-
}
|
|
27084
|
-
onClick(event) {
|
|
27085
|
-
event.stopPropagation();
|
|
27086
|
-
this.iconClick.emit(event);
|
|
27087
|
-
}
|
|
27088
|
-
static {
|
|
27089
|
-
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
27090
|
-
minVersion: "12.0.0",
|
|
27091
|
-
version: "22.2.2",
|
|
27092
|
-
ngImport: i0,
|
|
27093
|
-
type: IconComponent,
|
|
27094
|
-
deps: [],
|
|
27095
|
-
target: i0.ɵɵFactoryTarget.Component
|
|
27096
|
-
});
|
|
27097
|
-
}
|
|
27098
|
-
static {
|
|
27099
|
-
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
27100
|
-
minVersion: "17.0.0",
|
|
27101
|
-
version: "22.2.2",
|
|
27102
|
-
type: IconComponent,
|
|
27103
|
-
isStandalone: true,
|
|
27104
|
-
selector: "ui-icon",
|
|
27105
|
-
inputs: {
|
|
27106
|
-
name: {
|
|
27107
|
-
classPropertyName: "name",
|
|
27108
|
-
publicName: "name",
|
|
27109
|
-
isSignal: true,
|
|
27110
|
-
isRequired: true,
|
|
27111
|
-
transformFunction: null
|
|
27112
|
-
},
|
|
27113
|
-
tooltip: {
|
|
27114
|
-
classPropertyName: "tooltip",
|
|
27115
|
-
publicName: "tooltip",
|
|
27116
|
-
isSignal: true,
|
|
27117
|
-
isRequired: false,
|
|
27118
|
-
transformFunction: null
|
|
27119
|
-
},
|
|
27120
|
-
ariaLabel: {
|
|
27121
|
-
classPropertyName: "ariaLabel",
|
|
27122
|
-
publicName: "ariaLabel",
|
|
27123
|
-
isSignal: true,
|
|
27124
|
-
isRequired: false,
|
|
27125
|
-
transformFunction: null
|
|
27126
|
-
},
|
|
27127
|
-
size: {
|
|
27128
|
-
classPropertyName: "size",
|
|
27129
|
-
publicName: "size",
|
|
27130
|
-
isSignal: true,
|
|
27131
|
-
isRequired: false,
|
|
27132
|
-
transformFunction: null
|
|
27133
|
-
},
|
|
27134
|
-
variant: {
|
|
27135
|
-
classPropertyName: "variant",
|
|
27136
|
-
publicName: "variant",
|
|
27137
|
-
isSignal: true,
|
|
27138
|
-
isRequired: false,
|
|
27139
|
-
transformFunction: null
|
|
27140
|
-
},
|
|
27141
|
-
disabled: {
|
|
27142
|
-
classPropertyName: "disabled",
|
|
27143
|
-
publicName: "disabled",
|
|
27144
|
-
isSignal: true,
|
|
27145
|
-
isRequired: false,
|
|
27146
|
-
transformFunction: null
|
|
27147
|
-
},
|
|
27148
|
-
loading: {
|
|
27149
|
-
classPropertyName: "loading",
|
|
27150
|
-
publicName: "loading",
|
|
27151
|
-
isSignal: true,
|
|
27152
|
-
isRequired: false,
|
|
27153
|
-
transformFunction: null
|
|
27154
|
-
},
|
|
27155
|
-
interactive: {
|
|
27156
|
-
classPropertyName: "interactive",
|
|
27157
|
-
publicName: "interactive",
|
|
27158
|
-
isSignal: true,
|
|
27159
|
-
isRequired: false,
|
|
27160
|
-
transformFunction: null
|
|
27161
|
-
}
|
|
27162
|
-
},
|
|
27163
|
-
outputs: { iconClick: "iconClick" },
|
|
27164
|
-
ngImport: i0,
|
|
27165
|
-
template: `
|
|
27166
|
-
@if (interactive()) {
|
|
27167
|
-
<button type="button" class="icon-btn" [class.danger]="variant() === 'danger'"
|
|
27168
|
-
[class.loading]="loading()" [disabled]="disabled() || loading()" [attr.aria-busy]="loading() ? 'true' : null"
|
|
27169
|
-
[attr.aria-label]="accessibleName() || null" [uiTooltip]="tooltip()" (click)="onClick($event)">
|
|
27170
|
-
<ng-container *ngTemplateOutlet="glyph" />
|
|
27171
|
-
</button>
|
|
27172
|
-
} @else {
|
|
27173
|
-
<span class="icon-static" [class.danger]="variant() === 'danger'" [attr.aria-busy]="loading() ? 'true' : null"
|
|
27174
|
-
[attr.role]="accessibleName() ? 'img' : null" [attr.aria-label]="accessibleName() || null" [uiTooltip]="tooltip()" [attr.aria-hidden]="accessibleName() ? null : 'true'">
|
|
27175
|
-
<ng-container *ngTemplateOutlet="glyph" />
|
|
27176
|
-
</span>
|
|
27177
|
-
}
|
|
27178
|
-
<ng-template #glyph>
|
|
27179
|
-
@if (loading()) {
|
|
27180
|
-
<span class="spinner" [style.width.px]="size()" [style.height.px]="size()" aria-hidden="true"></span>
|
|
27181
|
-
} @else if (path(); as d) {
|
|
27182
|
-
<svg viewBox="0 0 24 24" [attr.width]="size()" [attr.height]="size()" fill="none" stroke="currentColor"
|
|
27183
|
-
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
|
|
27184
|
-
<path [attr.d]="d" />
|
|
27185
|
-
</svg>
|
|
27186
|
-
}
|
|
27187
|
-
</ng-template>
|
|
27188
|
-
`,
|
|
27189
|
-
isInline: true,
|
|
27190
|
-
styles: [":host{display:inline-flex}.icon-static{display:inline-flex;align-items:center;justify-content:center;color:inherit}.icon-static.danger{color:#b91c1c}.icon-static svg{display:block}.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;color:#475569;cursor:pointer;-webkit-appearance:none;appearance:none;font:inherit;transition:background .15s ease,color .15s ease}.icon-btn:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.icon-btn.danger{color:#b91c1c}.icon-btn.danger:hover:not(:disabled){background:#fef2f2;color:#991b1b}.icon-btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn.loading:disabled{opacity:1;cursor:progress}.spinner{display:block;box-sizing:border-box;border:2px solid rgba(100,116,139,.3);border-top-color:currentColor;border-radius:50%;animation:ui-icon-spin .6s linear infinite}@keyframes ui-icon-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.icon-btn:after{content:\"\";position:absolute;inset:-8px}\n"],
|
|
27191
|
-
dependencies: [{
|
|
27192
|
-
kind: "directive",
|
|
27193
|
-
type: NgTemplateOutlet,
|
|
27194
|
-
selector: "[ngTemplateOutlet]",
|
|
27195
|
-
inputs: [
|
|
27196
|
-
"ngTemplateOutletContext",
|
|
27197
|
-
"ngTemplateOutlet",
|
|
27198
|
-
"ngTemplateOutletInjector"
|
|
27199
|
-
]
|
|
27200
|
-
}, {
|
|
27201
|
-
kind: "directive",
|
|
27202
|
-
type: TooltipDirective,
|
|
27203
|
-
selector: "[uiTooltip]",
|
|
27204
|
-
inputs: ["uiTooltip", "tooltipPosition"]
|
|
27205
|
-
}],
|
|
27206
|
-
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
27207
|
-
});
|
|
27208
|
-
}
|
|
27209
|
-
};
|
|
27210
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
27211
|
-
minVersion: "12.0.0",
|
|
27212
|
-
version: "22.2.2",
|
|
27213
|
-
ngImport: i0,
|
|
27214
|
-
type: IconComponent,
|
|
27215
|
-
decorators: [{
|
|
27216
|
-
type: Component,
|
|
27217
|
-
args: [{
|
|
27218
|
-
selector: "ui-icon",
|
|
27219
|
-
standalone: true,
|
|
27220
|
-
imports: [NgTemplateOutlet, TooltipDirective],
|
|
27221
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
27222
|
-
template: `
|
|
27223
|
-
@if (interactive()) {
|
|
27224
|
-
<button type="button" class="icon-btn" [class.danger]="variant() === 'danger'"
|
|
27225
|
-
[class.loading]="loading()" [disabled]="disabled() || loading()" [attr.aria-busy]="loading() ? 'true' : null"
|
|
27226
|
-
[attr.aria-label]="accessibleName() || null" [uiTooltip]="tooltip()" (click)="onClick($event)">
|
|
27227
|
-
<ng-container *ngTemplateOutlet="glyph" />
|
|
27228
|
-
</button>
|
|
27229
|
-
} @else {
|
|
27230
|
-
<span class="icon-static" [class.danger]="variant() === 'danger'" [attr.aria-busy]="loading() ? 'true' : null"
|
|
27231
|
-
[attr.role]="accessibleName() ? 'img' : null" [attr.aria-label]="accessibleName() || null" [uiTooltip]="tooltip()" [attr.aria-hidden]="accessibleName() ? null : 'true'">
|
|
27232
|
-
<ng-container *ngTemplateOutlet="glyph" />
|
|
27233
|
-
</span>
|
|
27234
|
-
}
|
|
27235
|
-
<ng-template #glyph>
|
|
27236
|
-
@if (loading()) {
|
|
27237
|
-
<span class="spinner" [style.width.px]="size()" [style.height.px]="size()" aria-hidden="true"></span>
|
|
27238
|
-
} @else if (path(); as d) {
|
|
27239
|
-
<svg viewBox="0 0 24 24" [attr.width]="size()" [attr.height]="size()" fill="none" stroke="currentColor"
|
|
27240
|
-
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
|
|
27241
|
-
<path [attr.d]="d" />
|
|
27242
|
-
</svg>
|
|
27243
|
-
}
|
|
27244
|
-
</ng-template>
|
|
27245
|
-
`,
|
|
27246
|
-
styles: [":host{display:inline-flex}.icon-static{display:inline-flex;align-items:center;justify-content:center;color:inherit}.icon-static.danger{color:#b91c1c}.icon-static svg{display:block}.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;color:#475569;cursor:pointer;-webkit-appearance:none;appearance:none;font:inherit;transition:background .15s ease,color .15s ease}.icon-btn:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.icon-btn.danger{color:#b91c1c}.icon-btn.danger:hover:not(:disabled){background:#fef2f2;color:#991b1b}.icon-btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn.loading:disabled{opacity:1;cursor:progress}.spinner{display:block;box-sizing:border-box;border:2px solid rgba(100,116,139,.3);border-top-color:currentColor;border-radius:50%;animation:ui-icon-spin .6s linear infinite}@keyframes ui-icon-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.icon-btn:after{content:\"\";position:absolute;inset:-8px}\n"]
|
|
27247
|
-
}]
|
|
27248
|
-
}],
|
|
27249
|
-
propDecorators: {
|
|
27250
|
-
name: [{
|
|
27251
|
-
type: i0.Input,
|
|
27252
|
-
args: [{
|
|
27253
|
-
isSignal: true,
|
|
27254
|
-
alias: "name",
|
|
27255
|
-
required: true
|
|
27256
|
-
}]
|
|
27257
|
-
}],
|
|
27258
|
-
tooltip: [{
|
|
27259
|
-
type: i0.Input,
|
|
27260
|
-
args: [{
|
|
27261
|
-
isSignal: true,
|
|
27262
|
-
alias: "tooltip",
|
|
27263
|
-
required: false
|
|
27264
|
-
}]
|
|
27265
|
-
}],
|
|
27266
|
-
ariaLabel: [{
|
|
27267
|
-
type: i0.Input,
|
|
27268
|
-
args: [{
|
|
27269
|
-
isSignal: true,
|
|
27270
|
-
alias: "ariaLabel",
|
|
27271
|
-
required: false
|
|
27272
|
-
}]
|
|
27273
|
-
}],
|
|
27274
|
-
size: [{
|
|
27275
|
-
type: i0.Input,
|
|
27276
|
-
args: [{
|
|
27277
|
-
isSignal: true,
|
|
27278
|
-
alias: "size",
|
|
27279
|
-
required: false
|
|
27280
|
-
}]
|
|
27281
|
-
}],
|
|
27282
|
-
variant: [{
|
|
27283
|
-
type: i0.Input,
|
|
27284
|
-
args: [{
|
|
27285
|
-
isSignal: true,
|
|
27286
|
-
alias: "variant",
|
|
27287
|
-
required: false
|
|
27288
|
-
}]
|
|
27289
|
-
}],
|
|
27290
|
-
disabled: [{
|
|
27291
|
-
type: i0.Input,
|
|
27292
|
-
args: [{
|
|
27293
|
-
isSignal: true,
|
|
27294
|
-
alias: "disabled",
|
|
27295
|
-
required: false
|
|
27296
|
-
}]
|
|
27297
|
-
}],
|
|
27298
|
-
loading: [{
|
|
27299
|
-
type: i0.Input,
|
|
27300
|
-
args: [{
|
|
27301
|
-
isSignal: true,
|
|
27302
|
-
alias: "loading",
|
|
27303
|
-
required: false
|
|
27304
|
-
}]
|
|
27305
|
-
}],
|
|
27306
|
-
interactive: [{
|
|
27307
|
-
type: i0.Input,
|
|
27308
|
-
args: [{
|
|
27309
|
-
isSignal: true,
|
|
27310
|
-
alias: "interactive",
|
|
27311
|
-
required: false
|
|
27312
|
-
}]
|
|
27313
|
-
}],
|
|
27314
|
-
iconClick: [{
|
|
27315
|
-
type: i0.Output,
|
|
27316
|
-
args: ["iconClick"]
|
|
27317
|
-
}]
|
|
27318
|
-
}
|
|
27319
|
-
});
|
|
27320
28158
|
var TimelineComponent = class TimelineComponent {
|
|
27321
28159
|
constructor() {
|
|
27322
28160
|
this.items = input([], ...ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []);
|
|
@@ -28495,7 +29333,7 @@ var ErrorComponent = class ErrorComponent {
|
|
|
28495
29333
|
}
|
|
28496
29334
|
`,
|
|
28497
29335
|
isInline: true,
|
|
28498
|
-
styles: [":host{display:block}.ui-error{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#
|
|
29336
|
+
styles: [":host{display:block}.ui-error{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#dc2626}\n"],
|
|
28499
29337
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
28500
29338
|
});
|
|
28501
29339
|
}
|
|
@@ -28516,7 +29354,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28516
29354
|
<p class="ui-error" role="alert" [attr.id]="errorId() || null">{{ message() }}</p>
|
|
28517
29355
|
}
|
|
28518
29356
|
`,
|
|
28519
|
-
styles: [":host{display:block}.ui-error{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#
|
|
29357
|
+
styles: [":host{display:block}.ui-error{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#dc2626}\n"]
|
|
28520
29358
|
}]
|
|
28521
29359
|
}],
|
|
28522
29360
|
propDecorators: {
|
|
@@ -28983,6 +29821,15 @@ var DateRangePickerComponent = class DateRangePickerComponent {
|
|
|
28983
29821
|
this.ariaLabel = input("Date range", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
28984
29822
|
this.rangeChange = output();
|
|
28985
29823
|
this.selectedPreset = linkedSignal(() => this.activePreset(), ...ngDevMode ? [{ debugName: "selectedPreset" }] : /* istanbul ignore next */ []);
|
|
29824
|
+
this.popoverDismissed = linkedSignal({
|
|
29825
|
+
...ngDevMode ? { debugName: "popoverDismissed" } : /* istanbul ignore next */ {},
|
|
29826
|
+
source: this.selectedPreset,
|
|
29827
|
+
computation: () => false
|
|
29828
|
+
});
|
|
29829
|
+
this.popoverVisible = computed(() => this.showPresets() && this.selectedPreset() === "custom" && !this.popoverDismissed(), ...ngDevMode ? [{ debugName: "popoverVisible" }] : /* istanbul ignore next */ []);
|
|
29830
|
+
this.popTop = signal(0, ...ngDevMode ? [{ debugName: "popTop" }] : /* istanbul ignore next */ []);
|
|
29831
|
+
this.popRight = signal(16, ...ngDevMode ? [{ debugName: "popRight" }] : /* istanbul ignore next */ []);
|
|
29832
|
+
this.host = inject(ElementRef);
|
|
28986
29833
|
this.customStart = signal("", ...ngDevMode ? [{ debugName: "customStart" }] : /* istanbul ignore next */ []);
|
|
28987
29834
|
this.customEnd = signal("", ...ngDevMode ? [{ debugName: "customEnd" }] : /* istanbul ignore next */ []);
|
|
28988
29835
|
this.presetTabs = computed(() => {
|
|
@@ -29001,13 +29848,41 @@ var DateRangePickerComponent = class DateRangePickerComponent {
|
|
|
29001
29848
|
label: PRESET_LABELS[key]
|
|
29002
29849
|
}));
|
|
29003
29850
|
}, ...ngDevMode ? [{ debugName: "presetTabs" }] : /* istanbul ignore next */ []);
|
|
29851
|
+
effect((onCleanup) => {
|
|
29852
|
+
if (!this.popoverVisible()) return;
|
|
29853
|
+
const place = () => this.place();
|
|
29854
|
+
untracked(place);
|
|
29855
|
+
window.addEventListener("resize", place);
|
|
29856
|
+
window.addEventListener("scroll", place, true);
|
|
29857
|
+
onCleanup(() => {
|
|
29858
|
+
window.removeEventListener("resize", place);
|
|
29859
|
+
window.removeEventListener("scroll", place, true);
|
|
29860
|
+
});
|
|
29861
|
+
});
|
|
29862
|
+
}
|
|
29863
|
+
place() {
|
|
29864
|
+
const pills = this.host.nativeElement.querySelector(".pills");
|
|
29865
|
+
if (!pills) return;
|
|
29866
|
+
const r = pills.getBoundingClientRect();
|
|
29867
|
+
this.popTop.set(Math.round(r.bottom + 8));
|
|
29868
|
+
this.popRight.set(Math.max(16, Math.round(document.documentElement.clientWidth - r.right)));
|
|
29869
|
+
}
|
|
29870
|
+
onDocumentClick(e) {
|
|
29871
|
+
if (this.popoverVisible() && !this.host.nativeElement.contains(e.target)) this.popoverDismissed.set(true);
|
|
29872
|
+
}
|
|
29873
|
+
onEscape(e) {
|
|
29874
|
+
if (!this.popoverVisible()) return;
|
|
29875
|
+
e.stopPropagation();
|
|
29876
|
+
this.popoverDismissed.set(true);
|
|
29004
29877
|
}
|
|
29005
29878
|
selectPreset(key) {
|
|
29006
29879
|
this.selectedPreset.set(key);
|
|
29880
|
+
this.popoverDismissed.set(false);
|
|
29007
29881
|
if (key !== "custom") this.rangeChange.emit(resolvePreset(key, /* @__PURE__ */ new Date()));
|
|
29008
29882
|
}
|
|
29009
29883
|
applyCustom() {
|
|
29010
29884
|
if (!this.customStart() || !this.customEnd()) return;
|
|
29885
|
+
this.popoverDismissed.set(true);
|
|
29011
29886
|
this.rangeChange.emit({
|
|
29012
29887
|
preset: "custom",
|
|
29013
29888
|
startDate: this.customStart(),
|
|
@@ -29063,24 +29938,38 @@ var DateRangePickerComponent = class DateRangePickerComponent {
|
|
|
29063
29938
|
}
|
|
29064
29939
|
},
|
|
29065
29940
|
outputs: { rangeChange: "rangeChange" },
|
|
29941
|
+
host: { listeners: {
|
|
29942
|
+
"document:click": "onDocumentClick($event)",
|
|
29943
|
+
"keydown.escape": "onEscape($event)"
|
|
29944
|
+
} },
|
|
29066
29945
|
ngImport: i0,
|
|
29067
29946
|
template: `
|
|
29068
29947
|
<div class="date-range-picker">
|
|
29069
29948
|
@if (showPresets()) {
|
|
29070
|
-
<
|
|
29071
|
-
|
|
29072
|
-
@if (selectedPreset() === 'custom' || !showPresets()) {
|
|
29073
|
-
<div class="custom-range">
|
|
29074
|
-
<ui-date-input label="From" [max]="customEnd()" [ngModel]="customStart()" (ngModelChange)="customStart.set($event)" />
|
|
29075
|
-
<span class="date-sep" aria-hidden="true">–</span>
|
|
29076
|
-
<ui-date-input label="To" [min]="customStart()" [ngModel]="customEnd()" (ngModelChange)="customEnd.set($event)" />
|
|
29077
|
-
<ui-button variant="primary" size="sm" [disabled]="!customStart() || !customEnd()" (click)="applyCustom()">Apply</ui-button>
|
|
29949
|
+
<div class="pills" #pills>
|
|
29950
|
+
<ui-pill-tabs [tabs]="presetTabs()" [activeKey]="selectedPreset()" [ariaLabel]="ariaLabel()" (tabChange)="selectPreset($any($event))" />
|
|
29078
29951
|
</div>
|
|
29952
|
+
@if (popoverVisible()) {
|
|
29953
|
+
<div class="custom-popover" role="group" aria-label="Custom date range" data-testid="custom-range-popover"
|
|
29954
|
+
[style.top.px]="popTop()" [style.right.px]="popRight()">
|
|
29955
|
+
<ng-container *ngTemplateOutlet="customFields" />
|
|
29956
|
+
</div>
|
|
29957
|
+
}
|
|
29958
|
+
} @else {
|
|
29959
|
+
<ng-container *ngTemplateOutlet="customFields" />
|
|
29079
29960
|
}
|
|
29080
29961
|
</div>
|
|
29962
|
+
<ng-template #customFields>
|
|
29963
|
+
<div class="custom-range">
|
|
29964
|
+
<ui-date-input label="From" [max]="customEnd()" [ngModel]="customStart()" (ngModelChange)="customStart.set($event)" />
|
|
29965
|
+
<span class="date-sep" aria-hidden="true">–</span>
|
|
29966
|
+
<ui-date-input label="To" [min]="customStart()" [ngModel]="customEnd()" (ngModelChange)="customEnd.set($event)" />
|
|
29967
|
+
<ui-button variant="primary" size="sm" [disabled]="!customStart() || !customEnd()" (click)="applyCustom()">Apply</ui-button>
|
|
29968
|
+
</div>
|
|
29969
|
+
</ng-template>
|
|
29081
29970
|
`,
|
|
29082
29971
|
isInline: true,
|
|
29083
|
-
styles: [":host{display:block}.date-range-picker{display:flex;flex-direction:column;gap:10px}.custom-range{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.date-sep{color:#94a3b8;font-weight:500;padding-bottom:10px}\n"],
|
|
29972
|
+
styles: [":host{display:block}.date-range-picker{display:flex;flex-direction:column;gap:10px}.pills{width:fit-content;max-width:100%}.custom-range{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.date-sep{color:#94a3b8;font-weight:500;padding-bottom:10px}.custom-popover{position:fixed;z-index:1000;box-sizing:border-box;max-width:calc(100vw - 32px);background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;box-shadow:0 10px 25px #0f172a1f,0 4px 10px #0f172a0f}\n"],
|
|
29084
29973
|
dependencies: [
|
|
29085
29974
|
{
|
|
29086
29975
|
kind: "ngmodule",
|
|
@@ -29104,6 +29993,16 @@ var DateRangePickerComponent = class DateRangePickerComponent {
|
|
|
29104
29993
|
outputs: ["ngModelChange"],
|
|
29105
29994
|
exportAs: ["ngModel"]
|
|
29106
29995
|
},
|
|
29996
|
+
{
|
|
29997
|
+
kind: "directive",
|
|
29998
|
+
type: NgTemplateOutlet,
|
|
29999
|
+
selector: "[ngTemplateOutlet]",
|
|
30000
|
+
inputs: [
|
|
30001
|
+
"ngTemplateOutletContext",
|
|
30002
|
+
"ngTemplateOutlet",
|
|
30003
|
+
"ngTemplateOutletInjector"
|
|
30004
|
+
]
|
|
30005
|
+
},
|
|
29107
30006
|
{
|
|
29108
30007
|
kind: "component",
|
|
29109
30008
|
type: PillTabsComponent,
|
|
@@ -29180,28 +30079,44 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
29180
30079
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
29181
30080
|
imports: [
|
|
29182
30081
|
FormsModule,
|
|
30082
|
+
NgTemplateOutlet,
|
|
29183
30083
|
PillTabsComponent,
|
|
29184
30084
|
DateInputComponent,
|
|
29185
30085
|
ButtonComponent
|
|
29186
30086
|
],
|
|
30087
|
+
host: {
|
|
30088
|
+
"(document:click)": "onDocumentClick($event)",
|
|
30089
|
+
"(keydown.escape)": "onEscape($event)"
|
|
30090
|
+
},
|
|
29187
30091
|
template: `
|
|
29188
30092
|
<div class="date-range-picker">
|
|
29189
30093
|
@if (showPresets()) {
|
|
29190
|
-
<
|
|
29191
|
-
|
|
29192
|
-
@if (selectedPreset() === 'custom' || !showPresets()) {
|
|
29193
|
-
<div class="custom-range">
|
|
29194
|
-
<ui-date-input label="From" [max]="customEnd()" [ngModel]="customStart()" (ngModelChange)="customStart.set($event)" />
|
|
29195
|
-
<span class="date-sep" aria-hidden="true">–</span>
|
|
29196
|
-
<ui-date-input label="To" [min]="customStart()" [ngModel]="customEnd()" (ngModelChange)="customEnd.set($event)" />
|
|
29197
|
-
<ui-button variant="primary" size="sm" [disabled]="!customStart() || !customEnd()" (click)="applyCustom()">Apply</ui-button>
|
|
30094
|
+
<div class="pills" #pills>
|
|
30095
|
+
<ui-pill-tabs [tabs]="presetTabs()" [activeKey]="selectedPreset()" [ariaLabel]="ariaLabel()" (tabChange)="selectPreset($any($event))" />
|
|
29198
30096
|
</div>
|
|
30097
|
+
@if (popoverVisible()) {
|
|
30098
|
+
<div class="custom-popover" role="group" aria-label="Custom date range" data-testid="custom-range-popover"
|
|
30099
|
+
[style.top.px]="popTop()" [style.right.px]="popRight()">
|
|
30100
|
+
<ng-container *ngTemplateOutlet="customFields" />
|
|
30101
|
+
</div>
|
|
30102
|
+
}
|
|
30103
|
+
} @else {
|
|
30104
|
+
<ng-container *ngTemplateOutlet="customFields" />
|
|
29199
30105
|
}
|
|
29200
30106
|
</div>
|
|
30107
|
+
<ng-template #customFields>
|
|
30108
|
+
<div class="custom-range">
|
|
30109
|
+
<ui-date-input label="From" [max]="customEnd()" [ngModel]="customStart()" (ngModelChange)="customStart.set($event)" />
|
|
30110
|
+
<span class="date-sep" aria-hidden="true">–</span>
|
|
30111
|
+
<ui-date-input label="To" [min]="customStart()" [ngModel]="customEnd()" (ngModelChange)="customEnd.set($event)" />
|
|
30112
|
+
<ui-button variant="primary" size="sm" [disabled]="!customStart() || !customEnd()" (click)="applyCustom()">Apply</ui-button>
|
|
30113
|
+
</div>
|
|
30114
|
+
</ng-template>
|
|
29201
30115
|
`,
|
|
29202
|
-
styles: [":host{display:block}.date-range-picker{display:flex;flex-direction:column;gap:10px}.custom-range{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.date-sep{color:#94a3b8;font-weight:500;padding-bottom:10px}\n"]
|
|
30116
|
+
styles: [":host{display:block}.date-range-picker{display:flex;flex-direction:column;gap:10px}.pills{width:fit-content;max-width:100%}.custom-range{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.date-sep{color:#94a3b8;font-weight:500;padding-bottom:10px}.custom-popover{position:fixed;z-index:1000;box-sizing:border-box;max-width:calc(100vw - 32px);background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;box-shadow:0 10px 25px #0f172a1f,0 4px 10px #0f172a0f}\n"]
|
|
29203
30117
|
}]
|
|
29204
30118
|
}],
|
|
30119
|
+
ctorParameters: () => [],
|
|
29205
30120
|
propDecorators: {
|
|
29206
30121
|
activePreset: [{
|
|
29207
30122
|
type: i0.Input,
|
|
@@ -30347,7 +31262,7 @@ var RichTextEditorComponent = class RichTextEditorComponent {
|
|
|
30347
31262
|
</div>
|
|
30348
31263
|
`,
|
|
30349
31264
|
isInline: true,
|
|
30350
|
-
styles: [":host{display:block}.rte-field{display:flex;flex-direction:column;gap:6px}.rte-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rte-required{color:#
|
|
31265
|
+
styles: [":host{display:block}.rte-field{display:flex;flex-direction:column;gap:6px}.rte-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rte-required{color:#dc2626;margin-left:2px}.rte-hint-inline{font-size:.75rem;color:#94a3b8;font-weight:400;margin-left:4px}.rte-box{border:1px solid #e2e8f0;border-radius:8px;background:#fff;transition:border-color .15s,box-shadow .15s}.rte-box:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.rte-error .rte-box{border-color:#ef4444}.rte-error .rte-box:focus-within{box-shadow:0 0 0 3px #ef44441f}.rte-disabled .rte-box{opacity:.5;cursor:not-allowed}.rte-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 8px;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:8px 8px 0 0}.rte-divider{width:1px;height:20px;background:#cbd5e1;margin:0 4px}.rte-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:4px;background:none;color:#64748b;cursor:pointer;transition:background .15s,color .15s}.rte-btn svg{width:16px;height:16px}.rte-btn:hover:not(:disabled){background:#e2e8f0;color:#1e293b}.rte-btn:focus-visible,.rte-btn:focus-within{outline:2px solid #3b82f6;outline-offset:1px}.rte-btn.active{background:#dbeafe;color:#2563eb}.rte-btn:disabled,.rte-btn-disabled{cursor:not-allowed;opacity:.5}.rte-menu-wrap{position:relative;display:inline-flex}.rte-menu-btn{width:auto;padding:0 6px;gap:3px}.rte-menu-btn .rte-chevron{width:10px;height:10px;color:#94a3b8;flex-shrink:0}.rte-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:100;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 12px #0000001f;padding:4px;overflow-y:auto;max-height:260px}.rte-font-panel{min-width:180px}.rte-item{display:block;width:100%;text-align:left;padding:5px 10px;font-size:12px;color:#374151;border:none;background:none;border-radius:4px;cursor:pointer;white-space:nowrap}.rte-item:hover{background:#f1f5f9}.rte-item.selected{background:#dbeafe;color:#2563eb;font-weight:600}.rte-group-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;padding:6px 10px 2px}.di-h1{font-size:18px;font-weight:700}.di-h2{font-size:15px;font-weight:600}.di-h3{font-size:13px;font-weight:600}.rte-color{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.rte-editor{padding:12px;outline:none;overflow-y:auto;box-sizing:border-box;font-size:.875rem;line-height:1.6;color:#1e293b;background:#fff;border-radius:0 0 8px 8px;word-break:break-word}.rte-editor[data-empty=true]:before{content:attr(data-placeholder);color:#94a3b8;pointer-events:none;float:left;height:0}.rte-editor ul,.rte-editor ol{padding-left:1.5em;margin:.25em 0}.rte-editor li{margin:.15em 0}.rte-editor h1{font-size:1.75em;font-weight:700;margin:.5em 0 .25em}.rte-editor h2{font-size:1.4em;font-weight:600;margin:.5em 0 .25em}.rte-editor h3{font-size:1.15em;font-weight:600;margin:.5em 0 .25em}.rte-editor a{color:#2563eb;text-decoration:underline}.rte-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.rte-desc-error{color:#dc2626}@media(max-width:480px){.rte-editor{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.rte-btn{width:44px;height:44px}.rte-menu-btn{width:auto;min-width:44px}.rte-divider{height:28px}}\n"],
|
|
30351
31266
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
30352
31267
|
});
|
|
30353
31268
|
}
|
|
@@ -30584,7 +31499,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
30584
31499
|
}
|
|
30585
31500
|
</div>
|
|
30586
31501
|
`,
|
|
30587
|
-
styles: [":host{display:block}.rte-field{display:flex;flex-direction:column;gap:6px}.rte-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rte-required{color:#
|
|
31502
|
+
styles: [":host{display:block}.rte-field{display:flex;flex-direction:column;gap:6px}.rte-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rte-required{color:#dc2626;margin-left:2px}.rte-hint-inline{font-size:.75rem;color:#94a3b8;font-weight:400;margin-left:4px}.rte-box{border:1px solid #e2e8f0;border-radius:8px;background:#fff;transition:border-color .15s,box-shadow .15s}.rte-box:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.rte-error .rte-box{border-color:#ef4444}.rte-error .rte-box:focus-within{box-shadow:0 0 0 3px #ef44441f}.rte-disabled .rte-box{opacity:.5;cursor:not-allowed}.rte-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 8px;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:8px 8px 0 0}.rte-divider{width:1px;height:20px;background:#cbd5e1;margin:0 4px}.rte-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:4px;background:none;color:#64748b;cursor:pointer;transition:background .15s,color .15s}.rte-btn svg{width:16px;height:16px}.rte-btn:hover:not(:disabled){background:#e2e8f0;color:#1e293b}.rte-btn:focus-visible,.rte-btn:focus-within{outline:2px solid #3b82f6;outline-offset:1px}.rte-btn.active{background:#dbeafe;color:#2563eb}.rte-btn:disabled,.rte-btn-disabled{cursor:not-allowed;opacity:.5}.rte-menu-wrap{position:relative;display:inline-flex}.rte-menu-btn{width:auto;padding:0 6px;gap:3px}.rte-menu-btn .rte-chevron{width:10px;height:10px;color:#94a3b8;flex-shrink:0}.rte-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:100;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 12px #0000001f;padding:4px;overflow-y:auto;max-height:260px}.rte-font-panel{min-width:180px}.rte-item{display:block;width:100%;text-align:left;padding:5px 10px;font-size:12px;color:#374151;border:none;background:none;border-radius:4px;cursor:pointer;white-space:nowrap}.rte-item:hover{background:#f1f5f9}.rte-item.selected{background:#dbeafe;color:#2563eb;font-weight:600}.rte-group-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;padding:6px 10px 2px}.di-h1{font-size:18px;font-weight:700}.di-h2{font-size:15px;font-weight:600}.di-h3{font-size:13px;font-weight:600}.rte-color{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.rte-editor{padding:12px;outline:none;overflow-y:auto;box-sizing:border-box;font-size:.875rem;line-height:1.6;color:#1e293b;background:#fff;border-radius:0 0 8px 8px;word-break:break-word}.rte-editor[data-empty=true]:before{content:attr(data-placeholder);color:#94a3b8;pointer-events:none;float:left;height:0}.rte-editor ul,.rte-editor ol{padding-left:1.5em;margin:.25em 0}.rte-editor li{margin:.15em 0}.rte-editor h1{font-size:1.75em;font-weight:700;margin:.5em 0 .25em}.rte-editor h2{font-size:1.4em;font-weight:600;margin:.5em 0 .25em}.rte-editor h3{font-size:1.15em;font-weight:600;margin:.5em 0 .25em}.rte-editor a{color:#2563eb;text-decoration:underline}.rte-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.rte-desc-error{color:#dc2626}@media(max-width:480px){.rte-editor{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.rte-btn{width:44px;height:44px}.rte-menu-btn{width:auto;min-width:44px}.rte-divider{height:28px}}\n"]
|
|
30588
31503
|
}]
|
|
30589
31504
|
}],
|
|
30590
31505
|
ctorParameters: () => [],
|
|
@@ -30943,7 +31858,7 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
30943
31858
|
</fieldset>
|
|
30944
31859
|
`,
|
|
30945
31860
|
isInline: true,
|
|
30946
|
-
styles: [":host{display:block}.rm-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.rm-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rm-required{color:#
|
|
31861
|
+
styles: [":host{display:block}.rm-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.rm-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rm-required{color:#dc2626;margin-left:2px}.rm-scroll{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.rm-table{width:100%;border-collapse:collapse;font-size:.875rem}.rm-table th,.rm-table td{padding:8px 12px;border-bottom:1px solid #f1f5f9;text-align:left}.rm-table tbody tr:last-child th,.rm-table tbody tr:last-child td{border-bottom:0}.rm-table thead th{position:sticky;top:0;background:#f8fafc;font-size:.75rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.rm-col,.rm-cell{text-align:center!important;width:1%;white-space:nowrap}.rm-cell ui-radio{display:inline-block}.rm-row-label{font-weight:500;color:#1e293b}.rm-row:hover{background:#f8fafc}.rm-row-missing .rm-row-label{color:#b91c1c}.rm-disabled .rm-scroll{opacity:.6}.rm-error .rm-scroll{border-color:#ef4444}.rm-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.rm-desc-error{color:#dc2626}@media(max-width:480px){.rm-table th,.rm-table td{padding:6px 8px}.rm-table thead th{font-size:.6875rem}}\n"],
|
|
30947
31862
|
dependencies: [{
|
|
30948
31863
|
kind: "component",
|
|
30949
31864
|
type: RadioComponent,
|
|
@@ -31051,7 +31966,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
31051
31966
|
}
|
|
31052
31967
|
</fieldset>
|
|
31053
31968
|
`,
|
|
31054
|
-
styles: [":host{display:block}.rm-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.rm-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rm-required{color:#
|
|
31969
|
+
styles: [":host{display:block}.rm-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.rm-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rm-required{color:#dc2626;margin-left:2px}.rm-scroll{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.rm-table{width:100%;border-collapse:collapse;font-size:.875rem}.rm-table th,.rm-table td{padding:8px 12px;border-bottom:1px solid #f1f5f9;text-align:left}.rm-table tbody tr:last-child th,.rm-table tbody tr:last-child td{border-bottom:0}.rm-table thead th{position:sticky;top:0;background:#f8fafc;font-size:.75rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.rm-col,.rm-cell{text-align:center!important;width:1%;white-space:nowrap}.rm-cell ui-radio{display:inline-block}.rm-row-label{font-weight:500;color:#1e293b}.rm-row:hover{background:#f8fafc}.rm-row-missing .rm-row-label{color:#b91c1c}.rm-disabled .rm-scroll{opacity:.6}.rm-error .rm-scroll{border-color:#ef4444}.rm-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.rm-desc-error{color:#dc2626}@media(max-width:480px){.rm-table th,.rm-table td{padding:6px 8px}.rm-table thead th{font-size:.6875rem}}\n"]
|
|
31055
31970
|
}]
|
|
31056
31971
|
}],
|
|
31057
31972
|
ctorParameters: () => [],
|
|
@@ -31616,7 +32531,7 @@ var SignaturePadComponent = class SignaturePadComponent {
|
|
|
31616
32531
|
</div>
|
|
31617
32532
|
`,
|
|
31618
32533
|
isInline: true,
|
|
31619
|
-
styles: [":host{display:block}.sp-field{display:flex;flex-direction:column;gap:6px}.sp-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sp-pad{position:relative;border:2px solid #d1d5db;border-radius:8px;background:#f9fafb}.sp-error .sp-pad{border-color:#ef4444}.sp-canvas{display:block;width:100%;height:auto;cursor:crosshair;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;border-radius:6px}.sp-canvas:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-disabled .sp-pad{opacity:.5}.sp-disabled .sp-canvas{cursor:not-allowed}.sp-cursor{position:absolute;width:8px;height:8px;border-radius:9999px;pointer-events:none;background:#2563eb;border:2px solid #fff;box-shadow:0 1px 4px #00000059;transform:translate(-50%,-50%)}.sp-cursor.is-drawing{animation:sp-pulse 1s ease-in-out infinite}@keyframes sp-pulse{50%{opacity:.5}}@media(prefers-reduced-motion:reduce){.sp-cursor.is-drawing{animation:none}}.sp-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.sp-desc-error{color:#
|
|
32534
|
+
styles: [":host{display:block}.sp-field{display:flex;flex-direction:column;gap:6px}.sp-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sp-pad{position:relative;border:2px solid #d1d5db;border-radius:8px;background:#f9fafb}.sp-error .sp-pad{border-color:#ef4444}.sp-canvas{display:block;width:100%;height:auto;cursor:crosshair;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;border-radius:6px}.sp-canvas:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-disabled .sp-pad{opacity:.5}.sp-disabled .sp-canvas{cursor:not-allowed}.sp-cursor{position:absolute;width:8px;height:8px;border-radius:9999px;pointer-events:none;background:#2563eb;border:2px solid #fff;box-shadow:0 1px 4px #00000059;transform:translate(-50%,-50%)}.sp-cursor.is-drawing{animation:sp-pulse 1s ease-in-out infinite}@keyframes sp-pulse{50%{opacity:.5}}@media(prefers-reduced-motion:reduce){.sp-cursor.is-drawing{animation:none}}.sp-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.sp-desc-error{color:#dc2626}.sp-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n"],
|
|
31620
32535
|
dependencies: [{
|
|
31621
32536
|
kind: "component",
|
|
31622
32537
|
type: ButtonComponent,
|
|
@@ -31711,7 +32626,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
31711
32626
|
}
|
|
31712
32627
|
</div>
|
|
31713
32628
|
`,
|
|
31714
|
-
styles: [":host{display:block}.sp-field{display:flex;flex-direction:column;gap:6px}.sp-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sp-pad{position:relative;border:2px solid #d1d5db;border-radius:8px;background:#f9fafb}.sp-error .sp-pad{border-color:#ef4444}.sp-canvas{display:block;width:100%;height:auto;cursor:crosshair;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;border-radius:6px}.sp-canvas:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-disabled .sp-pad{opacity:.5}.sp-disabled .sp-canvas{cursor:not-allowed}.sp-cursor{position:absolute;width:8px;height:8px;border-radius:9999px;pointer-events:none;background:#2563eb;border:2px solid #fff;box-shadow:0 1px 4px #00000059;transform:translate(-50%,-50%)}.sp-cursor.is-drawing{animation:sp-pulse 1s ease-in-out infinite}@keyframes sp-pulse{50%{opacity:.5}}@media(prefers-reduced-motion:reduce){.sp-cursor.is-drawing{animation:none}}.sp-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.sp-desc-error{color:#
|
|
32629
|
+
styles: [":host{display:block}.sp-field{display:flex;flex-direction:column;gap:6px}.sp-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sp-pad{position:relative;border:2px solid #d1d5db;border-radius:8px;background:#f9fafb}.sp-error .sp-pad{border-color:#ef4444}.sp-canvas{display:block;width:100%;height:auto;cursor:crosshair;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;border-radius:6px}.sp-canvas:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-disabled .sp-pad{opacity:.5}.sp-disabled .sp-canvas{cursor:not-allowed}.sp-cursor{position:absolute;width:8px;height:8px;border-radius:9999px;pointer-events:none;background:#2563eb;border:2px solid #fff;box-shadow:0 1px 4px #00000059;transform:translate(-50%,-50%)}.sp-cursor.is-drawing{animation:sp-pulse 1s ease-in-out infinite}@keyframes sp-pulse{50%{opacity:.5}}@media(prefers-reduced-motion:reduce){.sp-cursor.is-drawing{animation:none}}.sp-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.sp-desc-error{color:#dc2626}.sp-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n"]
|
|
31715
32630
|
}]
|
|
31716
32631
|
}],
|
|
31717
32632
|
ctorParameters: () => [],
|
|
@@ -33250,7 +34165,7 @@ var ColorInputComponent = class ColorInputComponent {
|
|
|
33250
34165
|
</div>
|
|
33251
34166
|
`,
|
|
33252
34167
|
isInline: true,
|
|
33253
|
-
styles: [":host{display:block}.co-field{display:flex;flex-direction:column;gap:6px}.co-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.co-required{color:#
|
|
34168
|
+
styles: [":host{display:block}.co-field{display:flex;flex-direction:column;gap:6px}.co-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.co-required{color:#dc2626;margin-left:2px}.co-row{display:flex;align-items:center;gap:8px}.co-swatch{position:relative;flex-shrink:0;width:38px;height:38px;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#fff;transition:border-color .15s,box-shadow .15s}.co-swatch:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.co-preview{position:absolute;inset:0;display:block}.co-native{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;-webkit-appearance:none;appearance:none;background:transparent}.co-native::-webkit-color-swatch-wrapper{padding:0}.co-native::-webkit-color-swatch{border:0;border-radius:0}.co-native::-moz-color-swatch{border:0;border-radius:0}.co-text{flex:1;min-width:0;box-sizing:border-box;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.co-text::placeholder{color:#94a3b8}.co-text:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.co-presets{display:flex;flex-wrap:wrap;gap:8px}.co-preset{width:28px;height:28px;padding:0;box-sizing:border-box;cursor:pointer;border:1px solid #cbd5e1;border-radius:50%}.co-preset-selected{box-shadow:0 0 0 2px #fff,0 0 0 4px #3b82f6}.co-preset:focus{outline:2px solid #3b82f6;outline-offset:2px}.co-preset:focus:not(:focus-visible){outline:none}.co-error .co-text,.co-error .co-swatch{border-color:#ef4444}.co-error .co-text:focus{box-shadow:0 0 0 3px #ef44441f}.co-disabled .co-text,.co-disabled .co-swatch,.co-disabled .co-preset{opacity:.5;cursor:not-allowed}.co-disabled .co-native{cursor:not-allowed}.co-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.co-desc-error{color:#dc2626}@media(max-width:480px){.co-text{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.co-text{min-height:44px}.co-swatch,.co-preset{width:44px;height:44px}}\n"],
|
|
33254
34169
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
33255
34170
|
});
|
|
33256
34171
|
}
|
|
@@ -33343,7 +34258,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
33343
34258
|
}
|
|
33344
34259
|
</div>
|
|
33345
34260
|
`,
|
|
33346
|
-
styles: [":host{display:block}.co-field{display:flex;flex-direction:column;gap:6px}.co-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.co-required{color:#
|
|
34261
|
+
styles: [":host{display:block}.co-field{display:flex;flex-direction:column;gap:6px}.co-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.co-required{color:#dc2626;margin-left:2px}.co-row{display:flex;align-items:center;gap:8px}.co-swatch{position:relative;flex-shrink:0;width:38px;height:38px;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#fff;transition:border-color .15s,box-shadow .15s}.co-swatch:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.co-preview{position:absolute;inset:0;display:block}.co-native{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;-webkit-appearance:none;appearance:none;background:transparent}.co-native::-webkit-color-swatch-wrapper{padding:0}.co-native::-webkit-color-swatch{border:0;border-radius:0}.co-native::-moz-color-swatch{border:0;border-radius:0}.co-text{flex:1;min-width:0;box-sizing:border-box;padding:9px 12px;font-size:.875rem;font-family:inherit;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.co-text::placeholder{color:#94a3b8}.co-text:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.co-presets{display:flex;flex-wrap:wrap;gap:8px}.co-preset{width:28px;height:28px;padding:0;box-sizing:border-box;cursor:pointer;border:1px solid #cbd5e1;border-radius:50%}.co-preset-selected{box-shadow:0 0 0 2px #fff,0 0 0 4px #3b82f6}.co-preset:focus{outline:2px solid #3b82f6;outline-offset:2px}.co-preset:focus:not(:focus-visible){outline:none}.co-error .co-text,.co-error .co-swatch{border-color:#ef4444}.co-error .co-text:focus{box-shadow:0 0 0 3px #ef44441f}.co-disabled .co-text,.co-disabled .co-swatch,.co-disabled .co-preset{opacity:.5;cursor:not-allowed}.co-disabled .co-native{cursor:not-allowed}.co-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.co-desc-error{color:#dc2626}@media(max-width:480px){.co-text{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.co-text{min-height:44px}.co-swatch,.co-preset{width:44px;height:44px}}\n"]
|
|
33347
34262
|
}]
|
|
33348
34263
|
}],
|
|
33349
34264
|
ctorParameters: () => [],
|
|
@@ -36419,7 +37334,8 @@ var ImageGalleryDialogComponent = class ImageGalleryDialogComponent {
|
|
|
36419
37334
|
"bodyOverflow",
|
|
36420
37335
|
"dialogTestId",
|
|
36421
37336
|
"hideClose",
|
|
36422
|
-
"closable"
|
|
37337
|
+
"closable",
|
|
37338
|
+
"returnFocusTo"
|
|
36423
37339
|
],
|
|
36424
37340
|
outputs: ["close"]
|
|
36425
37341
|
},
|
|
@@ -36584,6 +37500,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
36584
37500
|
}]
|
|
36585
37501
|
}
|
|
36586
37502
|
});
|
|
36587
|
-
export { ActionBarComponent, AlertComponent, AppShellComponent, AudioPlayerComponent, AvatarComponent, BADGE_VARIANT_STYLES, BadgeComponent, BarRowComponent, BulkMessagePanelComponent, BusinessHoursComponent, ButtonComponent, CalendarComponent, CheckboxComponent, CheckboxTrailingDirective, ChipComponent, ChipGroupComponent, ColorInputComponent, ColumnFilterComponent, ColumnsComponent, ComboboxComponent, ConfirmOutletComponent, ConfirmService, ContactPickerComponent, DROPDOWN_GROUP, DataTableComponent, DateInputComponent, DateRangePickerComponent, DatetimeInputComponent, DetailCardComponent, DiscountSelectorComponent, DividerComponent, DropdownComponent, EmptyStateComponent, ErrorComponent, ErrorStateComponent, FORGEROUTE_CONFIG, FadeComponent, FileInputComponent, FormColSpanDirective, FormComponent, FormRowComponent, FormSectionComponent, HintComponent, IconComponent, ImageComponent, ImageGalleryComponent, ImageGalleryDialogComponent, ImagePreviewComponent, ImageRepositionComponent, ImportExportComponent, KpiCardComponent, LAYOUT_GAP_PX, ListComponent, ListItemComponent, LiveRegionComponent, ModalComponent, MoreMenuComponent, MultiSelectComponent, PHONE_NUMBER_AREA_CODE_LENGTH, PHONE_NUMBER_ZIP_LENGTH, PageComponent, PaginationComponent, PanelInfoListComponent, PdfHotspotComponent, PhoneNumberPickerComponent, PillTabsComponent, ProgressBarComponent, ProgressRingComponent, QrCodeComponent, QuickFilterTabsComponent, RICH_TEXT_OPTIONS, RadioComponent, RadioGroupComponent, RadioMatrixComponent, RadioOptionContentDirective, ReadonlyFieldsetComponent, RichTextEditorComponent, SEMANTIC_BADGE_MAP, SearchInputComponent, SectionHeaderComponent, SelectComponent, ShowComponent, SidePanelComponent, SignaturePadComponent, SkeletonComponent, StackComponent, StarComponent, StepperComponent, TableToolbarComponent, TextComponent, TextInputComponent, TextareaInputComponent, TimeInputComponent, TimelineComponent, ToastComponent, ToastService, ToggleBadgeComponent, ToggleComponent, TooltipDirective, US_STATES, UiFieldValidity, acceptLabel, appShellGroupsStorageKey, autoVariant, buildDefaultSchedule, builtInActionIcon, businessTimeOptions, createFieldReveal, decodeFilterValues, digitsOnly, downloadBlob, encodeFilterValue, encodeFilterValues, errorContextInterceptor, fileMatchesAccept, formatAddress, formatCurrency, formatFileSize, formatIsoDate, formatIsoDateTime, formatTime, getEligibleIds, getEligibleOptions, getErrorMessage, humanReadableMessage, iconPath, isoKey, issueToErrors, maxLengthIssue, normalizeHexColor, parseBizHours, parseIso, parseTime, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours };
|
|
37503
|
+
export { ActionBarComponent, AlertComponent, AppShellComponent, AudioPlayerComponent, AvatarComponent, BADGE_VARIANT_STYLES, BadgeComponent, BarRowComponent, BulkMessagePanelComponent, BusinessHoursComponent, ButtonComponent, CalendarComponent, CheckboxComponent, CheckboxTrailingDirective, ChipComponent, ChipGroupComponent, ColorInputComponent, ColumnFilterComponent, ColumnsComponent, ComboboxComponent, ConfirmOutletComponent, ConfirmService, ContactPickerComponent, DEFAULT_PASSWORD_RULES, DROPDOWN_GROUP, DataTableComponent, DateInputComponent, DateRangePickerComponent, DatetimeInputComponent, DetailCardComponent, DiscountSelectorComponent, DividerComponent, DropdownComponent, EmptyStateComponent, ErrorComponent, ErrorStateComponent, FORGEROUTE_CONFIG, FadeComponent, FileInputComponent, FormColSpanDirective, FormComponent, FormRowComponent, FormSectionComponent, HintComponent, IconComponent, ImageComponent, ImageGalleryComponent, ImageGalleryDialogComponent, ImagePreviewComponent, ImageRepositionComponent, ImportExportComponent, KpiCardComponent, LAYOUT_GAP_PX, ListComponent, ListItemComponent, LiveRegionComponent, ModalComponent, MoreMenuComponent, MultiSelectComponent, PHONE_NUMBER_AREA_CODE_LENGTH, PHONE_NUMBER_ZIP_LENGTH, PageComponent, PaginationComponent, PanelInfoListComponent, PasswordRequirementsComponent, PdfHotspotComponent, PhoneNumberPickerComponent, PillTabsComponent, ProgressBarComponent, ProgressRingComponent, QrCodeComponent, QuickFilterTabsComponent, RICH_TEXT_OPTIONS, RadioComponent, RadioGroupComponent, RadioMatrixComponent, RadioOptionContentDirective, ReadonlyFieldsetComponent, RichTextEditorComponent, SEMANTIC_BADGE_MAP, SearchInputComponent, SectionHeaderComponent, SelectComponent, ShowComponent, SidePanelComponent, SignaturePadComponent, SkeletonComponent, StackComponent, StarComponent, StepperComponent, TableToolbarComponent, TextComponent, TextInputComponent, TextareaInputComponent, TimeInputComponent, TimelineComponent, ToastComponent, ToastService, ToggleBadgeComponent, ToggleComponent, TooltipDirective, US_STATES, UiFieldValidity, acceptLabel, appShellGroupsStorageKey, autoVariant, buildDefaultSchedule, builtInActionIcon, businessTimeOptions, createFieldReveal, decodeFilterValues, digitsOnly, downloadBlob, encodeFilterValue, encodeFilterValues, errorContextInterceptor, fileMatchesAccept, formatAddress, formatCurrency, formatFileSize, formatIsoDate, formatIsoDateTime, formatTime, getEligibleIds, getEligibleOptions, getErrorMessage, humanReadableMessage, iconPath, isoKey, issueToErrors, maxLengthIssue, normalizeHexColor, parseBizHours, parseIso, parseTime, passwordMeetsRules, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours };
|
|
36588
37504
|
|
|
36589
37505
|
//# sourceMappingURL=forgeroute-ui.mjs.map
|