@forgeroute/ui 0.4.45 → 0.4.47
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-stripe.mjs +56 -19
- package/fesm2022/forgeroute-ui-stripe.mjs.map +1 -1
- package/fesm2022/forgeroute-ui.mjs +209 -121
- package/fesm2022/forgeroute-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/forgeroute-ui-stripe.d.ts +11 -0
- package/types/forgeroute-ui.d.ts +60 -16
|
@@ -2106,7 +2106,7 @@ var MoreMenuComponent = class MoreMenuComponent {
|
|
|
2106
2106
|
</div>
|
|
2107
2107
|
`,
|
|
2108
2108
|
isInline: true,
|
|
2109
|
-
styles: [":host{display:inline-block;position:relative}.mm-wrapper{position:relative}.mm-trigger{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:#64748b;cursor:pointer;transition:background .1s,color .1s}.mm-trigger:hover{background:#f1f5f9;color:#334155}.mm-trigger:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.mm-dropdown{position:absolute;right:0;top:calc(100% + 4px);z-index:200;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 16px #0000001a;min-width:160px;overflow-x:hidden;overflow-y:auto;padding:4px;max-width:calc(100vw - 16px);overscroll-behavior:contain;background:linear-gradient(#fff 30%,#fff0) center top / 100% 16px no-repeat local,linear-gradient(#fff0,#fff 70%) center bottom / 100% 16px no-repeat local,radial-gradient(farthest-side at 50% 0,#0f172a38,#0f172a00) center top / 100% 8px no-repeat scroll,radial-gradient(farthest-side at 50% 100%,#0f172a38,#0f172a00) center bottom / 100% 8px no-repeat scroll,#fff}.mm-dropdown.mm-up{top:auto;bottom:calc(100% + 4px)}.mm-dropdown.mm-fixed{position:fixed;left:auto}.mm-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;cursor:pointer;font-size:.875rem;color:#334155;font-family:inherit;text-align:left;border-radius:5px;transition:background .1s;min-height:40px}.mm-item:hover:not(:disabled){background:#f8fafc}.mm-item:disabled{opacity:.4;cursor:default}.mm-item.mm-danger{color:#dc2626}.mm-item.mm-danger:hover:not(:disabled){background:#fef2f2}.mm-item:focus-visible{outline:2px solid #60a5fa;outline-offset:-2px}.mm-icon{flex-shrink:0}@media(max-width:1024px){.mm-trigger{width:36px;height:36px}.mm-item{padding:11px 14px;min-height:40px}}@media(pointer:coarse){.mm-trigger{width:44px;height:44px}}@media(max-width:640px){.mm-trigger{width:44px;height:44px}.mm-item{padding:12px 14px;font-size:.9375rem;min-height:44px}.mm-dropdown{max-height:60vh;overflow-y:auto}}\n"],
|
|
2109
|
+
styles: [":host{display:inline-block;position:relative}.mm-wrapper{position:relative}.mm-trigger{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:#64748b;cursor:pointer;transition:background .1s,color .1s}.mm-trigger:hover{background:#f1f5f9;color:#334155}.mm-trigger:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.mm-dropdown{position:absolute;right:0;top:calc(100% + 4px);z-index:200;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 16px #0000001a;min-width:160px;width:max-content;overflow-x:hidden;overflow-y:auto;padding:4px;max-width:calc(100vw - 16px);overscroll-behavior:contain;background:linear-gradient(#fff 30%,#fff0) center top / 100% 16px no-repeat local,linear-gradient(#fff0,#fff 70%) center bottom / 100% 16px no-repeat local,radial-gradient(farthest-side at 50% 0,#0f172a38,#0f172a00) center top / 100% 8px no-repeat scroll,radial-gradient(farthest-side at 50% 100%,#0f172a38,#0f172a00) center bottom / 100% 8px no-repeat scroll,#fff}.mm-dropdown.mm-up{top:auto;bottom:calc(100% + 4px)}.mm-dropdown.mm-fixed{position:fixed;left:auto}.mm-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;cursor:pointer;font-size:.875rem;color:#334155;font-family:inherit;text-align:left;border-radius:5px;transition:background .1s;min-height:40px}.mm-item:hover:not(:disabled){background:#f8fafc}.mm-item:disabled{opacity:.4;cursor:default}.mm-item.mm-danger{color:#dc2626}.mm-item.mm-danger:hover:not(:disabled){background:#fef2f2}.mm-item:focus-visible{outline:2px solid #60a5fa;outline-offset:-2px}.mm-icon{flex-shrink:0}@media(max-width:1024px){.mm-trigger{width:36px;height:36px}.mm-item{padding:11px 14px;min-height:40px}}@media(pointer:coarse){.mm-trigger{width:44px;height:44px}}@media(max-width:640px){.mm-trigger{width:44px;height:44px}.mm-item{padding:12px 14px;font-size:.9375rem;min-height:44px}.mm-dropdown{max-height:60vh;overflow-y:auto}}\n"],
|
|
2110
2110
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
2111
2111
|
});
|
|
2112
2112
|
}
|
|
@@ -2161,7 +2161,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2161
2161
|
}
|
|
2162
2162
|
</div>
|
|
2163
2163
|
`,
|
|
2164
|
-
styles: [":host{display:inline-block;position:relative}.mm-wrapper{position:relative}.mm-trigger{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:#64748b;cursor:pointer;transition:background .1s,color .1s}.mm-trigger:hover{background:#f1f5f9;color:#334155}.mm-trigger:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.mm-dropdown{position:absolute;right:0;top:calc(100% + 4px);z-index:200;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 16px #0000001a;min-width:160px;overflow-x:hidden;overflow-y:auto;padding:4px;max-width:calc(100vw - 16px);overscroll-behavior:contain;background:linear-gradient(#fff 30%,#fff0) center top / 100% 16px no-repeat local,linear-gradient(#fff0,#fff 70%) center bottom / 100% 16px no-repeat local,radial-gradient(farthest-side at 50% 0,#0f172a38,#0f172a00) center top / 100% 8px no-repeat scroll,radial-gradient(farthest-side at 50% 100%,#0f172a38,#0f172a00) center bottom / 100% 8px no-repeat scroll,#fff}.mm-dropdown.mm-up{top:auto;bottom:calc(100% + 4px)}.mm-dropdown.mm-fixed{position:fixed;left:auto}.mm-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;cursor:pointer;font-size:.875rem;color:#334155;font-family:inherit;text-align:left;border-radius:5px;transition:background .1s;min-height:40px}.mm-item:hover:not(:disabled){background:#f8fafc}.mm-item:disabled{opacity:.4;cursor:default}.mm-item.mm-danger{color:#dc2626}.mm-item.mm-danger:hover:not(:disabled){background:#fef2f2}.mm-item:focus-visible{outline:2px solid #60a5fa;outline-offset:-2px}.mm-icon{flex-shrink:0}@media(max-width:1024px){.mm-trigger{width:36px;height:36px}.mm-item{padding:11px 14px;min-height:40px}}@media(pointer:coarse){.mm-trigger{width:44px;height:44px}}@media(max-width:640px){.mm-trigger{width:44px;height:44px}.mm-item{padding:12px 14px;font-size:.9375rem;min-height:44px}.mm-dropdown{max-height:60vh;overflow-y:auto}}\n"]
|
|
2164
|
+
styles: [":host{display:inline-block;position:relative}.mm-wrapper{position:relative}.mm-trigger{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:#64748b;cursor:pointer;transition:background .1s,color .1s}.mm-trigger:hover{background:#f1f5f9;color:#334155}.mm-trigger:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.mm-dropdown{position:absolute;right:0;top:calc(100% + 4px);z-index:200;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 16px #0000001a;min-width:160px;width:max-content;overflow-x:hidden;overflow-y:auto;padding:4px;max-width:calc(100vw - 16px);overscroll-behavior:contain;background:linear-gradient(#fff 30%,#fff0) center top / 100% 16px no-repeat local,linear-gradient(#fff0,#fff 70%) center bottom / 100% 16px no-repeat local,radial-gradient(farthest-side at 50% 0,#0f172a38,#0f172a00) center top / 100% 8px no-repeat scroll,radial-gradient(farthest-side at 50% 100%,#0f172a38,#0f172a00) center bottom / 100% 8px no-repeat scroll,#fff}.mm-dropdown.mm-up{top:auto;bottom:calc(100% + 4px)}.mm-dropdown.mm-fixed{position:fixed;left:auto}.mm-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;cursor:pointer;font-size:.875rem;color:#334155;font-family:inherit;text-align:left;border-radius:5px;transition:background .1s;min-height:40px}.mm-item:hover:not(:disabled){background:#f8fafc}.mm-item:disabled{opacity:.4;cursor:default}.mm-item.mm-danger{color:#dc2626}.mm-item.mm-danger:hover:not(:disabled){background:#fef2f2}.mm-item:focus-visible{outline:2px solid #60a5fa;outline-offset:-2px}.mm-icon{flex-shrink:0}@media(max-width:1024px){.mm-trigger{width:36px;height:36px}.mm-item{padding:11px 14px;min-height:40px}}@media(pointer:coarse){.mm-trigger{width:44px;height:44px}}@media(max-width:640px){.mm-trigger{width:44px;height:44px}.mm-item{padding:12px 14px;font-size:.9375rem;min-height:44px}.mm-dropdown{max-height:60vh;overflow-y:auto}}\n"]
|
|
2165
2165
|
}]
|
|
2166
2166
|
}],
|
|
2167
2167
|
ctorParameters: () => [],
|
|
@@ -2728,7 +2728,7 @@ var ModalComponent = class ModalComponent {
|
|
|
2728
2728
|
}
|
|
2729
2729
|
`,
|
|
2730
2730
|
isInline: true,
|
|
2731
|
-
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-
|
|
2731
|
+
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-wrap:wrap;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)}}@media(prefers-reduced-motion:reduce){.m-backdrop,.m-modal{animation:none}}\n"],
|
|
2732
2732
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
2733
2733
|
});
|
|
2734
2734
|
}
|
|
@@ -2777,7 +2777,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2777
2777
|
</div>
|
|
2778
2778
|
}
|
|
2779
2779
|
`,
|
|
2780
|
-
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-
|
|
2780
|
+
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-wrap:wrap;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)}}@media(prefers-reduced-motion:reduce){.m-backdrop,.m-modal{animation:none}}\n"]
|
|
2781
2781
|
}]
|
|
2782
2782
|
}],
|
|
2783
2783
|
ctorParameters: () => [],
|
|
@@ -5063,6 +5063,10 @@ var TextInputComponent = class TextInputComponent {
|
|
|
5063
5063
|
this._typed.set(true);
|
|
5064
5064
|
const input = event.target;
|
|
5065
5065
|
const raw = input.value;
|
|
5066
|
+
let caretBefore = null;
|
|
5067
|
+
try {
|
|
5068
|
+
caretBefore = input.selectionStart;
|
|
5069
|
+
} catch {}
|
|
5066
5070
|
let val = this._formatting() ? TextInputComponent._formatPhone(raw) : raw;
|
|
5067
5071
|
if (this.integer()) val = val.replace(/[.eE].*$/, "");
|
|
5068
5072
|
const format = this.formatter();
|
|
@@ -5074,11 +5078,28 @@ var TextInputComponent = class TextInputComponent {
|
|
|
5074
5078
|
const shown = this._value();
|
|
5075
5079
|
if (input.value !== shown) {
|
|
5076
5080
|
input.value = shown;
|
|
5081
|
+
const caret = this._formatting() && !format && caretBefore !== null && caretBefore < raw.length ? TextInputComponent._caretAfterDigits(raw, caretBefore, shown) : shown.length;
|
|
5077
5082
|
try {
|
|
5078
|
-
input.setSelectionRange(
|
|
5083
|
+
input.setSelectionRange(caret, caret);
|
|
5079
5084
|
} catch {}
|
|
5080
5085
|
}
|
|
5081
5086
|
}
|
|
5087
|
+
static _caretAfterDigits(raw, caret, formatted) {
|
|
5088
|
+
let n = (raw.slice(0, caret).match(/\d/g) ?? []).length;
|
|
5089
|
+
const all = raw.replace(/\D/g, "");
|
|
5090
|
+
if (!raw.startsWith("+") && all.length === 11 && all.startsWith("1")) n = Math.max(0, n - 1);
|
|
5091
|
+
let pos = 0;
|
|
5092
|
+
if (n > 0) {
|
|
5093
|
+
let seen = 0;
|
|
5094
|
+
pos = formatted.length;
|
|
5095
|
+
for (let i = 0; i < formatted.length; i++) if (/\d/.test(formatted[i]) && ++seen === n) {
|
|
5096
|
+
pos = i + 1;
|
|
5097
|
+
break;
|
|
5098
|
+
}
|
|
5099
|
+
}
|
|
5100
|
+
if (caret > 0 && !/\d/.test(raw[caret - 1])) while (pos < formatted.length && !/\d/.test(formatted[pos])) pos++;
|
|
5101
|
+
return pos;
|
|
5102
|
+
}
|
|
5082
5103
|
static _parse(text) {
|
|
5083
5104
|
const t = text.trim();
|
|
5084
5105
|
if (!t) return null;
|
|
@@ -5440,7 +5461,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
5440
5461
|
</div>
|
|
5441
5462
|
`,
|
|
5442
5463
|
isInline: true,
|
|
5443
|
-
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ti-label-row>[uiLabelEnd]{margin-left:auto}.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"],
|
|
5464
|
+
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ti-label-row>[uiLabelEnd]{margin-left:auto}.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(pointer:coarse),(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(pointer:coarse),(max-width:480px){.ti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.ti-input{min-height:44px}}\n"],
|
|
5444
5465
|
dependencies: [{
|
|
5445
5466
|
kind: "component",
|
|
5446
5467
|
type: PasswordRequirementsComponent,
|
|
@@ -5541,7 +5562,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5541
5562
|
}
|
|
5542
5563
|
</div>
|
|
5543
5564
|
`,
|
|
5544
|
-
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ti-label-row>[uiLabelEnd]{margin-left:auto}.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"]
|
|
5565
|
+
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ti-label-row>[uiLabelEnd]{margin-left:auto}.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(pointer:coarse),(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(pointer:coarse),(max-width:480px){.ti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.ti-input{min-height:44px}}\n"]
|
|
5545
5566
|
}]
|
|
5546
5567
|
}],
|
|
5547
5568
|
ctorParameters: () => [],
|
|
@@ -7563,7 +7584,7 @@ var SelectComponent = class SelectComponent {
|
|
|
7563
7584
|
</div>
|
|
7564
7585
|
`,
|
|
7565
7586
|
isInline: true,
|
|
7566
|
-
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"],
|
|
7587
|
+
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(pointer:coarse),(max-width:480px){.sl-select{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.sl-select,.sl-select-sm{min-height:44px}}\n"],
|
|
7567
7588
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
7568
7589
|
});
|
|
7569
7590
|
}
|
|
@@ -7633,7 +7654,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
7633
7654
|
}
|
|
7634
7655
|
</div>
|
|
7635
7656
|
`,
|
|
7636
|
-
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"]
|
|
7657
|
+
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(pointer:coarse),(max-width:480px){.sl-select{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.sl-select,.sl-select-sm{min-height:44px}}\n"]
|
|
7637
7658
|
}]
|
|
7638
7659
|
}],
|
|
7639
7660
|
ctorParameters: () => [],
|
|
@@ -9369,10 +9390,16 @@ function exportToCsv(filenamePrefix, headers, rows) {
|
|
|
9369
9390
|
const link = document.createElement("a");
|
|
9370
9391
|
link.href = url;
|
|
9371
9392
|
link.download = `${filenamePrefix}-${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]}.csv`;
|
|
9393
|
+
link.style.display = "none";
|
|
9394
|
+
document.body.appendChild(link);
|
|
9372
9395
|
link.click();
|
|
9396
|
+
document.body.removeChild(link);
|
|
9373
9397
|
setTimeout(() => URL.revokeObjectURL(url), 1e3);
|
|
9374
9398
|
}
|
|
9375
9399
|
var ImportExportComponent = class ImportExportComponent {
|
|
9400
|
+
static {
|
|
9401
|
+
this.nextUid = 0;
|
|
9402
|
+
}
|
|
9376
9403
|
constructor() {
|
|
9377
9404
|
this._configInput = input(null, {
|
|
9378
9405
|
...ngDevMode ? { debugName: "_configInput" } : /* istanbul ignore next */ {},
|
|
@@ -9385,6 +9412,8 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9385
9412
|
this.submit = input(null, ...ngDevMode ? [{ debugName: "submit" }] : /* istanbul ignore next */ []);
|
|
9386
9413
|
this.finished = output();
|
|
9387
9414
|
this.imported = output();
|
|
9415
|
+
this.uid = `ie-${++ImportExportComponent.nextUid}`;
|
|
9416
|
+
this.resultBox = viewChild("resultBox", ...ngDevMode ? [{ debugName: "resultBox" }] : /* istanbul ignore next */ []);
|
|
9388
9417
|
this.http = inject(HttpClient);
|
|
9389
9418
|
this.apiBase = inject(FORGEROUTE_CONFIG, { optional: true })?.baseUrl ?? "/api";
|
|
9390
9419
|
this.toast = inject(ToastService);
|
|
@@ -9457,6 +9486,32 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9457
9486
|
result: 3
|
|
9458
9487
|
}[this.step] ?? 0;
|
|
9459
9488
|
}
|
|
9489
|
+
get stepItems() {
|
|
9490
|
+
const keys = [
|
|
9491
|
+
...this.importSources() ? [["source", "Source"]] : [],
|
|
9492
|
+
["upload", "Upload"],
|
|
9493
|
+
["mapping", "Map Columns"],
|
|
9494
|
+
["preview", "Preview"],
|
|
9495
|
+
["result", "Done"]
|
|
9496
|
+
];
|
|
9497
|
+
const index = this.stepIndex;
|
|
9498
|
+
return keys.map(([key, label], i) => ({
|
|
9499
|
+
key,
|
|
9500
|
+
num: i + 1,
|
|
9501
|
+
label,
|
|
9502
|
+
current: this.step === key,
|
|
9503
|
+
done: key !== "result" && index > i
|
|
9504
|
+
}));
|
|
9505
|
+
}
|
|
9506
|
+
get resultAnnouncement() {
|
|
9507
|
+
const r = this.step === "result" ? this.importResult : null;
|
|
9508
|
+
if (!r) return "";
|
|
9509
|
+
return [
|
|
9510
|
+
`${r.imported} record(s) imported.`,
|
|
9511
|
+
r.errors.length ? `${r.errors.length} row(s) had errors.` : "",
|
|
9512
|
+
r.warnings.length ? `${r.warnings.length} value(s) changed during import.` : ""
|
|
9513
|
+
].filter(Boolean).join(" ");
|
|
9514
|
+
}
|
|
9460
9515
|
get modalTitle() {
|
|
9461
9516
|
if (this.selectedSource && this.selectedSource !== "custom") {
|
|
9462
9517
|
const src = this.importSources()?.find((s) => s.value === this.selectedSource);
|
|
@@ -9492,6 +9547,7 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9492
9547
|
this.cdr.detectChanges();
|
|
9493
9548
|
}
|
|
9494
9549
|
closeImport() {
|
|
9550
|
+
if (this.importing) return;
|
|
9495
9551
|
if (this.step === "result") this.finishImport();
|
|
9496
9552
|
else this.importOpen = false;
|
|
9497
9553
|
}
|
|
@@ -9501,8 +9557,10 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9501
9557
|
this.imported.emit();
|
|
9502
9558
|
}
|
|
9503
9559
|
onFileChange(event) {
|
|
9504
|
-
const
|
|
9560
|
+
const input = event.target;
|
|
9561
|
+
const file = input.files?.[0];
|
|
9505
9562
|
if (!file) return;
|
|
9563
|
+
input.value = "";
|
|
9506
9564
|
this.readCsvFile(file);
|
|
9507
9565
|
}
|
|
9508
9566
|
readCsvFile(file, encoding) {
|
|
@@ -9623,6 +9681,9 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9623
9681
|
return record;
|
|
9624
9682
|
});
|
|
9625
9683
|
}
|
|
9684
|
+
focusResult() {
|
|
9685
|
+
this.resultBox()?.nativeElement.focus();
|
|
9686
|
+
}
|
|
9626
9687
|
stopImportTimer() {
|
|
9627
9688
|
if (this.importTimer !== null) {
|
|
9628
9689
|
clearInterval(this.importTimer);
|
|
@@ -9665,6 +9726,7 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9665
9726
|
this.step = "result";
|
|
9666
9727
|
if (result.imported > 0) this.toast.show(`${result.imported} ${this.config.entityNamePlural.toLowerCase()} imported successfully`);
|
|
9667
9728
|
this.cdr.detectChanges();
|
|
9729
|
+
this.focusResult();
|
|
9668
9730
|
},
|
|
9669
9731
|
error: (err) => {
|
|
9670
9732
|
this.stopImportTimer();
|
|
@@ -9677,6 +9739,7 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9677
9739
|
};
|
|
9678
9740
|
this.step = "result";
|
|
9679
9741
|
this.cdr.detectChanges();
|
|
9742
|
+
this.focusResult();
|
|
9680
9743
|
return;
|
|
9681
9744
|
}
|
|
9682
9745
|
const serverMessage = custom && typeof err?.error?.message === "string" ? err.error.message : "";
|
|
@@ -9750,6 +9813,13 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9750
9813
|
finished: "finished",
|
|
9751
9814
|
imported: "imported"
|
|
9752
9815
|
},
|
|
9816
|
+
viewQueries: [{
|
|
9817
|
+
propertyName: "resultBox",
|
|
9818
|
+
first: true,
|
|
9819
|
+
predicate: ["resultBox"],
|
|
9820
|
+
descendants: true,
|
|
9821
|
+
isSignal: true
|
|
9822
|
+
}],
|
|
9753
9823
|
ngImport: i0,
|
|
9754
9824
|
template: `
|
|
9755
9825
|
<!-- Trigger buttons -->
|
|
@@ -9767,33 +9837,20 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9767
9837
|
</div>
|
|
9768
9838
|
|
|
9769
9839
|
<!-- Import modal -->
|
|
9770
|
-
<ui-modal [open]="importOpen" [title]="modalTitle" maxWidth="640px" (close)="closeImport()">
|
|
9840
|
+
<ui-modal [open]="importOpen" [title]="modalTitle" maxWidth="640px" [closable]="!importing" (close)="closeImport()">
|
|
9771
9841
|
|
|
9772
9842
|
<!-- Step indicator -->
|
|
9773
9843
|
<ol class="ie-steps" aria-label="Import progress">
|
|
9774
|
-
@
|
|
9775
|
-
<li class="ie-step" [class.active]="
|
|
9776
|
-
<span class="ie-step-num" aria-hidden="true">
|
|
9844
|
+
@for (st of stepItems; track st.key) {
|
|
9845
|
+
<li class="ie-step" [class.active]="st.current" [class.done]="st.done" [attr.aria-current]="st.current ? 'step' : null">
|
|
9846
|
+
<span class="ie-step-num" aria-hidden="true">{{ st.num }}</span><span class="ie-step-label">{{ st.label }}</span>@if (st.done) {<span class="ie-sr-only">, completed</span>}@if (st.current) {<span class="ie-sr-only">, current step</span>}
|
|
9777
9847
|
</li>
|
|
9778
|
-
<div class="ie-step-divider" aria-hidden="true"></div>
|
|
9779
9848
|
}
|
|
9780
|
-
<li class="ie-step" [class.active]="step === 'upload'" [class.done]="stepIndex > (importSources() ? 1 : 0)">
|
|
9781
|
-
<span class="ie-step-num" aria-hidden="true">{{ importSources() ? 2 : 1 }}</span><span class="ie-step-label">Upload</span>
|
|
9782
|
-
</li>
|
|
9783
|
-
<div class="ie-step-divider" aria-hidden="true"></div>
|
|
9784
|
-
<li class="ie-step" [class.active]="step === 'mapping'" [class.done]="stepIndex > (importSources() ? 2 : 1)">
|
|
9785
|
-
<span class="ie-step-num" aria-hidden="true">{{ importSources() ? 3 : 2 }}</span><span class="ie-step-label">Map Columns</span>
|
|
9786
|
-
</li>
|
|
9787
|
-
<div class="ie-step-divider" aria-hidden="true"></div>
|
|
9788
|
-
<li class="ie-step" [class.active]="step === 'preview'" [class.done]="stepIndex > (importSources() ? 3 : 2)">
|
|
9789
|
-
<span class="ie-step-num" aria-hidden="true">{{ importSources() ? 4 : 3 }}</span><span class="ie-step-label">Preview</span>
|
|
9790
|
-
</li>
|
|
9791
|
-
<div class="ie-step-divider" aria-hidden="true"></div>
|
|
9792
|
-
<li class="ie-step" [class.active]="step === 'result'">
|
|
9793
|
-
<span class="ie-step-num" aria-hidden="true">{{ importSources() ? 5 : 4 }}</span><span class="ie-step-label">Done</span>
|
|
9794
|
-
</li>
|
|
9795
9849
|
</ol>
|
|
9796
9850
|
|
|
9851
|
+
<!-- Persistent live region: it exists from the moment the window opens, so the result text it receives later is announced reliably -->
|
|
9852
|
+
<div class="ie-sr-only" role="status" aria-live="polite" aria-atomic="true" data-testid="import-announcement">{{ resultAnnouncement }}</div>
|
|
9853
|
+
|
|
9797
9854
|
<!-- Step 1: Source selection -->
|
|
9798
9855
|
@if (step === 'source' && importSources()) {
|
|
9799
9856
|
<div class="ie-source-step">
|
|
@@ -9811,12 +9868,12 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9811
9868
|
<ui-button variant="ghost" size="sm" data-testid="import-template-button" (click)="downloadTemplate()">{{ config.templateLabel || 'Download template' }}</ui-button>
|
|
9812
9869
|
</div>
|
|
9813
9870
|
<label class="ie-dropzone" [class.has-error]="!!fileError">
|
|
9814
|
-
<input type="file" class="ie-file-hidden" accept=".csv,text/csv" aria-label="Choose CSV file to import" (change)="onFileChange($event)" />
|
|
9871
|
+
<input type="file" class="ie-file-hidden" accept=".csv,text/csv" aria-label="Choose CSV file to import" [attr.aria-invalid]="fileError ? 'true' : null" [attr.aria-describedby]="fileError ? uid + '-file-error' : null" (change)="onFileChange($event)" />
|
|
9815
9872
|
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="#94a3b8" stroke-width="1.5" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg>
|
|
9816
9873
|
<span class="ie-dropzone-text">Click to choose a CSV file</span>
|
|
9817
9874
|
<span class="ie-dropzone-sub">Supported: .csv files</span>
|
|
9818
9875
|
</label>
|
|
9819
|
-
@if (fileError) { <p class="ie-error" role="alert">{{ fileError }}</p> }
|
|
9876
|
+
@if (fileError) { <p class="ie-error" role="alert" [id]="uid + '-file-error'">{{ fileError }}</p> }
|
|
9820
9877
|
</div>
|
|
9821
9878
|
}
|
|
9822
9879
|
|
|
@@ -9847,13 +9904,16 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9847
9904
|
<svg class="ie-match-icon" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true"><path d="m20 6-11 11-5-5"/></svg>
|
|
9848
9905
|
}
|
|
9849
9906
|
{{ field.label }}
|
|
9850
|
-
@if (field.required) { <span class="ie-required" aria-
|
|
9907
|
+
@if (field.required) { <span class="ie-required" aria-hidden="true">*</span> }
|
|
9851
9908
|
</span>
|
|
9852
|
-
<
|
|
9853
|
-
|
|
9854
|
-
|
|
9855
|
-
|
|
9856
|
-
|
|
9909
|
+
<div role="cell">
|
|
9910
|
+
<ui-select
|
|
9911
|
+
[ariaLabel]="field.label + ' column' + (field.required ? ', required' : '')"
|
|
9912
|
+
[options]="csvHeaderOptions"
|
|
9913
|
+
[(ngModel)]="columnMapping[field.key]"
|
|
9914
|
+
[error]="field.required && !columnMapping[field.key] ? 'Required' : ''" />
|
|
9915
|
+
</div>
|
|
9916
|
+
<span class="ie-sample" role="cell">{{ getSample(field.key) }}</span>
|
|
9857
9917
|
</div>
|
|
9858
9918
|
}
|
|
9859
9919
|
</div>
|
|
@@ -9871,7 +9931,7 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9871
9931
|
@if (step === 'preview') {
|
|
9872
9932
|
<div class="ie-preview">
|
|
9873
9933
|
<p class="ie-mapping-hint">Preview of the first {{ previewRows.length }} row(s) of {{ csvRows.length }} total. Review before importing.</p>
|
|
9874
|
-
<div class="ie-preview-scroll">
|
|
9934
|
+
<div class="ie-preview-scroll" tabindex="0" role="region" aria-label="Import data preview">
|
|
9875
9935
|
<table class="ie-preview-table" aria-label="Import data preview">
|
|
9876
9936
|
<thead>
|
|
9877
9937
|
<tr>@for (field of mappedFields; track field.key) { <th scope="col">{{ field.label }}</th> }</tr>
|
|
@@ -9894,7 +9954,7 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9894
9954
|
|
|
9895
9955
|
<!-- Step 5: Result -->
|
|
9896
9956
|
@if (step === 'result') {
|
|
9897
|
-
<div class="ie-result" aria-
|
|
9957
|
+
<div class="ie-result" #resultBox tabindex="-1" role="region" aria-label="Import result">
|
|
9898
9958
|
@if (importResult) {
|
|
9899
9959
|
<div class="ie-result-summary">
|
|
9900
9960
|
<div class="ie-result-stat success">
|
|
@@ -9916,24 +9976,28 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
9916
9976
|
</div>
|
|
9917
9977
|
@if (importResult.errors.length > 0) {
|
|
9918
9978
|
<div class="ie-errors-list">
|
|
9919
|
-
<p class="ie-errors-title">Errors:</p>
|
|
9920
|
-
|
|
9921
|
-
|
|
9922
|
-
<
|
|
9923
|
-
|
|
9924
|
-
|
|
9925
|
-
|
|
9979
|
+
<p class="ie-errors-title" [id]="uid + '-errors-title'">Errors:</p>
|
|
9980
|
+
<ul class="ie-result-list" [attr.aria-labelledby]="uid + '-errors-title'">
|
|
9981
|
+
@for (err of importResult.errors; track $index) {
|
|
9982
|
+
<li class="ie-error-row">
|
|
9983
|
+
<span class="ie-error-row-num">Row {{ err.row }}</span>
|
|
9984
|
+
<span>{{ err.message }}</span>
|
|
9985
|
+
</li>
|
|
9986
|
+
}
|
|
9987
|
+
</ul>
|
|
9926
9988
|
</div>
|
|
9927
9989
|
}
|
|
9928
9990
|
@if (importResult.warnings.length > 0) {
|
|
9929
9991
|
<div class="ie-warnings-list">
|
|
9930
|
-
<p class="ie-warnings-title">Imported with changes:</p>
|
|
9931
|
-
|
|
9932
|
-
|
|
9933
|
-
<
|
|
9934
|
-
|
|
9935
|
-
|
|
9936
|
-
|
|
9992
|
+
<p class="ie-warnings-title" [id]="uid + '-warnings-title'">Imported with changes:</p>
|
|
9993
|
+
<ul class="ie-result-list" [attr.aria-labelledby]="uid + '-warnings-title'">
|
|
9994
|
+
@for (w of importResult.warnings; track $index) {
|
|
9995
|
+
<li class="ie-warning-row">
|
|
9996
|
+
<span class="ie-warning-row-num">Row {{ w.row }}</span>
|
|
9997
|
+
<span>{{ w.message }}</span>
|
|
9998
|
+
</li>
|
|
9999
|
+
}
|
|
10000
|
+
</ul>
|
|
9937
10001
|
</div>
|
|
9938
10002
|
}
|
|
9939
10003
|
}
|
|
@@ -10000,7 +10064,7 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
10000
10064
|
</ui-modal>
|
|
10001
10065
|
`,
|
|
10002
10066
|
isInline: true,
|
|
10003
|
-
styles: [".ie-actions{display:flex;gap:8px}.ie-steps{display:flex;align-items:center;margin-bottom:24px;gap:0;list-style:none;padding:0}.ie-step{display:flex;align-items:center;gap:6px;flex-shrink:0}.ie-step-num{width:24px;height:24px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ie-step-label{font-size:.8125rem;color:#64748b;font-weight:500}.ie-step.active .ie-step-num{background:#3b82f6;color:#fff}.ie-step.active .ie-step-label{color:#1e293b;font-weight:600}.ie-step.done .ie-step-num{background:#22c55e;color:#fff}.ie-step.done .ie-step-label{color:#64748b}.ie-step-
|
|
10067
|
+
styles: [".ie-actions{display:flex;gap:8px}.ie-steps{display:flex;align-items:center;margin-bottom:24px;gap:0;list-style:none;padding:0}.ie-step{display:flex;align-items:center;gap:6px;flex-shrink:0}.ie-step-num{width:24px;height:24px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ie-step-label{font-size:.8125rem;color:#64748b;font-weight:500}.ie-step.active .ie-step-num{background:#3b82f6;color:#fff}.ie-step.active .ie-step-label{color:#1e293b;font-weight:600}.ie-step.done .ie-step-num{background:#22c55e;color:#fff}.ie-step.done .ie-step-label{color:#64748b}.ie-step:not(:last-child){flex:1 1 auto}.ie-step:not(:last-child):after{content:\"\";flex:1;height:1px;background:#e2e8f0;margin:0 8px;min-width:16px}.ie-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ie-source-step{display:flex;flex-direction:column;gap:16px}.ie-upload-area{display:flex;flex-direction:column;gap:12px}.ie-template-hint{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.875rem;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 14px}.ie-file-hidden{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;overflow:hidden;cursor:pointer}.ie-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 24px;border:2px dashed #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:focus-within{outline:2px solid #3b82f6;outline-offset:2px}.ie-dropzone.has-error{border-color:#ef4444}.ie-dropzone-text{font-size:.9375rem;font-weight:600;color:#1e293b}.ie-dropzone-sub{font-size:.8125rem;color:#64748b}.ie-mapping{display:flex;flex-direction:column;gap:12px}.ie-mapping-hint{font-size:.875rem;color:#64748b;margin:0}.ie-mapping-success{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;font-size:.875rem;color:#15803d}.ie-mapping-success svg{flex-shrink:0;margin-top:1px;color:#16a34a}.ie-mapping-unmatched{display:flex;align-items:flex-start;gap:6px;font-size:.8125rem;color:#64748b;margin:0;padding-top:4px}.ie-mapping-unmatched svg{flex-shrink:0;margin-top:1px}.ie-mapping-unmatched em{font-style:normal;color:#475569}.ie-mapping-table{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.ie-mapping-header{display:grid;grid-template-columns:1fr 1fr 1fr;padding:8px 12px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase}.ie-mapping-row{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;padding:8px 12px;border-bottom:1px solid #f1f5f9;gap:8px}.ie-mapping-row:last-child{border-bottom:none}.ie-mapping-row.ie-mapping-row--required-missing{background:#fff7ed}.ie-mapping-row.ie-mapping-row--required-missing .ie-field-label{color:#c2410c}.ie-match-icon{color:#16a34a;margin-right:4px;vertical-align:-1px}.ie-field-label{display:flex;align-items:center;font-size:.875rem;color:#1e293b;font-weight:500}.ie-required{color:#dc2626;margin-left:2px}.ie-sample{font-size:.8125rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-preview{display:flex;flex-direction:column;gap:12px}.ie-preview-scroll{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.ie-preview-scroll:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.ie-result:focus{outline:none}.ie-result-list{list-style:none;margin:0;padding:0}.ie-preview-table{width:100%;border-collapse:collapse;font-size:.8125rem}.ie-preview-table th{background:#f8fafc;padding:8px 12px;text-align:left;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;border-bottom:1px solid #e2e8f0;white-space:nowrap}.ie-preview-table td{padding:7px 12px;color:#1e293b;border-bottom:1px solid #f1f5f9;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-preview-table tr:last-child td{border-bottom:none}.ie-result{display:flex;flex-direction:column;gap:16px}.ie-result-summary{display:flex;flex-direction:column;gap:8px}.ie-result-stat{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;font-size:.9375rem}.ie-result-stat.success{background:#f0fdf4;color:#15803d}.ie-result-stat.success svg{stroke:#22c55e}.ie-result-stat.error{background:#fef2f2;color:#b91c1c}.ie-result-stat.error svg{stroke:#ef4444}.ie-result-stat.warning{background:#fffbeb;color:#b45309}.ie-result-stat.warning svg{stroke:#f59e0b}.ie-progress{margin-top:14px}.ie-progress-track{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden;position:relative}.ie-progress-bar{position:absolute;inset:0 auto 0 0;width:35%;border-radius:999px;background:#2563eb;animation:ie-progress-slide 1.2s ease-in-out infinite}.ie-progress-text{margin:8px 0 0;font-size:.8125rem;color:#475569}@keyframes ie-progress-slide{0%{left:-35%}to{left:100%}}@media(prefers-reduced-motion:reduce){.ie-progress-bar{animation:none;width:100%;opacity:.5}}.ie-errors-list{border:1px solid #fecaca;border-radius:8px;overflow:hidden}.ie-errors-title{font-size:.8125rem;font-weight:600;color:#b91c1c;padding:8px 12px;background:#fef2f2;margin:0;border-bottom:1px solid #fecaca}.ie-error-row{display:flex;gap:12px;padding:7px 12px;border-bottom:1px solid #fff1f2;font-size:.8125rem;color:#374151}.ie-error-row:last-child{border-bottom:none}.ie-error-row-num{font-weight:600;color:#b91c1c;flex-shrink:0}.ie-warnings-list{border:1px solid #fde68a;border-radius:8px;overflow:hidden}.ie-warnings-title{font-size:.8125rem;font-weight:600;color:#b45309;padding:8px 12px;background:#fffbeb;margin:0;border-bottom:1px solid #fde68a}.ie-warning-row{display:flex;gap:12px;padding:7px 12px;border-bottom:1px solid #fef3c7;font-size:.8125rem;color:#374151}.ie-warning-row:last-child{border-bottom:none}.ie-warning-row-num{font-weight:600;color:#b45309;flex-shrink:0}.ie-error{font-size:.875rem;color:#dc2626;margin:0}.ie-footer-right{display:flex;gap:8px;align-items:center}@media(max-width:600px){.ie-step-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ie-dropzone{padding:24px 16px}.ie-mapping-header{grid-template-columns:1fr 1fr}.ie-mapping-header span:last-child{display:none}.ie-mapping-row{grid-template-columns:1fr 1fr}.ie-mapping-row .ie-sample{display:none}}\n"],
|
|
10004
10068
|
dependencies: [
|
|
10005
10069
|
{
|
|
10006
10070
|
kind: "ngmodule",
|
|
@@ -10143,33 +10207,20 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10143
10207
|
</div>
|
|
10144
10208
|
|
|
10145
10209
|
<!-- Import modal -->
|
|
10146
|
-
<ui-modal [open]="importOpen" [title]="modalTitle" maxWidth="640px" (close)="closeImport()">
|
|
10210
|
+
<ui-modal [open]="importOpen" [title]="modalTitle" maxWidth="640px" [closable]="!importing" (close)="closeImport()">
|
|
10147
10211
|
|
|
10148
10212
|
<!-- Step indicator -->
|
|
10149
10213
|
<ol class="ie-steps" aria-label="Import progress">
|
|
10150
|
-
@
|
|
10151
|
-
<li class="ie-step" [class.active]="
|
|
10152
|
-
<span class="ie-step-num" aria-hidden="true">
|
|
10214
|
+
@for (st of stepItems; track st.key) {
|
|
10215
|
+
<li class="ie-step" [class.active]="st.current" [class.done]="st.done" [attr.aria-current]="st.current ? 'step' : null">
|
|
10216
|
+
<span class="ie-step-num" aria-hidden="true">{{ st.num }}</span><span class="ie-step-label">{{ st.label }}</span>@if (st.done) {<span class="ie-sr-only">, completed</span>}@if (st.current) {<span class="ie-sr-only">, current step</span>}
|
|
10153
10217
|
</li>
|
|
10154
|
-
<div class="ie-step-divider" aria-hidden="true"></div>
|
|
10155
10218
|
}
|
|
10156
|
-
<li class="ie-step" [class.active]="step === 'upload'" [class.done]="stepIndex > (importSources() ? 1 : 0)">
|
|
10157
|
-
<span class="ie-step-num" aria-hidden="true">{{ importSources() ? 2 : 1 }}</span><span class="ie-step-label">Upload</span>
|
|
10158
|
-
</li>
|
|
10159
|
-
<div class="ie-step-divider" aria-hidden="true"></div>
|
|
10160
|
-
<li class="ie-step" [class.active]="step === 'mapping'" [class.done]="stepIndex > (importSources() ? 2 : 1)">
|
|
10161
|
-
<span class="ie-step-num" aria-hidden="true">{{ importSources() ? 3 : 2 }}</span><span class="ie-step-label">Map Columns</span>
|
|
10162
|
-
</li>
|
|
10163
|
-
<div class="ie-step-divider" aria-hidden="true"></div>
|
|
10164
|
-
<li class="ie-step" [class.active]="step === 'preview'" [class.done]="stepIndex > (importSources() ? 3 : 2)">
|
|
10165
|
-
<span class="ie-step-num" aria-hidden="true">{{ importSources() ? 4 : 3 }}</span><span class="ie-step-label">Preview</span>
|
|
10166
|
-
</li>
|
|
10167
|
-
<div class="ie-step-divider" aria-hidden="true"></div>
|
|
10168
|
-
<li class="ie-step" [class.active]="step === 'result'">
|
|
10169
|
-
<span class="ie-step-num" aria-hidden="true">{{ importSources() ? 5 : 4 }}</span><span class="ie-step-label">Done</span>
|
|
10170
|
-
</li>
|
|
10171
10219
|
</ol>
|
|
10172
10220
|
|
|
10221
|
+
<!-- Persistent live region: it exists from the moment the window opens, so the result text it receives later is announced reliably -->
|
|
10222
|
+
<div class="ie-sr-only" role="status" aria-live="polite" aria-atomic="true" data-testid="import-announcement">{{ resultAnnouncement }}</div>
|
|
10223
|
+
|
|
10173
10224
|
<!-- Step 1: Source selection -->
|
|
10174
10225
|
@if (step === 'source' && importSources()) {
|
|
10175
10226
|
<div class="ie-source-step">
|
|
@@ -10187,12 +10238,12 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10187
10238
|
<ui-button variant="ghost" size="sm" data-testid="import-template-button" (click)="downloadTemplate()">{{ config.templateLabel || 'Download template' }}</ui-button>
|
|
10188
10239
|
</div>
|
|
10189
10240
|
<label class="ie-dropzone" [class.has-error]="!!fileError">
|
|
10190
|
-
<input type="file" class="ie-file-hidden" accept=".csv,text/csv" aria-label="Choose CSV file to import" (change)="onFileChange($event)" />
|
|
10241
|
+
<input type="file" class="ie-file-hidden" accept=".csv,text/csv" aria-label="Choose CSV file to import" [attr.aria-invalid]="fileError ? 'true' : null" [attr.aria-describedby]="fileError ? uid + '-file-error' : null" (change)="onFileChange($event)" />
|
|
10191
10242
|
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="#94a3b8" stroke-width="1.5" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg>
|
|
10192
10243
|
<span class="ie-dropzone-text">Click to choose a CSV file</span>
|
|
10193
10244
|
<span class="ie-dropzone-sub">Supported: .csv files</span>
|
|
10194
10245
|
</label>
|
|
10195
|
-
@if (fileError) { <p class="ie-error" role="alert">{{ fileError }}</p> }
|
|
10246
|
+
@if (fileError) { <p class="ie-error" role="alert" [id]="uid + '-file-error'">{{ fileError }}</p> }
|
|
10196
10247
|
</div>
|
|
10197
10248
|
}
|
|
10198
10249
|
|
|
@@ -10223,13 +10274,16 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10223
10274
|
<svg class="ie-match-icon" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true"><path d="m20 6-11 11-5-5"/></svg>
|
|
10224
10275
|
}
|
|
10225
10276
|
{{ field.label }}
|
|
10226
|
-
@if (field.required) { <span class="ie-required" aria-
|
|
10277
|
+
@if (field.required) { <span class="ie-required" aria-hidden="true">*</span> }
|
|
10227
10278
|
</span>
|
|
10228
|
-
<
|
|
10229
|
-
|
|
10230
|
-
|
|
10231
|
-
|
|
10232
|
-
|
|
10279
|
+
<div role="cell">
|
|
10280
|
+
<ui-select
|
|
10281
|
+
[ariaLabel]="field.label + ' column' + (field.required ? ', required' : '')"
|
|
10282
|
+
[options]="csvHeaderOptions"
|
|
10283
|
+
[(ngModel)]="columnMapping[field.key]"
|
|
10284
|
+
[error]="field.required && !columnMapping[field.key] ? 'Required' : ''" />
|
|
10285
|
+
</div>
|
|
10286
|
+
<span class="ie-sample" role="cell">{{ getSample(field.key) }}</span>
|
|
10233
10287
|
</div>
|
|
10234
10288
|
}
|
|
10235
10289
|
</div>
|
|
@@ -10247,7 +10301,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10247
10301
|
@if (step === 'preview') {
|
|
10248
10302
|
<div class="ie-preview">
|
|
10249
10303
|
<p class="ie-mapping-hint">Preview of the first {{ previewRows.length }} row(s) of {{ csvRows.length }} total. Review before importing.</p>
|
|
10250
|
-
<div class="ie-preview-scroll">
|
|
10304
|
+
<div class="ie-preview-scroll" tabindex="0" role="region" aria-label="Import data preview">
|
|
10251
10305
|
<table class="ie-preview-table" aria-label="Import data preview">
|
|
10252
10306
|
<thead>
|
|
10253
10307
|
<tr>@for (field of mappedFields; track field.key) { <th scope="col">{{ field.label }}</th> }</tr>
|
|
@@ -10270,7 +10324,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10270
10324
|
|
|
10271
10325
|
<!-- Step 5: Result -->
|
|
10272
10326
|
@if (step === 'result') {
|
|
10273
|
-
<div class="ie-result" aria-
|
|
10327
|
+
<div class="ie-result" #resultBox tabindex="-1" role="region" aria-label="Import result">
|
|
10274
10328
|
@if (importResult) {
|
|
10275
10329
|
<div class="ie-result-summary">
|
|
10276
10330
|
<div class="ie-result-stat success">
|
|
@@ -10292,24 +10346,28 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10292
10346
|
</div>
|
|
10293
10347
|
@if (importResult.errors.length > 0) {
|
|
10294
10348
|
<div class="ie-errors-list">
|
|
10295
|
-
<p class="ie-errors-title">Errors:</p>
|
|
10296
|
-
|
|
10297
|
-
|
|
10298
|
-
<
|
|
10299
|
-
|
|
10300
|
-
|
|
10301
|
-
|
|
10349
|
+
<p class="ie-errors-title" [id]="uid + '-errors-title'">Errors:</p>
|
|
10350
|
+
<ul class="ie-result-list" [attr.aria-labelledby]="uid + '-errors-title'">
|
|
10351
|
+
@for (err of importResult.errors; track $index) {
|
|
10352
|
+
<li class="ie-error-row">
|
|
10353
|
+
<span class="ie-error-row-num">Row {{ err.row }}</span>
|
|
10354
|
+
<span>{{ err.message }}</span>
|
|
10355
|
+
</li>
|
|
10356
|
+
}
|
|
10357
|
+
</ul>
|
|
10302
10358
|
</div>
|
|
10303
10359
|
}
|
|
10304
10360
|
@if (importResult.warnings.length > 0) {
|
|
10305
10361
|
<div class="ie-warnings-list">
|
|
10306
|
-
<p class="ie-warnings-title">Imported with changes:</p>
|
|
10307
|
-
|
|
10308
|
-
|
|
10309
|
-
<
|
|
10310
|
-
|
|
10311
|
-
|
|
10312
|
-
|
|
10362
|
+
<p class="ie-warnings-title" [id]="uid + '-warnings-title'">Imported with changes:</p>
|
|
10363
|
+
<ul class="ie-result-list" [attr.aria-labelledby]="uid + '-warnings-title'">
|
|
10364
|
+
@for (w of importResult.warnings; track $index) {
|
|
10365
|
+
<li class="ie-warning-row">
|
|
10366
|
+
<span class="ie-warning-row-num">Row {{ w.row }}</span>
|
|
10367
|
+
<span>{{ w.message }}</span>
|
|
10368
|
+
</li>
|
|
10369
|
+
}
|
|
10370
|
+
</ul>
|
|
10313
10371
|
</div>
|
|
10314
10372
|
}
|
|
10315
10373
|
}
|
|
@@ -10375,7 +10433,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10375
10433
|
|
|
10376
10434
|
</ui-modal>
|
|
10377
10435
|
`,
|
|
10378
|
-
styles: [".ie-actions{display:flex;gap:8px}.ie-steps{display:flex;align-items:center;margin-bottom:24px;gap:0;list-style:none;padding:0}.ie-step{display:flex;align-items:center;gap:6px;flex-shrink:0}.ie-step-num{width:24px;height:24px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ie-step-label{font-size:.8125rem;color:#64748b;font-weight:500}.ie-step.active .ie-step-num{background:#3b82f6;color:#fff}.ie-step.active .ie-step-label{color:#1e293b;font-weight:600}.ie-step.done .ie-step-num{background:#22c55e;color:#fff}.ie-step.done .ie-step-label{color:#64748b}.ie-step-
|
|
10436
|
+
styles: [".ie-actions{display:flex;gap:8px}.ie-steps{display:flex;align-items:center;margin-bottom:24px;gap:0;list-style:none;padding:0}.ie-step{display:flex;align-items:center;gap:6px;flex-shrink:0}.ie-step-num{width:24px;height:24px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ie-step-label{font-size:.8125rem;color:#64748b;font-weight:500}.ie-step.active .ie-step-num{background:#3b82f6;color:#fff}.ie-step.active .ie-step-label{color:#1e293b;font-weight:600}.ie-step.done .ie-step-num{background:#22c55e;color:#fff}.ie-step.done .ie-step-label{color:#64748b}.ie-step:not(:last-child){flex:1 1 auto}.ie-step:not(:last-child):after{content:\"\";flex:1;height:1px;background:#e2e8f0;margin:0 8px;min-width:16px}.ie-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ie-source-step{display:flex;flex-direction:column;gap:16px}.ie-upload-area{display:flex;flex-direction:column;gap:12px}.ie-template-hint{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.875rem;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 14px}.ie-file-hidden{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;overflow:hidden;cursor:pointer}.ie-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 24px;border:2px dashed #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:focus-within{outline:2px solid #3b82f6;outline-offset:2px}.ie-dropzone.has-error{border-color:#ef4444}.ie-dropzone-text{font-size:.9375rem;font-weight:600;color:#1e293b}.ie-dropzone-sub{font-size:.8125rem;color:#64748b}.ie-mapping{display:flex;flex-direction:column;gap:12px}.ie-mapping-hint{font-size:.875rem;color:#64748b;margin:0}.ie-mapping-success{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;font-size:.875rem;color:#15803d}.ie-mapping-success svg{flex-shrink:0;margin-top:1px;color:#16a34a}.ie-mapping-unmatched{display:flex;align-items:flex-start;gap:6px;font-size:.8125rem;color:#64748b;margin:0;padding-top:4px}.ie-mapping-unmatched svg{flex-shrink:0;margin-top:1px}.ie-mapping-unmatched em{font-style:normal;color:#475569}.ie-mapping-table{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.ie-mapping-header{display:grid;grid-template-columns:1fr 1fr 1fr;padding:8px 12px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase}.ie-mapping-row{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;padding:8px 12px;border-bottom:1px solid #f1f5f9;gap:8px}.ie-mapping-row:last-child{border-bottom:none}.ie-mapping-row.ie-mapping-row--required-missing{background:#fff7ed}.ie-mapping-row.ie-mapping-row--required-missing .ie-field-label{color:#c2410c}.ie-match-icon{color:#16a34a;margin-right:4px;vertical-align:-1px}.ie-field-label{display:flex;align-items:center;font-size:.875rem;color:#1e293b;font-weight:500}.ie-required{color:#dc2626;margin-left:2px}.ie-sample{font-size:.8125rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-preview{display:flex;flex-direction:column;gap:12px}.ie-preview-scroll{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.ie-preview-scroll:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.ie-result:focus{outline:none}.ie-result-list{list-style:none;margin:0;padding:0}.ie-preview-table{width:100%;border-collapse:collapse;font-size:.8125rem}.ie-preview-table th{background:#f8fafc;padding:8px 12px;text-align:left;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;border-bottom:1px solid #e2e8f0;white-space:nowrap}.ie-preview-table td{padding:7px 12px;color:#1e293b;border-bottom:1px solid #f1f5f9;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-preview-table tr:last-child td{border-bottom:none}.ie-result{display:flex;flex-direction:column;gap:16px}.ie-result-summary{display:flex;flex-direction:column;gap:8px}.ie-result-stat{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;font-size:.9375rem}.ie-result-stat.success{background:#f0fdf4;color:#15803d}.ie-result-stat.success svg{stroke:#22c55e}.ie-result-stat.error{background:#fef2f2;color:#b91c1c}.ie-result-stat.error svg{stroke:#ef4444}.ie-result-stat.warning{background:#fffbeb;color:#b45309}.ie-result-stat.warning svg{stroke:#f59e0b}.ie-progress{margin-top:14px}.ie-progress-track{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden;position:relative}.ie-progress-bar{position:absolute;inset:0 auto 0 0;width:35%;border-radius:999px;background:#2563eb;animation:ie-progress-slide 1.2s ease-in-out infinite}.ie-progress-text{margin:8px 0 0;font-size:.8125rem;color:#475569}@keyframes ie-progress-slide{0%{left:-35%}to{left:100%}}@media(prefers-reduced-motion:reduce){.ie-progress-bar{animation:none;width:100%;opacity:.5}}.ie-errors-list{border:1px solid #fecaca;border-radius:8px;overflow:hidden}.ie-errors-title{font-size:.8125rem;font-weight:600;color:#b91c1c;padding:8px 12px;background:#fef2f2;margin:0;border-bottom:1px solid #fecaca}.ie-error-row{display:flex;gap:12px;padding:7px 12px;border-bottom:1px solid #fff1f2;font-size:.8125rem;color:#374151}.ie-error-row:last-child{border-bottom:none}.ie-error-row-num{font-weight:600;color:#b91c1c;flex-shrink:0}.ie-warnings-list{border:1px solid #fde68a;border-radius:8px;overflow:hidden}.ie-warnings-title{font-size:.8125rem;font-weight:600;color:#b45309;padding:8px 12px;background:#fffbeb;margin:0;border-bottom:1px solid #fde68a}.ie-warning-row{display:flex;gap:12px;padding:7px 12px;border-bottom:1px solid #fef3c7;font-size:.8125rem;color:#374151}.ie-warning-row:last-child{border-bottom:none}.ie-warning-row-num{font-weight:600;color:#b45309;flex-shrink:0}.ie-error{font-size:.875rem;color:#dc2626;margin:0}.ie-footer-right{display:flex;gap:8px;align-items:center}@media(max-width:600px){.ie-step-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ie-dropzone{padding:24px 16px}.ie-mapping-header{grid-template-columns:1fr 1fr}.ie-mapping-header span:last-child{display:none}.ie-mapping-row{grid-template-columns:1fr 1fr}.ie-mapping-row .ie-sample{display:none}}\n"]
|
|
10379
10437
|
}]
|
|
10380
10438
|
}],
|
|
10381
10439
|
ctorParameters: () => [],
|
|
@@ -10435,6 +10493,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10435
10493
|
imported: [{
|
|
10436
10494
|
type: i0.Output,
|
|
10437
10495
|
args: ["imported"]
|
|
10496
|
+
}],
|
|
10497
|
+
resultBox: [{
|
|
10498
|
+
type: i0.ViewChild,
|
|
10499
|
+
args: ["resultBox", { isSignal: true }]
|
|
10438
10500
|
}]
|
|
10439
10501
|
}
|
|
10440
10502
|
});
|
|
@@ -13449,7 +13511,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
13449
13511
|
</div>
|
|
13450
13512
|
`,
|
|
13451
13513
|
isInline: true,
|
|
13452
|
-
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#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;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#64748b;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 36px 0 12px;font-family:inherit;font-size:1rem;color:#1e293b;border:1px solid #e2e8f0;border-radius:8px;-webkit-appearance:none;appearance:none;background:#fff url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E\") no-repeat right 12px center}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;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}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"],
|
|
13514
|
+
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions td.dt-td-actions:focus-within,.dt-sticky-actions td.dt-td-actions:has(.mm-dropdown){z-index:2}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#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;flex-wrap:nowrap;flex-shrink:0;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 1 100%}.dt-bulk-actions{flex:1 1 auto;width:auto}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#64748b;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 36px 0 12px;font-family:inherit;font-size:1rem;color:#1e293b;border:1px solid #e2e8f0;border-radius:8px;-webkit-appearance:none;appearance:none;background:#fff url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E\") no-repeat right 12px center}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"],
|
|
13453
13515
|
dependencies: [
|
|
13454
13516
|
{
|
|
13455
13517
|
kind: "directive",
|
|
@@ -14517,7 +14579,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14517
14579
|
}
|
|
14518
14580
|
</div>
|
|
14519
14581
|
`,
|
|
14520
|
-
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#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;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#64748b;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 36px 0 12px;font-family:inherit;font-size:1rem;color:#1e293b;border:1px solid #e2e8f0;border-radius:8px;-webkit-appearance:none;appearance:none;background:#fff url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E\") no-repeat right 12px center}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;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}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"]
|
|
14582
|
+
styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0}.dt-host{display:flex;flex-direction:column;height:100%;min-height:0}.dt-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;position:relative;z-index:10}.dt-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.dt-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.dt-title{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;overflow-wrap:anywhere}.dt-sk-shimmer{position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-shimmer:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}@keyframes dt-shimmer{to{transform:translate(200%)}}.dt-sk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dt-sk-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dt-sk-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dt-sk-search{display:flex;align-items:center;gap:10px;width:380px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;box-sizing:border-box}.dt-sk-search-icon{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dt-sk-search-text{flex:1;height:11px;border-radius:4px}.dt-sk-tab-strip{display:flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:8px}.dt-sk-tab{height:28px;width:70px;border-radius:6px}.dt-sk-icon-btn{width:32px;height:32px;border-radius:6px}.dt-skeleton{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dt-sk-header{display:flex;gap:24px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dt-sk-row{display:flex;gap:24px;padding:13px 16px;border-bottom:1px solid #f1f5f9}.dt-sk-row:last-child{border-bottom:none}.dt-sk-cell{flex:1;height:13px;border-radius:4px;position:relative;overflow:hidden;background:#f1f5f9}.dt-sk-cell:first-child{max-width:100px}.dt-sk-cell:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.65) 50%,transparent 75%);transform:translate(-100%);animation:dt-shimmer 1.4s ease-in-out infinite}.dt-sk-head{height:10px}.dt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px 10px 0 0}.dt-sk-reload-row td{padding:10px 14px;border-bottom:1px solid #f1f5f9}table{width:100%;border-collapse:collapse;font-size:.875rem}thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}thead{position:sticky;top:0;z-index:2}th{padding:10px 14px;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;text-align:center;background:#f8fafc}th:last-child{border-right:none}th.dt-th-sorted{background:#f1f5f9}th.dt-th-actions{width:48px}.dt-th-inner{display:flex;align-items:center;justify-content:center;gap:4px}.dt-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:inherit;font-weight:inherit;color:inherit;font-family:inherit;padding:0;text-transform:inherit;letter-spacing:inherit}.dt-sort-btn:hover{color:#1e293b}.dt-sort-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px;border-radius:2px}@media(pointer:coarse){.dt-sort-btn{position:relative}.dt-sort-btn:after{content:\"\";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}}.dt-sort-icon{transition:transform .15s}.dt-sort-desc{transform:rotate(180deg)}.dt-sort-inactive{opacity:.4}tbody tr{border-bottom:1px solid #f1f5f9;background:#fff;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f8fafc}.dt-row-clickable{cursor:pointer}.dt-row-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}td{padding:10px 14px;color:#334155;vertical-align:middle;white-space:nowrap;border-right:1px solid #f1f5f9}td:last-child{border-right:none}.dt-td-actions{text-align:center;padding:6px 8px}.dt-sticky-actions th.dt-th-actions,.dt-sticky-actions td.dt-td-actions{position:sticky;right:0;box-shadow:-1px 0 #e2e8f0}.dt-sticky-actions th.dt-th-actions{z-index:3;background:#f8fafc}.dt-sticky-actions td.dt-td-actions{z-index:1;background:#fff}.dt-sticky-actions td.dt-td-actions:focus-within,.dt-sticky-actions td.dt-td-actions:has(.mm-dropdown){z-index:2}.dt-sticky-actions tbody tr:hover td.dt-td-actions{background:#f8fafc}.dt-sticky-actions tbody tr.dt-row-selected td.dt-td-actions{background:#eff6ff}.dt-sticky-actions tbody tr.dt-row-selected:hover td.dt-td-actions{background:#dbeafe}.dt-td-width{overflow:hidden;text-overflow:ellipsis}.dt-img{display:inline-block;vertical-align:middle;object-fit:cover;border:1px solid #e2e8f0;background:#f1f5f9;flex-shrink:0}.dt-img-ph{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;flex-shrink:0}.dt-img-ph svg{width:55%;height:55%}.dt-img-circle-md{width:40px;height:40px;border-radius:50%}.dt-img-circle-sm{width:28px;height:28px;border-radius:50%}.dt-img-rounded-md{width:48px;height:32px;border-radius:6px}.dt-img-rounded-sm{width:36px;height:24px;border-radius:5px}.dt-avatar-name{display:flex;align-items:center;gap:8px}.dt-name-text{color:#1e293b}.dt-overdue{color:#dc2626;font-weight:500}.dt-none{color:#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;flex-wrap:nowrap;flex-shrink:0;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 1 100%}.dt-bulk-actions{flex:1 1 auto;width:auto}.dt-bulk-hint{flex-basis:100%}.dt-bulk-actions ui-select{max-width:100%;flex:1}}.dt-confirm-msg{margin:0;font-size:.9375rem;color:#334155;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line}.dt-confirm-details{margin:10px 0 0;padding-left:20px;font-size:.875rem;color:#64748b;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.dt-confirm-details li+li{margin-top:4px}ui-pagination{flex-shrink:0;--ui-pagination-bg: #f8fafc}.dt-phone-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-shrink:0}.dt-phone-sort{display:flex;align-items:center;gap:8px}.dt-phone-sort-label{font-size:.8125rem;font-weight:600;color:#64748b;flex-shrink:0}.dt-phone-sort-select{flex:1;min-width:0;min-height:44px;box-sizing:border-box;padding:0 36px 0 12px;font-family:inherit;font-size:1rem;color:#1e293b;border:1px solid #e2e8f0;border-radius:8px;-webkit-appearance:none;appearance:none;background:#fff url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E\") no-repeat right 12px center}.dt-phone-filters{display:flex;flex-wrap:wrap;gap:8px}.dt-card-list{display:none;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}@media(max-width:640px){.dt-card-list{display:flex;padding-bottom:8px}}.dt-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;contain:layout style;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:background .1s}.dt-card:has(.mm-dropdown){position:relative;z-index:1}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{background:#f8fafc}.dt-card-clickable:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.dt-card-header{display:flex;align-items:center;gap:10px}.dt-card-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.dt-card-name{min-width:0;font-weight:600;color:#1e293b;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.dt-card-name-plain{flex:1}.dt-card-actions{margin-left:auto;flex-shrink:0}.dt-card-badges{display:flex;flex-wrap:wrap;gap:6px}.dt-card-tags{display:flex;flex-wrap:wrap;gap:4px}.dt-card-details{display:flex;flex-direction:column;gap:5px}.dt-card-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8125rem}.dt-card-detail-label{color:#64748b;flex-shrink:0}.dt-card-detail-value{color:#334155;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.dt-card-sk{gap:12px}.dt-card-sk-header{display:flex;align-items:center;gap:10px}.dt-card-sk-badges{display:flex;gap:6px}.dt-card-sk-rows{display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dt-sk-shimmer:after,.dt-sk-cell:after{animation:none;transform:none;opacity:0}.dt-tag-tooltip{animation:none}.dt-sort-icon{transition:none}}\n"]
|
|
14521
14583
|
}]
|
|
14522
14584
|
}],
|
|
14523
14585
|
ctorParameters: () => [],
|
|
@@ -20793,7 +20855,7 @@ var TextareaInputComponent = class TextareaInputComponent {
|
|
|
20793
20855
|
</div>
|
|
20794
20856
|
`,
|
|
20795
20857
|
isInline: true,
|
|
20796
|
-
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"],
|
|
20858
|
+
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)and (pointer:fine){.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(pointer:coarse),(max-width:480px){.ta-input{font-size:1rem}}\n"],
|
|
20797
20859
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
20798
20860
|
});
|
|
20799
20861
|
}
|
|
@@ -20866,7 +20928,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
20866
20928
|
}
|
|
20867
20929
|
</div>
|
|
20868
20930
|
`,
|
|
20869
|
-
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"]
|
|
20931
|
+
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)and (pointer:fine){.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(pointer:coarse),(max-width:480px){.ta-input{font-size:1rem}}\n"]
|
|
20870
20932
|
}]
|
|
20871
20933
|
}],
|
|
20872
20934
|
ctorParameters: () => [],
|
|
@@ -22899,7 +22961,7 @@ var DateInputComponent = class DateInputComponent {
|
|
|
22899
22961
|
</div>
|
|
22900
22962
|
`,
|
|
22901
22963
|
isInline: true,
|
|
22902
|
-
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"],
|
|
22964
|
+
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(pointer:coarse),(max-width:480px){.di-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.di-input{min-height:44px}}\n"],
|
|
22903
22965
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
22904
22966
|
});
|
|
22905
22967
|
}
|
|
@@ -22960,7 +23022,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
22960
23022
|
}
|
|
22961
23023
|
</div>
|
|
22962
23024
|
`,
|
|
22963
|
-
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"]
|
|
23025
|
+
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(pointer:coarse),(max-width:480px){.di-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.di-input{min-height:44px}}\n"]
|
|
22964
23026
|
}]
|
|
22965
23027
|
}],
|
|
22966
23028
|
ctorParameters: () => [],
|
|
@@ -23253,7 +23315,7 @@ var DatetimeInputComponent = class DatetimeInputComponent {
|
|
|
23253
23315
|
</div>
|
|
23254
23316
|
`,
|
|
23255
23317
|
isInline: true,
|
|
23256
|
-
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"],
|
|
23318
|
+
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(pointer:coarse),(max-width:480px){.dti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.dti-input{min-height:44px}}\n"],
|
|
23257
23319
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
23258
23320
|
});
|
|
23259
23321
|
}
|
|
@@ -23314,7 +23376,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
23314
23376
|
}
|
|
23315
23377
|
</div>
|
|
23316
23378
|
`,
|
|
23317
|
-
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"]
|
|
23379
|
+
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(pointer:coarse),(max-width:480px){.dti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.dti-input{min-height:44px}}\n"]
|
|
23318
23380
|
}]
|
|
23319
23381
|
}],
|
|
23320
23382
|
ctorParameters: () => [],
|
|
@@ -23617,7 +23679,7 @@ var TimeInputComponent = class TimeInputComponent {
|
|
|
23617
23679
|
</div>
|
|
23618
23680
|
`,
|
|
23619
23681
|
isInline: true,
|
|
23620
|
-
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"],
|
|
23682
|
+
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(pointer:coarse),(max-width:480px){.tmi-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.tmi-input{min-height:44px}}\n"],
|
|
23621
23683
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
23622
23684
|
});
|
|
23623
23685
|
}
|
|
@@ -23680,7 +23742,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
23680
23742
|
}
|
|
23681
23743
|
</div>
|
|
23682
23744
|
`,
|
|
23683
|
-
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"]
|
|
23745
|
+
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(pointer:coarse),(max-width:480px){.tmi-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.tmi-input{min-height:44px}}\n"]
|
|
23684
23746
|
}]
|
|
23685
23747
|
}],
|
|
23686
23748
|
ctorParameters: () => [],
|
|
@@ -43376,6 +43438,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
43376
43438
|
const DEFAULT_TEXTS = {
|
|
43377
43439
|
brand: "Setup Wizard",
|
|
43378
43440
|
stepperLabel: "Setup steps",
|
|
43441
|
+
asideLabel: "Setup steps",
|
|
43379
43442
|
progress: (done, total) => `${done} of ${total} complete`,
|
|
43380
43443
|
back: "Back",
|
|
43381
43444
|
skip: "Skip for now",
|
|
@@ -43402,6 +43465,7 @@ const DEFAULT_TEXTS = {
|
|
|
43402
43465
|
summarySkipped: "Skipped",
|
|
43403
43466
|
summaryPending: "Pending",
|
|
43404
43467
|
areaCode: "Area code",
|
|
43468
|
+
areaCodeHint: "Enter a 3-digit US area code",
|
|
43405
43469
|
connectIntegrationFailed: (title) => `Failed to connect ${title}. Please try again from the Integrations page after setup.`
|
|
43406
43470
|
};
|
|
43407
43471
|
function splitIntro(description) {
|
|
@@ -43416,6 +43480,10 @@ function splitIntro(description) {
|
|
|
43416
43480
|
}
|
|
43417
43481
|
const SETUP_DONE_KEY = "done";
|
|
43418
43482
|
var SetupWizardComponent = class SetupWizardComponent {
|
|
43483
|
+
customHintId() {
|
|
43484
|
+
const st = this.current();
|
|
43485
|
+
return st.kind === "custom" && st.continueHintId && st.canContinue && !st.canContinue() ? st.continueHintId : "";
|
|
43486
|
+
}
|
|
43419
43487
|
constructor() {
|
|
43420
43488
|
this.http = inject(HttpClient);
|
|
43421
43489
|
this.apiBase = inject(FORGEROUTE_CONFIG, { optional: true })?.baseUrl ?? "/api";
|
|
@@ -43447,6 +43515,7 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43447
43515
|
this.stepTemplates = contentChildren(SetupWizardStepDirective, ...ngDevMode ? [{ debugName: "stepTemplates" }] : /* istanbul ignore next */ []);
|
|
43448
43516
|
this.headerTemplates = contentChildren(SetupWizardStepHeaderDirective, ...ngDevMode ? [{ debugName: "headerTemplates" }] : /* istanbul ignore next */ []);
|
|
43449
43517
|
this.injector = inject(Injector);
|
|
43518
|
+
this.host = inject(ElementRef);
|
|
43450
43519
|
this.stepTitle = viewChild("stepTitle", ...ngDevMode ? [{ debugName: "stepTitle" }] : /* istanbul ignore next */ []);
|
|
43451
43520
|
this.importers = viewChildren("importer", ...ngDevMode ? [{ debugName: "importers" }] : /* istanbul ignore next */ []);
|
|
43452
43521
|
this.t = computed(() => ({
|
|
@@ -43592,7 +43661,12 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43592
43661
|
this.error.set("");
|
|
43593
43662
|
try {
|
|
43594
43663
|
await this.run(step.kind === "custom" ? step.save?.() : step.onContinue?.());
|
|
43595
|
-
this.
|
|
43664
|
+
if (this.withholdsMark(step)) this.skipped.update((sk) => {
|
|
43665
|
+
const n = new Set(sk);
|
|
43666
|
+
n.delete(step.key);
|
|
43667
|
+
return n;
|
|
43668
|
+
});
|
|
43669
|
+
else this.markCompleted(step.key);
|
|
43596
43670
|
this.advanceFrom(step.key);
|
|
43597
43671
|
} catch (e) {
|
|
43598
43672
|
this.error.set(this.messageOf(e, "Failed to save. Please try again."));
|
|
@@ -43600,6 +43674,13 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43600
43674
|
this.busy.set(false);
|
|
43601
43675
|
}
|
|
43602
43676
|
}
|
|
43677
|
+
withholdsMark(step) {
|
|
43678
|
+
try {
|
|
43679
|
+
return !!step.continueWithoutComplete?.();
|
|
43680
|
+
} catch {
|
|
43681
|
+
return false;
|
|
43682
|
+
}
|
|
43683
|
+
}
|
|
43603
43684
|
async run(result) {
|
|
43604
43685
|
if (isObservable(result)) await firstValueFrom(result, { defaultValue: void 0 });
|
|
43605
43686
|
else await result;
|
|
@@ -43717,6 +43798,7 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43717
43798
|
startConnect(i) {
|
|
43718
43799
|
if (i.connect.type === "area-code") {
|
|
43719
43800
|
this.areaCodeOpen.set(i.key);
|
|
43801
|
+
afterNextRender(() => this.host.nativeElement.querySelector(`[data-testid="area-code-input-${i.key}"]`)?.focus(), { injector: this.injector });
|
|
43720
43802
|
return;
|
|
43721
43803
|
}
|
|
43722
43804
|
this.connecting.set(i.key);
|
|
@@ -43780,6 +43862,10 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43780
43862
|
this.areaCodeOpen.set("");
|
|
43781
43863
|
this.areaCode.set("");
|
|
43782
43864
|
this.loadStatuses([i]);
|
|
43865
|
+
afterNextRender(() => {
|
|
43866
|
+
const pick = this.host.nativeElement.querySelector(`[data-testid="integration-pick-${i.key}"]`);
|
|
43867
|
+
(pick?.matches("button") ? pick : pick?.querySelector("button"))?.focus();
|
|
43868
|
+
}, { injector: this.injector });
|
|
43783
43869
|
},
|
|
43784
43870
|
error: (e) => {
|
|
43785
43871
|
this.busy.set(false);
|
|
@@ -43856,7 +43942,7 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43856
43942
|
ngImport: i0,
|
|
43857
43943
|
template: `
|
|
43858
43944
|
<div class="sw-page" data-testid="setup-wizard-page">
|
|
43859
|
-
<aside class="sw-sidebar" [attr.aria-label]="t().
|
|
43945
|
+
<aside class="sw-sidebar" [attr.aria-label]="t().asideLabel">
|
|
43860
43946
|
<div class="sw-sidebar-top">
|
|
43861
43947
|
<div class="sw-brand">
|
|
43862
43948
|
<ng-content select="[setup-wizard-logo]" />
|
|
@@ -43903,7 +43989,7 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43903
43989
|
}
|
|
43904
43990
|
@if (current().kind === 'custom') {
|
|
43905
43991
|
@if (!current().ownActions) {
|
|
43906
|
-
<ui-button variant="primary" size="sm" [fullWidth]="narrow()" data-testid="wizard-save" [loading]="busy()" [disabled]="current().canContinue ? !current().canContinue!() : false" (click)="saveAndContinue()">
|
|
43992
|
+
<ui-button variant="primary" size="sm" [fullWidth]="narrow()" data-testid="wizard-save" [loading]="busy()" [disabled]="current().canContinue ? !current().canContinue!() : false" [ariaDescribedBy]="customHintId()" (click)="saveAndContinue()">
|
|
43907
43993
|
{{ current().saveLabel ?? t().saveAndContinue }} <svg class="sw-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="iconD('arrow-right')" /></svg>
|
|
43908
43994
|
</ui-button>
|
|
43909
43995
|
}
|
|
@@ -43977,8 +44063,9 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
43977
44063
|
[actionTestId]="'integration-pick-' + it.key" [actionLoading]="connecting() === it.key" [disabled]="!!connecting()" (action)="connect(it)">
|
|
43978
44064
|
@if (areaCodeOpen() === it.key) {
|
|
43979
44065
|
<div class="sw-area-code" [attr.data-testid]="'area-code-' + it.key">
|
|
43980
|
-
<ui-text-input [label]="areaCodeLabelFor(it)" [maxlength]="3" inputmode="numeric" [ngModel]="areaCode()" (ngModelChange)="areaCode.set($event ?? '')" [inputTestId]="'area-code-input-' + it.key" />
|
|
43981
|
-
<
|
|
44066
|
+
<ui-text-input [label]="areaCodeLabelFor(it)" [hint]="t().areaCodeHint" [maxlength]="3" inputmode="numeric" [ngModel]="areaCode()" (ngModelChange)="areaCode.set($event ?? '')" [inputTestId]="'area-code-input-' + it.key" />
|
|
44067
|
+
<span class="sw-sr" [id]="'sw-area-code-why-' + it.key" data-testid="area-code-why">{{ validAreaCode() ? '' : t().areaCodeHint }}</span>
|
|
44068
|
+
<ui-button variant="primary" size="sm" [loading]="busy()" [disabled]="!validAreaCode()" [ariaDescribedBy]="validAreaCode() ? '' : 'sw-area-code-why-' + it.key" (click)="submitAreaCode(it)"><svg class="sw-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="iconD('link')" /></svg> {{ t().connect }}</ui-button>
|
|
43982
44069
|
</div>
|
|
43983
44070
|
}
|
|
43984
44071
|
</ui-option-card>
|
|
@@ -44001,7 +44088,7 @@ var SetupWizardComponent = class SetupWizardComponent {
|
|
|
44001
44088
|
</div>
|
|
44002
44089
|
`,
|
|
44003
44090
|
isInline: true,
|
|
44004
|
-
styles: [".sw-page{display:flex;min-height:100vh;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sw-sidebar{width:260px;min-width:260px;background:#faf9f7;border-right:1px solid #e5e2dc;display:flex;flex-direction:column;justify-content:space-between;padding:28px 20px}.sw-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.sw-brand-text{font-size:1.125rem;font-weight:700;color:#1e293b}.sw-step-nav{display:block}.sw-sidebar-bottom{margin-top:24px}.sw-progress-text{display:block;margin-top:8px;font-size:.75rem;color:#64748b}.sw-content{flex:1;min-width:0;background:#fff;display:flex;flex-direction:column;overflow-y:auto}.sw-content-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 32px;border-bottom:1px solid #f1f5f9}.sw-step-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0}.sw-step-content{max-width:780px;padding:16px 48px 60px}.sw-intro{margin-bottom:24px}.sw-step-number{font-size:1.25rem;font-weight:800;line-height:1}.sw-split-tabs{display:block;margin-bottom:16px}.sw-hint.sw-continue-hint{margin:14px 0 0}.sw-extra-status{font-size:.8125rem;color:#64748b;margin:12px 0 0}.sw-extra-status:empty{display:none}.sw-hint{font-size:.8125rem;line-height:1.5;color:#64748b;margin:0 0 16px}.sw-import-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px}.sw-tag{font-size:.6875rem;font-weight:700;letter-spacing:1px;color:#6b7280}.sw-provider-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px}.sw-provider-grid--single{grid-template-columns:1fr}@media(max-width:768px){.sw-provider-grid{grid-template-columns:1fr}}.sw-provider-grid .sw-integration{margin-bottom:0}.sw-area-code{display:flex;align-items:flex-end;gap:12px;margin-top:12px;max-width:320px}.sw-area-code ui-text-input{flex:1}.sw-content ui-alert{display:block;margin-bottom:16px}.sw-card{display:block}.sw-header-action{margin-left:auto;min-width:0;max-width:100%}.sw-step-actions{display:flex;justify-content:space-between;align-items:center}.sw-ico{flex-shrink:0;vertical-align:-2px}.sw-actions-right{display:flex;align-items:center;gap:16px;margin-left:auto}.sw-summary{display:block}.sw-done-hint{margin:16px 0 0}@media(max-width:768px){.sw-step-actions{flex-direction:column-reverse;align-items:stretch;gap:10px}.sw-actions-right{flex-direction:column-reverse;align-items:stretch;gap:10px;margin-left:0}.sw-page{flex-direction:column}.sw-sidebar{width:100%;min-width:unset;padding:16px}.sw-brand{margin-bottom:12px}.sw-sidebar-bottom{display:none}.sw-step-content{padding:12px 20px 40px}}\n"],
|
|
44091
|
+
styles: [".sw-page{display:flex;min-height:100vh;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sw-sidebar{width:260px;min-width:260px;background:#faf9f7;border-right:1px solid #e5e2dc;display:flex;flex-direction:column;justify-content:space-between;padding:28px 20px;padding-left:max(20px,env(safe-area-inset-left))}.sw-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.sw-brand-text{font-size:1.125rem;font-weight:700;color:#1e293b}.sw-step-nav{display:block}.sw-sidebar-bottom{margin-top:24px}.sw-progress-text{display:block;margin-top:8px;font-size:.75rem;color:#64748b}.sw-content{flex:1;min-width:0;background:#fff;display:flex;flex-direction:column;overflow-y:auto}.sw-content-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 32px;padding-right:max(32px,env(safe-area-inset-right));border-bottom:1px solid #f1f5f9}.sw-step-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0}.sw-step-content{max-width:780px;padding:16px 48px 60px;padding-right:max(48px,env(safe-area-inset-right))}.sw-intro{margin-bottom:24px}.sw-step-number{font-size:1.25rem;font-weight:800;line-height:1}.sw-split-tabs{display:block;margin-bottom:16px}.sw-hint.sw-continue-hint{margin:14px 0 0}.sw-extra-status{font-size:.8125rem;color:#64748b;margin:12px 0 0}.sw-extra-status:empty{display:none}.sw-hint{font-size:.8125rem;line-height:1.5;color:#64748b;margin:0 0 16px}.sw-import-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px}.sw-tag{font-size:.6875rem;font-weight:700;letter-spacing:1px;color:#6b7280}.sw-provider-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px}.sw-provider-grid--single{grid-template-columns:1fr}@media(max-width:768px){.sw-provider-grid{grid-template-columns:1fr}}.sw-provider-grid .sw-integration{margin-bottom:0}.sw-area-code{display:flex;align-items:flex-end;gap:12px;margin-top:12px;max-width:320px}.sw-area-code ui-text-input{flex:1}.sw-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.sw-content ui-alert{display:block;margin-bottom:16px}.sw-card{display:block}.sw-header-action{margin-left:auto;min-width:0;max-width:100%}.sw-step-actions{display:flex;justify-content:space-between;align-items:center}.sw-ico{flex-shrink:0;vertical-align:-2px}.sw-actions-right{display:flex;align-items:center;gap:16px;margin-left:auto}.sw-summary{display:block}.sw-done-hint{margin:16px 0 0}@media(max-width:768px){.sw-step-actions{flex-direction:column-reverse;align-items:stretch;gap:10px}.sw-actions-right{flex-direction:column-reverse;align-items:stretch;gap:10px;margin-left:0}.sw-page{flex-direction:column}.sw-sidebar{width:100%;min-width:unset;padding:16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.sw-brand{margin-bottom:12px}.sw-sidebar-bottom{display:none}.sw-step-content{padding:12px 20px 40px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}}\n"],
|
|
44005
44092
|
dependencies: [
|
|
44006
44093
|
{
|
|
44007
44094
|
kind: "directive",
|
|
@@ -44336,7 +44423,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
44336
44423
|
],
|
|
44337
44424
|
template: `
|
|
44338
44425
|
<div class="sw-page" data-testid="setup-wizard-page">
|
|
44339
|
-
<aside class="sw-sidebar" [attr.aria-label]="t().
|
|
44426
|
+
<aside class="sw-sidebar" [attr.aria-label]="t().asideLabel">
|
|
44340
44427
|
<div class="sw-sidebar-top">
|
|
44341
44428
|
<div class="sw-brand">
|
|
44342
44429
|
<ng-content select="[setup-wizard-logo]" />
|
|
@@ -44383,7 +44470,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
44383
44470
|
}
|
|
44384
44471
|
@if (current().kind === 'custom') {
|
|
44385
44472
|
@if (!current().ownActions) {
|
|
44386
|
-
<ui-button variant="primary" size="sm" [fullWidth]="narrow()" data-testid="wizard-save" [loading]="busy()" [disabled]="current().canContinue ? !current().canContinue!() : false" (click)="saveAndContinue()">
|
|
44473
|
+
<ui-button variant="primary" size="sm" [fullWidth]="narrow()" data-testid="wizard-save" [loading]="busy()" [disabled]="current().canContinue ? !current().canContinue!() : false" [ariaDescribedBy]="customHintId()" (click)="saveAndContinue()">
|
|
44387
44474
|
{{ current().saveLabel ?? t().saveAndContinue }} <svg class="sw-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="iconD('arrow-right')" /></svg>
|
|
44388
44475
|
</ui-button>
|
|
44389
44476
|
}
|
|
@@ -44457,8 +44544,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
44457
44544
|
[actionTestId]="'integration-pick-' + it.key" [actionLoading]="connecting() === it.key" [disabled]="!!connecting()" (action)="connect(it)">
|
|
44458
44545
|
@if (areaCodeOpen() === it.key) {
|
|
44459
44546
|
<div class="sw-area-code" [attr.data-testid]="'area-code-' + it.key">
|
|
44460
|
-
<ui-text-input [label]="areaCodeLabelFor(it)" [maxlength]="3" inputmode="numeric" [ngModel]="areaCode()" (ngModelChange)="areaCode.set($event ?? '')" [inputTestId]="'area-code-input-' + it.key" />
|
|
44461
|
-
<
|
|
44547
|
+
<ui-text-input [label]="areaCodeLabelFor(it)" [hint]="t().areaCodeHint" [maxlength]="3" inputmode="numeric" [ngModel]="areaCode()" (ngModelChange)="areaCode.set($event ?? '')" [inputTestId]="'area-code-input-' + it.key" />
|
|
44548
|
+
<span class="sw-sr" [id]="'sw-area-code-why-' + it.key" data-testid="area-code-why">{{ validAreaCode() ? '' : t().areaCodeHint }}</span>
|
|
44549
|
+
<ui-button variant="primary" size="sm" [loading]="busy()" [disabled]="!validAreaCode()" [ariaDescribedBy]="validAreaCode() ? '' : 'sw-area-code-why-' + it.key" (click)="submitAreaCode(it)"><svg class="sw-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path [attr.d]="iconD('link')" /></svg> {{ t().connect }}</ui-button>
|
|
44462
44550
|
</div>
|
|
44463
44551
|
}
|
|
44464
44552
|
</ui-option-card>
|
|
@@ -44480,7 +44568,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
44480
44568
|
</main>
|
|
44481
44569
|
</div>
|
|
44482
44570
|
`,
|
|
44483
|
-
styles: [".sw-page{display:flex;min-height:100vh;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sw-sidebar{width:260px;min-width:260px;background:#faf9f7;border-right:1px solid #e5e2dc;display:flex;flex-direction:column;justify-content:space-between;padding:28px 20px}.sw-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.sw-brand-text{font-size:1.125rem;font-weight:700;color:#1e293b}.sw-step-nav{display:block}.sw-sidebar-bottom{margin-top:24px}.sw-progress-text{display:block;margin-top:8px;font-size:.75rem;color:#64748b}.sw-content{flex:1;min-width:0;background:#fff;display:flex;flex-direction:column;overflow-y:auto}.sw-content-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 32px;border-bottom:1px solid #f1f5f9}.sw-step-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0}.sw-step-content{max-width:780px;padding:16px 48px 60px}.sw-intro{margin-bottom:24px}.sw-step-number{font-size:1.25rem;font-weight:800;line-height:1}.sw-split-tabs{display:block;margin-bottom:16px}.sw-hint.sw-continue-hint{margin:14px 0 0}.sw-extra-status{font-size:.8125rem;color:#64748b;margin:12px 0 0}.sw-extra-status:empty{display:none}.sw-hint{font-size:.8125rem;line-height:1.5;color:#64748b;margin:0 0 16px}.sw-import-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px}.sw-tag{font-size:.6875rem;font-weight:700;letter-spacing:1px;color:#6b7280}.sw-provider-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px}.sw-provider-grid--single{grid-template-columns:1fr}@media(max-width:768px){.sw-provider-grid{grid-template-columns:1fr}}.sw-provider-grid .sw-integration{margin-bottom:0}.sw-area-code{display:flex;align-items:flex-end;gap:12px;margin-top:12px;max-width:320px}.sw-area-code ui-text-input{flex:1}.sw-content ui-alert{display:block;margin-bottom:16px}.sw-card{display:block}.sw-header-action{margin-left:auto;min-width:0;max-width:100%}.sw-step-actions{display:flex;justify-content:space-between;align-items:center}.sw-ico{flex-shrink:0;vertical-align:-2px}.sw-actions-right{display:flex;align-items:center;gap:16px;margin-left:auto}.sw-summary{display:block}.sw-done-hint{margin:16px 0 0}@media(max-width:768px){.sw-step-actions{flex-direction:column-reverse;align-items:stretch;gap:10px}.sw-actions-right{flex-direction:column-reverse;align-items:stretch;gap:10px;margin-left:0}.sw-page{flex-direction:column}.sw-sidebar{width:100%;min-width:unset;padding:16px}.sw-brand{margin-bottom:12px}.sw-sidebar-bottom{display:none}.sw-step-content{padding:12px 20px 40px}}\n"]
|
|
44571
|
+
styles: [".sw-page{display:flex;min-height:100vh;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sw-sidebar{width:260px;min-width:260px;background:#faf9f7;border-right:1px solid #e5e2dc;display:flex;flex-direction:column;justify-content:space-between;padding:28px 20px;padding-left:max(20px,env(safe-area-inset-left))}.sw-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.sw-brand-text{font-size:1.125rem;font-weight:700;color:#1e293b}.sw-step-nav{display:block}.sw-sidebar-bottom{margin-top:24px}.sw-progress-text{display:block;margin-top:8px;font-size:.75rem;color:#64748b}.sw-content{flex:1;min-width:0;background:#fff;display:flex;flex-direction:column;overflow-y:auto}.sw-content-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 32px;padding-right:max(32px,env(safe-area-inset-right));border-bottom:1px solid #f1f5f9}.sw-step-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0}.sw-step-content{max-width:780px;padding:16px 48px 60px;padding-right:max(48px,env(safe-area-inset-right))}.sw-intro{margin-bottom:24px}.sw-step-number{font-size:1.25rem;font-weight:800;line-height:1}.sw-split-tabs{display:block;margin-bottom:16px}.sw-hint.sw-continue-hint{margin:14px 0 0}.sw-extra-status{font-size:.8125rem;color:#64748b;margin:12px 0 0}.sw-extra-status:empty{display:none}.sw-hint{font-size:.8125rem;line-height:1.5;color:#64748b;margin:0 0 16px}.sw-import-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px}.sw-tag{font-size:.6875rem;font-weight:700;letter-spacing:1px;color:#6b7280}.sw-provider-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px}.sw-provider-grid--single{grid-template-columns:1fr}@media(max-width:768px){.sw-provider-grid{grid-template-columns:1fr}}.sw-provider-grid .sw-integration{margin-bottom:0}.sw-area-code{display:flex;align-items:flex-end;gap:12px;margin-top:12px;max-width:320px}.sw-area-code ui-text-input{flex:1}.sw-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.sw-content ui-alert{display:block;margin-bottom:16px}.sw-card{display:block}.sw-header-action{margin-left:auto;min-width:0;max-width:100%}.sw-step-actions{display:flex;justify-content:space-between;align-items:center}.sw-ico{flex-shrink:0;vertical-align:-2px}.sw-actions-right{display:flex;align-items:center;gap:16px;margin-left:auto}.sw-summary{display:block}.sw-done-hint{margin:16px 0 0}@media(max-width:768px){.sw-step-actions{flex-direction:column-reverse;align-items:stretch;gap:10px}.sw-actions-right{flex-direction:column-reverse;align-items:stretch;gap:10px;margin-left:0}.sw-page{flex-direction:column}.sw-sidebar{width:100%;min-width:unset;padding:16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.sw-brand{margin-bottom:12px}.sw-sidebar-bottom{display:none}.sw-step-content{padding:12px 20px 40px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}}\n"]
|
|
44484
44572
|
}]
|
|
44485
44573
|
}],
|
|
44486
44574
|
ctorParameters: () => [],
|