@forgeroute/ui 0.4.4 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/forgeroute-ui-messaging.mjs +52 -9
- package/fesm2022/forgeroute-ui-messaging.mjs.map +1 -1
- package/fesm2022/forgeroute-ui-stripe.mjs +70 -27
- package/fesm2022/forgeroute-ui-stripe.mjs.map +1 -1
- package/fesm2022/forgeroute-ui.mjs +2067 -207
- package/fesm2022/forgeroute-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/forgeroute-ui-messaging.d.ts +4 -4
- package/types/forgeroute-ui-stripe.d.ts +28 -1
- package/types/forgeroute-ui.d.ts +630 -24
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import { ApplicationRef, ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, Directive, ElementRef, EnvironmentInjector, HostBinding, HostListener, Injectable, InjectionToken, Injector, Input, PLATFORM_ID, Renderer2, TemplateRef, afterNextRender, computed, contentChild, createComponent, effect, forwardRef, inject, input, isDevMode, linkedSignal, makeEnvironmentProviders, model, output, provideEnvironmentInitializer, signal, untracked, viewChild } from "@angular/core";
|
|
2
|
+
import { ApplicationRef, ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, Directive, ElementRef, EnvironmentInjector, HostBinding, HostListener, Injectable, InjectionToken, Injector, Input, PLATFORM_ID, Renderer2, TemplateRef, afterNextRender, computed, contentChild, contentChildren, createComponent, effect, forwardRef, inject, input, isDevMode, linkedSignal, makeEnvironmentProviders, model, output, provideEnvironmentInitializer, signal, untracked, viewChild } from "@angular/core";
|
|
3
3
|
import { HttpClient, HttpErrorResponse, HttpParams } from "@angular/common/http";
|
|
4
4
|
import { takeUntilDestroyed, toObservable } from "@angular/core/rxjs-interop";
|
|
5
5
|
import { catchError, debounceTime, distinctUntilChanged, skip, switchMap } from "rxjs/operators";
|
|
@@ -2108,6 +2108,9 @@ var ModalComponent = class ModalComponent {
|
|
|
2108
2108
|
this.description = input("", ...ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []);
|
|
2109
2109
|
this.maxWidth = input("460px", ...ngDevMode ? [{ debugName: "maxWidth" }] : /* istanbul ignore next */ []);
|
|
2110
2110
|
this.bodyOverflow = input("auto", ...ngDevMode ? [{ debugName: "bodyOverflow" }] : /* istanbul ignore next */ []);
|
|
2111
|
+
this.dialogTestId = input("", ...ngDevMode ? [{ debugName: "dialogTestId" }] : /* istanbul ignore next */ []);
|
|
2112
|
+
this.hideClose = input(false, ...ngDevMode ? [{ debugName: "hideClose" }] : /* istanbul ignore next */ []);
|
|
2113
|
+
this.closable = input(true, ...ngDevMode ? [{ debugName: "closable" }] : /* istanbul ignore next */ []);
|
|
2111
2114
|
this.close = output();
|
|
2112
2115
|
this.titleId = `m-title-${Math.random().toString(36).slice(2, 8)}`;
|
|
2113
2116
|
this.el = inject(ElementRef);
|
|
@@ -2141,7 +2144,7 @@ var ModalComponent = class ModalComponent {
|
|
|
2141
2144
|
if (!this.open() || !this._overlays.isTop(this)) return;
|
|
2142
2145
|
if (event.key === "Escape") {
|
|
2143
2146
|
event.preventDefault();
|
|
2144
|
-
this.close.emit();
|
|
2147
|
+
if (this.closable()) this.close.emit();
|
|
2145
2148
|
return;
|
|
2146
2149
|
}
|
|
2147
2150
|
if (event.key === "Tab") {
|
|
@@ -2233,6 +2236,27 @@ var ModalComponent = class ModalComponent {
|
|
|
2233
2236
|
isSignal: true,
|
|
2234
2237
|
isRequired: false,
|
|
2235
2238
|
transformFunction: null
|
|
2239
|
+
},
|
|
2240
|
+
dialogTestId: {
|
|
2241
|
+
classPropertyName: "dialogTestId",
|
|
2242
|
+
publicName: "dialogTestId",
|
|
2243
|
+
isSignal: true,
|
|
2244
|
+
isRequired: false,
|
|
2245
|
+
transformFunction: null
|
|
2246
|
+
},
|
|
2247
|
+
hideClose: {
|
|
2248
|
+
classPropertyName: "hideClose",
|
|
2249
|
+
publicName: "hideClose",
|
|
2250
|
+
isSignal: true,
|
|
2251
|
+
isRequired: false,
|
|
2252
|
+
transformFunction: null
|
|
2253
|
+
},
|
|
2254
|
+
closable: {
|
|
2255
|
+
classPropertyName: "closable",
|
|
2256
|
+
publicName: "closable",
|
|
2257
|
+
isSignal: true,
|
|
2258
|
+
isRequired: false,
|
|
2259
|
+
transformFunction: null
|
|
2236
2260
|
}
|
|
2237
2261
|
},
|
|
2238
2262
|
outputs: { close: "close" },
|
|
@@ -2240,8 +2264,8 @@ var ModalComponent = class ModalComponent {
|
|
|
2240
2264
|
ngImport: i0,
|
|
2241
2265
|
template: `
|
|
2242
2266
|
@if (open()) {
|
|
2243
|
-
<div class="m-backdrop" (click)="close.emit()"></div>
|
|
2244
|
-
<div class="m-modal" role="dialog" aria-modal="true" tabindex="-1" [attr.aria-labelledby]="titleId" [style.max-width]="maxWidth()">
|
|
2267
|
+
<div class="m-backdrop" (click)="closable() && close.emit()"></div>
|
|
2268
|
+
<div class="m-modal" role="dialog" aria-modal="true" tabindex="-1" [attr.aria-labelledby]="titleId" [attr.data-testid]="dialogTestId() || null" [style.max-width]="maxWidth()">
|
|
2245
2269
|
<div class="m-header">
|
|
2246
2270
|
<div class="m-header-text">
|
|
2247
2271
|
<h3 class="m-title" [id]="titleId">{{ title() }}</h3>
|
|
@@ -2249,24 +2273,27 @@ var ModalComponent = class ModalComponent {
|
|
|
2249
2273
|
<p class="m-description">{{ description() }}</p>
|
|
2250
2274
|
}
|
|
2251
2275
|
</div>
|
|
2252
|
-
|
|
2253
|
-
<
|
|
2254
|
-
<
|
|
2255
|
-
|
|
2256
|
-
|
|
2276
|
+
@if (!hideClose() && closable()) {
|
|
2277
|
+
<button class="m-close" type="button" aria-label="Close" (click)="close.emit()">
|
|
2278
|
+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
2279
|
+
<line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/>
|
|
2280
|
+
</svg>
|
|
2281
|
+
</button>
|
|
2282
|
+
}
|
|
2257
2283
|
</div>
|
|
2258
2284
|
<div class="m-body" [style.overflow-y]="bodyOverflow()">
|
|
2259
2285
|
<ng-content />
|
|
2260
2286
|
</div>
|
|
2261
2287
|
<div class="m-footer">
|
|
2262
2288
|
<div class="m-footer-left"><ng-content select="[modal-footer-left]" /></div>
|
|
2289
|
+
<div class="m-footer-center"><ng-content select="[modal-footer-center]" /></div>
|
|
2263
2290
|
<div class="m-footer-right"><ng-content select="[modal-footer-right]" /></div>
|
|
2264
2291
|
</div>
|
|
2265
2292
|
</div>
|
|
2266
2293
|
}
|
|
2267
2294
|
`,
|
|
2268
2295
|
isInline: true,
|
|
2269
|
-
styles: [".m-backdrop{position:fixed;inset:0;background:#02081773;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;animation:m-fade .18s ease}.m-modal:focus{outline:none}.m-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;border:1px solid rgba(0,0,0,.07);z-index:201;width:calc(100% - 32px);box-shadow:0 4px 6px #0000000a,0 16px 32px #0000001f,0 48px 96px #0000001a;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;animation:m-scale .22s cubic-bezier(.16,1,.3,1)}.m-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:16px 16px 0 0;flex-shrink:0}.m-header-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.m-title{font-size:1.125rem;font-weight:700;color:#0f172a;margin:0;letter-spacing:-.02em;line-height:1.3}.m-description{font-size:.8125rem;color:#64748b;margin:0;line-height:1.4}.m-close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:none;background:none;cursor:pointer;color:#94a3b8;flex-shrink:0;margin-left:12px;transition:background .13s,color .13s}.m-close:hover{background:#f1f5f9;color:#1e293b}.m-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.m-body{padding:20px 24px;overflow-y:auto;flex:1;min-height:0;font-size:.9rem;color:#475569;line-height:1.65}.m-footer{padding:14px 24px 18px;background:#f8fafc;border-top:1px solid #e2e8f0;border-radius:0 0 16px 16px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.m-footer:not(:has(*)){display:none}.m-footer-left{display:flex;align-items:center;gap:8px}.m-footer-right{display:flex;align-items:center;gap:8px;margin-left:auto}@media(max-width:480px){.m-modal{top:auto;bottom:var(--ui-kb, 0px);left:0;right:0;transform:none;width:100vw;max-width:none!important;max-height:min(85dvh,var(--ui-vvh, 100dvh));border-radius:20px 20px 0 0;animation:m-up .24s cubic-bezier(.16,1,.3,1)}.m-footer{border-radius:0;flex-direction:column-reverse;align-items:stretch;padding-bottom:max(18px,env(safe-area-inset-bottom))}}@media(pointer:coarse),(max-width:480px){.m-close{position:relative}.m-close:after{content:\"\";position:absolute;inset:-7px}}@keyframes m-fade{0%{opacity:0}to{opacity:1}}@keyframes m-scale{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes m-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"],
|
|
2296
|
+
styles: [".m-backdrop{position:fixed;inset:0;background:#02081773;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;animation:m-fade .18s ease}.m-modal:focus{outline:none}.m-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;border:1px solid rgba(0,0,0,.07);z-index:201;width:calc(100% - 32px);box-shadow:0 4px 6px #0000000a,0 16px 32px #0000001f,0 48px 96px #0000001a;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;animation:m-scale .22s cubic-bezier(.16,1,.3,1)}.m-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:16px 16px 0 0;flex-shrink:0}.m-header-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.m-title{font-size:1.125rem;font-weight:700;color:#0f172a;margin:0;letter-spacing:-.02em;line-height:1.3}.m-description{font-size:.8125rem;color:#64748b;margin:0;line-height:1.4}.m-close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:none;background:none;cursor:pointer;color:#94a3b8;flex-shrink:0;margin-left:12px;transition:background .13s,color .13s}.m-close:hover{background:#f1f5f9;color:#1e293b}.m-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.m-body{padding:20px 24px;overflow-y:auto;flex:1;min-height:0;font-size:.9rem;color:#475569;line-height:1.65}.m-footer{padding:14px 24px 18px;background:#f8fafc;border-top:1px solid #e2e8f0;border-radius:0 0 16px 16px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.m-footer:not(:has(*)){display:none}.m-footer-left{display:flex;align-items:center;gap:8px}.m-footer-right{display:flex;align-items:center;gap:8px;margin-left:auto}.m-footer-center{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px}.m-footer-center:empty{display:none}@media(max-width:480px){.m-modal{top:auto;bottom:var(--ui-kb, 0px);left:0;right:0;transform:none;width:100vw;max-width:none!important;max-height:min(85dvh,var(--ui-vvh, 100dvh));border-radius:20px 20px 0 0;animation:m-up .24s cubic-bezier(.16,1,.3,1)}.m-footer{border-radius:0;flex-direction:column-reverse;align-items:stretch;padding-bottom:max(18px,env(safe-area-inset-bottom))}}@media(pointer:coarse),(max-width:480px){.m-close{position:relative}.m-close:after{content:\"\";position:absolute;inset:-7px}}@keyframes m-fade{0%{opacity:0}to{opacity:1}}@keyframes m-scale{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes m-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"],
|
|
2270
2297
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
2271
2298
|
});
|
|
2272
2299
|
}
|
|
@@ -2285,8 +2312,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2285
2312
|
host: { "(document:keydown)": "onKeydown($event)" },
|
|
2286
2313
|
template: `
|
|
2287
2314
|
@if (open()) {
|
|
2288
|
-
<div class="m-backdrop" (click)="close.emit()"></div>
|
|
2289
|
-
<div class="m-modal" role="dialog" aria-modal="true" tabindex="-1" [attr.aria-labelledby]="titleId" [style.max-width]="maxWidth()">
|
|
2315
|
+
<div class="m-backdrop" (click)="closable() && close.emit()"></div>
|
|
2316
|
+
<div class="m-modal" role="dialog" aria-modal="true" tabindex="-1" [attr.aria-labelledby]="titleId" [attr.data-testid]="dialogTestId() || null" [style.max-width]="maxWidth()">
|
|
2290
2317
|
<div class="m-header">
|
|
2291
2318
|
<div class="m-header-text">
|
|
2292
2319
|
<h3 class="m-title" [id]="titleId">{{ title() }}</h3>
|
|
@@ -2294,23 +2321,26 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2294
2321
|
<p class="m-description">{{ description() }}</p>
|
|
2295
2322
|
}
|
|
2296
2323
|
</div>
|
|
2297
|
-
|
|
2298
|
-
<
|
|
2299
|
-
<
|
|
2300
|
-
|
|
2301
|
-
|
|
2324
|
+
@if (!hideClose() && closable()) {
|
|
2325
|
+
<button class="m-close" type="button" aria-label="Close" (click)="close.emit()">
|
|
2326
|
+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
2327
|
+
<line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/>
|
|
2328
|
+
</svg>
|
|
2329
|
+
</button>
|
|
2330
|
+
}
|
|
2302
2331
|
</div>
|
|
2303
2332
|
<div class="m-body" [style.overflow-y]="bodyOverflow()">
|
|
2304
2333
|
<ng-content />
|
|
2305
2334
|
</div>
|
|
2306
2335
|
<div class="m-footer">
|
|
2307
2336
|
<div class="m-footer-left"><ng-content select="[modal-footer-left]" /></div>
|
|
2337
|
+
<div class="m-footer-center"><ng-content select="[modal-footer-center]" /></div>
|
|
2308
2338
|
<div class="m-footer-right"><ng-content select="[modal-footer-right]" /></div>
|
|
2309
2339
|
</div>
|
|
2310
2340
|
</div>
|
|
2311
2341
|
}
|
|
2312
2342
|
`,
|
|
2313
|
-
styles: [".m-backdrop{position:fixed;inset:0;background:#02081773;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;animation:m-fade .18s ease}.m-modal:focus{outline:none}.m-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;border:1px solid rgba(0,0,0,.07);z-index:201;width:calc(100% - 32px);box-shadow:0 4px 6px #0000000a,0 16px 32px #0000001f,0 48px 96px #0000001a;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;animation:m-scale .22s cubic-bezier(.16,1,.3,1)}.m-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:16px 16px 0 0;flex-shrink:0}.m-header-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.m-title{font-size:1.125rem;font-weight:700;color:#0f172a;margin:0;letter-spacing:-.02em;line-height:1.3}.m-description{font-size:.8125rem;color:#64748b;margin:0;line-height:1.4}.m-close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:none;background:none;cursor:pointer;color:#94a3b8;flex-shrink:0;margin-left:12px;transition:background .13s,color .13s}.m-close:hover{background:#f1f5f9;color:#1e293b}.m-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.m-body{padding:20px 24px;overflow-y:auto;flex:1;min-height:0;font-size:.9rem;color:#475569;line-height:1.65}.m-footer{padding:14px 24px 18px;background:#f8fafc;border-top:1px solid #e2e8f0;border-radius:0 0 16px 16px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.m-footer:not(:has(*)){display:none}.m-footer-left{display:flex;align-items:center;gap:8px}.m-footer-right{display:flex;align-items:center;gap:8px;margin-left:auto}@media(max-width:480px){.m-modal{top:auto;bottom:var(--ui-kb, 0px);left:0;right:0;transform:none;width:100vw;max-width:none!important;max-height:min(85dvh,var(--ui-vvh, 100dvh));border-radius:20px 20px 0 0;animation:m-up .24s cubic-bezier(.16,1,.3,1)}.m-footer{border-radius:0;flex-direction:column-reverse;align-items:stretch;padding-bottom:max(18px,env(safe-area-inset-bottom))}}@media(pointer:coarse),(max-width:480px){.m-close{position:relative}.m-close:after{content:\"\";position:absolute;inset:-7px}}@keyframes m-fade{0%{opacity:0}to{opacity:1}}@keyframes m-scale{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes m-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"]
|
|
2343
|
+
styles: [".m-backdrop{position:fixed;inset:0;background:#02081773;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;animation:m-fade .18s ease}.m-modal:focus{outline:none}.m-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;border:1px solid rgba(0,0,0,.07);z-index:201;width:calc(100% - 32px);box-shadow:0 4px 6px #0000000a,0 16px 32px #0000001f,0 48px 96px #0000001a;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;animation:m-scale .22s cubic-bezier(.16,1,.3,1)}.m-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:16px 16px 0 0;flex-shrink:0}.m-header-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.m-title{font-size:1.125rem;font-weight:700;color:#0f172a;margin:0;letter-spacing:-.02em;line-height:1.3}.m-description{font-size:.8125rem;color:#64748b;margin:0;line-height:1.4}.m-close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:none;background:none;cursor:pointer;color:#94a3b8;flex-shrink:0;margin-left:12px;transition:background .13s,color .13s}.m-close:hover{background:#f1f5f9;color:#1e293b}.m-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.m-body{padding:20px 24px;overflow-y:auto;flex:1;min-height:0;font-size:.9rem;color:#475569;line-height:1.65}.m-footer{padding:14px 24px 18px;background:#f8fafc;border-top:1px solid #e2e8f0;border-radius:0 0 16px 16px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.m-footer:not(:has(*)){display:none}.m-footer-left{display:flex;align-items:center;gap:8px}.m-footer-right{display:flex;align-items:center;gap:8px;margin-left:auto}.m-footer-center{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px}.m-footer-center:empty{display:none}@media(max-width:480px){.m-modal{top:auto;bottom:var(--ui-kb, 0px);left:0;right:0;transform:none;width:100vw;max-width:none!important;max-height:min(85dvh,var(--ui-vvh, 100dvh));border-radius:20px 20px 0 0;animation:m-up .24s cubic-bezier(.16,1,.3,1)}.m-footer{border-radius:0;flex-direction:column-reverse;align-items:stretch;padding-bottom:max(18px,env(safe-area-inset-bottom))}}@media(pointer:coarse),(max-width:480px){.m-close{position:relative}.m-close:after{content:\"\";position:absolute;inset:-7px}}@keyframes m-fade{0%{opacity:0}to{opacity:1}}@keyframes m-scale{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes m-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"]
|
|
2314
2344
|
}]
|
|
2315
2345
|
}],
|
|
2316
2346
|
ctorParameters: () => [],
|
|
@@ -2355,12 +2385,71 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2355
2385
|
required: false
|
|
2356
2386
|
}]
|
|
2357
2387
|
}],
|
|
2388
|
+
dialogTestId: [{
|
|
2389
|
+
type: i0.Input,
|
|
2390
|
+
args: [{
|
|
2391
|
+
isSignal: true,
|
|
2392
|
+
alias: "dialogTestId",
|
|
2393
|
+
required: false
|
|
2394
|
+
}]
|
|
2395
|
+
}],
|
|
2396
|
+
hideClose: [{
|
|
2397
|
+
type: i0.Input,
|
|
2398
|
+
args: [{
|
|
2399
|
+
isSignal: true,
|
|
2400
|
+
alias: "hideClose",
|
|
2401
|
+
required: false
|
|
2402
|
+
}]
|
|
2403
|
+
}],
|
|
2404
|
+
closable: [{
|
|
2405
|
+
type: i0.Input,
|
|
2406
|
+
args: [{
|
|
2407
|
+
isSignal: true,
|
|
2408
|
+
alias: "closable",
|
|
2409
|
+
required: false
|
|
2410
|
+
}]
|
|
2411
|
+
}],
|
|
2358
2412
|
close: [{
|
|
2359
2413
|
type: i0.Output,
|
|
2360
2414
|
args: ["close"]
|
|
2361
2415
|
}]
|
|
2362
2416
|
}
|
|
2363
2417
|
});
|
|
2418
|
+
var CheckboxTrailingDirective = class CheckboxTrailingDirective {
|
|
2419
|
+
static {
|
|
2420
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
2421
|
+
minVersion: "12.0.0",
|
|
2422
|
+
version: "22.2.2",
|
|
2423
|
+
ngImport: i0,
|
|
2424
|
+
type: CheckboxTrailingDirective,
|
|
2425
|
+
deps: [],
|
|
2426
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
2427
|
+
});
|
|
2428
|
+
}
|
|
2429
|
+
static {
|
|
2430
|
+
this.ɵdir = i0.ɵɵngDeclareDirective({
|
|
2431
|
+
minVersion: "14.0.0",
|
|
2432
|
+
version: "22.2.2",
|
|
2433
|
+
type: CheckboxTrailingDirective,
|
|
2434
|
+
isStandalone: true,
|
|
2435
|
+
selector: "[checkbox-trailing]",
|
|
2436
|
+
ngImport: i0
|
|
2437
|
+
});
|
|
2438
|
+
}
|
|
2439
|
+
};
|
|
2440
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
2441
|
+
minVersion: "12.0.0",
|
|
2442
|
+
version: "22.2.2",
|
|
2443
|
+
ngImport: i0,
|
|
2444
|
+
type: CheckboxTrailingDirective,
|
|
2445
|
+
decorators: [{
|
|
2446
|
+
type: Directive,
|
|
2447
|
+
args: [{
|
|
2448
|
+
selector: "[checkbox-trailing]",
|
|
2449
|
+
standalone: true
|
|
2450
|
+
}]
|
|
2451
|
+
}]
|
|
2452
|
+
});
|
|
2364
2453
|
var UiFieldValidity = class {};
|
|
2365
2454
|
function issueToErrors(issue) {
|
|
2366
2455
|
return issue ? { [issue.key]: issue.value ?? true } : null;
|
|
@@ -2467,6 +2556,17 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2467
2556
|
this.checked = model(false, ...ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []);
|
|
2468
2557
|
this.options = input([], ...ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []);
|
|
2469
2558
|
this.legend = input("", ...ngDevMode ? [{ debugName: "legend" }] : /* istanbul ignore next */ []);
|
|
2559
|
+
this._legend = computed(() => this.legend() || (this._host.nativeElement.tagName === "UI-CHECKBOX-GROUP" ? this.label() : ""), ...ngDevMode ? [{ debugName: "_legend" }] : /* istanbul ignore next */ []);
|
|
2560
|
+
this.orientation = input("vertical", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
|
|
2561
|
+
this.values = model(void 0, ...ngDevMode ? [{ debugName: "values" }] : /* istanbul ignore next */ []);
|
|
2562
|
+
this.description = input("", ...ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []);
|
|
2563
|
+
this._trailingContent = contentChild(CheckboxTrailingDirective, ...ngDevMode ? [{ debugName: "_trailingContent" }] : /* istanbul ignore next */ []);
|
|
2564
|
+
this._trailing = computed(() => !this.groupMode() && !!this._trailingContent(), ...ngDevMode ? [{ debugName: "_trailing" }] : /* istanbul ignore next */ []);
|
|
2565
|
+
this._host = inject(ElementRef);
|
|
2566
|
+
this._singleDescribedBy = computed(() => {
|
|
2567
|
+
const ids = [this.description() ? this._descId + "-d" : "", this._activeError() || this.hint() ? this._descId : ""].filter(Boolean);
|
|
2568
|
+
return ids.length ? ids.join(" ") : null;
|
|
2569
|
+
}, ...ngDevMode ? [{ debugName: "_singleDescribedBy" }] : /* istanbul ignore next */ []);
|
|
2470
2570
|
this.indent = input(false, ...ngDevMode ? [{ debugName: "indent" }] : /* istanbul ignore next */ []);
|
|
2471
2571
|
this.groupMode = computed(() => this.options().length > 0, ...ngDevMode ? [{ debugName: "groupMode" }] : /* istanbul ignore next */ []);
|
|
2472
2572
|
this._selected = signal([], ...ngDevMode ? [{ debugName: "_selected" }] : /* istanbul ignore next */ []);
|
|
@@ -2494,6 +2594,32 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2494
2594
|
effect(() => {
|
|
2495
2595
|
this.invalidChange.emit(this.invalid());
|
|
2496
2596
|
});
|
|
2597
|
+
effect(() => {
|
|
2598
|
+
const v = this.values();
|
|
2599
|
+
if (!v) return;
|
|
2600
|
+
const next = this.inOptionOrder(v);
|
|
2601
|
+
const cur = this._selected();
|
|
2602
|
+
if (next.length !== cur.length || next.some((x, i) => x !== cur[i])) this._selected.set(next);
|
|
2603
|
+
});
|
|
2604
|
+
}
|
|
2605
|
+
reset(value = false) {
|
|
2606
|
+
if (this.groupMode()) {
|
|
2607
|
+
const next = this.inOptionOrder(Array.isArray(value) ? value : []);
|
|
2608
|
+
this._selected.set(next);
|
|
2609
|
+
if (this.values() !== void 0) this.values.set(next);
|
|
2610
|
+
this._syncNative((opt) => next.includes(opt));
|
|
2611
|
+
this.onChange(next);
|
|
2612
|
+
} else {
|
|
2613
|
+
const on = Array.isArray(value) ? value.length > 0 : !!value;
|
|
2614
|
+
this.checked.set(on);
|
|
2615
|
+
this._syncNative(() => on);
|
|
2616
|
+
this.onChange(on);
|
|
2617
|
+
}
|
|
2618
|
+
}
|
|
2619
|
+
_syncNative(isOn) {
|
|
2620
|
+
this._host.nativeElement.querySelectorAll("input[type=\"checkbox\"]").forEach((el) => {
|
|
2621
|
+
el.checked = this.groupMode() ? isOn(el.getAttribute("value") ?? "") : isOn("");
|
|
2622
|
+
});
|
|
2497
2623
|
}
|
|
2498
2624
|
ngOnChanges() {
|
|
2499
2625
|
this._onValidatorChange();
|
|
@@ -2511,7 +2637,7 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2511
2637
|
return rm ? {
|
|
2512
2638
|
key: "required",
|
|
2513
2639
|
message: rm
|
|
2514
|
-
} : requiredIssue(this.groupMode() ? this.
|
|
2640
|
+
} : requiredIssue(this.groupMode() ? this._legend() : this.label());
|
|
2515
2641
|
}
|
|
2516
2642
|
writeValue(val) {
|
|
2517
2643
|
if (Array.isArray(val)) this._selected.set(this.inOptionOrder(val));
|
|
@@ -2544,6 +2670,7 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2544
2670
|
const on = event.target.checked;
|
|
2545
2671
|
const next = this.inOptionOrder(on ? [...this._selected(), value] : this._selected().filter((v) => v !== value));
|
|
2546
2672
|
this._selected.set(next);
|
|
2673
|
+
if (this.values() !== void 0) this.values.set(next);
|
|
2547
2674
|
this.onChange(next);
|
|
2548
2675
|
this.onTouched();
|
|
2549
2676
|
this._reveal.touched.set(true);
|
|
@@ -2564,7 +2691,7 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2564
2691
|
version: "22.2.2",
|
|
2565
2692
|
type: CheckboxComponent,
|
|
2566
2693
|
isStandalone: true,
|
|
2567
|
-
selector: "ui-checkbox",
|
|
2694
|
+
selector: "ui-checkbox, ui-checkbox-group",
|
|
2568
2695
|
inputs: {
|
|
2569
2696
|
label: {
|
|
2570
2697
|
classPropertyName: "label",
|
|
@@ -2608,6 +2735,27 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2608
2735
|
isRequired: false,
|
|
2609
2736
|
transformFunction: null
|
|
2610
2737
|
},
|
|
2738
|
+
orientation: {
|
|
2739
|
+
classPropertyName: "orientation",
|
|
2740
|
+
publicName: "orientation",
|
|
2741
|
+
isSignal: true,
|
|
2742
|
+
isRequired: false,
|
|
2743
|
+
transformFunction: null
|
|
2744
|
+
},
|
|
2745
|
+
values: {
|
|
2746
|
+
classPropertyName: "values",
|
|
2747
|
+
publicName: "values",
|
|
2748
|
+
isSignal: true,
|
|
2749
|
+
isRequired: false,
|
|
2750
|
+
transformFunction: null
|
|
2751
|
+
},
|
|
2752
|
+
description: {
|
|
2753
|
+
classPropertyName: "description",
|
|
2754
|
+
publicName: "description",
|
|
2755
|
+
isSignal: true,
|
|
2756
|
+
isRequired: false,
|
|
2757
|
+
transformFunction: null
|
|
2758
|
+
},
|
|
2611
2759
|
indent: {
|
|
2612
2760
|
classPropertyName: "indent",
|
|
2613
2761
|
publicName: "indent",
|
|
@@ -2660,6 +2808,7 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2660
2808
|
},
|
|
2661
2809
|
outputs: {
|
|
2662
2810
|
checked: "checkedChange",
|
|
2811
|
+
values: "valuesChange",
|
|
2663
2812
|
invalidChange: "invalidChange"
|
|
2664
2813
|
},
|
|
2665
2814
|
providers: [
|
|
@@ -2678,6 +2827,13 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2678
2827
|
useExisting: forwardRef(() => CheckboxComponent)
|
|
2679
2828
|
}
|
|
2680
2829
|
],
|
|
2830
|
+
queries: [{
|
|
2831
|
+
propertyName: "_trailingContent",
|
|
2832
|
+
first: true,
|
|
2833
|
+
predicate: CheckboxTrailingDirective,
|
|
2834
|
+
descendants: true,
|
|
2835
|
+
isSignal: true
|
|
2836
|
+
}],
|
|
2681
2837
|
usesOnChanges: true,
|
|
2682
2838
|
ngImport: i0,
|
|
2683
2839
|
template: `
|
|
@@ -2685,10 +2841,10 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2685
2841
|
<fieldset class="cb-group" [class.cb-indent]="indent()" [class.cb-error]="_activeError()" [disabled]="disabled()"
|
|
2686
2842
|
[attr.aria-required]="required() ? 'true' : null" [attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
2687
2843
|
[attr.aria-describedby]="(_activeError() || hint()) ? _descId : null">
|
|
2688
|
-
@if (
|
|
2689
|
-
<legend class="cb-legend">{{
|
|
2844
|
+
@if (_legend()) {
|
|
2845
|
+
<legend class="cb-legend">{{ _legend() }}@if (required()) { <span class="cb-required" aria-hidden="true">*</span> }</legend>
|
|
2690
2846
|
}
|
|
2691
|
-
<div class="cb-options">
|
|
2847
|
+
<div class="cb-options" [class.cb-horizontal]="orientation() === 'horizontal'">
|
|
2692
2848
|
@for (opt of options(); track opt.value; let i = $index) {
|
|
2693
2849
|
<div class="cb-option">
|
|
2694
2850
|
<label class="cb-wrap" [class.cb-disabled]="disabled() || opt.disabled">
|
|
@@ -2703,6 +2859,8 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2703
2859
|
type="checkbox"
|
|
2704
2860
|
class="cb-hidden"
|
|
2705
2861
|
[checked]="isSelected(opt.value)"
|
|
2862
|
+
[attr.value]="opt.value"
|
|
2863
|
+
[attr.data-testid]="opt.testId || null"
|
|
2706
2864
|
[disabled]="disabled() || !!opt.disabled"
|
|
2707
2865
|
[attr.aria-describedby]="opt.description ? _descId + '-' + i : null"
|
|
2708
2866
|
(change)="onToggleOption(opt.value, $event)"
|
|
@@ -2722,7 +2880,8 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2722
2880
|
}
|
|
2723
2881
|
</fieldset>
|
|
2724
2882
|
} @else {
|
|
2725
|
-
<div class="cb-field" [class.cb-indent]="indent()" [class.cb-error]="_activeError()">
|
|
2883
|
+
<div class="cb-field" [class.cb-indent]="indent()" [class.cb-error]="_activeError()" [class.cb-has-trailing]="_trailing()">
|
|
2884
|
+
<ng-template #labelRow>
|
|
2726
2885
|
<label class="cb-wrap" [class.cb-disabled]="disabled()">
|
|
2727
2886
|
<span class="cb-box" [class.cb-checked]="checked()" [class.cb-indeterminate]="indeterminate() && !checked()" [class.cb-disabled]="disabled()">
|
|
2728
2887
|
@if (checked()) {
|
|
@@ -2744,7 +2903,7 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2744
2903
|
[attr.aria-checked]="indeterminate() && !checked() ? 'mixed' : null"
|
|
2745
2904
|
[attr.aria-required]="required() ? 'true' : null"
|
|
2746
2905
|
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
2747
|
-
[attr.aria-describedby]="(
|
|
2906
|
+
[attr.aria-describedby]="_singleDescribedBy()"
|
|
2748
2907
|
(change)="onToggle($event)"
|
|
2749
2908
|
/>
|
|
2750
2909
|
@if (label()) {
|
|
@@ -2752,6 +2911,18 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2752
2911
|
}
|
|
2753
2912
|
<ng-content />
|
|
2754
2913
|
</label>
|
|
2914
|
+
</ng-template>
|
|
2915
|
+
@if (_trailing()) {
|
|
2916
|
+
<div class="cb-row">
|
|
2917
|
+
<ng-container [ngTemplateOutlet]="labelRow" />
|
|
2918
|
+
<span class="cb-trailing"><ng-content select="[checkbox-trailing]" /></span>
|
|
2919
|
+
</div>
|
|
2920
|
+
} @else {
|
|
2921
|
+
<ng-container [ngTemplateOutlet]="labelRow" />
|
|
2922
|
+
}
|
|
2923
|
+
@if (description()) {
|
|
2924
|
+
<p class="cb-desc" [id]="_descId + '-d'">{{ description() }}</p>
|
|
2925
|
+
}
|
|
2755
2926
|
@if (_activeError()) {
|
|
2756
2927
|
<p class="cb-desc cb-desc-error" [id]="_descId" role="alert">{{ _activeError() }}</p>
|
|
2757
2928
|
} @else if (hint()) {
|
|
@@ -2761,7 +2932,17 @@ var CheckboxComponent = class CheckboxComponent {
|
|
|
2761
2932
|
}
|
|
2762
2933
|
`,
|
|
2763
2934
|
isInline: true,
|
|
2764
|
-
styles: [".cb-field{display:inline-flex;flex-direction:column;gap:4px}.cb-group{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.cb-legend{padding:0;margin:0 0 8px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1.2}.cb-required{color:#ef4444;margin-left:2px}.cb-options{display:flex;flex-direction:column;gap:10px}.cb-option{display:flex;flex-direction:column;gap:4px}.cb-group-desc{margin-left:0}.cb-indent{margin-left:29px}.cb-desc{margin:0 0 0 29px;font-size:.75rem;line-height:1.4;color:#64748b}.cb-desc-error{color:#ef4444}.cb-error .cb-box:not(.cb-checked){border-color:#ef4444}.cb-wrap{display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none}.cb-wrap.cb-disabled{cursor:not-allowed;opacity:.5}.cb-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-wrap:has(.cb-hidden:focus-visible) .cb-box{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.cb-wrap{position:relative}.cb-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:50%;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:1}.cb-wrap.cb-disabled .cb-hidden{cursor:not-allowed}}.cb-box{flex-shrink:0;width:20px;height:20px;border:2px solid #cbd5e1;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.cb-box.cb-checked,.cb-box.cb-indeterminate{background:#3b82f6;border-color:#3b82f6}.cb-wrap:hover .cb-box:not(.cb-checked):not(.cb-disabled){border-color:#3b82f6}@media(max-width:640px),(pointer:coarse){.cb-box{position:relative}.cb-box:after{content:\"\";position:absolute;inset:-12px}}.cb-label{font-size:.875rem;color:#334155;line-height:1.4}\n"],
|
|
2935
|
+
styles: [".cb-field{display:inline-flex;flex-direction:column;gap:4px}.cb-group{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.cb-legend{padding:0;margin:0 0 8px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1.2}.cb-required{color:#ef4444;margin-left:2px}.cb-options{display:flex;flex-direction:column;gap:10px}.cb-options.cb-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.cb-field.cb-has-trailing{display:flex}.cb-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cb-trailing{display:inline-flex;align-items:center;flex-shrink:0}.cb-option{display:flex;flex-direction:column;gap:4px}.cb-group-desc{margin-left:0}.cb-indent{margin-left:29px}.cb-desc{margin:0 0 0 29px;font-size:.75rem;line-height:1.4;color:#64748b}.cb-desc-error{color:#ef4444}.cb-error .cb-box:not(.cb-checked){border-color:#ef4444}.cb-wrap{display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none}.cb-wrap.cb-disabled{cursor:not-allowed;opacity:.5}.cb-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-wrap:has(.cb-hidden:focus-visible) .cb-box{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.cb-wrap{position:relative}.cb-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:50%;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:1}.cb-wrap.cb-disabled .cb-hidden{cursor:not-allowed}}.cb-box{flex-shrink:0;width:20px;height:20px;border:2px solid #cbd5e1;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.cb-box.cb-checked,.cb-box.cb-indeterminate{background:#3b82f6;border-color:#3b82f6}.cb-wrap:hover .cb-box:not(.cb-checked):not(.cb-disabled){border-color:#3b82f6}@media(max-width:640px),(pointer:coarse){.cb-box{position:relative}.cb-box:after{content:\"\";position:absolute;inset:-12px}}.cb-label{font-size:.875rem;color:#334155;line-height:1.4}\n"],
|
|
2936
|
+
dependencies: [{
|
|
2937
|
+
kind: "directive",
|
|
2938
|
+
type: NgTemplateOutlet,
|
|
2939
|
+
selector: "[ngTemplateOutlet]",
|
|
2940
|
+
inputs: [
|
|
2941
|
+
"ngTemplateOutletContext",
|
|
2942
|
+
"ngTemplateOutlet",
|
|
2943
|
+
"ngTemplateOutletInjector"
|
|
2944
|
+
]
|
|
2945
|
+
}],
|
|
2765
2946
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
2766
2947
|
});
|
|
2767
2948
|
}
|
|
@@ -2774,8 +2955,9 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2774
2955
|
decorators: [{
|
|
2775
2956
|
type: Component,
|
|
2776
2957
|
args: [{
|
|
2777
|
-
selector: "ui-checkbox",
|
|
2958
|
+
selector: "ui-checkbox, ui-checkbox-group",
|
|
2778
2959
|
standalone: true,
|
|
2960
|
+
imports: [NgTemplateOutlet],
|
|
2779
2961
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2780
2962
|
providers: [
|
|
2781
2963
|
{
|
|
@@ -2798,10 +2980,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2798
2980
|
<fieldset class="cb-group" [class.cb-indent]="indent()" [class.cb-error]="_activeError()" [disabled]="disabled()"
|
|
2799
2981
|
[attr.aria-required]="required() ? 'true' : null" [attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
2800
2982
|
[attr.aria-describedby]="(_activeError() || hint()) ? _descId : null">
|
|
2801
|
-
@if (
|
|
2802
|
-
<legend class="cb-legend">{{
|
|
2983
|
+
@if (_legend()) {
|
|
2984
|
+
<legend class="cb-legend">{{ _legend() }}@if (required()) { <span class="cb-required" aria-hidden="true">*</span> }</legend>
|
|
2803
2985
|
}
|
|
2804
|
-
<div class="cb-options">
|
|
2986
|
+
<div class="cb-options" [class.cb-horizontal]="orientation() === 'horizontal'">
|
|
2805
2987
|
@for (opt of options(); track opt.value; let i = $index) {
|
|
2806
2988
|
<div class="cb-option">
|
|
2807
2989
|
<label class="cb-wrap" [class.cb-disabled]="disabled() || opt.disabled">
|
|
@@ -2816,6 +2998,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2816
2998
|
type="checkbox"
|
|
2817
2999
|
class="cb-hidden"
|
|
2818
3000
|
[checked]="isSelected(opt.value)"
|
|
3001
|
+
[attr.value]="opt.value"
|
|
3002
|
+
[attr.data-testid]="opt.testId || null"
|
|
2819
3003
|
[disabled]="disabled() || !!opt.disabled"
|
|
2820
3004
|
[attr.aria-describedby]="opt.description ? _descId + '-' + i : null"
|
|
2821
3005
|
(change)="onToggleOption(opt.value, $event)"
|
|
@@ -2835,7 +3019,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2835
3019
|
}
|
|
2836
3020
|
</fieldset>
|
|
2837
3021
|
} @else {
|
|
2838
|
-
<div class="cb-field" [class.cb-indent]="indent()" [class.cb-error]="_activeError()">
|
|
3022
|
+
<div class="cb-field" [class.cb-indent]="indent()" [class.cb-error]="_activeError()" [class.cb-has-trailing]="_trailing()">
|
|
3023
|
+
<ng-template #labelRow>
|
|
2839
3024
|
<label class="cb-wrap" [class.cb-disabled]="disabled()">
|
|
2840
3025
|
<span class="cb-box" [class.cb-checked]="checked()" [class.cb-indeterminate]="indeterminate() && !checked()" [class.cb-disabled]="disabled()">
|
|
2841
3026
|
@if (checked()) {
|
|
@@ -2857,7 +3042,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2857
3042
|
[attr.aria-checked]="indeterminate() && !checked() ? 'mixed' : null"
|
|
2858
3043
|
[attr.aria-required]="required() ? 'true' : null"
|
|
2859
3044
|
[attr.aria-invalid]="_activeError() ? 'true' : null"
|
|
2860
|
-
[attr.aria-describedby]="(
|
|
3045
|
+
[attr.aria-describedby]="_singleDescribedBy()"
|
|
2861
3046
|
(change)="onToggle($event)"
|
|
2862
3047
|
/>
|
|
2863
3048
|
@if (label()) {
|
|
@@ -2865,6 +3050,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2865
3050
|
}
|
|
2866
3051
|
<ng-content />
|
|
2867
3052
|
</label>
|
|
3053
|
+
</ng-template>
|
|
3054
|
+
@if (_trailing()) {
|
|
3055
|
+
<div class="cb-row">
|
|
3056
|
+
<ng-container [ngTemplateOutlet]="labelRow" />
|
|
3057
|
+
<span class="cb-trailing"><ng-content select="[checkbox-trailing]" /></span>
|
|
3058
|
+
</div>
|
|
3059
|
+
} @else {
|
|
3060
|
+
<ng-container [ngTemplateOutlet]="labelRow" />
|
|
3061
|
+
}
|
|
3062
|
+
@if (description()) {
|
|
3063
|
+
<p class="cb-desc" [id]="_descId + '-d'">{{ description() }}</p>
|
|
3064
|
+
}
|
|
2868
3065
|
@if (_activeError()) {
|
|
2869
3066
|
<p class="cb-desc cb-desc-error" [id]="_descId" role="alert">{{ _activeError() }}</p>
|
|
2870
3067
|
} @else if (hint()) {
|
|
@@ -2873,7 +3070,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2873
3070
|
</div>
|
|
2874
3071
|
}
|
|
2875
3072
|
`,
|
|
2876
|
-
styles: [".cb-field{display:inline-flex;flex-direction:column;gap:4px}.cb-group{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.cb-legend{padding:0;margin:0 0 8px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1.2}.cb-required{color:#ef4444;margin-left:2px}.cb-options{display:flex;flex-direction:column;gap:10px}.cb-option{display:flex;flex-direction:column;gap:4px}.cb-group-desc{margin-left:0}.cb-indent{margin-left:29px}.cb-desc{margin:0 0 0 29px;font-size:.75rem;line-height:1.4;color:#64748b}.cb-desc-error{color:#ef4444}.cb-error .cb-box:not(.cb-checked){border-color:#ef4444}.cb-wrap{display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none}.cb-wrap.cb-disabled{cursor:not-allowed;opacity:.5}.cb-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-wrap:has(.cb-hidden:focus-visible) .cb-box{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.cb-wrap{position:relative}.cb-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:50%;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:1}.cb-wrap.cb-disabled .cb-hidden{cursor:not-allowed}}.cb-box{flex-shrink:0;width:20px;height:20px;border:2px solid #cbd5e1;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.cb-box.cb-checked,.cb-box.cb-indeterminate{background:#3b82f6;border-color:#3b82f6}.cb-wrap:hover .cb-box:not(.cb-checked):not(.cb-disabled){border-color:#3b82f6}@media(max-width:640px),(pointer:coarse){.cb-box{position:relative}.cb-box:after{content:\"\";position:absolute;inset:-12px}}.cb-label{font-size:.875rem;color:#334155;line-height:1.4}\n"]
|
|
3073
|
+
styles: [".cb-field{display:inline-flex;flex-direction:column;gap:4px}.cb-group{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}.cb-legend{padding:0;margin:0 0 8px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1.2}.cb-required{color:#ef4444;margin-left:2px}.cb-options{display:flex;flex-direction:column;gap:10px}.cb-options.cb-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.cb-field.cb-has-trailing{display:flex}.cb-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cb-trailing{display:inline-flex;align-items:center;flex-shrink:0}.cb-option{display:flex;flex-direction:column;gap:4px}.cb-group-desc{margin-left:0}.cb-indent{margin-left:29px}.cb-desc{margin:0 0 0 29px;font-size:.75rem;line-height:1.4;color:#64748b}.cb-desc-error{color:#ef4444}.cb-error .cb-box:not(.cb-checked){border-color:#ef4444}.cb-wrap{display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none}.cb-wrap.cb-disabled{cursor:not-allowed;opacity:.5}.cb-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cb-wrap:has(.cb-hidden:focus-visible) .cb-box{outline:2px solid #3b82f6;outline-offset:2px}@media(pointer:coarse),(max-width:480px){.cb-wrap{position:relative}.cb-hidden{width:44px;height:44px;margin:0;clip:auto;overflow:visible;left:-12px;top:50%;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:1}.cb-wrap.cb-disabled .cb-hidden{cursor:not-allowed}}.cb-box{flex-shrink:0;width:20px;height:20px;border:2px solid #cbd5e1;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.cb-box.cb-checked,.cb-box.cb-indeterminate{background:#3b82f6;border-color:#3b82f6}.cb-wrap:hover .cb-box:not(.cb-checked):not(.cb-disabled){border-color:#3b82f6}@media(max-width:640px),(pointer:coarse){.cb-box{position:relative}.cb-box:after{content:\"\";position:absolute;inset:-12px}}.cb-label{font-size:.875rem;color:#334155;line-height:1.4}\n"]
|
|
2877
3074
|
}]
|
|
2878
3075
|
}],
|
|
2879
3076
|
ctorParameters: () => [],
|
|
@@ -2929,6 +3126,37 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2929
3126
|
required: false
|
|
2930
3127
|
}]
|
|
2931
3128
|
}],
|
|
3129
|
+
orientation: [{
|
|
3130
|
+
type: i0.Input,
|
|
3131
|
+
args: [{
|
|
3132
|
+
isSignal: true,
|
|
3133
|
+
alias: "orientation",
|
|
3134
|
+
required: false
|
|
3135
|
+
}]
|
|
3136
|
+
}],
|
|
3137
|
+
values: [{
|
|
3138
|
+
type: i0.Input,
|
|
3139
|
+
args: [{
|
|
3140
|
+
isSignal: true,
|
|
3141
|
+
alias: "values",
|
|
3142
|
+
required: false
|
|
3143
|
+
}]
|
|
3144
|
+
}, {
|
|
3145
|
+
type: i0.Output,
|
|
3146
|
+
args: ["valuesChange"]
|
|
3147
|
+
}],
|
|
3148
|
+
description: [{
|
|
3149
|
+
type: i0.Input,
|
|
3150
|
+
args: [{
|
|
3151
|
+
isSignal: true,
|
|
3152
|
+
alias: "description",
|
|
3153
|
+
required: false
|
|
3154
|
+
}]
|
|
3155
|
+
}],
|
|
3156
|
+
_trailingContent: [{
|
|
3157
|
+
type: i0.ContentChild,
|
|
3158
|
+
args: [i0.forwardRef(() => CheckboxTrailingDirective), { isSignal: true }]
|
|
3159
|
+
}],
|
|
2932
3160
|
indent: [{
|
|
2933
3161
|
type: i0.Input,
|
|
2934
3162
|
args: [{
|
|
@@ -2996,6 +3224,7 @@ var ButtonComponent = class ButtonComponent {
|
|
|
2996
3224
|
this.variant = input("primary", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
|
|
2997
3225
|
this.routerLink = input(null, ...ngDevMode ? [{ debugName: "routerLink" }] : /* istanbul ignore next */ []);
|
|
2998
3226
|
this.queryParams = input(null, ...ngDevMode ? [{ debugName: "queryParams" }] : /* istanbul ignore next */ []);
|
|
3227
|
+
this.fragment = input(null, ...ngDevMode ? [{ debugName: "fragment" }] : /* istanbul ignore next */ []);
|
|
2999
3228
|
this.href = input(null, ...ngDevMode ? [{ debugName: "href" }] : /* istanbul ignore next */ []);
|
|
3000
3229
|
this.target = input(null, ...ngDevMode ? [{ debugName: "target" }] : /* istanbul ignore next */ []);
|
|
3001
3230
|
this.rel = input(null, ...ngDevMode ? [{ debugName: "rel" }] : /* istanbul ignore next */ []);
|
|
@@ -3073,6 +3302,13 @@ var ButtonComponent = class ButtonComponent {
|
|
|
3073
3302
|
isRequired: false,
|
|
3074
3303
|
transformFunction: null
|
|
3075
3304
|
},
|
|
3305
|
+
fragment: {
|
|
3306
|
+
classPropertyName: "fragment",
|
|
3307
|
+
publicName: "fragment",
|
|
3308
|
+
isSignal: true,
|
|
3309
|
+
isRequired: false,
|
|
3310
|
+
transformFunction: null
|
|
3311
|
+
},
|
|
3076
3312
|
href: {
|
|
3077
3313
|
classPropertyName: "href",
|
|
3078
3314
|
publicName: "href",
|
|
@@ -3186,6 +3422,7 @@ var ButtonComponent = class ButtonComponent {
|
|
|
3186
3422
|
transformFunction: null
|
|
3187
3423
|
}
|
|
3188
3424
|
},
|
|
3425
|
+
host: { properties: { "class.ui-btn-block": "variant() === 'ghost-start'" } },
|
|
3189
3426
|
ngImport: i0,
|
|
3190
3427
|
template: `
|
|
3191
3428
|
<ng-template #content>
|
|
@@ -3196,14 +3433,26 @@ var ButtonComponent = class ButtonComponent {
|
|
|
3196
3433
|
</ng-template>
|
|
3197
3434
|
@if (routerLink() !== null) {
|
|
3198
3435
|
<!-- A real link (middle-click, open in new tab, screen readers say "link"): same look as the button of this variant, underlined. -->
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3436
|
+
@if (disabled() || loading()) {
|
|
3437
|
+
<!-- Like a disabled href: no href, so it cannot be clicked, middle-clicked or opened in a new tab. -->
|
|
3438
|
+
<span
|
|
3439
|
+
role="link" aria-disabled="true"
|
|
3440
|
+
[class]="'btn btn-anchor btn-' + variant() + ' btn-' + size()"
|
|
3441
|
+
[class.btn-full]="fullWidth()"
|
|
3442
|
+
[attr.aria-label]="ariaLabel()"
|
|
3443
|
+
[attr.aria-describedby]="ariaDescribedBy() || null"
|
|
3444
|
+
><ng-container [ngTemplateOutlet]="content" /></span>
|
|
3445
|
+
} @else {
|
|
3446
|
+
<a
|
|
3447
|
+
[routerLink]="routerLink()"
|
|
3448
|
+
[queryParams]="queryParams()"
|
|
3449
|
+
[fragment]="fragment() ?? undefined"
|
|
3450
|
+
[class]="'btn btn-anchor btn-' + variant() + ' btn-' + size()"
|
|
3451
|
+
[class.btn-full]="fullWidth()"
|
|
3452
|
+
[attr.aria-label]="ariaLabel()"
|
|
3453
|
+
[attr.aria-describedby]="ariaDescribedBy() || null"
|
|
3454
|
+
><ng-container [ngTemplateOutlet]="content" /></a>
|
|
3455
|
+
}
|
|
3207
3456
|
} @else if (_safeHref() !== null) {
|
|
3208
3457
|
<!-- A plain link (mailto:, tel:, https://…): the browser handles it, so middle-click, copy-link and "open in new tab" work. -->
|
|
3209
3458
|
@if (disabled() || loading()) {
|
|
@@ -3242,7 +3491,7 @@ var ButtonComponent = class ButtonComponent {
|
|
|
3242
3491
|
}
|
|
3243
3492
|
`,
|
|
3244
3493
|
isInline: true,
|
|
3245
|
-
styles: [":host{display:inline-flex}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:8px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.btn-full{width:100%}.btn-primary{background:#3b82f6;color:#fff;border:1px solid #3B82F6}.btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.btn-ghost{background:transparent;color:#64748b;border:1px solid transparent}.btn-ghost:hover:not(:disabled){background:#f8fafc;color:#334155}.btn-danger{background:#dc2626;color:#fff;border:1px solid #dc2626}.btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.btn-link{background:none;color:#3b82f6;border:none;padding:0;font-weight:500}.btn-link:hover:not(:disabled){color:#60a5fa}.btn-link.btn-xs,.btn-link.btn-sm,.btn-link.btn-md,.btn-link.btn-lg{padding:0}.btn-anchor{text-decoration:none}.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-anchor.btn-link{text-decoration:underline;text-underline-offset:2px}.btn-warning{background:#f97316;color:#fff;border:1px solid #f97316}.btn-warning:hover:not(:disabled){background:#ea6c0a;border-color:#ea6c0a}.btn-tab{background:none;color:#64748b;border:none;border-bottom:2px solid transparent;border-radius:0;font-weight:600;font-size:.875rem;transition:all .15s}.btn-tab:hover:not(:disabled){background:none;color:#1e293b}.btn-tab.active{color:#3b82f6;border-bottom-color:#3b82f6}.btn-tab.btn-xs,.btn-tab.btn-sm,.btn-tab.btn-md,.btn-tab.btn-lg{padding:10px 20px;border-radius:0}.btn-icon{width:28px;height:28px;padding:0;border-radius:6px;background:transparent;border:none;color:#94a3b8}.btn-icon:hover:not(:disabled){background:#f1f5f9;color:#334155}.btn-icon-danger{width:28px;height:28px;padding:0;border-radius:6px;background:transparent;border:none;color:#94a3b8}.btn-icon-danger:hover:not(:disabled){background:#fee2e2;color:#dc2626}.btn-xs{padding:3px 8px;font-size:.75rem;border-radius:5px;gap:4px}.btn-sm{padding:6px 12px;font-size:.8125rem;border-radius:6px}.btn-md{padding:10px 16px;font-size:.875rem}.btn-lg{padding:14px 20px;font-size:1rem}@media(pointer:coarse),(max-width:480px){.btn-xs,.btn-sm,.btn-md,.btn-lg,.btn-tab{min-height:44px}.btn-link.btn-xs,.btn-link.btn-sm,.btn-link.btn-md,.btn-link.btn-lg{min-height:0}.btn-icon,.btn-icon-danger{position:relative}.btn-icon:after,.btn-icon-danger:after{content:\"\";position:absolute;inset:-8px}}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"],
|
|
3494
|
+
styles: [":host{display:inline-flex}:host(.ui-btn-block){display:flex;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:8px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.btn-full{width:100%}.btn-primary{background:#3b82f6;color:#fff;border:1px solid #3B82F6}.btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.btn-ghost{background:transparent;color:#64748b;border:1px solid transparent}.btn-ghost:hover:not(:disabled){background:#f8fafc;color:#334155}.btn-ghost-start{display:flex;width:100%;justify-content:flex-start;text-align:start;white-space:normal;background:transparent;color:#334155;border:1px solid transparent}.btn-ghost-start:hover:not(:disabled){background:#f1f5f9;color:#1e293b}.btn-danger{background:#dc2626;color:#fff;border:1px solid #dc2626}.btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.btn-link{background:none;color:#3b82f6;border:none;padding:0;font-weight:500}.btn-link:hover:not(:disabled){color:#60a5fa}.btn-link.btn-xs,.btn-link.btn-sm,.btn-link.btn-md,.btn-link.btn-lg{padding:0}.btn-anchor{text-decoration:none}.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-anchor.btn-link{text-decoration:underline;text-underline-offset:2px}.btn-warning{background:#f97316;color:#fff;border:1px solid #f97316}.btn-warning:hover:not(:disabled){background:#ea6c0a;border-color:#ea6c0a}.btn-tab{background:none;color:#64748b;border:none;border-bottom:2px solid transparent;border-radius:0;font-weight:600;font-size:.875rem;transition:all .15s}.btn-tab:hover:not(:disabled){background:none;color:#1e293b}.btn-tab.active{color:#3b82f6;border-bottom-color:#3b82f6}.btn-tab.btn-xs,.btn-tab.btn-sm,.btn-tab.btn-md,.btn-tab.btn-lg{padding:10px 20px;border-radius:0}.btn-icon{width:28px;height:28px;padding:0;border-radius:6px;background:transparent;border:none;color:#94a3b8}.btn-icon:hover:not(:disabled){background:#f1f5f9;color:#334155}.btn-icon-danger{width:28px;height:28px;padding:0;border-radius:6px;background:transparent;border:none;color:#94a3b8}.btn-icon-danger:hover:not(:disabled){background:#fee2e2;color:#dc2626}.btn-xs{padding:3px 8px;font-size:.75rem;border-radius:5px;gap:4px}.btn-sm{padding:6px 12px;font-size:.8125rem;border-radius:6px}.btn-md{padding:10px 16px;font-size:.875rem}.btn-lg{padding:14px 20px;font-size:1rem}@media(pointer:coarse),(max-width:480px){.btn-xs,.btn-sm,.btn-md,.btn-lg,.btn-tab{min-height:44px}.btn-link.btn-xs,.btn-link.btn-sm,.btn-link.btn-md,.btn-link.btn-lg{min-height:0}.btn-icon,.btn-icon-danger{position:relative}.btn-icon:after,.btn-icon-danger:after{content:\"\";position:absolute;inset:-8px}}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"],
|
|
3246
3495
|
dependencies: [{
|
|
3247
3496
|
kind: "directive",
|
|
3248
3497
|
type: NgTemplateOutlet,
|
|
@@ -3286,6 +3535,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3286
3535
|
selector: "ui-button",
|
|
3287
3536
|
standalone: true,
|
|
3288
3537
|
imports: [NgTemplateOutlet, RouterLink],
|
|
3538
|
+
host: { "[class.ui-btn-block]": "variant() === 'ghost-start'" },
|
|
3289
3539
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3290
3540
|
template: `
|
|
3291
3541
|
<ng-template #content>
|
|
@@ -3296,14 +3546,26 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3296
3546
|
</ng-template>
|
|
3297
3547
|
@if (routerLink() !== null) {
|
|
3298
3548
|
<!-- A real link (middle-click, open in new tab, screen readers say "link"): same look as the button of this variant, underlined. -->
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
|
|
3549
|
+
@if (disabled() || loading()) {
|
|
3550
|
+
<!-- Like a disabled href: no href, so it cannot be clicked, middle-clicked or opened in a new tab. -->
|
|
3551
|
+
<span
|
|
3552
|
+
role="link" aria-disabled="true"
|
|
3553
|
+
[class]="'btn btn-anchor btn-' + variant() + ' btn-' + size()"
|
|
3554
|
+
[class.btn-full]="fullWidth()"
|
|
3555
|
+
[attr.aria-label]="ariaLabel()"
|
|
3556
|
+
[attr.aria-describedby]="ariaDescribedBy() || null"
|
|
3557
|
+
><ng-container [ngTemplateOutlet]="content" /></span>
|
|
3558
|
+
} @else {
|
|
3559
|
+
<a
|
|
3560
|
+
[routerLink]="routerLink()"
|
|
3561
|
+
[queryParams]="queryParams()"
|
|
3562
|
+
[fragment]="fragment() ?? undefined"
|
|
3563
|
+
[class]="'btn btn-anchor btn-' + variant() + ' btn-' + size()"
|
|
3564
|
+
[class.btn-full]="fullWidth()"
|
|
3565
|
+
[attr.aria-label]="ariaLabel()"
|
|
3566
|
+
[attr.aria-describedby]="ariaDescribedBy() || null"
|
|
3567
|
+
><ng-container [ngTemplateOutlet]="content" /></a>
|
|
3568
|
+
}
|
|
3307
3569
|
} @else if (_safeHref() !== null) {
|
|
3308
3570
|
<!-- A plain link (mailto:, tel:, https://…): the browser handles it, so middle-click, copy-link and "open in new tab" work. -->
|
|
3309
3571
|
@if (disabled() || loading()) {
|
|
@@ -3341,7 +3603,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3341
3603
|
><ng-container [ngTemplateOutlet]="content" /></button>
|
|
3342
3604
|
}
|
|
3343
3605
|
`,
|
|
3344
|
-
styles: [":host{display:inline-flex}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:8px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.btn-full{width:100%}.btn-primary{background:#3b82f6;color:#fff;border:1px solid #3B82F6}.btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.btn-ghost{background:transparent;color:#64748b;border:1px solid transparent}.btn-ghost:hover:not(:disabled){background:#f8fafc;color:#334155}.btn-danger{background:#dc2626;color:#fff;border:1px solid #dc2626}.btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.btn-link{background:none;color:#3b82f6;border:none;padding:0;font-weight:500}.btn-link:hover:not(:disabled){color:#60a5fa}.btn-link.btn-xs,.btn-link.btn-sm,.btn-link.btn-md,.btn-link.btn-lg{padding:0}.btn-anchor{text-decoration:none}.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-anchor.btn-link{text-decoration:underline;text-underline-offset:2px}.btn-warning{background:#f97316;color:#fff;border:1px solid #f97316}.btn-warning:hover:not(:disabled){background:#ea6c0a;border-color:#ea6c0a}.btn-tab{background:none;color:#64748b;border:none;border-bottom:2px solid transparent;border-radius:0;font-weight:600;font-size:.875rem;transition:all .15s}.btn-tab:hover:not(:disabled){background:none;color:#1e293b}.btn-tab.active{color:#3b82f6;border-bottom-color:#3b82f6}.btn-tab.btn-xs,.btn-tab.btn-sm,.btn-tab.btn-md,.btn-tab.btn-lg{padding:10px 20px;border-radius:0}.btn-icon{width:28px;height:28px;padding:0;border-radius:6px;background:transparent;border:none;color:#94a3b8}.btn-icon:hover:not(:disabled){background:#f1f5f9;color:#334155}.btn-icon-danger{width:28px;height:28px;padding:0;border-radius:6px;background:transparent;border:none;color:#94a3b8}.btn-icon-danger:hover:not(:disabled){background:#fee2e2;color:#dc2626}.btn-xs{padding:3px 8px;font-size:.75rem;border-radius:5px;gap:4px}.btn-sm{padding:6px 12px;font-size:.8125rem;border-radius:6px}.btn-md{padding:10px 16px;font-size:.875rem}.btn-lg{padding:14px 20px;font-size:1rem}@media(pointer:coarse),(max-width:480px){.btn-xs,.btn-sm,.btn-md,.btn-lg,.btn-tab{min-height:44px}.btn-link.btn-xs,.btn-link.btn-sm,.btn-link.btn-md,.btn-link.btn-lg{min-height:0}.btn-icon,.btn-icon-danger{position:relative}.btn-icon:after,.btn-icon-danger:after{content:\"\";position:absolute;inset:-8px}}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"]
|
|
3606
|
+
styles: [":host{display:inline-flex}:host(.ui-btn-block){display:flex;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:8px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.btn-full{width:100%}.btn-primary{background:#3b82f6;color:#fff;border:1px solid #3B82F6}.btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.btn-ghost{background:transparent;color:#64748b;border:1px solid transparent}.btn-ghost:hover:not(:disabled){background:#f8fafc;color:#334155}.btn-ghost-start{display:flex;width:100%;justify-content:flex-start;text-align:start;white-space:normal;background:transparent;color:#334155;border:1px solid transparent}.btn-ghost-start:hover:not(:disabled){background:#f1f5f9;color:#1e293b}.btn-danger{background:#dc2626;color:#fff;border:1px solid #dc2626}.btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.btn-link{background:none;color:#3b82f6;border:none;padding:0;font-weight:500}.btn-link:hover:not(:disabled){color:#60a5fa}.btn-link.btn-xs,.btn-link.btn-sm,.btn-link.btn-md,.btn-link.btn-lg{padding:0}.btn-anchor{text-decoration:none}.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-anchor.btn-link{text-decoration:underline;text-underline-offset:2px}.btn-warning{background:#f97316;color:#fff;border:1px solid #f97316}.btn-warning:hover:not(:disabled){background:#ea6c0a;border-color:#ea6c0a}.btn-tab{background:none;color:#64748b;border:none;border-bottom:2px solid transparent;border-radius:0;font-weight:600;font-size:.875rem;transition:all .15s}.btn-tab:hover:not(:disabled){background:none;color:#1e293b}.btn-tab.active{color:#3b82f6;border-bottom-color:#3b82f6}.btn-tab.btn-xs,.btn-tab.btn-sm,.btn-tab.btn-md,.btn-tab.btn-lg{padding:10px 20px;border-radius:0}.btn-icon{width:28px;height:28px;padding:0;border-radius:6px;background:transparent;border:none;color:#94a3b8}.btn-icon:hover:not(:disabled){background:#f1f5f9;color:#334155}.btn-icon-danger{width:28px;height:28px;padding:0;border-radius:6px;background:transparent;border:none;color:#94a3b8}.btn-icon-danger:hover:not(:disabled){background:#fee2e2;color:#dc2626}.btn-xs{padding:3px 8px;font-size:.75rem;border-radius:5px;gap:4px}.btn-sm{padding:6px 12px;font-size:.8125rem;border-radius:6px}.btn-md{padding:10px 16px;font-size:.875rem}.btn-lg{padding:14px 20px;font-size:1rem}@media(pointer:coarse),(max-width:480px){.btn-xs,.btn-sm,.btn-md,.btn-lg,.btn-tab{min-height:44px}.btn-link.btn-xs,.btn-link.btn-sm,.btn-link.btn-md,.btn-link.btn-lg{min-height:0}.btn-icon,.btn-icon-danger{position:relative}.btn-icon:after,.btn-icon-danger:after{content:\"\";position:absolute;inset:-8px}}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"]
|
|
3345
3607
|
}]
|
|
3346
3608
|
}],
|
|
3347
3609
|
propDecorators: {
|
|
@@ -3369,6 +3631,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3369
3631
|
required: false
|
|
3370
3632
|
}]
|
|
3371
3633
|
}],
|
|
3634
|
+
fragment: [{
|
|
3635
|
+
type: i0.Input,
|
|
3636
|
+
args: [{
|
|
3637
|
+
isSignal: true,
|
|
3638
|
+
alias: "fragment",
|
|
3639
|
+
required: false
|
|
3640
|
+
}]
|
|
3641
|
+
}],
|
|
3372
3642
|
href: [{
|
|
3373
3643
|
type: i0.Input,
|
|
3374
3644
|
args: [{
|
|
@@ -3499,6 +3769,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3499
3769
|
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
3500
3770
|
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
3501
3771
|
this.placeholder = input("", ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
|
|
3772
|
+
this.prefix = input("", ...ngDevMode ? [{ debugName: "prefix" }] : /* istanbul ignore next */ []);
|
|
3502
3773
|
this.type = input("text", ...ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []);
|
|
3503
3774
|
this.maxlength = input(void 0, ...ngDevMode ? [{ debugName: "maxlength" }] : /* istanbul ignore next */ []);
|
|
3504
3775
|
this.required = input(false, ...ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []);
|
|
@@ -3513,6 +3784,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3513
3784
|
this.maxDecimals = input(void 0, ...ngDevMode ? [{ debugName: "maxDecimals" }] : /* istanbul ignore next */ []);
|
|
3514
3785
|
this.step = input(void 0, ...ngDevMode ? [{ debugName: "step" }] : /* istanbul ignore next */ []);
|
|
3515
3786
|
this.valueType = input("string", ...ngDevMode ? [{ debugName: "valueType" }] : /* istanbul ignore next */ []);
|
|
3787
|
+
this.formatter = input(void 0, ...ngDevMode ? [{ debugName: "formatter" }] : /* istanbul ignore next */ []);
|
|
3516
3788
|
this.showErrors = input(false, ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
3517
3789
|
this.focused = output();
|
|
3518
3790
|
this.blurred = output();
|
|
@@ -3525,6 +3797,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3525
3797
|
this.disabled = computed(() => this._disabledInput() || this._cvaDisabled(), ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
3526
3798
|
this._value = signal("", ...ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []);
|
|
3527
3799
|
this._reveal = createFieldReveal(this.showErrors);
|
|
3800
|
+
this._prefixPadding = computed(() => this.prefix() ? `calc(12px + ${this.prefix().length}ch + 6px)` : null, ...ngDevMode ? [{ debugName: "_prefixPadding" }] : /* istanbul ignore next */ []);
|
|
3528
3801
|
this._numeric = computed(() => this.valueType() === "number" && this.type() === "number", ...ngDevMode ? [{ debugName: "_numeric" }] : /* istanbul ignore next */ []);
|
|
3529
3802
|
this._stepAttr = computed(() => {
|
|
3530
3803
|
const step = this.step();
|
|
@@ -3579,10 +3852,20 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3579
3852
|
this._cvaDisabled.set(d);
|
|
3580
3853
|
}
|
|
3581
3854
|
onInput(event) {
|
|
3582
|
-
const
|
|
3583
|
-
const
|
|
3855
|
+
const input = event.target;
|
|
3856
|
+
const raw = input.value;
|
|
3857
|
+
let val = this._formatting() ? TextInputComponent._formatPhone(raw) : raw;
|
|
3858
|
+
const format = this.formatter();
|
|
3859
|
+
if (format) val = format(val);
|
|
3584
3860
|
this._value.set(val);
|
|
3585
3861
|
this._onChange(this._numeric() ? TextInputComponent._parse(val) : val);
|
|
3862
|
+
const shown = this._value();
|
|
3863
|
+
if (input.value !== shown) {
|
|
3864
|
+
input.value = shown;
|
|
3865
|
+
try {
|
|
3866
|
+
input.setSelectionRange(shown.length, shown.length);
|
|
3867
|
+
} catch {}
|
|
3868
|
+
}
|
|
3586
3869
|
}
|
|
3587
3870
|
static _parse(text) {
|
|
3588
3871
|
const t = text.trim();
|
|
@@ -3700,6 +3983,13 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3700
3983
|
isRequired: false,
|
|
3701
3984
|
transformFunction: null
|
|
3702
3985
|
},
|
|
3986
|
+
prefix: {
|
|
3987
|
+
classPropertyName: "prefix",
|
|
3988
|
+
publicName: "prefix",
|
|
3989
|
+
isSignal: true,
|
|
3990
|
+
isRequired: false,
|
|
3991
|
+
transformFunction: null
|
|
3992
|
+
},
|
|
3703
3993
|
type: {
|
|
3704
3994
|
classPropertyName: "type",
|
|
3705
3995
|
publicName: "type",
|
|
@@ -3798,6 +4088,13 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3798
4088
|
isRequired: false,
|
|
3799
4089
|
transformFunction: null
|
|
3800
4090
|
},
|
|
4091
|
+
formatter: {
|
|
4092
|
+
classPropertyName: "formatter",
|
|
4093
|
+
publicName: "formatter",
|
|
4094
|
+
isSignal: true,
|
|
4095
|
+
isRequired: false,
|
|
4096
|
+
transformFunction: null
|
|
4097
|
+
},
|
|
3801
4098
|
showErrors: {
|
|
3802
4099
|
classPropertyName: "showErrors",
|
|
3803
4100
|
publicName: "showErrors",
|
|
@@ -3837,7 +4134,8 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3837
4134
|
usesOnChanges: true,
|
|
3838
4135
|
ngImport: i0,
|
|
3839
4136
|
template: `
|
|
3840
|
-
<div class="ti-field" [class.ti-error]="_activeError()" [class.ti-disabled]="disabled()"
|
|
4137
|
+
<div class="ti-field" [class.ti-error]="_activeError()" [class.ti-disabled]="disabled()"
|
|
4138
|
+
[class.ti-prefixed]="!!prefix()" [style.--ti-input-row]="prefix() ? (label() ? 2 : 1) : null">
|
|
3841
4139
|
@if (label()) {
|
|
3842
4140
|
<label class="ti-label" [for]="_inputId">
|
|
3843
4141
|
{{ label() }}
|
|
@@ -3846,6 +4144,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3846
4144
|
}
|
|
3847
4145
|
<input
|
|
3848
4146
|
class="ti-input"
|
|
4147
|
+
[style.padding-left]="_prefixPadding()"
|
|
3849
4148
|
[id]="_inputId"
|
|
3850
4149
|
[type]="type()"
|
|
3851
4150
|
[attr.inputmode]="inputmode() || (type() === 'tel' ? 'tel' : null)"
|
|
@@ -3864,6 +4163,10 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3864
4163
|
(focus)="onFocus()"
|
|
3865
4164
|
(blur)="onBlur()"
|
|
3866
4165
|
/>
|
|
4166
|
+
@if (prefix()) {
|
|
4167
|
+
<!-- Optional leading mark ("$"): a sibling after the input, laid over it by the grid of .ti-prefixed, so toggling it never recreates the input (focus and caret stay). -->
|
|
4168
|
+
<span class="ti-prefix" aria-hidden="true">{{ prefix() }}</span>
|
|
4169
|
+
}
|
|
3867
4170
|
@if (_activeError()) {
|
|
3868
4171
|
<p class="ti-desc ti-desc-error" [id]="_inputId + '-desc'" role="alert">{{ _activeError() }}</p>
|
|
3869
4172
|
} @else if (hint()) {
|
|
@@ -3872,7 +4175,7 @@ var TextInputComponent = class TextInputComponent {
|
|
|
3872
4175
|
</div>
|
|
3873
4176
|
`,
|
|
3874
4177
|
isInline: true,
|
|
3875
|
-
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ti-required{color:#ef4444;margin-left:2px}.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:#ef4444}@media(max-width:480px){.ti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.ti-input{min-height:44px}}\n"],
|
|
4178
|
+
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ti-required{color:#ef4444;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-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:#ef4444}@media(max-width:480px){.ti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.ti-input{min-height:44px}}\n"],
|
|
3876
4179
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
3877
4180
|
});
|
|
3878
4181
|
}
|
|
@@ -3905,7 +4208,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3905
4208
|
}
|
|
3906
4209
|
],
|
|
3907
4210
|
template: `
|
|
3908
|
-
<div class="ti-field" [class.ti-error]="_activeError()" [class.ti-disabled]="disabled()"
|
|
4211
|
+
<div class="ti-field" [class.ti-error]="_activeError()" [class.ti-disabled]="disabled()"
|
|
4212
|
+
[class.ti-prefixed]="!!prefix()" [style.--ti-input-row]="prefix() ? (label() ? 2 : 1) : null">
|
|
3909
4213
|
@if (label()) {
|
|
3910
4214
|
<label class="ti-label" [for]="_inputId">
|
|
3911
4215
|
{{ label() }}
|
|
@@ -3914,6 +4218,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3914
4218
|
}
|
|
3915
4219
|
<input
|
|
3916
4220
|
class="ti-input"
|
|
4221
|
+
[style.padding-left]="_prefixPadding()"
|
|
3917
4222
|
[id]="_inputId"
|
|
3918
4223
|
[type]="type()"
|
|
3919
4224
|
[attr.inputmode]="inputmode() || (type() === 'tel' ? 'tel' : null)"
|
|
@@ -3932,6 +4237,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3932
4237
|
(focus)="onFocus()"
|
|
3933
4238
|
(blur)="onBlur()"
|
|
3934
4239
|
/>
|
|
4240
|
+
@if (prefix()) {
|
|
4241
|
+
<!-- Optional leading mark ("$"): a sibling after the input, laid over it by the grid of .ti-prefixed, so toggling it never recreates the input (focus and caret stay). -->
|
|
4242
|
+
<span class="ti-prefix" aria-hidden="true">{{ prefix() }}</span>
|
|
4243
|
+
}
|
|
3935
4244
|
@if (_activeError()) {
|
|
3936
4245
|
<p class="ti-desc ti-desc-error" [id]="_inputId + '-desc'" role="alert">{{ _activeError() }}</p>
|
|
3937
4246
|
} @else if (hint()) {
|
|
@@ -3939,7 +4248,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3939
4248
|
}
|
|
3940
4249
|
</div>
|
|
3941
4250
|
`,
|
|
3942
|
-
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ti-required{color:#ef4444;margin-left:2px}.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:#ef4444}@media(max-width:480px){.ti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.ti-input{min-height:44px}}\n"]
|
|
4251
|
+
styles: [":host{display:block}.ti-field{display:flex;flex-direction:column;gap:6px}.ti-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.ti-required{color:#ef4444;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-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:#ef4444}@media(max-width:480px){.ti-input{font-size:1rem}}@media(pointer:coarse),(max-width:480px){.ti-input{min-height:44px}}\n"]
|
|
3943
4252
|
}]
|
|
3944
4253
|
}],
|
|
3945
4254
|
ctorParameters: () => [],
|
|
@@ -3968,6 +4277,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3968
4277
|
required: false
|
|
3969
4278
|
}]
|
|
3970
4279
|
}],
|
|
4280
|
+
prefix: [{
|
|
4281
|
+
type: i0.Input,
|
|
4282
|
+
args: [{
|
|
4283
|
+
isSignal: true,
|
|
4284
|
+
alias: "prefix",
|
|
4285
|
+
required: false
|
|
4286
|
+
}]
|
|
4287
|
+
}],
|
|
3971
4288
|
type: [{
|
|
3972
4289
|
type: i0.Input,
|
|
3973
4290
|
args: [{
|
|
@@ -4080,6 +4397,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
4080
4397
|
required: false
|
|
4081
4398
|
}]
|
|
4082
4399
|
}],
|
|
4400
|
+
formatter: [{
|
|
4401
|
+
type: i0.Input,
|
|
4402
|
+
args: [{
|
|
4403
|
+
isSignal: true,
|
|
4404
|
+
alias: "formatter",
|
|
4405
|
+
required: false
|
|
4406
|
+
}]
|
|
4407
|
+
}],
|
|
4083
4408
|
showErrors: [{
|
|
4084
4409
|
type: i0.Input,
|
|
4085
4410
|
args: [{
|
|
@@ -4487,14 +4812,17 @@ var TableToolbarComponent = class TableToolbarComponent {
|
|
|
4487
4812
|
"title",
|
|
4488
4813
|
"description",
|
|
4489
4814
|
"maxWidth",
|
|
4490
|
-
"bodyOverflow"
|
|
4815
|
+
"bodyOverflow",
|
|
4816
|
+
"dialogTestId",
|
|
4817
|
+
"hideClose",
|
|
4818
|
+
"closable"
|
|
4491
4819
|
],
|
|
4492
4820
|
outputs: ["close"]
|
|
4493
4821
|
},
|
|
4494
4822
|
{
|
|
4495
4823
|
kind: "component",
|
|
4496
4824
|
type: CheckboxComponent,
|
|
4497
|
-
selector: "ui-checkbox",
|
|
4825
|
+
selector: "ui-checkbox, ui-checkbox-group",
|
|
4498
4826
|
inputs: [
|
|
4499
4827
|
"label",
|
|
4500
4828
|
"ariaLabel",
|
|
@@ -4502,6 +4830,9 @@ var TableToolbarComponent = class TableToolbarComponent {
|
|
|
4502
4830
|
"checked",
|
|
4503
4831
|
"options",
|
|
4504
4832
|
"legend",
|
|
4833
|
+
"orientation",
|
|
4834
|
+
"values",
|
|
4835
|
+
"description",
|
|
4505
4836
|
"indent",
|
|
4506
4837
|
"required",
|
|
4507
4838
|
"requiredMessage",
|
|
@@ -4510,7 +4841,11 @@ var TableToolbarComponent = class TableToolbarComponent {
|
|
|
4510
4841
|
"showErrors",
|
|
4511
4842
|
"disabled"
|
|
4512
4843
|
],
|
|
4513
|
-
outputs: [
|
|
4844
|
+
outputs: [
|
|
4845
|
+
"checkedChange",
|
|
4846
|
+
"valuesChange",
|
|
4847
|
+
"invalidChange"
|
|
4848
|
+
]
|
|
4514
4849
|
},
|
|
4515
4850
|
{
|
|
4516
4851
|
kind: "component",
|
|
@@ -4520,6 +4855,7 @@ var TableToolbarComponent = class TableToolbarComponent {
|
|
|
4520
4855
|
"variant",
|
|
4521
4856
|
"routerLink",
|
|
4522
4857
|
"queryParams",
|
|
4858
|
+
"fragment",
|
|
4523
4859
|
"href",
|
|
4524
4860
|
"target",
|
|
4525
4861
|
"rel",
|
|
@@ -4546,6 +4882,7 @@ var TableToolbarComponent = class TableToolbarComponent {
|
|
|
4546
4882
|
"label",
|
|
4547
4883
|
"ariaLabel",
|
|
4548
4884
|
"placeholder",
|
|
4885
|
+
"prefix",
|
|
4549
4886
|
"type",
|
|
4550
4887
|
"maxlength",
|
|
4551
4888
|
"required",
|
|
@@ -4560,6 +4897,7 @@ var TableToolbarComponent = class TableToolbarComponent {
|
|
|
4560
4897
|
"maxDecimals",
|
|
4561
4898
|
"step",
|
|
4562
4899
|
"valueType",
|
|
4900
|
+
"formatter",
|
|
4563
4901
|
"showErrors",
|
|
4564
4902
|
"disabled"
|
|
4565
4903
|
],
|
|
@@ -5907,7 +6245,7 @@ var SelectComponent = class SelectComponent {
|
|
|
5907
6245
|
<option value="" [disabled]="true" [selected]="_value() === ''">{{ placeholder() }}</option>
|
|
5908
6246
|
}
|
|
5909
6247
|
@for (opt of options(); track opt.value; let i = $index) {
|
|
5910
|
-
<option [value]="_key(opt)" [selected]="i === _selectedIndex()" [attr.title]="opt.description || null">{{ opt.label }}</option>
|
|
6248
|
+
<option [value]="_key(opt)" [selected]="i === _selectedIndex()" [attr.title]="opt.description || null">{{ opt.badge ? opt.label + ' — ' + opt.badge : opt.label }}</option>
|
|
5911
6249
|
}
|
|
5912
6250
|
</select>
|
|
5913
6251
|
<svg class="sl-chevron" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
|
|
@@ -5978,7 +6316,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5978
6316
|
<option value="" [disabled]="true" [selected]="_value() === ''">{{ placeholder() }}</option>
|
|
5979
6317
|
}
|
|
5980
6318
|
@for (opt of options(); track opt.value; let i = $index) {
|
|
5981
|
-
<option [value]="_key(opt)" [selected]="i === _selectedIndex()" [attr.title]="opt.description || null">{{ opt.label }}</option>
|
|
6319
|
+
<option [value]="_key(opt)" [selected]="i === _selectedIndex()" [attr.title]="opt.description || null">{{ opt.badge ? opt.label + ' — ' + opt.badge : opt.label }}</option>
|
|
5982
6320
|
}
|
|
5983
6321
|
</select>
|
|
5984
6322
|
<svg class="sl-chevron" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
|
|
@@ -7067,7 +7405,10 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
7067
7405
|
"title",
|
|
7068
7406
|
"description",
|
|
7069
7407
|
"maxWidth",
|
|
7070
|
-
"bodyOverflow"
|
|
7408
|
+
"bodyOverflow",
|
|
7409
|
+
"dialogTestId",
|
|
7410
|
+
"hideClose",
|
|
7411
|
+
"closable"
|
|
7071
7412
|
],
|
|
7072
7413
|
outputs: ["close"]
|
|
7073
7414
|
},
|
|
@@ -7079,6 +7420,7 @@ var ImportExportComponent = class ImportExportComponent {
|
|
|
7079
7420
|
"variant",
|
|
7080
7421
|
"routerLink",
|
|
7081
7422
|
"queryParams",
|
|
7423
|
+
"fragment",
|
|
7082
7424
|
"href",
|
|
7083
7425
|
"target",
|
|
7084
7426
|
"rel",
|
|
@@ -7561,7 +7903,10 @@ var ConfirmOutletComponent = class ConfirmOutletComponent {
|
|
|
7561
7903
|
"title",
|
|
7562
7904
|
"description",
|
|
7563
7905
|
"maxWidth",
|
|
7564
|
-
"bodyOverflow"
|
|
7906
|
+
"bodyOverflow",
|
|
7907
|
+
"dialogTestId",
|
|
7908
|
+
"hideClose",
|
|
7909
|
+
"closable"
|
|
7565
7910
|
],
|
|
7566
7911
|
outputs: ["close"]
|
|
7567
7912
|
}, {
|
|
@@ -7572,6 +7917,7 @@ var ConfirmOutletComponent = class ConfirmOutletComponent {
|
|
|
7572
7917
|
"variant",
|
|
7573
7918
|
"routerLink",
|
|
7574
7919
|
"queryParams",
|
|
7920
|
+
"fragment",
|
|
7575
7921
|
"href",
|
|
7576
7922
|
"target",
|
|
7577
7923
|
"rel",
|
|
@@ -7922,6 +8268,7 @@ var ErrorStateComponent = class ErrorStateComponent {
|
|
|
7922
8268
|
"variant",
|
|
7923
8269
|
"routerLink",
|
|
7924
8270
|
"queryParams",
|
|
8271
|
+
"fragment",
|
|
7925
8272
|
"href",
|
|
7926
8273
|
"target",
|
|
7927
8274
|
"rel",
|
|
@@ -10260,6 +10607,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10260
10607
|
"variant",
|
|
10261
10608
|
"routerLink",
|
|
10262
10609
|
"queryParams",
|
|
10610
|
+
"fragment",
|
|
10263
10611
|
"href",
|
|
10264
10612
|
"target",
|
|
10265
10613
|
"rel",
|
|
@@ -10281,7 +10629,7 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10281
10629
|
{
|
|
10282
10630
|
kind: "component",
|
|
10283
10631
|
type: CheckboxComponent,
|
|
10284
|
-
selector: "ui-checkbox",
|
|
10632
|
+
selector: "ui-checkbox, ui-checkbox-group",
|
|
10285
10633
|
inputs: [
|
|
10286
10634
|
"label",
|
|
10287
10635
|
"ariaLabel",
|
|
@@ -10289,6 +10637,9 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10289
10637
|
"checked",
|
|
10290
10638
|
"options",
|
|
10291
10639
|
"legend",
|
|
10640
|
+
"orientation",
|
|
10641
|
+
"values",
|
|
10642
|
+
"description",
|
|
10292
10643
|
"indent",
|
|
10293
10644
|
"required",
|
|
10294
10645
|
"requiredMessage",
|
|
@@ -10297,7 +10648,11 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10297
10648
|
"showErrors",
|
|
10298
10649
|
"disabled"
|
|
10299
10650
|
],
|
|
10300
|
-
outputs: [
|
|
10651
|
+
outputs: [
|
|
10652
|
+
"checkedChange",
|
|
10653
|
+
"valuesChange",
|
|
10654
|
+
"invalidChange"
|
|
10655
|
+
]
|
|
10301
10656
|
},
|
|
10302
10657
|
{
|
|
10303
10658
|
kind: "component",
|
|
@@ -10350,7 +10705,10 @@ var DataTableComponent = class DataTableComponent {
|
|
|
10350
10705
|
"title",
|
|
10351
10706
|
"description",
|
|
10352
10707
|
"maxWidth",
|
|
10353
|
-
"bodyOverflow"
|
|
10708
|
+
"bodyOverflow",
|
|
10709
|
+
"dialogTestId",
|
|
10710
|
+
"hideClose",
|
|
10711
|
+
"closable"
|
|
10354
10712
|
],
|
|
10355
10713
|
outputs: ["close"]
|
|
10356
10714
|
},
|
|
@@ -11312,6 +11670,8 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
11312
11670
|
this.primaryVariant = input("primary", ...ngDevMode ? [{ debugName: "primaryVariant" }] : /* istanbul ignore next */ []);
|
|
11313
11671
|
this.primaryLoading = input(false, ...ngDevMode ? [{ debugName: "primaryLoading" }] : /* istanbul ignore next */ []);
|
|
11314
11672
|
this.primaryDisabled = input(false, ...ngDevMode ? [{ debugName: "primaryDisabled" }] : /* istanbul ignore next */ []);
|
|
11673
|
+
this.cancelTestId = input("", ...ngDevMode ? [{ debugName: "cancelTestId" }] : /* istanbul ignore next */ []);
|
|
11674
|
+
this.primaryTestId = input("", ...ngDevMode ? [{ debugName: "primaryTestId" }] : /* istanbul ignore next */ []);
|
|
11315
11675
|
this.closed = output();
|
|
11316
11676
|
this.primaryClick = output();
|
|
11317
11677
|
this.titleId = `sp-title-${Math.random().toString(36).slice(2, 8)}`;
|
|
@@ -11467,6 +11827,20 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
11467
11827
|
isSignal: true,
|
|
11468
11828
|
isRequired: false,
|
|
11469
11829
|
transformFunction: null
|
|
11830
|
+
},
|
|
11831
|
+
cancelTestId: {
|
|
11832
|
+
classPropertyName: "cancelTestId",
|
|
11833
|
+
publicName: "cancelTestId",
|
|
11834
|
+
isSignal: true,
|
|
11835
|
+
isRequired: false,
|
|
11836
|
+
transformFunction: null
|
|
11837
|
+
},
|
|
11838
|
+
primaryTestId: {
|
|
11839
|
+
classPropertyName: "primaryTestId",
|
|
11840
|
+
publicName: "primaryTestId",
|
|
11841
|
+
isSignal: true,
|
|
11842
|
+
isRequired: false,
|
|
11843
|
+
transformFunction: null
|
|
11470
11844
|
}
|
|
11471
11845
|
},
|
|
11472
11846
|
outputs: {
|
|
@@ -11509,14 +11883,16 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
11509
11883
|
@if (cancelLabel() || primaryLabel()) {
|
|
11510
11884
|
<div class="sp-footer">
|
|
11511
11885
|
@if (cancelLabel()) {
|
|
11512
|
-
<button class="sp-btn sp-btn-cancel" type="button" (click)="closed.emit()">
|
|
11886
|
+
<button class="sp-btn sp-btn-cancel" type="button" [attr.data-testid]="cancelTestId() || null" (click)="closed.emit()">
|
|
11513
11887
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
|
|
11514
11888
|
{{ cancelLabel() }}
|
|
11515
11889
|
</button>
|
|
11516
11890
|
}
|
|
11891
|
+
<div class="sp-footer-extra"><ng-content select="[panel-footer-extra]" /></div>
|
|
11517
11892
|
@if (primaryLabel()) {
|
|
11518
11893
|
<button
|
|
11519
11894
|
class="sp-btn"
|
|
11895
|
+
[attr.data-testid]="primaryTestId() || null"
|
|
11520
11896
|
[class.sp-btn-primary]="primaryVariant() === 'primary'"
|
|
11521
11897
|
[class.sp-btn-danger]="primaryVariant() === 'danger'"
|
|
11522
11898
|
[class.sp-btn-warning]="primaryVariant() === 'warning'"
|
|
@@ -11541,7 +11917,7 @@ var SidePanelComponent = class SidePanelComponent {
|
|
|
11541
11917
|
}
|
|
11542
11918
|
`,
|
|
11543
11919
|
isInline: true,
|
|
11544
|
-
styles: [".sp-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90;animation:sp-fade .2s ease}.sp-panel{position:fixed;top:0;right:0;bottom:var(--ui-kb, 0px);width:480px;max-width:100vw;max-height:100vh;max-height:var(--ui-vvh, 100dvh);background:#fff;z-index:100;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:sp-slide .25s ease}.sp-panel:focus{outline:none}.sp-wide{width:620px}.sp-extra-wide{width:760px}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;gap:12px;flex-shrink:0;background:linear-gradient(135deg,#1e293b,#334155)}.sp-header-text{flex:1;min-width:0}.sp-title{font-size:1.125rem;font-weight:700;color:#fff;margin:0}.sp-subtitle{font-size:.8125rem;color:#94a3b8;margin:4px 0 0}.sp-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;cursor:pointer;color:#cbd5e1;transition:background .15s,border-color .15s}.sp-close:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.sp-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-body{padding:20px 24px 24px;flex:1;overflow-y:auto;overflow-x:hidden}.sp-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.sp-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:7px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .1s,border-color .1s,opacity .1s}.sp-btn:disabled{opacity:.5;cursor:default}.sp-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#475569}.sp-btn-cancel:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sp-btn-primary{background:#3b82f6;border:1px solid #3b82f6;color:#fff}.sp-btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.sp-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.sp-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.sp-btn-warning{background:#d97706;border:1px solid #d97706;color:#fff}.sp-btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}.sp-spinner{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp-spin .55s linear infinite;flex-shrink:0}@media(max-width:768px){.sp-panel,.sp-wide,.sp-extra-wide{width:100vw}}@media(max-width:480px){.sp-panel,.sp-wide,.sp-extra-wide{inset:auto 0 0;width:100vw;max-height:90vh;max-height:min(90dvh,var(--ui-vvh, 100dvh));border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000026;animation:sp-up .25s ease}.sp-header{padding:16px 16px 14px}.sp-body{padding:16px}.sp-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media(pointer:coarse),(max-width:480px){.sp-close{position:relative}.sp-close:after{content:\"\";position:absolute;inset:-5px}.sp-btn{min-height:44px;justify-content:center}}@keyframes sp-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sp-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-spin{to{transform:rotate(360deg)}}\n"],
|
|
11920
|
+
styles: [".sp-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90;animation:sp-fade .2s ease}.sp-panel{position:fixed;top:0;right:0;bottom:var(--ui-kb, 0px);width:480px;max-width:100vw;max-height:100vh;max-height:var(--ui-vvh, 100dvh);background:#fff;z-index:100;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:sp-slide .25s ease}.sp-panel:focus{outline:none}.sp-wide{width:620px}.sp-extra-wide{width:760px}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;gap:12px;flex-shrink:0;background:linear-gradient(135deg,#1e293b,#334155)}.sp-header-text{flex:1;min-width:0}.sp-title{font-size:1.125rem;font-weight:700;color:#fff;margin:0}.sp-subtitle{font-size:.8125rem;color:#94a3b8;margin:4px 0 0}.sp-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;cursor:pointer;color:#cbd5e1;transition:background .15s,border-color .15s}.sp-close:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.sp-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-body{padding:20px 24px 24px;flex:1;overflow-y:auto;overflow-x:hidden}.sp-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.sp-footer-extra{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px;min-width:0}.sp-footer-extra:empty{display:none}.sp-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:7px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .1s,border-color .1s,opacity .1s}.sp-btn:disabled{opacity:.5;cursor:default}.sp-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#475569}.sp-btn-cancel:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sp-btn-primary{background:#3b82f6;border:1px solid #3b82f6;color:#fff}.sp-btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.sp-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.sp-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.sp-btn-warning{background:#d97706;border:1px solid #d97706;color:#fff}.sp-btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}.sp-spinner{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp-spin .55s linear infinite;flex-shrink:0}@media(max-width:768px){.sp-panel,.sp-wide,.sp-extra-wide{width:100vw}}@media(max-width:480px){.sp-panel,.sp-wide,.sp-extra-wide{inset:auto 0 0;width:100vw;max-height:90vh;max-height:min(90dvh,var(--ui-vvh, 100dvh));border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000026;animation:sp-up .25s ease}.sp-header{padding:16px 16px 14px}.sp-body{padding:16px}.sp-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media(pointer:coarse),(max-width:480px){.sp-close{position:relative}.sp-close:after{content:\"\";position:absolute;inset:-5px}.sp-btn{min-height:44px;justify-content:center}}@keyframes sp-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sp-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-spin{to{transform:rotate(360deg)}}\n"],
|
|
11545
11921
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
11546
11922
|
});
|
|
11547
11923
|
}
|
|
@@ -11592,14 +11968,16 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11592
11968
|
@if (cancelLabel() || primaryLabel()) {
|
|
11593
11969
|
<div class="sp-footer">
|
|
11594
11970
|
@if (cancelLabel()) {
|
|
11595
|
-
<button class="sp-btn sp-btn-cancel" type="button" (click)="closed.emit()">
|
|
11971
|
+
<button class="sp-btn sp-btn-cancel" type="button" [attr.data-testid]="cancelTestId() || null" (click)="closed.emit()">
|
|
11596
11972
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
|
|
11597
11973
|
{{ cancelLabel() }}
|
|
11598
11974
|
</button>
|
|
11599
11975
|
}
|
|
11976
|
+
<div class="sp-footer-extra"><ng-content select="[panel-footer-extra]" /></div>
|
|
11600
11977
|
@if (primaryLabel()) {
|
|
11601
11978
|
<button
|
|
11602
11979
|
class="sp-btn"
|
|
11980
|
+
[attr.data-testid]="primaryTestId() || null"
|
|
11603
11981
|
[class.sp-btn-primary]="primaryVariant() === 'primary'"
|
|
11604
11982
|
[class.sp-btn-danger]="primaryVariant() === 'danger'"
|
|
11605
11983
|
[class.sp-btn-warning]="primaryVariant() === 'warning'"
|
|
@@ -11623,7 +12001,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11623
12001
|
</aside>
|
|
11624
12002
|
}
|
|
11625
12003
|
`,
|
|
11626
|
-
styles: [".sp-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90;animation:sp-fade .2s ease}.sp-panel{position:fixed;top:0;right:0;bottom:var(--ui-kb, 0px);width:480px;max-width:100vw;max-height:100vh;max-height:var(--ui-vvh, 100dvh);background:#fff;z-index:100;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:sp-slide .25s ease}.sp-panel:focus{outline:none}.sp-wide{width:620px}.sp-extra-wide{width:760px}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;gap:12px;flex-shrink:0;background:linear-gradient(135deg,#1e293b,#334155)}.sp-header-text{flex:1;min-width:0}.sp-title{font-size:1.125rem;font-weight:700;color:#fff;margin:0}.sp-subtitle{font-size:.8125rem;color:#94a3b8;margin:4px 0 0}.sp-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;cursor:pointer;color:#cbd5e1;transition:background .15s,border-color .15s}.sp-close:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.sp-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-body{padding:20px 24px 24px;flex:1;overflow-y:auto;overflow-x:hidden}.sp-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.sp-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:7px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .1s,border-color .1s,opacity .1s}.sp-btn:disabled{opacity:.5;cursor:default}.sp-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#475569}.sp-btn-cancel:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sp-btn-primary{background:#3b82f6;border:1px solid #3b82f6;color:#fff}.sp-btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.sp-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.sp-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.sp-btn-warning{background:#d97706;border:1px solid #d97706;color:#fff}.sp-btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}.sp-spinner{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp-spin .55s linear infinite;flex-shrink:0}@media(max-width:768px){.sp-panel,.sp-wide,.sp-extra-wide{width:100vw}}@media(max-width:480px){.sp-panel,.sp-wide,.sp-extra-wide{inset:auto 0 0;width:100vw;max-height:90vh;max-height:min(90dvh,var(--ui-vvh, 100dvh));border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000026;animation:sp-up .25s ease}.sp-header{padding:16px 16px 14px}.sp-body{padding:16px}.sp-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media(pointer:coarse),(max-width:480px){.sp-close{position:relative}.sp-close:after{content:\"\";position:absolute;inset:-5px}.sp-btn{min-height:44px;justify-content:center}}@keyframes sp-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sp-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-spin{to{transform:rotate(360deg)}}\n"]
|
|
12004
|
+
styles: [".sp-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90;animation:sp-fade .2s ease}.sp-panel{position:fixed;top:0;right:0;bottom:var(--ui-kb, 0px);width:480px;max-width:100vw;max-height:100vh;max-height:var(--ui-vvh, 100dvh);background:#fff;z-index:100;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:sp-slide .25s ease}.sp-panel:focus{outline:none}.sp-wide{width:620px}.sp-extra-wide{width:760px}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;gap:12px;flex-shrink:0;background:linear-gradient(135deg,#1e293b,#334155)}.sp-header-text{flex:1;min-width:0}.sp-title{font-size:1.125rem;font-weight:700;color:#fff;margin:0}.sp-subtitle{font-size:.8125rem;color:#94a3b8;margin:4px 0 0}.sp-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;cursor:pointer;color:#cbd5e1;transition:background .15s,border-color .15s}.sp-close:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.sp-close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-body{padding:20px 24px 24px;flex:1;overflow-y:auto;overflow-x:hidden}.sp-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.sp-footer-extra{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;margin:0 8px;min-width:0}.sp-footer-extra:empty{display:none}.sp-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:7px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .1s,border-color .1s,opacity .1s}.sp-btn:disabled{opacity:.5;cursor:default}.sp-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#475569}.sp-btn-cancel:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sp-btn-primary{background:#3b82f6;border:1px solid #3b82f6;color:#fff}.sp-btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.sp-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.sp-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.sp-btn-warning{background:#d97706;border:1px solid #d97706;color:#fff}.sp-btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}.sp-spinner{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp-spin .55s linear infinite;flex-shrink:0}@media(max-width:768px){.sp-panel,.sp-wide,.sp-extra-wide{width:100vw}}@media(max-width:480px){.sp-panel,.sp-wide,.sp-extra-wide{inset:auto 0 0;width:100vw;max-height:90vh;max-height:min(90dvh,var(--ui-vvh, 100dvh));border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000026;animation:sp-up .25s ease}.sp-header{padding:16px 16px 14px}.sp-body{padding:16px}.sp-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media(pointer:coarse),(max-width:480px){.sp-close{position:relative}.sp-close:after{content:\"\";position:absolute;inset:-5px}.sp-btn{min-height:44px;justify-content:center}}@keyframes sp-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sp-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-spin{to{transform:rotate(360deg)}}\n"]
|
|
11627
12005
|
}]
|
|
11628
12006
|
}],
|
|
11629
12007
|
ctorParameters: () => [],
|
|
@@ -11708,13 +12086,29 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
11708
12086
|
required: false
|
|
11709
12087
|
}]
|
|
11710
12088
|
}],
|
|
11711
|
-
|
|
11712
|
-
type: i0.
|
|
11713
|
-
args: [
|
|
12089
|
+
cancelTestId: [{
|
|
12090
|
+
type: i0.Input,
|
|
12091
|
+
args: [{
|
|
12092
|
+
isSignal: true,
|
|
12093
|
+
alias: "cancelTestId",
|
|
12094
|
+
required: false
|
|
12095
|
+
}]
|
|
11714
12096
|
}],
|
|
11715
|
-
|
|
11716
|
-
type: i0.
|
|
11717
|
-
args: [
|
|
12097
|
+
primaryTestId: [{
|
|
12098
|
+
type: i0.Input,
|
|
12099
|
+
args: [{
|
|
12100
|
+
isSignal: true,
|
|
12101
|
+
alias: "primaryTestId",
|
|
12102
|
+
required: false
|
|
12103
|
+
}]
|
|
12104
|
+
}],
|
|
12105
|
+
closed: [{
|
|
12106
|
+
type: i0.Output,
|
|
12107
|
+
args: ["closed"]
|
|
12108
|
+
}],
|
|
12109
|
+
primaryClick: [{
|
|
12110
|
+
type: i0.Output,
|
|
12111
|
+
args: ["primaryClick"]
|
|
11718
12112
|
}]
|
|
11719
12113
|
}
|
|
11720
12114
|
});
|
|
@@ -13370,6 +13764,7 @@ var BusinessHoursComponent = class BusinessHoursComponent {
|
|
|
13370
13764
|
"variant",
|
|
13371
13765
|
"routerLink",
|
|
13372
13766
|
"queryParams",
|
|
13767
|
+
"fragment",
|
|
13373
13768
|
"href",
|
|
13374
13769
|
"target",
|
|
13375
13770
|
"rel",
|
|
@@ -13391,7 +13786,7 @@ var BusinessHoursComponent = class BusinessHoursComponent {
|
|
|
13391
13786
|
{
|
|
13392
13787
|
kind: "component",
|
|
13393
13788
|
type: CheckboxComponent,
|
|
13394
|
-
selector: "ui-checkbox",
|
|
13789
|
+
selector: "ui-checkbox, ui-checkbox-group",
|
|
13395
13790
|
inputs: [
|
|
13396
13791
|
"label",
|
|
13397
13792
|
"ariaLabel",
|
|
@@ -13399,6 +13794,9 @@ var BusinessHoursComponent = class BusinessHoursComponent {
|
|
|
13399
13794
|
"checked",
|
|
13400
13795
|
"options",
|
|
13401
13796
|
"legend",
|
|
13797
|
+
"orientation",
|
|
13798
|
+
"values",
|
|
13799
|
+
"description",
|
|
13402
13800
|
"indent",
|
|
13403
13801
|
"required",
|
|
13404
13802
|
"requiredMessage",
|
|
@@ -13407,7 +13805,11 @@ var BusinessHoursComponent = class BusinessHoursComponent {
|
|
|
13407
13805
|
"showErrors",
|
|
13408
13806
|
"disabled"
|
|
13409
13807
|
],
|
|
13410
|
-
outputs: [
|
|
13808
|
+
outputs: [
|
|
13809
|
+
"checkedChange",
|
|
13810
|
+
"valuesChange",
|
|
13811
|
+
"invalidChange"
|
|
13812
|
+
]
|
|
13411
13813
|
},
|
|
13412
13814
|
{
|
|
13413
13815
|
kind: "component",
|
|
@@ -13622,13 +14024,16 @@ var RadioComponent = class RadioComponent {
|
|
|
13622
14024
|
this.checked = input(false, ...ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []);
|
|
13623
14025
|
this.invalid = input(false, ...ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []);
|
|
13624
14026
|
this.describedBy = input("", ...ngDevMode ? [{ debugName: "describedBy" }] : /* istanbul ignore next */ []);
|
|
14027
|
+
this.controls = input("", ...ngDevMode ? [{ debugName: "controls" }] : /* istanbul ignore next */ []);
|
|
13625
14028
|
this._disabledInput = input(false, {
|
|
13626
14029
|
...ngDevMode ? { debugName: "_disabledInput" } : /* istanbul ignore next */ {},
|
|
13627
14030
|
alias: "disabled"
|
|
13628
14031
|
});
|
|
13629
14032
|
this.disabled = this._disabledInput;
|
|
13630
|
-
this.
|
|
13631
|
-
this.
|
|
14033
|
+
this.labelId = input("", ...ngDevMode ? [{ debugName: "labelId" }] : /* istanbul ignore next */ []);
|
|
14034
|
+
this._generatedLabelId = `rd-${Math.random().toString(36).slice(2, 8)}-label`;
|
|
14035
|
+
this._labelId = computed(() => this.labelId() || this._generatedLabelId, ...ngDevMode ? [{ debugName: "_labelId" }] : /* istanbul ignore next */ []);
|
|
14036
|
+
this._labelledBy = computed(() => this.label() && this.description() && !this.ariaLabel() ? this._labelId() : null, ...ngDevMode ? [{ debugName: "_labelledBy" }] : /* istanbul ignore next */ []);
|
|
13632
14037
|
this._descriptionId = `rd-${Math.random().toString(36).slice(2, 8)}-desc`;
|
|
13633
14038
|
this._describedByIds = computed(() => {
|
|
13634
14039
|
return [this.describedBy(), this.description() ? this._descriptionId : ""].filter(Boolean).join(" ") || null;
|
|
@@ -13712,12 +14117,26 @@ var RadioComponent = class RadioComponent {
|
|
|
13712
14117
|
isRequired: false,
|
|
13713
14118
|
transformFunction: null
|
|
13714
14119
|
},
|
|
14120
|
+
controls: {
|
|
14121
|
+
classPropertyName: "controls",
|
|
14122
|
+
publicName: "controls",
|
|
14123
|
+
isSignal: true,
|
|
14124
|
+
isRequired: false,
|
|
14125
|
+
transformFunction: null
|
|
14126
|
+
},
|
|
13715
14127
|
_disabledInput: {
|
|
13716
14128
|
classPropertyName: "_disabledInput",
|
|
13717
14129
|
publicName: "disabled",
|
|
13718
14130
|
isSignal: true,
|
|
13719
14131
|
isRequired: false,
|
|
13720
14132
|
transformFunction: null
|
|
14133
|
+
},
|
|
14134
|
+
labelId: {
|
|
14135
|
+
classPropertyName: "labelId",
|
|
14136
|
+
publicName: "labelId",
|
|
14137
|
+
isSignal: true,
|
|
14138
|
+
isRequired: false,
|
|
14139
|
+
transformFunction: null
|
|
13721
14140
|
}
|
|
13722
14141
|
},
|
|
13723
14142
|
outputs: { selected: "selected" },
|
|
@@ -13738,10 +14157,11 @@ var RadioComponent = class RadioComponent {
|
|
|
13738
14157
|
[attr.aria-labelledby]="_labelledBy()"
|
|
13739
14158
|
[attr.aria-invalid]="invalid() ? 'true' : null"
|
|
13740
14159
|
[attr.aria-describedby]="_describedByIds()"
|
|
14160
|
+
[attr.aria-controls]="controls() || null"
|
|
13741
14161
|
(change)="onChange($event)"
|
|
13742
14162
|
/>
|
|
13743
14163
|
<span class="rd-text">
|
|
13744
|
-
@if (label()) { <span class="rd-label" [id]="_labelId">{{ label() }}</span> }
|
|
14164
|
+
@if (label()) { <span class="rd-label" [id]="_labelId()">{{ label() }}</span> }
|
|
13745
14165
|
@if (description()) { <span class="rd-description" [id]="_descriptionId">{{ description() }}</span> }
|
|
13746
14166
|
<ng-content />
|
|
13747
14167
|
</span>
|
|
@@ -13780,10 +14200,11 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13780
14200
|
[attr.aria-labelledby]="_labelledBy()"
|
|
13781
14201
|
[attr.aria-invalid]="invalid() ? 'true' : null"
|
|
13782
14202
|
[attr.aria-describedby]="_describedByIds()"
|
|
14203
|
+
[attr.aria-controls]="controls() || null"
|
|
13783
14204
|
(change)="onChange($event)"
|
|
13784
14205
|
/>
|
|
13785
14206
|
<span class="rd-text">
|
|
13786
|
-
@if (label()) { <span class="rd-label" [id]="_labelId">{{ label() }}</span> }
|
|
14207
|
+
@if (label()) { <span class="rd-label" [id]="_labelId()">{{ label() }}</span> }
|
|
13787
14208
|
@if (description()) { <span class="rd-description" [id]="_descriptionId">{{ description() }}</span> }
|
|
13788
14209
|
<ng-content />
|
|
13789
14210
|
</span>
|
|
@@ -13857,6 +14278,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13857
14278
|
required: false
|
|
13858
14279
|
}]
|
|
13859
14280
|
}],
|
|
14281
|
+
controls: [{
|
|
14282
|
+
type: i0.Input,
|
|
14283
|
+
args: [{
|
|
14284
|
+
isSignal: true,
|
|
14285
|
+
alias: "controls",
|
|
14286
|
+
required: false
|
|
14287
|
+
}]
|
|
14288
|
+
}],
|
|
13860
14289
|
_disabledInput: [{
|
|
13861
14290
|
type: i0.Input,
|
|
13862
14291
|
args: [{
|
|
@@ -13865,16 +14294,84 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13865
14294
|
required: false
|
|
13866
14295
|
}]
|
|
13867
14296
|
}],
|
|
14297
|
+
labelId: [{
|
|
14298
|
+
type: i0.Input,
|
|
14299
|
+
args: [{
|
|
14300
|
+
isSignal: true,
|
|
14301
|
+
alias: "labelId",
|
|
14302
|
+
required: false
|
|
14303
|
+
}]
|
|
14304
|
+
}],
|
|
13868
14305
|
selected: [{
|
|
13869
14306
|
type: i0.Output,
|
|
13870
14307
|
args: ["selected"]
|
|
13871
14308
|
}]
|
|
13872
14309
|
}
|
|
13873
14310
|
});
|
|
14311
|
+
var RadioOptionContentDirective = class RadioOptionContentDirective {
|
|
14312
|
+
constructor() {
|
|
14313
|
+
this.value = input.required({
|
|
14314
|
+
...ngDevMode ? { debugName: "value" } : /* istanbul ignore next */ {},
|
|
14315
|
+
alias: "uiRadioOptionContent"
|
|
14316
|
+
});
|
|
14317
|
+
this.template = inject(TemplateRef);
|
|
14318
|
+
}
|
|
14319
|
+
static {
|
|
14320
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
14321
|
+
minVersion: "12.0.0",
|
|
14322
|
+
version: "22.2.2",
|
|
14323
|
+
ngImport: i0,
|
|
14324
|
+
type: RadioOptionContentDirective,
|
|
14325
|
+
deps: [],
|
|
14326
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
14327
|
+
});
|
|
14328
|
+
}
|
|
14329
|
+
static {
|
|
14330
|
+
this.ɵdir = i0.ɵɵngDeclareDirective({
|
|
14331
|
+
minVersion: "17.1.0",
|
|
14332
|
+
version: "22.2.2",
|
|
14333
|
+
type: RadioOptionContentDirective,
|
|
14334
|
+
isStandalone: true,
|
|
14335
|
+
selector: "ng-template[uiRadioOptionContent]",
|
|
14336
|
+
inputs: { value: {
|
|
14337
|
+
classPropertyName: "value",
|
|
14338
|
+
publicName: "uiRadioOptionContent",
|
|
14339
|
+
isSignal: true,
|
|
14340
|
+
isRequired: true,
|
|
14341
|
+
transformFunction: null
|
|
14342
|
+
} },
|
|
14343
|
+
ngImport: i0
|
|
14344
|
+
});
|
|
14345
|
+
}
|
|
14346
|
+
};
|
|
14347
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
14348
|
+
minVersion: "12.0.0",
|
|
14349
|
+
version: "22.2.2",
|
|
14350
|
+
ngImport: i0,
|
|
14351
|
+
type: RadioOptionContentDirective,
|
|
14352
|
+
decorators: [{
|
|
14353
|
+
type: Directive,
|
|
14354
|
+
args: [{
|
|
14355
|
+
selector: "ng-template[uiRadioOptionContent]",
|
|
14356
|
+
standalone: true
|
|
14357
|
+
}]
|
|
14358
|
+
}],
|
|
14359
|
+
propDecorators: { value: [{
|
|
14360
|
+
type: i0.Input,
|
|
14361
|
+
args: [{
|
|
14362
|
+
isSignal: true,
|
|
14363
|
+
alias: "uiRadioOptionContent",
|
|
14364
|
+
required: true
|
|
14365
|
+
}]
|
|
14366
|
+
}] }
|
|
14367
|
+
});
|
|
13874
14368
|
var RadioGroupComponent = class RadioGroupComponent {
|
|
13875
14369
|
get _name() {
|
|
13876
14370
|
return this.name() || this._generatedName;
|
|
13877
14371
|
}
|
|
14372
|
+
_optionLabelId(index) {
|
|
14373
|
+
return `${this._generatedName}-opt-${index}-label`;
|
|
14374
|
+
}
|
|
13878
14375
|
constructor() {
|
|
13879
14376
|
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
13880
14377
|
this.options = input([], ...ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []);
|
|
@@ -13884,6 +14381,12 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
13884
14381
|
this.showErrors = input(false, ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
13885
14382
|
this.orientation = input("vertical", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
|
|
13886
14383
|
this.name = input("", ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
14384
|
+
this._optionContent = contentChildren(RadioOptionContentDirective, ...ngDevMode ? [{ debugName: "_optionContent" }] : /* istanbul ignore next */ []);
|
|
14385
|
+
this._nestedContent = computed(() => {
|
|
14386
|
+
const byValue = /* @__PURE__ */ new Map();
|
|
14387
|
+
for (const content of this._optionContent()) byValue.set(content.value(), content.template);
|
|
14388
|
+
return byValue;
|
|
14389
|
+
}, ...ngDevMode ? [{ debugName: "_nestedContent" }] : /* istanbul ignore next */ []);
|
|
13887
14390
|
this._disabledInput = input(false, {
|
|
13888
14391
|
...ngDevMode ? { debugName: "_disabledInput" } : /* istanbul ignore next */ {},
|
|
13889
14392
|
alias: "disabled"
|
|
@@ -13892,6 +14395,7 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
13892
14395
|
this.disabled = computed(() => this._disabledInput() || this._cvaDisabled(), ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
13893
14396
|
this._generatedName = `rg-${Math.random().toString(36).slice(2, 8)}`;
|
|
13894
14397
|
this._descId = `${this._generatedName}-desc`;
|
|
14398
|
+
this._nestedId = `${this._generatedName}-nested`;
|
|
13895
14399
|
this._value = signal("", ...ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []);
|
|
13896
14400
|
this._reveal = createFieldReveal(this.showErrors);
|
|
13897
14401
|
this._issue = computed(() => this._check(this._value()), ...ngDevMode ? [{ debugName: "_issue" }] : /* istanbul ignore next */ []);
|
|
@@ -14047,6 +14551,11 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
14047
14551
|
useExisting: forwardRef(() => RadioGroupComponent)
|
|
14048
14552
|
}
|
|
14049
14553
|
],
|
|
14554
|
+
queries: [{
|
|
14555
|
+
propertyName: "_optionContent",
|
|
14556
|
+
predicate: RadioOptionContentDirective,
|
|
14557
|
+
isSignal: true
|
|
14558
|
+
}],
|
|
14050
14559
|
usesOnChanges: true,
|
|
14051
14560
|
ngImport: i0,
|
|
14052
14561
|
template: `
|
|
@@ -14077,7 +14586,12 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
14077
14586
|
[disabled]="disabled() || !!opt.disabled"
|
|
14078
14587
|
[invalid]="!!_activeError()"
|
|
14079
14588
|
[describedBy]="(_activeError() || hint()) ? _descId : ''"
|
|
14589
|
+
[controls]="(_value() === opt.value && _nestedContent().has(opt.value)) ? _nestedId : ''"
|
|
14590
|
+
[labelId]="_nestedContent().has(opt.value) ? _optionLabelId($index) : ''"
|
|
14080
14591
|
(selected)="onSelect($event)" />
|
|
14592
|
+
@if (_value() === opt.value && _nestedContent().get(opt.value); as nested) {
|
|
14593
|
+
<div class="rg-nested" role="group" [id]="_nestedId" [attr.aria-labelledby]="opt.label ? _optionLabelId($index) : null"><ng-container [ngTemplateOutlet]="nested" /></div>
|
|
14594
|
+
}
|
|
14081
14595
|
}
|
|
14082
14596
|
</div>
|
|
14083
14597
|
@if (_activeError()) {
|
|
@@ -14088,7 +14602,7 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
14088
14602
|
</fieldset>
|
|
14089
14603
|
`,
|
|
14090
14604
|
isInline: true,
|
|
14091
|
-
styles: [":host{display:block}.rg-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.rg-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rg-required{color:#ef4444;margin-left:2px}.rg-options{display:flex;flex-direction:column;gap:10px}.rg-options.rg-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.rg-disabled{cursor:not-allowed}.rg-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.rg-desc-error{color:#ef4444}@media(pointer:coarse),(max-width:480px){.rg-options{gap:4px}}\n"],
|
|
14605
|
+
styles: [":host{display:block}.rg-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.rg-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rg-required{color:#ef4444;margin-left:2px}.rg-options{display:flex;flex-direction:column;gap:10px}.rg-options.rg-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.rg-nested{padding-left:29px;min-width:0}.rg-options.rg-horizontal .rg-nested{flex:1 0 100%}.rg-disabled{cursor:not-allowed}.rg-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.rg-desc-error{color:#ef4444}@media(pointer:coarse),(max-width:480px){.rg-options{gap:4px}}\n"],
|
|
14092
14606
|
dependencies: [{
|
|
14093
14607
|
kind: "component",
|
|
14094
14608
|
type: RadioComponent,
|
|
@@ -14102,9 +14616,20 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
14102
14616
|
"checked",
|
|
14103
14617
|
"invalid",
|
|
14104
14618
|
"describedBy",
|
|
14105
|
-
"
|
|
14619
|
+
"controls",
|
|
14620
|
+
"disabled",
|
|
14621
|
+
"labelId"
|
|
14106
14622
|
],
|
|
14107
14623
|
outputs: ["selected"]
|
|
14624
|
+
}, {
|
|
14625
|
+
kind: "directive",
|
|
14626
|
+
type: NgTemplateOutlet,
|
|
14627
|
+
selector: "[ngTemplateOutlet]",
|
|
14628
|
+
inputs: [
|
|
14629
|
+
"ngTemplateOutletContext",
|
|
14630
|
+
"ngTemplateOutlet",
|
|
14631
|
+
"ngTemplateOutletInjector"
|
|
14632
|
+
]
|
|
14108
14633
|
}],
|
|
14109
14634
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
14110
14635
|
});
|
|
@@ -14120,7 +14645,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14120
14645
|
args: [{
|
|
14121
14646
|
selector: "ui-radio-group",
|
|
14122
14647
|
standalone: true,
|
|
14123
|
-
imports: [RadioComponent],
|
|
14648
|
+
imports: [RadioComponent, NgTemplateOutlet],
|
|
14124
14649
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14125
14650
|
providers: [
|
|
14126
14651
|
{
|
|
@@ -14166,7 +14691,12 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14166
14691
|
[disabled]="disabled() || !!opt.disabled"
|
|
14167
14692
|
[invalid]="!!_activeError()"
|
|
14168
14693
|
[describedBy]="(_activeError() || hint()) ? _descId : ''"
|
|
14694
|
+
[controls]="(_value() === opt.value && _nestedContent().has(opt.value)) ? _nestedId : ''"
|
|
14695
|
+
[labelId]="_nestedContent().has(opt.value) ? _optionLabelId($index) : ''"
|
|
14169
14696
|
(selected)="onSelect($event)" />
|
|
14697
|
+
@if (_value() === opt.value && _nestedContent().get(opt.value); as nested) {
|
|
14698
|
+
<div class="rg-nested" role="group" [id]="_nestedId" [attr.aria-labelledby]="opt.label ? _optionLabelId($index) : null"><ng-container [ngTemplateOutlet]="nested" /></div>
|
|
14699
|
+
}
|
|
14170
14700
|
}
|
|
14171
14701
|
</div>
|
|
14172
14702
|
@if (_activeError()) {
|
|
@@ -14176,7 +14706,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14176
14706
|
}
|
|
14177
14707
|
</fieldset>
|
|
14178
14708
|
`,
|
|
14179
|
-
styles: [":host{display:block}.rg-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.rg-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rg-required{color:#ef4444;margin-left:2px}.rg-options{display:flex;flex-direction:column;gap:10px}.rg-options.rg-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.rg-disabled{cursor:not-allowed}.rg-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.rg-desc-error{color:#ef4444}@media(pointer:coarse),(max-width:480px){.rg-options{gap:4px}}\n"]
|
|
14709
|
+
styles: [":host{display:block}.rg-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.rg-label{padding:0;margin-bottom:6px;font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.rg-required{color:#ef4444;margin-left:2px}.rg-options{display:flex;flex-direction:column;gap:10px}.rg-options.rg-horizontal{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.rg-nested{padding-left:29px;min-width:0}.rg-options.rg-horizontal .rg-nested{flex:1 0 100%}.rg-disabled{cursor:not-allowed}.rg-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.rg-desc-error{color:#ef4444}@media(pointer:coarse),(max-width:480px){.rg-options{gap:4px}}\n"]
|
|
14180
14710
|
}]
|
|
14181
14711
|
}],
|
|
14182
14712
|
ctorParameters: () => [],
|
|
@@ -14245,6 +14775,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14245
14775
|
required: false
|
|
14246
14776
|
}]
|
|
14247
14777
|
}],
|
|
14778
|
+
_optionContent: [{
|
|
14779
|
+
type: i0.ContentChildren,
|
|
14780
|
+
args: [i0.forwardRef(() => RadioOptionContentDirective), { isSignal: true }]
|
|
14781
|
+
}],
|
|
14248
14782
|
_disabledInput: [{
|
|
14249
14783
|
type: i0.Input,
|
|
14250
14784
|
args: [{
|
|
@@ -14340,7 +14874,7 @@ var AlertComponent = class AlertComponent {
|
|
|
14340
14874
|
</div>
|
|
14341
14875
|
`,
|
|
14342
14876
|
isInline: true,
|
|
14343
|
-
styles: [":host{display:block}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border-left:4px solid transparent;font-size:13px;line-height:1.5}.alert--info{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.alert--success{background:#dcfce7;border-color:#22c55e;color:#14532d}.alert--warning{background:#ffedd5;border-color:#f97316;color:#7c2d12}.alert--danger{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.alert--compact{padding:8px 12px;gap:8px;font-size:12.5px;line-height:1.4}.alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.alert-title{font-weight:700}.alert-body{opacity:.9;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.alert-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px;border-radius:4px;color:inherit;opacity:.6;display:flex;align-items:center;transition:opacity .15s}.alert-dismiss:hover{opacity:1}\n"],
|
|
14877
|
+
styles: [":host{display:block}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border-left:4px solid transparent;font-size:13px;line-height:1.5}.alert--info{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.alert--success{background:#dcfce7;border-color:#22c55e;color:#14532d}.alert--warning{background:#ffedd5;border-color:#f97316;color:#7c2d12}.alert--danger{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.alert--neutral{background:#f1f5f9;border-color:#64748b;color:#334155}.alert--compact{padding:8px 12px;gap:8px;font-size:12.5px;line-height:1.4}.alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.alert-title{font-weight:700}.alert-body{opacity:.9;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.alert-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px;border-radius:4px;color:inherit;opacity:.6;display:flex;align-items:center;transition:opacity .15s}.alert-dismiss:hover{opacity:1}\n"],
|
|
14344
14878
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
14345
14879
|
});
|
|
14346
14880
|
}
|
|
@@ -14371,7 +14905,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14371
14905
|
}
|
|
14372
14906
|
</div>
|
|
14373
14907
|
`,
|
|
14374
|
-
styles: [":host{display:block}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border-left:4px solid transparent;font-size:13px;line-height:1.5}.alert--info{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.alert--success{background:#dcfce7;border-color:#22c55e;color:#14532d}.alert--warning{background:#ffedd5;border-color:#f97316;color:#7c2d12}.alert--danger{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.alert--compact{padding:8px 12px;gap:8px;font-size:12.5px;line-height:1.4}.alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.alert-title{font-weight:700}.alert-body{opacity:.9;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.alert-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px;border-radius:4px;color:inherit;opacity:.6;display:flex;align-items:center;transition:opacity .15s}.alert-dismiss:hover{opacity:1}\n"]
|
|
14908
|
+
styles: [":host{display:block}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:8px;border-left:4px solid transparent;font-size:13px;line-height:1.5}.alert--info{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.alert--success{background:#dcfce7;border-color:#22c55e;color:#14532d}.alert--warning{background:#ffedd5;border-color:#f97316;color:#7c2d12}.alert--danger{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.alert--neutral{background:#f1f5f9;border-color:#64748b;color:#334155}.alert--compact{padding:8px 12px;gap:8px;font-size:12.5px;line-height:1.4}.alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.alert-title{font-weight:700}.alert-body{opacity:.9;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.alert-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px;border-radius:4px;color:inherit;opacity:.6;display:flex;align-items:center;transition:opacity .15s}.alert-dismiss:hover{opacity:1}\n"]
|
|
14375
14909
|
}]
|
|
14376
14910
|
}],
|
|
14377
14911
|
propDecorators: {
|
|
@@ -14884,7 +15418,9 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
14884
15418
|
"primaryLabel",
|
|
14885
15419
|
"primaryVariant",
|
|
14886
15420
|
"primaryLoading",
|
|
14887
|
-
"primaryDisabled"
|
|
15421
|
+
"primaryDisabled",
|
|
15422
|
+
"cancelTestId",
|
|
15423
|
+
"primaryTestId"
|
|
14888
15424
|
],
|
|
14889
15425
|
outputs: ["closed", "primaryClick"]
|
|
14890
15426
|
},
|
|
@@ -14896,6 +15432,7 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
14896
15432
|
"label",
|
|
14897
15433
|
"ariaLabel",
|
|
14898
15434
|
"placeholder",
|
|
15435
|
+
"prefix",
|
|
14899
15436
|
"type",
|
|
14900
15437
|
"maxlength",
|
|
14901
15438
|
"required",
|
|
@@ -14910,6 +15447,7 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
14910
15447
|
"maxDecimals",
|
|
14911
15448
|
"step",
|
|
14912
15449
|
"valueType",
|
|
15450
|
+
"formatter",
|
|
14913
15451
|
"showErrors",
|
|
14914
15452
|
"disabled"
|
|
14915
15453
|
],
|
|
@@ -14944,6 +15482,7 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
14944
15482
|
"variant",
|
|
14945
15483
|
"routerLink",
|
|
14946
15484
|
"queryParams",
|
|
15485
|
+
"fragment",
|
|
14947
15486
|
"href",
|
|
14948
15487
|
"target",
|
|
14949
15488
|
"rel",
|
|
@@ -16058,7 +16597,7 @@ var ContactPickerComponent = class ContactPickerComponent {
|
|
|
16058
16597
|
{
|
|
16059
16598
|
kind: "component",
|
|
16060
16599
|
type: CheckboxComponent,
|
|
16061
|
-
selector: "ui-checkbox",
|
|
16600
|
+
selector: "ui-checkbox, ui-checkbox-group",
|
|
16062
16601
|
inputs: [
|
|
16063
16602
|
"label",
|
|
16064
16603
|
"ariaLabel",
|
|
@@ -16066,6 +16605,9 @@ var ContactPickerComponent = class ContactPickerComponent {
|
|
|
16066
16605
|
"checked",
|
|
16067
16606
|
"options",
|
|
16068
16607
|
"legend",
|
|
16608
|
+
"orientation",
|
|
16609
|
+
"values",
|
|
16610
|
+
"description",
|
|
16069
16611
|
"indent",
|
|
16070
16612
|
"required",
|
|
16071
16613
|
"requiredMessage",
|
|
@@ -16074,7 +16616,11 @@ var ContactPickerComponent = class ContactPickerComponent {
|
|
|
16074
16616
|
"showErrors",
|
|
16075
16617
|
"disabled"
|
|
16076
16618
|
],
|
|
16077
|
-
outputs: [
|
|
16619
|
+
outputs: [
|
|
16620
|
+
"checkedChange",
|
|
16621
|
+
"valuesChange",
|
|
16622
|
+
"invalidChange"
|
|
16623
|
+
]
|
|
16078
16624
|
}
|
|
16079
16625
|
],
|
|
16080
16626
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
@@ -16996,7 +17542,9 @@ var BulkMessagePanelComponent = class BulkMessagePanelComponent {
|
|
|
16996
17542
|
"primaryLabel",
|
|
16997
17543
|
"primaryVariant",
|
|
16998
17544
|
"primaryLoading",
|
|
16999
|
-
"primaryDisabled"
|
|
17545
|
+
"primaryDisabled",
|
|
17546
|
+
"cancelTestId",
|
|
17547
|
+
"primaryTestId"
|
|
17000
17548
|
],
|
|
17001
17549
|
outputs: ["closed", "primaryClick"]
|
|
17002
17550
|
},
|
|
@@ -17015,6 +17563,7 @@ var BulkMessagePanelComponent = class BulkMessagePanelComponent {
|
|
|
17015
17563
|
"label",
|
|
17016
17564
|
"ariaLabel",
|
|
17017
17565
|
"placeholder",
|
|
17566
|
+
"prefix",
|
|
17018
17567
|
"type",
|
|
17019
17568
|
"maxlength",
|
|
17020
17569
|
"required",
|
|
@@ -17029,6 +17578,7 @@ var BulkMessagePanelComponent = class BulkMessagePanelComponent {
|
|
|
17029
17578
|
"maxDecimals",
|
|
17030
17579
|
"step",
|
|
17031
17580
|
"valueType",
|
|
17581
|
+
"formatter",
|
|
17032
17582
|
"showErrors",
|
|
17033
17583
|
"disabled"
|
|
17034
17584
|
],
|
|
@@ -17544,6 +18094,7 @@ var FileInputComponent = class FileInputComponent {
|
|
|
17544
18094
|
this.error = input("", ...ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []);
|
|
17545
18095
|
this.showField = input(true, ...ngDevMode ? [{ debugName: "showField" }] : /* istanbul ignore next */ []);
|
|
17546
18096
|
this.showErrors = input(false, ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
18097
|
+
this.toastOnReject = input(false, ...ngDevMode ? [{ debugName: "toastOnReject" }] : /* istanbul ignore next */ []);
|
|
17547
18098
|
this.clearable = input(false, ...ngDevMode ? [{ debugName: "clearable" }] : /* istanbul ignore next */ []);
|
|
17548
18099
|
this.removeLabel = input("Remove", ...ngDevMode ? [{ debugName: "removeLabel" }] : /* istanbul ignore next */ []);
|
|
17549
18100
|
this.maxSize = input(null, ...ngDevMode ? [{ debugName: "maxSize" }] : /* istanbul ignore next */ []);
|
|
@@ -17573,6 +18124,7 @@ var FileInputComponent = class FileInputComponent {
|
|
|
17573
18124
|
this._inputId = `fi-${Math.random().toString(36).slice(2, 8)}`;
|
|
17574
18125
|
this.fileEl = viewChild("fileEl", ...ngDevMode ? [{ debugName: "fileEl" }] : /* istanbul ignore next */ []);
|
|
17575
18126
|
this._dragging = signal(false, ...ngDevMode ? [{ debugName: "_dragging" }] : /* istanbul ignore next */ []);
|
|
18127
|
+
this._toast = inject(ToastService);
|
|
17576
18128
|
this._rejection = signal("", ...ngDevMode ? [{ debugName: "_rejection" }] : /* istanbul ignore next */ []);
|
|
17577
18129
|
this._reveal = createFieldReveal(this.showErrors);
|
|
17578
18130
|
this._issue = computed(() => this.disabled() || !this.required() || this._files().length > 0 ? null : requiredIssue(this.label() || "File"), ...ngDevMode ? [{ debugName: "_issue" }] : /* istanbul ignore next */ []);
|
|
@@ -17723,6 +18275,7 @@ var FileInputComponent = class FileInputComponent {
|
|
|
17723
18275
|
}
|
|
17724
18276
|
this._rejection.set(rejected[0]?.message ?? "");
|
|
17725
18277
|
rejected.forEach((r) => this.fileRejected.emit(r));
|
|
18278
|
+
if (this.toastOnReject() && rejected.length > 0) this._toast.error(rejected.map((r) => `"${r.file.name}" was not added. ${r.message}`).join(" "));
|
|
17726
18279
|
if (ok.length === 0) {
|
|
17727
18280
|
if (native) native.value = "";
|
|
17728
18281
|
this._files.set([]);
|
|
@@ -17830,6 +18383,13 @@ var FileInputComponent = class FileInputComponent {
|
|
|
17830
18383
|
isRequired: false,
|
|
17831
18384
|
transformFunction: null
|
|
17832
18385
|
},
|
|
18386
|
+
toastOnReject: {
|
|
18387
|
+
classPropertyName: "toastOnReject",
|
|
18388
|
+
publicName: "toastOnReject",
|
|
18389
|
+
isSignal: true,
|
|
18390
|
+
isRequired: false,
|
|
18391
|
+
transformFunction: null
|
|
18392
|
+
},
|
|
17833
18393
|
clearable: {
|
|
17834
18394
|
classPropertyName: "clearable",
|
|
17835
18395
|
publicName: "clearable",
|
|
@@ -18230,6 +18790,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
18230
18790
|
required: false
|
|
18231
18791
|
}]
|
|
18232
18792
|
}],
|
|
18793
|
+
toastOnReject: [{
|
|
18794
|
+
type: i0.Input,
|
|
18795
|
+
args: [{
|
|
18796
|
+
isSignal: true,
|
|
18797
|
+
alias: "toastOnReject",
|
|
18798
|
+
required: false
|
|
18799
|
+
}]
|
|
18800
|
+
}],
|
|
18233
18801
|
clearable: [{
|
|
18234
18802
|
type: i0.Input,
|
|
18235
18803
|
args: [{
|
|
@@ -20673,7 +21241,7 @@ var MultiSelectComponent = class MultiSelectComponent {
|
|
|
20673
21241
|
}, {
|
|
20674
21242
|
kind: "component",
|
|
20675
21243
|
type: CheckboxComponent,
|
|
20676
|
-
selector: "ui-checkbox",
|
|
21244
|
+
selector: "ui-checkbox, ui-checkbox-group",
|
|
20677
21245
|
inputs: [
|
|
20678
21246
|
"label",
|
|
20679
21247
|
"ariaLabel",
|
|
@@ -20681,6 +21249,9 @@ var MultiSelectComponent = class MultiSelectComponent {
|
|
|
20681
21249
|
"checked",
|
|
20682
21250
|
"options",
|
|
20683
21251
|
"legend",
|
|
21252
|
+
"orientation",
|
|
21253
|
+
"values",
|
|
21254
|
+
"description",
|
|
20684
21255
|
"indent",
|
|
20685
21256
|
"required",
|
|
20686
21257
|
"requiredMessage",
|
|
@@ -20689,7 +21260,11 @@ var MultiSelectComponent = class MultiSelectComponent {
|
|
|
20689
21260
|
"showErrors",
|
|
20690
21261
|
"disabled"
|
|
20691
21262
|
],
|
|
20692
|
-
outputs: [
|
|
21263
|
+
outputs: [
|
|
21264
|
+
"checkedChange",
|
|
21265
|
+
"valuesChange",
|
|
21266
|
+
"invalidChange"
|
|
21267
|
+
]
|
|
20693
21268
|
}],
|
|
20694
21269
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
20695
21270
|
});
|
|
@@ -20992,7 +21567,7 @@ var DiscountSelectorComponent = class DiscountSelectorComponent {
|
|
|
20992
21567
|
dependencies: [{
|
|
20993
21568
|
kind: "component",
|
|
20994
21569
|
type: CheckboxComponent,
|
|
20995
|
-
selector: "ui-checkbox",
|
|
21570
|
+
selector: "ui-checkbox, ui-checkbox-group",
|
|
20996
21571
|
inputs: [
|
|
20997
21572
|
"label",
|
|
20998
21573
|
"ariaLabel",
|
|
@@ -21000,6 +21575,9 @@ var DiscountSelectorComponent = class DiscountSelectorComponent {
|
|
|
21000
21575
|
"checked",
|
|
21001
21576
|
"options",
|
|
21002
21577
|
"legend",
|
|
21578
|
+
"orientation",
|
|
21579
|
+
"values",
|
|
21580
|
+
"description",
|
|
21003
21581
|
"indent",
|
|
21004
21582
|
"required",
|
|
21005
21583
|
"requiredMessage",
|
|
@@ -21008,7 +21586,11 @@ var DiscountSelectorComponent = class DiscountSelectorComponent {
|
|
|
21008
21586
|
"showErrors",
|
|
21009
21587
|
"disabled"
|
|
21010
21588
|
],
|
|
21011
|
-
outputs: [
|
|
21589
|
+
outputs: [
|
|
21590
|
+
"checkedChange",
|
|
21591
|
+
"valuesChange",
|
|
21592
|
+
"invalidChange"
|
|
21593
|
+
]
|
|
21012
21594
|
}],
|
|
21013
21595
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
21014
21596
|
});
|
|
@@ -21636,7 +22218,7 @@ var FormRowComponent = class FormRowComponent {
|
|
|
21636
22218
|
ngImport: i0,
|
|
21637
22219
|
template: `<div class="fr-row" [style.--fr-cols]="cols()"><ng-content /></div>`,
|
|
21638
22220
|
isInline: true,
|
|
21639
|
-
styles: [":host{display:block}.fr-row{display:grid;grid-template-columns:repeat(var(--fr-cols, 2),1fr);gap:12px}@media(max-width:480px){.fr-row{grid-template-columns:1fr}}\n"],
|
|
22221
|
+
styles: [":host{display:block}.fr-row{display:grid;grid-template-columns:repeat(var(--fr-cols, 2),1fr);gap:12px}.fr-row>::ng-deep .ui-span-2{grid-column:span 2}.fr-row>::ng-deep .ui-span-3{grid-column:span 3}.fr-row>::ng-deep .ui-span-all{grid-column:1 / -1}@media(max-width:480px){.fr-row{grid-template-columns:1fr}.fr-row>::ng-deep .ui-span-2,.fr-row>::ng-deep .ui-span-3,.fr-row>::ng-deep .ui-span-all{grid-column:1 / -1}}\n"],
|
|
21640
22222
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
21641
22223
|
});
|
|
21642
22224
|
}
|
|
@@ -21653,7 +22235,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
21653
22235
|
standalone: true,
|
|
21654
22236
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
21655
22237
|
template: `<div class="fr-row" [style.--fr-cols]="cols()"><ng-content /></div>`,
|
|
21656
|
-
styles: [":host{display:block}.fr-row{display:grid;grid-template-columns:repeat(var(--fr-cols, 2),1fr);gap:12px}@media(max-width:480px){.fr-row{grid-template-columns:1fr}}\n"]
|
|
22238
|
+
styles: [":host{display:block}.fr-row{display:grid;grid-template-columns:repeat(var(--fr-cols, 2),1fr);gap:12px}.fr-row>::ng-deep .ui-span-2{grid-column:span 2}.fr-row>::ng-deep .ui-span-3{grid-column:span 3}.fr-row>::ng-deep .ui-span-all{grid-column:1 / -1}@media(max-width:480px){.fr-row{grid-template-columns:1fr}.fr-row>::ng-deep .ui-span-2,.fr-row>::ng-deep .ui-span-3,.fr-row>::ng-deep .ui-span-all{grid-column:1 / -1}}\n"]
|
|
21657
22239
|
}]
|
|
21658
22240
|
}],
|
|
21659
22241
|
propDecorators: { cols: [{
|
|
@@ -21665,6 +22247,65 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
21665
22247
|
}]
|
|
21666
22248
|
}] }
|
|
21667
22249
|
});
|
|
22250
|
+
var FormColSpanDirective = class FormColSpanDirective {
|
|
22251
|
+
constructor() {
|
|
22252
|
+
this.uiColSpan = input("", ...ngDevMode ? [{ debugName: "uiColSpan" }] : /* istanbul ignore next */ []);
|
|
22253
|
+
this._class = computed(() => {
|
|
22254
|
+
const v = String(this.uiColSpan());
|
|
22255
|
+
return v === "2" || v === "3" || v === "all" ? `ui-span-${v}` : "";
|
|
22256
|
+
}, ...ngDevMode ? [{ debugName: "_class" }] : /* istanbul ignore next */ []);
|
|
22257
|
+
}
|
|
22258
|
+
static {
|
|
22259
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
22260
|
+
minVersion: "12.0.0",
|
|
22261
|
+
version: "22.2.2",
|
|
22262
|
+
ngImport: i0,
|
|
22263
|
+
type: FormColSpanDirective,
|
|
22264
|
+
deps: [],
|
|
22265
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
22266
|
+
});
|
|
22267
|
+
}
|
|
22268
|
+
static {
|
|
22269
|
+
this.ɵdir = i0.ɵɵngDeclareDirective({
|
|
22270
|
+
minVersion: "17.1.0",
|
|
22271
|
+
version: "22.2.2",
|
|
22272
|
+
type: FormColSpanDirective,
|
|
22273
|
+
isStandalone: true,
|
|
22274
|
+
selector: "[uiColSpan]",
|
|
22275
|
+
inputs: { uiColSpan: {
|
|
22276
|
+
classPropertyName: "uiColSpan",
|
|
22277
|
+
publicName: "uiColSpan",
|
|
22278
|
+
isSignal: true,
|
|
22279
|
+
isRequired: false,
|
|
22280
|
+
transformFunction: null
|
|
22281
|
+
} },
|
|
22282
|
+
host: { properties: { "class": "_class()" } },
|
|
22283
|
+
ngImport: i0
|
|
22284
|
+
});
|
|
22285
|
+
}
|
|
22286
|
+
};
|
|
22287
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
22288
|
+
minVersion: "12.0.0",
|
|
22289
|
+
version: "22.2.2",
|
|
22290
|
+
ngImport: i0,
|
|
22291
|
+
type: FormColSpanDirective,
|
|
22292
|
+
decorators: [{
|
|
22293
|
+
type: Directive,
|
|
22294
|
+
args: [{
|
|
22295
|
+
selector: "[uiColSpan]",
|
|
22296
|
+
standalone: true,
|
|
22297
|
+
host: { "[class]": "_class()" }
|
|
22298
|
+
}]
|
|
22299
|
+
}],
|
|
22300
|
+
propDecorators: { uiColSpan: [{
|
|
22301
|
+
type: i0.Input,
|
|
22302
|
+
args: [{
|
|
22303
|
+
isSignal: true,
|
|
22304
|
+
alias: "uiColSpan",
|
|
22305
|
+
required: false
|
|
22306
|
+
}]
|
|
22307
|
+
}] }
|
|
22308
|
+
});
|
|
21668
22309
|
var ListItemComponent = class ListItemComponent {
|
|
21669
22310
|
constructor() {
|
|
21670
22311
|
this.leading = input("none", ...ngDevMode ? [{ debugName: "leading" }] : /* istanbul ignore next */ []);
|
|
@@ -22602,6 +23243,7 @@ var ListComponent = class ListComponent {
|
|
|
22602
23243
|
"variant",
|
|
22603
23244
|
"routerLink",
|
|
22604
23245
|
"queryParams",
|
|
23246
|
+
"fragment",
|
|
22605
23247
|
"href",
|
|
22606
23248
|
"target",
|
|
22607
23249
|
"rel",
|
|
@@ -23905,6 +24547,7 @@ var QrCodeComponent = class QrCodeComponent {
|
|
|
23905
24547
|
"variant",
|
|
23906
24548
|
"routerLink",
|
|
23907
24549
|
"queryParams",
|
|
24550
|
+
"fragment",
|
|
23908
24551
|
"href",
|
|
23909
24552
|
"target",
|
|
23910
24553
|
"rel",
|
|
@@ -24030,6 +24673,28 @@ var PanelInfoListComponent = class PanelInfoListComponent {
|
|
|
24030
24673
|
this.showEmptyState = input(false, ...ngDevMode ? [{ debugName: "showEmptyState" }] : /* istanbul ignore next */ []);
|
|
24031
24674
|
this.displaySections = computed(() => this.showEmptyState() ? this.sections() : this.sections().filter((s) => s.items.some((i) => !i.hidden)), ...ngDevMode ? [{ debugName: "displaySections" }] : /* istanbul ignore next */ []);
|
|
24032
24675
|
}
|
|
24676
|
+
hrefOf(item) {
|
|
24677
|
+
let raw = item.href?.trim() ?? "";
|
|
24678
|
+
if (!raw && item.email?.trim()) raw = "mailto:" + item.email.trim();
|
|
24679
|
+
if (!raw && item.phone?.trim()) {
|
|
24680
|
+
const p = item.phone.trim();
|
|
24681
|
+
raw = "tel:" + (p.startsWith("+") ? "+" : "") + p.replace(/\D/g, "");
|
|
24682
|
+
}
|
|
24683
|
+
if (!raw) return null;
|
|
24684
|
+
const scheme = /^([a-z][a-z0-9+.\-]*):/i.exec(raw.replace(/[\u0000-\u0020]/g, ""));
|
|
24685
|
+
return scheme && [
|
|
24686
|
+
"mailto",
|
|
24687
|
+
"tel",
|
|
24688
|
+
"http",
|
|
24689
|
+
"https"
|
|
24690
|
+
].includes(scheme[1].toLowerCase()) ? raw : null;
|
|
24691
|
+
}
|
|
24692
|
+
isWeb(href) {
|
|
24693
|
+
return /^https?:/i.test(href.replace(/[\u0000-\u0020]/g, ""));
|
|
24694
|
+
}
|
|
24695
|
+
textOf(item) {
|
|
24696
|
+
return item.value || item.email || item.phone || item.href || "";
|
|
24697
|
+
}
|
|
24033
24698
|
visibleItems(section) {
|
|
24034
24699
|
return section.items.filter((i) => !i.hidden);
|
|
24035
24700
|
}
|
|
@@ -24088,6 +24753,8 @@ var PanelInfoListComponent = class PanelInfoListComponent {
|
|
|
24088
24753
|
<span class="pil-value pil-value--block">
|
|
24089
24754
|
@if (item.badge) {
|
|
24090
24755
|
<ui-badge [label]="item.badge.label" [variant]="item.badge.variant" />
|
|
24756
|
+
} @else if (hrefOf(item); as h) {
|
|
24757
|
+
<a class="pil-link pil-link--href" [attr.href]="h" [attr.target]="isWeb(h) ? '_blank' : null" [attr.rel]="isWeb(h) ? 'noopener noreferrer' : null">{{ textOf(item) }}</a>
|
|
24091
24758
|
} @else {
|
|
24092
24759
|
<span [class.pil-muted]="item.muted" [class.pil-danger]="item.danger">{{ item.value || '—' }}</span>
|
|
24093
24760
|
}
|
|
@@ -24108,6 +24775,8 @@ var PanelInfoListComponent = class PanelInfoListComponent {
|
|
|
24108
24775
|
</span>
|
|
24109
24776
|
} @else if (item.badge) {
|
|
24110
24777
|
<ui-badge [label]="item.badge.label" [variant]="item.badge.variant" />
|
|
24778
|
+
} @else if (hrefOf(item); as h) {
|
|
24779
|
+
<a class="pil-link pil-link--href" [attr.href]="h" [attr.target]="isWeb(h) ? '_blank' : null" [attr.rel]="isWeb(h) ? 'noopener noreferrer' : null">{{ textOf(item) }}</a>
|
|
24111
24780
|
} @else if (item.link && item.value && item.linkIcon) {
|
|
24112
24781
|
<a class="pil-link-icon" [routerLink]="item.link">
|
|
24113
24782
|
{{ item.value }}
|
|
@@ -24133,7 +24802,7 @@ var PanelInfoListComponent = class PanelInfoListComponent {
|
|
|
24133
24802
|
}
|
|
24134
24803
|
`,
|
|
24135
24804
|
isInline: true,
|
|
24136
|
-
styles: [":host{display:flex;flex-direction:column;gap:12px}.pil-section{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.pil-section-label{display:flex;justify-content:space-between;align-items:center;font-size:.6875rem;font-weight:700;letter-spacing:.07em;color:#94a3b8;text-transform:uppercase;padding:8px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.pil-header-link{font-size:.75rem;font-weight:500;color:#2563eb;text-decoration:none;text-transform:none;letter-spacing:0}.pil-header-link:hover{text-decoration:underline}.pil-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid #f1f5f9}.pil-row:last-child{border-bottom:none}.pil-label{font-size:.8125rem;color:#64748b;flex-shrink:0}.pil-value{font-size:.875rem;font-weight:500;color:#1e293b;text-align:right;display:flex;align-items:center;justify-content:flex-end}.pil-badges{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}.pil-edit-btn{margin-left:4px;flex-shrink:0}ui-empty-state{padding:12px 0}.pil-muted{color:#1e293b;font-weight:400}.pil-danger{color:#ef4444;font-weight:600}.pil-link{font-size:.875rem;font-weight:500;color:#2563eb;text-decoration:none}.pil-link:hover{text-decoration:underline}.pil-link-icon{display:inline-flex;align-items:center;gap:5px;font-size:.875rem;font-weight:500;color:#1e293b;text-decoration:none}.pil-link-icon svg{color:#94a3b8;flex-shrink:0}.pil-grid-2{display:grid;grid-template-columns:1fr 1fr}.pil-grid-cell{display:flex;flex-direction:column;gap:3px;padding:10px 14px;border-right:1px solid #f1f5f9}.pil-grid-cell:last-child{border-right:none}.pil-value--block{text-align:left;justify-content:flex-start}\n"],
|
|
24805
|
+
styles: [":host{display:flex;flex-direction:column;gap:12px}.pil-section{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.pil-section-label{display:flex;justify-content:space-between;align-items:center;font-size:.6875rem;font-weight:700;letter-spacing:.07em;color:#94a3b8;text-transform:uppercase;padding:8px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.pil-header-link{font-size:.75rem;font-weight:500;color:#2563eb;text-decoration:none;text-transform:none;letter-spacing:0}.pil-header-link:hover{text-decoration:underline}.pil-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid #f1f5f9}.pil-row:last-child{border-bottom:none}.pil-label{font-size:.8125rem;color:#64748b;flex-shrink:0}.pil-value{font-size:.875rem;font-weight:500;color:#1e293b;text-align:right;display:flex;align-items:center;justify-content:flex-end}.pil-badges{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}.pil-edit-btn{margin-left:4px;flex-shrink:0}ui-empty-state{padding:12px 0}.pil-muted{color:#1e293b;font-weight:400}.pil-danger{color:#ef4444;font-weight:600}.pil-link{font-size:.875rem;font-weight:500;color:#2563eb;text-decoration:none}.pil-link:hover{text-decoration:underline}.pil-link--href{overflow-wrap:anywhere;word-break:break-word}.pil-link:focus-visible,.pil-header-link:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:2px}.pil-link-icon{display:inline-flex;align-items:center;gap:5px;font-size:.875rem;font-weight:500;color:#1e293b;text-decoration:none}.pil-link-icon svg{color:#94a3b8;flex-shrink:0}.pil-grid-2{display:grid;grid-template-columns:1fr 1fr}.pil-grid-cell{display:flex;flex-direction:column;gap:3px;padding:10px 14px;border-right:1px solid #f1f5f9}.pil-grid-cell:last-child{border-right:none}.pil-value--block{text-align:left;justify-content:flex-start}\n"],
|
|
24137
24806
|
dependencies: [
|
|
24138
24807
|
{
|
|
24139
24808
|
kind: "component",
|
|
@@ -24178,6 +24847,7 @@ var PanelInfoListComponent = class PanelInfoListComponent {
|
|
|
24178
24847
|
"variant",
|
|
24179
24848
|
"routerLink",
|
|
24180
24849
|
"queryParams",
|
|
24850
|
+
"fragment",
|
|
24181
24851
|
"href",
|
|
24182
24852
|
"target",
|
|
24183
24853
|
"rel",
|
|
@@ -24239,6 +24909,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
24239
24909
|
<span class="pil-value pil-value--block">
|
|
24240
24910
|
@if (item.badge) {
|
|
24241
24911
|
<ui-badge [label]="item.badge.label" [variant]="item.badge.variant" />
|
|
24912
|
+
} @else if (hrefOf(item); as h) {
|
|
24913
|
+
<a class="pil-link pil-link--href" [attr.href]="h" [attr.target]="isWeb(h) ? '_blank' : null" [attr.rel]="isWeb(h) ? 'noopener noreferrer' : null">{{ textOf(item) }}</a>
|
|
24242
24914
|
} @else {
|
|
24243
24915
|
<span [class.pil-muted]="item.muted" [class.pil-danger]="item.danger">{{ item.value || '—' }}</span>
|
|
24244
24916
|
}
|
|
@@ -24259,6 +24931,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
24259
24931
|
</span>
|
|
24260
24932
|
} @else if (item.badge) {
|
|
24261
24933
|
<ui-badge [label]="item.badge.label" [variant]="item.badge.variant" />
|
|
24934
|
+
} @else if (hrefOf(item); as h) {
|
|
24935
|
+
<a class="pil-link pil-link--href" [attr.href]="h" [attr.target]="isWeb(h) ? '_blank' : null" [attr.rel]="isWeb(h) ? 'noopener noreferrer' : null">{{ textOf(item) }}</a>
|
|
24262
24936
|
} @else if (item.link && item.value && item.linkIcon) {
|
|
24263
24937
|
<a class="pil-link-icon" [routerLink]="item.link">
|
|
24264
24938
|
{{ item.value }}
|
|
@@ -24283,7 +24957,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
24283
24957
|
</div>
|
|
24284
24958
|
}
|
|
24285
24959
|
`,
|
|
24286
|
-
styles: [":host{display:flex;flex-direction:column;gap:12px}.pil-section{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.pil-section-label{display:flex;justify-content:space-between;align-items:center;font-size:.6875rem;font-weight:700;letter-spacing:.07em;color:#94a3b8;text-transform:uppercase;padding:8px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.pil-header-link{font-size:.75rem;font-weight:500;color:#2563eb;text-decoration:none;text-transform:none;letter-spacing:0}.pil-header-link:hover{text-decoration:underline}.pil-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid #f1f5f9}.pil-row:last-child{border-bottom:none}.pil-label{font-size:.8125rem;color:#64748b;flex-shrink:0}.pil-value{font-size:.875rem;font-weight:500;color:#1e293b;text-align:right;display:flex;align-items:center;justify-content:flex-end}.pil-badges{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}.pil-edit-btn{margin-left:4px;flex-shrink:0}ui-empty-state{padding:12px 0}.pil-muted{color:#1e293b;font-weight:400}.pil-danger{color:#ef4444;font-weight:600}.pil-link{font-size:.875rem;font-weight:500;color:#2563eb;text-decoration:none}.pil-link:hover{text-decoration:underline}.pil-link-icon{display:inline-flex;align-items:center;gap:5px;font-size:.875rem;font-weight:500;color:#1e293b;text-decoration:none}.pil-link-icon svg{color:#94a3b8;flex-shrink:0}.pil-grid-2{display:grid;grid-template-columns:1fr 1fr}.pil-grid-cell{display:flex;flex-direction:column;gap:3px;padding:10px 14px;border-right:1px solid #f1f5f9}.pil-grid-cell:last-child{border-right:none}.pil-value--block{text-align:left;justify-content:flex-start}\n"]
|
|
24960
|
+
styles: [":host{display:flex;flex-direction:column;gap:12px}.pil-section{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.pil-section-label{display:flex;justify-content:space-between;align-items:center;font-size:.6875rem;font-weight:700;letter-spacing:.07em;color:#94a3b8;text-transform:uppercase;padding:8px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.pil-header-link{font-size:.75rem;font-weight:500;color:#2563eb;text-decoration:none;text-transform:none;letter-spacing:0}.pil-header-link:hover{text-decoration:underline}.pil-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid #f1f5f9}.pil-row:last-child{border-bottom:none}.pil-label{font-size:.8125rem;color:#64748b;flex-shrink:0}.pil-value{font-size:.875rem;font-weight:500;color:#1e293b;text-align:right;display:flex;align-items:center;justify-content:flex-end}.pil-badges{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}.pil-edit-btn{margin-left:4px;flex-shrink:0}ui-empty-state{padding:12px 0}.pil-muted{color:#1e293b;font-weight:400}.pil-danger{color:#ef4444;font-weight:600}.pil-link{font-size:.875rem;font-weight:500;color:#2563eb;text-decoration:none}.pil-link:hover{text-decoration:underline}.pil-link--href{overflow-wrap:anywhere;word-break:break-word}.pil-link:focus-visible,.pil-header-link:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:2px}.pil-link-icon{display:inline-flex;align-items:center;gap:5px;font-size:.875rem;font-weight:500;color:#1e293b;text-decoration:none}.pil-link-icon svg{color:#94a3b8;flex-shrink:0}.pil-grid-2{display:grid;grid-template-columns:1fr 1fr}.pil-grid-cell{display:flex;flex-direction:column;gap:3px;padding:10px 14px;border-right:1px solid #f1f5f9}.pil-grid-cell:last-child{border-right:none}.pil-value--block{text-align:left;justify-content:flex-start}\n"]
|
|
24287
24961
|
}]
|
|
24288
24962
|
}],
|
|
24289
24963
|
propDecorators: {
|
|
@@ -25502,7 +26176,15 @@ const EXTRA_ICONS = {
|
|
|
25502
26176
|
"chevron-down": "M6 9l6 6 6-6",
|
|
25503
26177
|
"arrow-left": "M19 12H5 M12 19l-7-7 7-7",
|
|
25504
26178
|
"bell": "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9 M13.73 21a2 2 0 0 1-3.46 0",
|
|
25505
|
-
"print": "M6 9V2h12v7 M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2 M6 14h12v8H6z"
|
|
26179
|
+
"print": "M6 9V2h12v7 M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2 M6 14h12v8H6z",
|
|
26180
|
+
"lock": "M5 11h14a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2z M7 11V7a5 5 0 0 1 10 0v4",
|
|
26181
|
+
"arrow-up": "M12 19V5 M5 12l7-7 7 7",
|
|
26182
|
+
"arrow-down": "M12 5v14 M19 12l-7 7-7-7",
|
|
26183
|
+
"arrow-right": "M5 12h14 M12 5l7 7-7 7",
|
|
26184
|
+
"document": "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z M14 2v6h6 M16 13H8 M16 17H8 M10 9H8",
|
|
26185
|
+
"grip": "M9 5h.01 M15 5h.01 M9 12h.01 M15 12h.01 M9 19h.01 M15 19h.01",
|
|
26186
|
+
"card": "M3 4h18a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z M1 10h22",
|
|
26187
|
+
"bank": "M3 21h18 M3 10h18 M5 6l7-3 7 3 M4 10v11 M20 10v11 M8 14v3 M12 14v3 M16 14v3"
|
|
25506
26188
|
};
|
|
25507
26189
|
function iconPath(name) {
|
|
25508
26190
|
return Object.prototype.hasOwnProperty.call(EXTRA_ICONS, name) ? EXTRA_ICONS[name] : builtInActionIcon(name);
|
|
@@ -25757,17 +26439,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
25757
26439
|
}]
|
|
25758
26440
|
}
|
|
25759
26441
|
});
|
|
25760
|
-
var
|
|
26442
|
+
var TimelineComponent = class TimelineComponent {
|
|
25761
26443
|
constructor() {
|
|
25762
|
-
this.
|
|
25763
|
-
this.
|
|
26444
|
+
this.items = input([], ...ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []);
|
|
26445
|
+
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
26446
|
+
this.emptyMessage = input("", ...ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []);
|
|
25764
26447
|
}
|
|
25765
26448
|
static {
|
|
25766
26449
|
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
25767
26450
|
minVersion: "12.0.0",
|
|
25768
26451
|
version: "22.2.2",
|
|
25769
26452
|
ngImport: i0,
|
|
25770
|
-
type:
|
|
26453
|
+
type: TimelineComponent,
|
|
25771
26454
|
deps: [],
|
|
25772
26455
|
target: i0.ɵɵFactoryTarget.Component
|
|
25773
26456
|
});
|
|
@@ -25776,20 +26459,27 @@ var ErrorComponent = class ErrorComponent {
|
|
|
25776
26459
|
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
25777
26460
|
minVersion: "17.0.0",
|
|
25778
26461
|
version: "22.2.2",
|
|
25779
|
-
type:
|
|
26462
|
+
type: TimelineComponent,
|
|
25780
26463
|
isStandalone: true,
|
|
25781
|
-
selector: "ui-
|
|
26464
|
+
selector: "ui-timeline",
|
|
25782
26465
|
inputs: {
|
|
25783
|
-
|
|
25784
|
-
classPropertyName: "
|
|
25785
|
-
publicName: "
|
|
26466
|
+
items: {
|
|
26467
|
+
classPropertyName: "items",
|
|
26468
|
+
publicName: "items",
|
|
25786
26469
|
isSignal: true,
|
|
25787
26470
|
isRequired: false,
|
|
25788
26471
|
transformFunction: null
|
|
25789
26472
|
},
|
|
25790
|
-
|
|
25791
|
-
classPropertyName: "
|
|
25792
|
-
publicName: "
|
|
26473
|
+
ariaLabel: {
|
|
26474
|
+
classPropertyName: "ariaLabel",
|
|
26475
|
+
publicName: "ariaLabel",
|
|
26476
|
+
isSignal: true,
|
|
26477
|
+
isRequired: false,
|
|
26478
|
+
transformFunction: null
|
|
26479
|
+
},
|
|
26480
|
+
emptyMessage: {
|
|
26481
|
+
classPropertyName: "emptyMessage",
|
|
26482
|
+
publicName: "emptyMessage",
|
|
25793
26483
|
isSignal: true,
|
|
25794
26484
|
isRequired: false,
|
|
25795
26485
|
transformFunction: null
|
|
@@ -25797,12 +26487,61 @@ var ErrorComponent = class ErrorComponent {
|
|
|
25797
26487
|
},
|
|
25798
26488
|
ngImport: i0,
|
|
25799
26489
|
template: `
|
|
25800
|
-
@if (
|
|
25801
|
-
<
|
|
26490
|
+
@if (items().length) {
|
|
26491
|
+
<ol class="tl" [attr.aria-label]="ariaLabel() || null">
|
|
26492
|
+
@for (item of items(); track item.id ?? $index) {
|
|
26493
|
+
<li class="tl-item" [class]="'tl-item tl-item--' + (item.tone ?? 'default')" [class.tl-item--icon]="!!item.icon">
|
|
26494
|
+
<span class="tl-marker" aria-hidden="true">
|
|
26495
|
+
@if (item.icon) { <ui-icon [name]="item.icon" [interactive]="false" [size]="12" /> }
|
|
26496
|
+
</span>
|
|
26497
|
+
<div class="tl-content">
|
|
26498
|
+
<div class="tl-head">
|
|
26499
|
+
<span class="tl-title">{{ item.title }}</span>
|
|
26500
|
+
@if (item.badge) { <ui-badge [label]="item.badge.label" [variant]="item.badge.variant" /> }
|
|
26501
|
+
</div>
|
|
26502
|
+
@if (item.description) { <p class="tl-description">{{ item.description }}</p> }
|
|
26503
|
+
@if (item.time || item.dateTime) {
|
|
26504
|
+
<time class="tl-time" [attr.datetime]="item.dateTime || null">{{ item.time || item.dateTime }}</time>
|
|
26505
|
+
}
|
|
26506
|
+
</div>
|
|
26507
|
+
</li>
|
|
26508
|
+
}
|
|
26509
|
+
</ol>
|
|
26510
|
+
} @else if (emptyMessage()) {
|
|
26511
|
+
<ui-hint class="tl-empty">{{ emptyMessage() }}</ui-hint>
|
|
25802
26512
|
}
|
|
25803
26513
|
`,
|
|
25804
26514
|
isInline: true,
|
|
25805
|
-
styles: [":host{display:block}.
|
|
26515
|
+
styles: [":host{display:block}.tl{list-style:none;margin:0;padding:0}.tl-item{position:relative;display:flex;gap:12px;padding-bottom:16px;--tl-color: #475569}.tl-item:last-child{padding-bottom:0}.tl-item:before{content:\"\";position:absolute;left:7px;top:18px;bottom:-2px;width:2px;background:#e2e8f0}.tl-item:last-child:before{display:none}.tl-item--success{--tl-color: #15803d}.tl-item--warning{--tl-color: #b45309}.tl-item--danger{--tl-color: #b91c1c}.tl-marker{flex-shrink:0;box-sizing:border-box;width:16px;height:16px;margin-top:2px;border-radius:50%;background:var(--tl-color);border:3px solid #fff;box-shadow:0 0 0 1px var(--tl-color);display:inline-flex;align-items:center;justify-content:center;position:relative;z-index:1}.tl-item--icon .tl-marker{border:none;box-shadow:none;color:#fff}.tl-content{flex:1;min-width:0;overflow-wrap:anywhere;word-break:break-word}.tl-head{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px}.tl-title{font-size:.875rem;font-weight:600;color:#1e293b;line-height:1.4}.tl-description{margin:2px 0 0;font-size:.8125rem;line-height:1.5;color:#475569}.tl-time{display:block;margin-top:2px;font-size:.75rem;color:#64748b}\n"],
|
|
26516
|
+
dependencies: [
|
|
26517
|
+
{
|
|
26518
|
+
kind: "component",
|
|
26519
|
+
type: BadgeComponent,
|
|
26520
|
+
selector: "ui-badge",
|
|
26521
|
+
inputs: ["label", "variant"]
|
|
26522
|
+
},
|
|
26523
|
+
{
|
|
26524
|
+
kind: "component",
|
|
26525
|
+
type: HintComponent,
|
|
26526
|
+
selector: "ui-hint"
|
|
26527
|
+
},
|
|
26528
|
+
{
|
|
26529
|
+
kind: "component",
|
|
26530
|
+
type: IconComponent,
|
|
26531
|
+
selector: "ui-icon",
|
|
26532
|
+
inputs: [
|
|
26533
|
+
"name",
|
|
26534
|
+
"tooltip",
|
|
26535
|
+
"ariaLabel",
|
|
26536
|
+
"size",
|
|
26537
|
+
"variant",
|
|
26538
|
+
"disabled",
|
|
26539
|
+
"loading",
|
|
26540
|
+
"interactive"
|
|
26541
|
+
],
|
|
26542
|
+
outputs: ["iconClick"]
|
|
26543
|
+
}
|
|
26544
|
+
],
|
|
25806
26545
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
25807
26546
|
});
|
|
25808
26547
|
}
|
|
@@ -25811,43 +26550,164 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
25811
26550
|
minVersion: "12.0.0",
|
|
25812
26551
|
version: "22.2.2",
|
|
25813
26552
|
ngImport: i0,
|
|
25814
|
-
type:
|
|
26553
|
+
type: TimelineComponent,
|
|
25815
26554
|
decorators: [{
|
|
25816
26555
|
type: Component,
|
|
25817
26556
|
args: [{
|
|
25818
|
-
selector: "ui-
|
|
26557
|
+
selector: "ui-timeline",
|
|
25819
26558
|
standalone: true,
|
|
25820
26559
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
26560
|
+
imports: [
|
|
26561
|
+
BadgeComponent,
|
|
26562
|
+
HintComponent,
|
|
26563
|
+
IconComponent
|
|
26564
|
+
],
|
|
25821
26565
|
template: `
|
|
25822
|
-
@if (
|
|
25823
|
-
<
|
|
26566
|
+
@if (items().length) {
|
|
26567
|
+
<ol class="tl" [attr.aria-label]="ariaLabel() || null">
|
|
26568
|
+
@for (item of items(); track item.id ?? $index) {
|
|
26569
|
+
<li class="tl-item" [class]="'tl-item tl-item--' + (item.tone ?? 'default')" [class.tl-item--icon]="!!item.icon">
|
|
26570
|
+
<span class="tl-marker" aria-hidden="true">
|
|
26571
|
+
@if (item.icon) { <ui-icon [name]="item.icon" [interactive]="false" [size]="12" /> }
|
|
26572
|
+
</span>
|
|
26573
|
+
<div class="tl-content">
|
|
26574
|
+
<div class="tl-head">
|
|
26575
|
+
<span class="tl-title">{{ item.title }}</span>
|
|
26576
|
+
@if (item.badge) { <ui-badge [label]="item.badge.label" [variant]="item.badge.variant" /> }
|
|
26577
|
+
</div>
|
|
26578
|
+
@if (item.description) { <p class="tl-description">{{ item.description }}</p> }
|
|
26579
|
+
@if (item.time || item.dateTime) {
|
|
26580
|
+
<time class="tl-time" [attr.datetime]="item.dateTime || null">{{ item.time || item.dateTime }}</time>
|
|
26581
|
+
}
|
|
26582
|
+
</div>
|
|
26583
|
+
</li>
|
|
26584
|
+
}
|
|
26585
|
+
</ol>
|
|
26586
|
+
} @else if (emptyMessage()) {
|
|
26587
|
+
<ui-hint class="tl-empty">{{ emptyMessage() }}</ui-hint>
|
|
25824
26588
|
}
|
|
25825
26589
|
`,
|
|
25826
|
-
styles: [":host{display:block}.
|
|
26590
|
+
styles: [":host{display:block}.tl{list-style:none;margin:0;padding:0}.tl-item{position:relative;display:flex;gap:12px;padding-bottom:16px;--tl-color: #475569}.tl-item:last-child{padding-bottom:0}.tl-item:before{content:\"\";position:absolute;left:7px;top:18px;bottom:-2px;width:2px;background:#e2e8f0}.tl-item:last-child:before{display:none}.tl-item--success{--tl-color: #15803d}.tl-item--warning{--tl-color: #b45309}.tl-item--danger{--tl-color: #b91c1c}.tl-marker{flex-shrink:0;box-sizing:border-box;width:16px;height:16px;margin-top:2px;border-radius:50%;background:var(--tl-color);border:3px solid #fff;box-shadow:0 0 0 1px var(--tl-color);display:inline-flex;align-items:center;justify-content:center;position:relative;z-index:1}.tl-item--icon .tl-marker{border:none;box-shadow:none;color:#fff}.tl-content{flex:1;min-width:0;overflow-wrap:anywhere;word-break:break-word}.tl-head{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px}.tl-title{font-size:.875rem;font-weight:600;color:#1e293b;line-height:1.4}.tl-description{margin:2px 0 0;font-size:.8125rem;line-height:1.5;color:#475569}.tl-time{display:block;margin-top:2px;font-size:.75rem;color:#64748b}\n"]
|
|
25827
26591
|
}]
|
|
25828
26592
|
}],
|
|
25829
26593
|
propDecorators: {
|
|
25830
|
-
|
|
26594
|
+
items: [{
|
|
25831
26595
|
type: i0.Input,
|
|
25832
26596
|
args: [{
|
|
25833
26597
|
isSignal: true,
|
|
25834
|
-
alias: "
|
|
26598
|
+
alias: "items",
|
|
25835
26599
|
required: false
|
|
25836
26600
|
}]
|
|
25837
26601
|
}],
|
|
25838
|
-
|
|
26602
|
+
ariaLabel: [{
|
|
25839
26603
|
type: i0.Input,
|
|
25840
26604
|
args: [{
|
|
25841
26605
|
isSignal: true,
|
|
25842
|
-
alias: "
|
|
26606
|
+
alias: "ariaLabel",
|
|
25843
26607
|
required: false
|
|
25844
26608
|
}]
|
|
25845
|
-
}]
|
|
25846
|
-
|
|
25847
|
-
|
|
25848
|
-
|
|
25849
|
-
|
|
25850
|
-
|
|
26609
|
+
}],
|
|
26610
|
+
emptyMessage: [{
|
|
26611
|
+
type: i0.Input,
|
|
26612
|
+
args: [{
|
|
26613
|
+
isSignal: true,
|
|
26614
|
+
alias: "emptyMessage",
|
|
26615
|
+
required: false
|
|
26616
|
+
}]
|
|
26617
|
+
}]
|
|
26618
|
+
}
|
|
26619
|
+
});
|
|
26620
|
+
var ErrorComponent = class ErrorComponent {
|
|
26621
|
+
constructor() {
|
|
26622
|
+
this.message = input("", ...ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []);
|
|
26623
|
+
this.errorId = input("", ...ngDevMode ? [{ debugName: "errorId" }] : /* istanbul ignore next */ []);
|
|
26624
|
+
}
|
|
26625
|
+
static {
|
|
26626
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
26627
|
+
minVersion: "12.0.0",
|
|
26628
|
+
version: "22.2.2",
|
|
26629
|
+
ngImport: i0,
|
|
26630
|
+
type: ErrorComponent,
|
|
26631
|
+
deps: [],
|
|
26632
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
26633
|
+
});
|
|
26634
|
+
}
|
|
26635
|
+
static {
|
|
26636
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
26637
|
+
minVersion: "17.0.0",
|
|
26638
|
+
version: "22.2.2",
|
|
26639
|
+
type: ErrorComponent,
|
|
26640
|
+
isStandalone: true,
|
|
26641
|
+
selector: "ui-error",
|
|
26642
|
+
inputs: {
|
|
26643
|
+
message: {
|
|
26644
|
+
classPropertyName: "message",
|
|
26645
|
+
publicName: "message",
|
|
26646
|
+
isSignal: true,
|
|
26647
|
+
isRequired: false,
|
|
26648
|
+
transformFunction: null
|
|
26649
|
+
},
|
|
26650
|
+
errorId: {
|
|
26651
|
+
classPropertyName: "errorId",
|
|
26652
|
+
publicName: "errorId",
|
|
26653
|
+
isSignal: true,
|
|
26654
|
+
isRequired: false,
|
|
26655
|
+
transformFunction: null
|
|
26656
|
+
}
|
|
26657
|
+
},
|
|
26658
|
+
ngImport: i0,
|
|
26659
|
+
template: `
|
|
26660
|
+
@if (message()) {
|
|
26661
|
+
<p class="ui-error" role="alert" [attr.id]="errorId() || null">{{ message() }}</p>
|
|
26662
|
+
}
|
|
26663
|
+
`,
|
|
26664
|
+
isInline: true,
|
|
26665
|
+
styles: [":host{display:block}.ui-error{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#ef4444}\n"],
|
|
26666
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
26667
|
+
});
|
|
26668
|
+
}
|
|
26669
|
+
};
|
|
26670
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
26671
|
+
minVersion: "12.0.0",
|
|
26672
|
+
version: "22.2.2",
|
|
26673
|
+
ngImport: i0,
|
|
26674
|
+
type: ErrorComponent,
|
|
26675
|
+
decorators: [{
|
|
26676
|
+
type: Component,
|
|
26677
|
+
args: [{
|
|
26678
|
+
selector: "ui-error",
|
|
26679
|
+
standalone: true,
|
|
26680
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
26681
|
+
template: `
|
|
26682
|
+
@if (message()) {
|
|
26683
|
+
<p class="ui-error" role="alert" [attr.id]="errorId() || null">{{ message() }}</p>
|
|
26684
|
+
}
|
|
26685
|
+
`,
|
|
26686
|
+
styles: [":host{display:block}.ui-error{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#ef4444}\n"]
|
|
26687
|
+
}]
|
|
26688
|
+
}],
|
|
26689
|
+
propDecorators: {
|
|
26690
|
+
message: [{
|
|
26691
|
+
type: i0.Input,
|
|
26692
|
+
args: [{
|
|
26693
|
+
isSignal: true,
|
|
26694
|
+
alias: "message",
|
|
26695
|
+
required: false
|
|
26696
|
+
}]
|
|
26697
|
+
}],
|
|
26698
|
+
errorId: [{
|
|
26699
|
+
type: i0.Input,
|
|
26700
|
+
args: [{
|
|
26701
|
+
isSignal: true,
|
|
26702
|
+
alias: "errorId",
|
|
26703
|
+
required: false
|
|
26704
|
+
}]
|
|
26705
|
+
}]
|
|
26706
|
+
}
|
|
26707
|
+
});
|
|
26708
|
+
var KpiCardComponent = class KpiCardComponent {
|
|
26709
|
+
constructor() {
|
|
26710
|
+
this.sanitizer = inject(DomSanitizer);
|
|
25851
26711
|
this.host = inject(ElementRef);
|
|
25852
26712
|
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
25853
26713
|
this.value = input("", ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
@@ -26447,6 +27307,7 @@ var DateRangePickerComponent = class DateRangePickerComponent {
|
|
|
26447
27307
|
"variant",
|
|
26448
27308
|
"routerLink",
|
|
26449
27309
|
"queryParams",
|
|
27310
|
+
"fragment",
|
|
26450
27311
|
"href",
|
|
26451
27312
|
"target",
|
|
26452
27313
|
"rel",
|
|
@@ -28260,7 +29121,9 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
28260
29121
|
"checked",
|
|
28261
29122
|
"invalid",
|
|
28262
29123
|
"describedBy",
|
|
28263
|
-
"
|
|
29124
|
+
"controls",
|
|
29125
|
+
"disabled",
|
|
29126
|
+
"labelId"
|
|
28264
29127
|
],
|
|
28265
29128
|
outputs: ["selected"]
|
|
28266
29129
|
}],
|
|
@@ -28442,43 +29305,318 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28442
29305
|
}]
|
|
28443
29306
|
}
|
|
28444
29307
|
});
|
|
28445
|
-
|
|
29308
|
+
let nextPadId = 0;
|
|
29309
|
+
var SignaturePadComponent = class SignaturePadComponent {
|
|
28446
29310
|
constructor() {
|
|
28447
|
-
this.
|
|
28448
|
-
this.headingLevel = input(null, ...ngDevMode ? [{ debugName: "headingLevel" }] : /* istanbul ignore next */ []);
|
|
28449
|
-
this.titleId = input("", ...ngDevMode ? [{ debugName: "titleId" }] : /* istanbul ignore next */ []);
|
|
29311
|
+
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
28450
29312
|
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
28451
|
-
this.
|
|
28452
|
-
this.
|
|
28453
|
-
this.
|
|
28454
|
-
this.
|
|
28455
|
-
this.
|
|
28456
|
-
this.
|
|
28457
|
-
this.
|
|
28458
|
-
this.
|
|
28459
|
-
this.
|
|
29313
|
+
this.hint = input("", ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
|
|
29314
|
+
this.error = input("", ...ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []);
|
|
29315
|
+
this.width = input(600, ...ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []);
|
|
29316
|
+
this.height = input(120, ...ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []);
|
|
29317
|
+
this.outputWidth = input(600, ...ngDevMode ? [{ debugName: "outputWidth" }] : /* istanbul ignore next */ []);
|
|
29318
|
+
this.outputHeight = input(60, ...ngDevMode ? [{ debugName: "outputHeight" }] : /* istanbul ignore next */ []);
|
|
29319
|
+
this.penColor = input("#000000", ...ngDevMode ? [{ debugName: "penColor" }] : /* istanbul ignore next */ []);
|
|
29320
|
+
this.penWidth = input(3, ...ngDevMode ? [{ debugName: "penWidth" }] : /* istanbul ignore next */ []);
|
|
29321
|
+
this.showClear = input(true, ...ngDevMode ? [{ debugName: "showClear" }] : /* istanbul ignore next */ []);
|
|
29322
|
+
this.clearLabel = input("Clear", ...ngDevMode ? [{ debugName: "clearLabel" }] : /* istanbul ignore next */ []);
|
|
29323
|
+
this._disabledInput = input(false, {
|
|
29324
|
+
...ngDevMode ? { debugName: "_disabledInput" } : /* istanbul ignore next */ {},
|
|
29325
|
+
alias: "disabled"
|
|
29326
|
+
});
|
|
29327
|
+
this.signatureChange = output();
|
|
29328
|
+
this._canvas = viewChild("canvas", ...ngDevMode ? [{ debugName: "_canvas" }] : /* istanbul ignore next */ []);
|
|
29329
|
+
this._cvaDisabled = signal(false, ...ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []);
|
|
29330
|
+
this.disabled = computed(() => this._disabledInput() || this._cvaDisabled(), ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
29331
|
+
this._empty = signal(true, ...ngDevMode ? [{ debugName: "_empty" }] : /* istanbul ignore next */ []);
|
|
29332
|
+
this._cursorVisible = signal(false, ...ngDevMode ? [{ debugName: "_cursorVisible" }] : /* istanbul ignore next */ []);
|
|
29333
|
+
this._cursorX = signal(0, ...ngDevMode ? [{ debugName: "_cursorX" }] : /* istanbul ignore next */ []);
|
|
29334
|
+
this._cursorY = signal(0, ...ngDevMode ? [{ debugName: "_cursorY" }] : /* istanbul ignore next */ []);
|
|
29335
|
+
this._keyboardDrawing = signal(false, ...ngDevMode ? [{ debugName: "_keyboardDrawing" }] : /* istanbul ignore next */ []);
|
|
29336
|
+
this._announcement = signal("", ...ngDevMode ? [{ debugName: "_announcement" }] : /* istanbul ignore next */ []);
|
|
29337
|
+
this._keyboardHelp = "Use the arrow keys to move the cursor, hold Space to draw, press Escape to hide the cursor.";
|
|
29338
|
+
this._injector = inject(Injector);
|
|
29339
|
+
this._id = ++nextPadId;
|
|
29340
|
+
this._labelId = `sp-label-${this._id}`;
|
|
29341
|
+
this._descId = `sp-desc-${this._id}`;
|
|
29342
|
+
this._helpId = `sp-help-${this._id}`;
|
|
29343
|
+
this._accessibleName = computed(() => this.ariaLabel() || (this.label() ? null : "Signature pad"), ...ngDevMode ? [{ debugName: "_accessibleName" }] : /* istanbul ignore next */ []);
|
|
29344
|
+
this._describedBy = computed(() => (this.error() || this.hint() ? this._descId + " " : "") + this._helpId, ...ngDevMode ? [{ debugName: "_describedBy" }] : /* istanbul ignore next */ []);
|
|
29345
|
+
this._ctx = null;
|
|
29346
|
+
this._pointerId = null;
|
|
29347
|
+
this._dirty = false;
|
|
29348
|
+
this._pendingImage = false;
|
|
29349
|
+
this._value = null;
|
|
29350
|
+
this._loading = false;
|
|
29351
|
+
this._sizeKey = null;
|
|
29352
|
+
this._onChange = () => {};
|
|
29353
|
+
this._onTouched = () => {};
|
|
29354
|
+
effect(() => {
|
|
29355
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29356
|
+
const sizeKey = `${this.width()}x${this.height()}`;
|
|
29357
|
+
this.penColor();
|
|
29358
|
+
this.penWidth();
|
|
29359
|
+
if (canvas) untracked(() => {
|
|
29360
|
+
this._setUpContext(canvas);
|
|
29361
|
+
if (this._sizeKey !== null && this._sizeKey !== sizeKey) this._repaintAfterResize();
|
|
29362
|
+
this._sizeKey = sizeKey;
|
|
29363
|
+
if (this._pendingImage && this._value && this._ctx) {
|
|
29364
|
+
this._pendingImage = false;
|
|
29365
|
+
this._paint(this._value, canvas, this._ctx);
|
|
29366
|
+
}
|
|
29367
|
+
});
|
|
29368
|
+
});
|
|
28460
29369
|
}
|
|
28461
|
-
|
|
28462
|
-
|
|
28463
|
-
return this.ariaLabel().trim() || null;
|
|
29370
|
+
isEmpty() {
|
|
29371
|
+
return this._empty();
|
|
28464
29372
|
}
|
|
28465
|
-
|
|
28466
|
-
|
|
29373
|
+
toDataUrl() {
|
|
29374
|
+
if (this._empty()) return null;
|
|
29375
|
+
return this._loading || this._pendingImage ? this._value : this._normalize();
|
|
28467
29376
|
}
|
|
28468
|
-
|
|
28469
|
-
this.
|
|
29377
|
+
clear() {
|
|
29378
|
+
this._clearBitmap();
|
|
29379
|
+
this._value = null;
|
|
29380
|
+
this._pendingImage = false;
|
|
29381
|
+
this._loading = false;
|
|
29382
|
+
const wasEmpty = this._empty();
|
|
29383
|
+
this._empty.set(true);
|
|
29384
|
+
this._dirty = false;
|
|
29385
|
+
this._keyboardDrawing.set(false);
|
|
29386
|
+
this._cursorVisible.set(false);
|
|
29387
|
+
if (!wasEmpty) this._announcement.set("Signature cleared");
|
|
29388
|
+
this._onChange(null);
|
|
29389
|
+
this.signatureChange.emit(null);
|
|
29390
|
+
}
|
|
29391
|
+
writeValue(value) {
|
|
29392
|
+
this._value = value || null;
|
|
29393
|
+
this._pendingImage = false;
|
|
29394
|
+
this._loading = false;
|
|
29395
|
+
this._clearBitmap();
|
|
29396
|
+
this._announcement.set("");
|
|
29397
|
+
this._dirty = false;
|
|
29398
|
+
if (!value) {
|
|
29399
|
+
this._empty.set(true);
|
|
29400
|
+
return;
|
|
29401
|
+
}
|
|
29402
|
+
this._empty.set(false);
|
|
29403
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29404
|
+
const ctx = canvas ? this._contextOf(canvas) : null;
|
|
29405
|
+
if (!canvas || !ctx) {
|
|
29406
|
+
this._pendingImage = true;
|
|
29407
|
+
return;
|
|
29408
|
+
}
|
|
29409
|
+
this._paint(value, canvas, ctx);
|
|
28470
29410
|
}
|
|
28471
|
-
|
|
28472
|
-
|
|
28473
|
-
|
|
28474
|
-
|
|
29411
|
+
_paint(value, canvas, ctx) {
|
|
29412
|
+
const image = new Image();
|
|
29413
|
+
this._loading = true;
|
|
29414
|
+
image.onerror = () => {
|
|
29415
|
+
if (this._value === value) this._loading = false;
|
|
29416
|
+
};
|
|
29417
|
+
image.onload = () => {
|
|
29418
|
+
if (this._value !== value) return;
|
|
29419
|
+
this._loading = false;
|
|
29420
|
+
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
29421
|
+
const scale = Math.min(canvas.width / image.width, canvas.height / image.height);
|
|
29422
|
+
const drawWidth = image.width * scale;
|
|
29423
|
+
const drawHeight = image.height * scale;
|
|
29424
|
+
ctx.drawImage(image, 0, (canvas.height - drawHeight) / 2, drawWidth, drawHeight);
|
|
29425
|
+
};
|
|
29426
|
+
image.src = value;
|
|
29427
|
+
}
|
|
29428
|
+
_repaintAfterResize() {
|
|
29429
|
+
afterNextRender(() => {
|
|
29430
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29431
|
+
const ctx = canvas ? this._contextOf(canvas) : null;
|
|
29432
|
+
if (!canvas || !ctx || this._empty() || !this._value) return;
|
|
29433
|
+
this._paint(this._value, canvas, ctx);
|
|
29434
|
+
}, { injector: this._injector });
|
|
29435
|
+
}
|
|
29436
|
+
registerOnChange(fn) {
|
|
29437
|
+
this._onChange = fn;
|
|
29438
|
+
}
|
|
29439
|
+
registerOnTouched(fn) {
|
|
29440
|
+
this._onTouched = fn;
|
|
29441
|
+
}
|
|
29442
|
+
setDisabledState(disabled) {
|
|
29443
|
+
this._cvaDisabled.set(disabled);
|
|
29444
|
+
}
|
|
29445
|
+
onPointerDown(event) {
|
|
29446
|
+
if (this.disabled() || event.pointerType === "mouse" && event.button !== 0) return;
|
|
29447
|
+
if (!event.isPrimary) return;
|
|
29448
|
+
if (this._pointerId !== null) {
|
|
29449
|
+
if (event.pointerId !== this._pointerId) return;
|
|
29450
|
+
this._pointerId = null;
|
|
29451
|
+
this._commit();
|
|
29452
|
+
}
|
|
29453
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29454
|
+
const ctx = canvas ? this._contextOf(canvas) : null;
|
|
29455
|
+
if (!canvas || !ctx) return;
|
|
29456
|
+
event.preventDefault();
|
|
29457
|
+
this._applyPen(ctx);
|
|
29458
|
+
this._pointerId = event.pointerId;
|
|
29459
|
+
canvas.setPointerCapture?.(event.pointerId);
|
|
29460
|
+
this._cursorVisible.set(false);
|
|
29461
|
+
const point = this._pointOf(event.clientX, event.clientY, canvas);
|
|
29462
|
+
ctx.beginPath();
|
|
29463
|
+
ctx.moveTo(point.x, point.y);
|
|
29464
|
+
ctx.lineTo(point.x + .01, point.y);
|
|
29465
|
+
ctx.stroke();
|
|
29466
|
+
this._dirty = true;
|
|
29467
|
+
}
|
|
29468
|
+
onPointerMove(event) {
|
|
29469
|
+
if (this._pointerId === null || event.pointerId !== this._pointerId) return;
|
|
29470
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29471
|
+
const ctx = this._ctx;
|
|
29472
|
+
if (!canvas || !ctx) return;
|
|
29473
|
+
event.preventDefault();
|
|
29474
|
+
const point = this._pointOf(event.clientX, event.clientY, canvas);
|
|
29475
|
+
ctx.lineTo(point.x, point.y);
|
|
29476
|
+
ctx.stroke();
|
|
29477
|
+
}
|
|
29478
|
+
onPointerEnd(event) {
|
|
29479
|
+
if (this._pointerId === null || event.pointerId !== this._pointerId) return;
|
|
29480
|
+
this._pointerId = null;
|
|
29481
|
+
this._commit();
|
|
29482
|
+
}
|
|
29483
|
+
onKeyDown(event) {
|
|
29484
|
+
if (this.disabled()) return;
|
|
29485
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29486
|
+
const ctx = canvas ? this._contextOf(canvas) : null;
|
|
29487
|
+
if (!ctx) return;
|
|
29488
|
+
if (event.key === "Escape") {
|
|
29489
|
+
if (this._cursorVisible()) {
|
|
29490
|
+
event.stopPropagation();
|
|
29491
|
+
this._stopKeyboardStroke();
|
|
29492
|
+
this._cursorVisible.set(false);
|
|
29493
|
+
}
|
|
29494
|
+
return;
|
|
29495
|
+
}
|
|
29496
|
+
const isArrow = [
|
|
29497
|
+
"ArrowUp",
|
|
29498
|
+
"ArrowDown",
|
|
29499
|
+
"ArrowLeft",
|
|
29500
|
+
"ArrowRight"
|
|
29501
|
+
].includes(event.key);
|
|
29502
|
+
if (!isArrow && event.key !== " ") return;
|
|
29503
|
+
event.preventDefault();
|
|
29504
|
+
if (!this._cursorVisible()) {
|
|
29505
|
+
this._cursorVisible.set(true);
|
|
29506
|
+
this._cursorX.set(this.width() / 2);
|
|
29507
|
+
this._cursorY.set(this.height() / 2);
|
|
29508
|
+
}
|
|
29509
|
+
if (isArrow) {
|
|
29510
|
+
const step = event.shiftKey ? 10 : 2;
|
|
29511
|
+
if (event.key === "ArrowUp") this._cursorY.set(Math.max(0, this._cursorY() - step));
|
|
29512
|
+
if (event.key === "ArrowDown") this._cursorY.set(Math.min(this.height(), this._cursorY() + step));
|
|
29513
|
+
if (event.key === "ArrowLeft") this._cursorX.set(Math.max(0, this._cursorX() - step));
|
|
29514
|
+
if (event.key === "ArrowRight") this._cursorX.set(Math.min(this.width(), this._cursorX() + step));
|
|
29515
|
+
if (this._keyboardDrawing()) {
|
|
29516
|
+
ctx.lineTo(this._cursorX(), this._cursorY());
|
|
29517
|
+
ctx.stroke();
|
|
29518
|
+
this._dirty = true;
|
|
29519
|
+
}
|
|
29520
|
+
return;
|
|
29521
|
+
}
|
|
29522
|
+
if (!this._keyboardDrawing()) {
|
|
29523
|
+
this._keyboardDrawing.set(true);
|
|
29524
|
+
this._applyPen(ctx);
|
|
29525
|
+
ctx.beginPath();
|
|
29526
|
+
ctx.moveTo(this._cursorX(), this._cursorY());
|
|
29527
|
+
ctx.lineTo(this._cursorX() + .01, this._cursorY());
|
|
29528
|
+
ctx.stroke();
|
|
29529
|
+
this._dirty = true;
|
|
29530
|
+
}
|
|
29531
|
+
}
|
|
29532
|
+
onKeyUp(event) {
|
|
29533
|
+
if (event.key !== " " || this.disabled()) return;
|
|
29534
|
+
event.preventDefault();
|
|
29535
|
+
this._stopKeyboardStroke();
|
|
29536
|
+
}
|
|
29537
|
+
onBlur() {
|
|
29538
|
+
this._stopKeyboardStroke();
|
|
29539
|
+
this._cursorVisible.set(false);
|
|
29540
|
+
this._onTouched();
|
|
29541
|
+
}
|
|
29542
|
+
_stopKeyboardStroke() {
|
|
29543
|
+
if (!this._keyboardDrawing()) return;
|
|
29544
|
+
this._keyboardDrawing.set(false);
|
|
29545
|
+
this._commit();
|
|
29546
|
+
}
|
|
29547
|
+
_commit() {
|
|
29548
|
+
if (!this._dirty) return;
|
|
29549
|
+
this._dirty = false;
|
|
29550
|
+
const wasEmpty = this._empty();
|
|
29551
|
+
this._empty.set(false);
|
|
29552
|
+
this._loading = false;
|
|
29553
|
+
this._value = this._normalize();
|
|
29554
|
+
if (wasEmpty) this._announcement.set("Signature captured");
|
|
29555
|
+
this._onChange(this._value);
|
|
29556
|
+
this.signatureChange.emit(this._value);
|
|
29557
|
+
}
|
|
29558
|
+
_setUpContext(canvas) {
|
|
29559
|
+
this._ctx = canvas.getContext("2d");
|
|
29560
|
+
if (this._ctx) this._applyPen(this._ctx);
|
|
29561
|
+
}
|
|
29562
|
+
_contextOf(canvas) {
|
|
29563
|
+
if (!this._ctx) this._setUpContext(canvas);
|
|
29564
|
+
return this._ctx;
|
|
29565
|
+
}
|
|
29566
|
+
_applyPen(ctx) {
|
|
29567
|
+
ctx.strokeStyle = this.penColor();
|
|
29568
|
+
ctx.lineWidth = this.penWidth();
|
|
29569
|
+
ctx.lineCap = "round";
|
|
29570
|
+
ctx.lineJoin = "round";
|
|
29571
|
+
}
|
|
29572
|
+
_clearBitmap() {
|
|
29573
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29574
|
+
this._ctx?.clearRect(0, 0, canvas?.width ?? this.width(), canvas?.height ?? this.height());
|
|
29575
|
+
}
|
|
29576
|
+
_pointOf(clientX, clientY, canvas) {
|
|
29577
|
+
const rect = canvas.getBoundingClientRect();
|
|
29578
|
+
const scaleX = rect.width ? canvas.width / rect.width : 1;
|
|
29579
|
+
const scaleY = rect.height ? canvas.height / rect.height : 1;
|
|
29580
|
+
return {
|
|
29581
|
+
x: (clientX - rect.left) * scaleX,
|
|
29582
|
+
y: (clientY - rect.top) * scaleY
|
|
29583
|
+
};
|
|
29584
|
+
}
|
|
29585
|
+
_normalize() {
|
|
29586
|
+
const source = this._canvas()?.nativeElement;
|
|
29587
|
+
const sourceCtx = this._ctx;
|
|
29588
|
+
if (!source || !sourceCtx) return null;
|
|
29589
|
+
const { data, width, height } = sourceCtx.getImageData(0, 0, source.width, source.height);
|
|
29590
|
+
let minX = width, minY = height, maxX = -1, maxY = -1;
|
|
29591
|
+
for (let y = 0; y < height; y++) for (let x = 0; x < width; x++) if (data[(y * width + x) * 4 + 3] > 0) {
|
|
29592
|
+
if (x < minX) minX = x;
|
|
29593
|
+
if (x > maxX) maxX = x;
|
|
29594
|
+
if (y < minY) minY = y;
|
|
29595
|
+
if (y > maxY) maxY = y;
|
|
29596
|
+
}
|
|
29597
|
+
if (maxX < 0) return null;
|
|
29598
|
+
const padding = 4;
|
|
29599
|
+
minX = Math.max(0, minX - padding);
|
|
29600
|
+
minY = Math.max(0, minY - padding);
|
|
29601
|
+
maxX = Math.min(width - 1, maxX + padding);
|
|
29602
|
+
maxY = Math.min(height - 1, maxY + padding);
|
|
29603
|
+
const cropWidth = maxX - minX + 1;
|
|
29604
|
+
const cropHeight = maxY - minY + 1;
|
|
29605
|
+
const out = document.createElement("canvas");
|
|
29606
|
+
out.width = this.outputWidth();
|
|
29607
|
+
out.height = this.outputHeight();
|
|
29608
|
+
const scale = Math.min(out.width / cropWidth, out.height / cropHeight);
|
|
29609
|
+
const drawWidth = cropWidth * scale;
|
|
29610
|
+
const drawHeight = cropHeight * scale;
|
|
29611
|
+
out.getContext("2d").drawImage(source, minX, minY, cropWidth, cropHeight, 0, (out.height - drawHeight) / 2, drawWidth, drawHeight);
|
|
29612
|
+
return out.toDataURL("image/png");
|
|
28475
29613
|
}
|
|
28476
29614
|
static {
|
|
28477
29615
|
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
28478
29616
|
minVersion: "12.0.0",
|
|
28479
29617
|
version: "22.2.2",
|
|
28480
29618
|
ngImport: i0,
|
|
28481
|
-
type:
|
|
29619
|
+
type: SignaturePadComponent,
|
|
28482
29620
|
deps: [],
|
|
28483
29621
|
target: i0.ɵɵFactoryTarget.Component
|
|
28484
29622
|
});
|
|
@@ -28487,99 +29625,812 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
28487
29625
|
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
28488
29626
|
minVersion: "17.0.0",
|
|
28489
29627
|
version: "22.2.2",
|
|
28490
|
-
type:
|
|
29628
|
+
type: SignaturePadComponent,
|
|
28491
29629
|
isStandalone: true,
|
|
28492
|
-
selector: "ui-
|
|
29630
|
+
selector: "ui-signature-pad",
|
|
28493
29631
|
inputs: {
|
|
28494
|
-
|
|
28495
|
-
classPropertyName: "
|
|
28496
|
-
publicName: "
|
|
29632
|
+
label: {
|
|
29633
|
+
classPropertyName: "label",
|
|
29634
|
+
publicName: "label",
|
|
28497
29635
|
isSignal: true,
|
|
28498
29636
|
isRequired: false,
|
|
28499
29637
|
transformFunction: null
|
|
28500
29638
|
},
|
|
28501
|
-
|
|
28502
|
-
classPropertyName: "
|
|
28503
|
-
publicName: "
|
|
29639
|
+
ariaLabel: {
|
|
29640
|
+
classPropertyName: "ariaLabel",
|
|
29641
|
+
publicName: "ariaLabel",
|
|
28504
29642
|
isSignal: true,
|
|
28505
29643
|
isRequired: false,
|
|
28506
29644
|
transformFunction: null
|
|
28507
29645
|
},
|
|
28508
|
-
|
|
28509
|
-
classPropertyName: "
|
|
28510
|
-
publicName: "
|
|
29646
|
+
hint: {
|
|
29647
|
+
classPropertyName: "hint",
|
|
29648
|
+
publicName: "hint",
|
|
28511
29649
|
isSignal: true,
|
|
28512
29650
|
isRequired: false,
|
|
28513
29651
|
transformFunction: null
|
|
28514
29652
|
},
|
|
28515
|
-
|
|
28516
|
-
classPropertyName: "
|
|
28517
|
-
publicName: "
|
|
29653
|
+
error: {
|
|
29654
|
+
classPropertyName: "error",
|
|
29655
|
+
publicName: "error",
|
|
28518
29656
|
isSignal: true,
|
|
28519
29657
|
isRequired: false,
|
|
28520
29658
|
transformFunction: null
|
|
28521
29659
|
},
|
|
28522
|
-
|
|
28523
|
-
classPropertyName: "
|
|
28524
|
-
publicName: "
|
|
29660
|
+
width: {
|
|
29661
|
+
classPropertyName: "width",
|
|
29662
|
+
publicName: "width",
|
|
28525
29663
|
isSignal: true,
|
|
28526
29664
|
isRequired: false,
|
|
28527
29665
|
transformFunction: null
|
|
28528
29666
|
},
|
|
28529
|
-
|
|
28530
|
-
classPropertyName: "
|
|
28531
|
-
publicName: "
|
|
29667
|
+
height: {
|
|
29668
|
+
classPropertyName: "height",
|
|
29669
|
+
publicName: "height",
|
|
28532
29670
|
isSignal: true,
|
|
28533
29671
|
isRequired: false,
|
|
28534
29672
|
transformFunction: null
|
|
28535
29673
|
},
|
|
28536
|
-
|
|
28537
|
-
classPropertyName: "
|
|
28538
|
-
publicName: "
|
|
29674
|
+
outputWidth: {
|
|
29675
|
+
classPropertyName: "outputWidth",
|
|
29676
|
+
publicName: "outputWidth",
|
|
28539
29677
|
isSignal: true,
|
|
28540
29678
|
isRequired: false,
|
|
28541
29679
|
transformFunction: null
|
|
28542
29680
|
},
|
|
28543
|
-
|
|
28544
|
-
classPropertyName: "
|
|
28545
|
-
publicName: "
|
|
29681
|
+
outputHeight: {
|
|
29682
|
+
classPropertyName: "outputHeight",
|
|
29683
|
+
publicName: "outputHeight",
|
|
28546
29684
|
isSignal: true,
|
|
28547
29685
|
isRequired: false,
|
|
28548
29686
|
transformFunction: null
|
|
28549
29687
|
},
|
|
28550
|
-
|
|
28551
|
-
classPropertyName: "
|
|
28552
|
-
publicName: "
|
|
29688
|
+
penColor: {
|
|
29689
|
+
classPropertyName: "penColor",
|
|
29690
|
+
publicName: "penColor",
|
|
28553
29691
|
isSignal: true,
|
|
28554
29692
|
isRequired: false,
|
|
28555
29693
|
transformFunction: null
|
|
28556
29694
|
},
|
|
28557
|
-
|
|
28558
|
-
classPropertyName: "
|
|
28559
|
-
publicName: "
|
|
29695
|
+
penWidth: {
|
|
29696
|
+
classPropertyName: "penWidth",
|
|
29697
|
+
publicName: "penWidth",
|
|
28560
29698
|
isSignal: true,
|
|
28561
29699
|
isRequired: false,
|
|
28562
29700
|
transformFunction: null
|
|
28563
29701
|
},
|
|
28564
|
-
|
|
28565
|
-
classPropertyName: "
|
|
28566
|
-
publicName: "
|
|
29702
|
+
showClear: {
|
|
29703
|
+
classPropertyName: "showClear",
|
|
29704
|
+
publicName: "showClear",
|
|
28567
29705
|
isSignal: true,
|
|
28568
29706
|
isRequired: false,
|
|
28569
29707
|
transformFunction: null
|
|
28570
29708
|
},
|
|
28571
|
-
|
|
28572
|
-
classPropertyName: "
|
|
28573
|
-
publicName: "
|
|
29709
|
+
clearLabel: {
|
|
29710
|
+
classPropertyName: "clearLabel",
|
|
29711
|
+
publicName: "clearLabel",
|
|
28574
29712
|
isSignal: true,
|
|
28575
29713
|
isRequired: false,
|
|
28576
29714
|
transformFunction: null
|
|
28577
|
-
}
|
|
28578
|
-
|
|
28579
|
-
|
|
28580
|
-
|
|
28581
|
-
|
|
28582
|
-
|
|
29715
|
+
},
|
|
29716
|
+
_disabledInput: {
|
|
29717
|
+
classPropertyName: "_disabledInput",
|
|
29718
|
+
publicName: "disabled",
|
|
29719
|
+
isSignal: true,
|
|
29720
|
+
isRequired: false,
|
|
29721
|
+
transformFunction: null
|
|
29722
|
+
}
|
|
29723
|
+
},
|
|
29724
|
+
outputs: { signatureChange: "signatureChange" },
|
|
29725
|
+
providers: [{
|
|
29726
|
+
provide: NG_VALUE_ACCESSOR,
|
|
29727
|
+
useExisting: forwardRef(() => SignaturePadComponent),
|
|
29728
|
+
multi: true
|
|
29729
|
+
}],
|
|
29730
|
+
viewQueries: [{
|
|
29731
|
+
propertyName: "_canvas",
|
|
29732
|
+
first: true,
|
|
29733
|
+
predicate: ["canvas"],
|
|
29734
|
+
descendants: true,
|
|
29735
|
+
isSignal: true
|
|
29736
|
+
}],
|
|
29737
|
+
ngImport: i0,
|
|
29738
|
+
template: `
|
|
29739
|
+
<div class="sp-field" [class.sp-disabled]="disabled()" [class.sp-error]="!!error()">
|
|
29740
|
+
@if (label()) {
|
|
29741
|
+
<span class="sp-label" [id]="_labelId">{{ label() }}</span>
|
|
29742
|
+
}
|
|
29743
|
+
<div class="sp-pad">
|
|
29744
|
+
<canvas
|
|
29745
|
+
#canvas
|
|
29746
|
+
class="sp-canvas"
|
|
29747
|
+
role="application"
|
|
29748
|
+
[width]="width()"
|
|
29749
|
+
[height]="height()"
|
|
29750
|
+
[style.aspect-ratio]="width() + ' / ' + height()"
|
|
29751
|
+
[attr.tabindex]="disabled() ? null : 0"
|
|
29752
|
+
[attr.aria-label]="_accessibleName()"
|
|
29753
|
+
[attr.aria-labelledby]="!ariaLabel() && label() ? _labelId : null"
|
|
29754
|
+
[attr.aria-describedby]="_describedBy()"
|
|
29755
|
+
[attr.aria-disabled]="disabled() ? 'true' : null"
|
|
29756
|
+
[attr.aria-invalid]="error() ? 'true' : null"
|
|
29757
|
+
(pointerdown)="onPointerDown($event)"
|
|
29758
|
+
(pointermove)="onPointerMove($event)"
|
|
29759
|
+
(pointerup)="onPointerEnd($event)"
|
|
29760
|
+
(pointercancel)="onPointerEnd($event)"
|
|
29761
|
+
(lostpointercapture)="onPointerEnd($event)"
|
|
29762
|
+
(keydown)="onKeyDown($event)"
|
|
29763
|
+
(keyup)="onKeyUp($event)"
|
|
29764
|
+
(blur)="onBlur()"></canvas>
|
|
29765
|
+
@if (_cursorVisible()) {
|
|
29766
|
+
<span class="sp-cursor" [class.is-drawing]="_keyboardDrawing()" [style.left.%]="_cursorX() / width() * 100" [style.top.%]="_cursorY() / height() * 100"></span>
|
|
29767
|
+
}
|
|
29768
|
+
</div>
|
|
29769
|
+
<span class="sp-sr" [id]="_helpId">{{ _keyboardHelp }}</span>
|
|
29770
|
+
<span class="sp-sr" role="status" aria-live="polite">{{ _announcement() }}</span>
|
|
29771
|
+
@if (error()) {
|
|
29772
|
+
<p class="sp-desc sp-desc-error" [id]="_descId" role="alert">{{ error() }}</p>
|
|
29773
|
+
} @else if (hint()) {
|
|
29774
|
+
<p class="sp-desc" [id]="_descId">{{ hint() }}</p>
|
|
29775
|
+
}
|
|
29776
|
+
@if (showClear()) {
|
|
29777
|
+
<ui-button variant="secondary" size="sm" [disabled]="disabled() || _empty()" (click)="clear()">{{ clearLabel() }}</ui-button>
|
|
29778
|
+
}
|
|
29779
|
+
</div>
|
|
29780
|
+
`,
|
|
29781
|
+
isInline: true,
|
|
29782
|
+
styles: [":host{display:block}.sp-field{display:flex;flex-direction:column;gap:6px}.sp-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sp-pad{position:relative;border:2px solid #d1d5db;border-radius:8px;background:#f9fafb}.sp-error .sp-pad{border-color:#ef4444}.sp-canvas{display:block;width:100%;height:auto;cursor:crosshair;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;border-radius:6px}.sp-canvas:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-disabled .sp-pad{opacity:.5}.sp-disabled .sp-canvas{cursor:not-allowed}.sp-cursor{position:absolute;width:8px;height:8px;border-radius:9999px;pointer-events:none;background:#2563eb;border:2px solid #fff;box-shadow:0 1px 4px #00000059;transform:translate(-50%,-50%)}.sp-cursor.is-drawing{animation:sp-pulse 1s ease-in-out infinite}@keyframes sp-pulse{50%{opacity:.5}}@media(prefers-reduced-motion:reduce){.sp-cursor.is-drawing{animation:none}}.sp-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.sp-desc-error{color:#ef4444}.sp-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n"],
|
|
29783
|
+
dependencies: [{
|
|
29784
|
+
kind: "component",
|
|
29785
|
+
type: ButtonComponent,
|
|
29786
|
+
selector: "ui-button",
|
|
29787
|
+
inputs: [
|
|
29788
|
+
"variant",
|
|
29789
|
+
"routerLink",
|
|
29790
|
+
"queryParams",
|
|
29791
|
+
"fragment",
|
|
29792
|
+
"href",
|
|
29793
|
+
"target",
|
|
29794
|
+
"rel",
|
|
29795
|
+
"color",
|
|
29796
|
+
"active",
|
|
29797
|
+
"size",
|
|
29798
|
+
"type",
|
|
29799
|
+
"disabled",
|
|
29800
|
+
"loading",
|
|
29801
|
+
"fullWidth",
|
|
29802
|
+
"ariaLabel",
|
|
29803
|
+
"ariaExpanded",
|
|
29804
|
+
"ariaPressed",
|
|
29805
|
+
"ariaDescribedBy",
|
|
29806
|
+
"modal-footer-left",
|
|
29807
|
+
"modal-footer-right"
|
|
29808
|
+
]
|
|
29809
|
+
}],
|
|
29810
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
29811
|
+
});
|
|
29812
|
+
}
|
|
29813
|
+
};
|
|
29814
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
29815
|
+
minVersion: "12.0.0",
|
|
29816
|
+
version: "22.2.2",
|
|
29817
|
+
ngImport: i0,
|
|
29818
|
+
type: SignaturePadComponent,
|
|
29819
|
+
decorators: [{
|
|
29820
|
+
type: Component,
|
|
29821
|
+
args: [{
|
|
29822
|
+
selector: "ui-signature-pad",
|
|
29823
|
+
standalone: true,
|
|
29824
|
+
imports: [ButtonComponent],
|
|
29825
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
29826
|
+
providers: [{
|
|
29827
|
+
provide: NG_VALUE_ACCESSOR,
|
|
29828
|
+
useExisting: forwardRef(() => SignaturePadComponent),
|
|
29829
|
+
multi: true
|
|
29830
|
+
}],
|
|
29831
|
+
template: `
|
|
29832
|
+
<div class="sp-field" [class.sp-disabled]="disabled()" [class.sp-error]="!!error()">
|
|
29833
|
+
@if (label()) {
|
|
29834
|
+
<span class="sp-label" [id]="_labelId">{{ label() }}</span>
|
|
29835
|
+
}
|
|
29836
|
+
<div class="sp-pad">
|
|
29837
|
+
<canvas
|
|
29838
|
+
#canvas
|
|
29839
|
+
class="sp-canvas"
|
|
29840
|
+
role="application"
|
|
29841
|
+
[width]="width()"
|
|
29842
|
+
[height]="height()"
|
|
29843
|
+
[style.aspect-ratio]="width() + ' / ' + height()"
|
|
29844
|
+
[attr.tabindex]="disabled() ? null : 0"
|
|
29845
|
+
[attr.aria-label]="_accessibleName()"
|
|
29846
|
+
[attr.aria-labelledby]="!ariaLabel() && label() ? _labelId : null"
|
|
29847
|
+
[attr.aria-describedby]="_describedBy()"
|
|
29848
|
+
[attr.aria-disabled]="disabled() ? 'true' : null"
|
|
29849
|
+
[attr.aria-invalid]="error() ? 'true' : null"
|
|
29850
|
+
(pointerdown)="onPointerDown($event)"
|
|
29851
|
+
(pointermove)="onPointerMove($event)"
|
|
29852
|
+
(pointerup)="onPointerEnd($event)"
|
|
29853
|
+
(pointercancel)="onPointerEnd($event)"
|
|
29854
|
+
(lostpointercapture)="onPointerEnd($event)"
|
|
29855
|
+
(keydown)="onKeyDown($event)"
|
|
29856
|
+
(keyup)="onKeyUp($event)"
|
|
29857
|
+
(blur)="onBlur()"></canvas>
|
|
29858
|
+
@if (_cursorVisible()) {
|
|
29859
|
+
<span class="sp-cursor" [class.is-drawing]="_keyboardDrawing()" [style.left.%]="_cursorX() / width() * 100" [style.top.%]="_cursorY() / height() * 100"></span>
|
|
29860
|
+
}
|
|
29861
|
+
</div>
|
|
29862
|
+
<span class="sp-sr" [id]="_helpId">{{ _keyboardHelp }}</span>
|
|
29863
|
+
<span class="sp-sr" role="status" aria-live="polite">{{ _announcement() }}</span>
|
|
29864
|
+
@if (error()) {
|
|
29865
|
+
<p class="sp-desc sp-desc-error" [id]="_descId" role="alert">{{ error() }}</p>
|
|
29866
|
+
} @else if (hint()) {
|
|
29867
|
+
<p class="sp-desc" [id]="_descId">{{ hint() }}</p>
|
|
29868
|
+
}
|
|
29869
|
+
@if (showClear()) {
|
|
29870
|
+
<ui-button variant="secondary" size="sm" [disabled]="disabled() || _empty()" (click)="clear()">{{ clearLabel() }}</ui-button>
|
|
29871
|
+
}
|
|
29872
|
+
</div>
|
|
29873
|
+
`,
|
|
29874
|
+
styles: [":host{display:block}.sp-field{display:flex;flex-direction:column;gap:6px}.sp-label{font-size:.8125rem;font-weight:600;color:#374151;line-height:1}.sp-pad{position:relative;border:2px solid #d1d5db;border-radius:8px;background:#f9fafb}.sp-error .sp-pad{border-color:#ef4444}.sp-canvas{display:block;width:100%;height:auto;cursor:crosshair;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;border-radius:6px}.sp-canvas:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.sp-disabled .sp-pad{opacity:.5}.sp-disabled .sp-canvas{cursor:not-allowed}.sp-cursor{position:absolute;width:8px;height:8px;border-radius:9999px;pointer-events:none;background:#2563eb;border:2px solid #fff;box-shadow:0 1px 4px #00000059;transform:translate(-50%,-50%)}.sp-cursor.is-drawing{animation:sp-pulse 1s ease-in-out infinite}@keyframes sp-pulse{50%{opacity:.5}}@media(prefers-reduced-motion:reduce){.sp-cursor.is-drawing{animation:none}}.sp-desc{margin:0;font-size:.75rem;line-height:1.4;color:#64748b}.sp-desc-error{color:#ef4444}.sp-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n"]
|
|
29875
|
+
}]
|
|
29876
|
+
}],
|
|
29877
|
+
ctorParameters: () => [],
|
|
29878
|
+
propDecorators: {
|
|
29879
|
+
label: [{
|
|
29880
|
+
type: i0.Input,
|
|
29881
|
+
args: [{
|
|
29882
|
+
isSignal: true,
|
|
29883
|
+
alias: "label",
|
|
29884
|
+
required: false
|
|
29885
|
+
}]
|
|
29886
|
+
}],
|
|
29887
|
+
ariaLabel: [{
|
|
29888
|
+
type: i0.Input,
|
|
29889
|
+
args: [{
|
|
29890
|
+
isSignal: true,
|
|
29891
|
+
alias: "ariaLabel",
|
|
29892
|
+
required: false
|
|
29893
|
+
}]
|
|
29894
|
+
}],
|
|
29895
|
+
hint: [{
|
|
29896
|
+
type: i0.Input,
|
|
29897
|
+
args: [{
|
|
29898
|
+
isSignal: true,
|
|
29899
|
+
alias: "hint",
|
|
29900
|
+
required: false
|
|
29901
|
+
}]
|
|
29902
|
+
}],
|
|
29903
|
+
error: [{
|
|
29904
|
+
type: i0.Input,
|
|
29905
|
+
args: [{
|
|
29906
|
+
isSignal: true,
|
|
29907
|
+
alias: "error",
|
|
29908
|
+
required: false
|
|
29909
|
+
}]
|
|
29910
|
+
}],
|
|
29911
|
+
width: [{
|
|
29912
|
+
type: i0.Input,
|
|
29913
|
+
args: [{
|
|
29914
|
+
isSignal: true,
|
|
29915
|
+
alias: "width",
|
|
29916
|
+
required: false
|
|
29917
|
+
}]
|
|
29918
|
+
}],
|
|
29919
|
+
height: [{
|
|
29920
|
+
type: i0.Input,
|
|
29921
|
+
args: [{
|
|
29922
|
+
isSignal: true,
|
|
29923
|
+
alias: "height",
|
|
29924
|
+
required: false
|
|
29925
|
+
}]
|
|
29926
|
+
}],
|
|
29927
|
+
outputWidth: [{
|
|
29928
|
+
type: i0.Input,
|
|
29929
|
+
args: [{
|
|
29930
|
+
isSignal: true,
|
|
29931
|
+
alias: "outputWidth",
|
|
29932
|
+
required: false
|
|
29933
|
+
}]
|
|
29934
|
+
}],
|
|
29935
|
+
outputHeight: [{
|
|
29936
|
+
type: i0.Input,
|
|
29937
|
+
args: [{
|
|
29938
|
+
isSignal: true,
|
|
29939
|
+
alias: "outputHeight",
|
|
29940
|
+
required: false
|
|
29941
|
+
}]
|
|
29942
|
+
}],
|
|
29943
|
+
penColor: [{
|
|
29944
|
+
type: i0.Input,
|
|
29945
|
+
args: [{
|
|
29946
|
+
isSignal: true,
|
|
29947
|
+
alias: "penColor",
|
|
29948
|
+
required: false
|
|
29949
|
+
}]
|
|
29950
|
+
}],
|
|
29951
|
+
penWidth: [{
|
|
29952
|
+
type: i0.Input,
|
|
29953
|
+
args: [{
|
|
29954
|
+
isSignal: true,
|
|
29955
|
+
alias: "penWidth",
|
|
29956
|
+
required: false
|
|
29957
|
+
}]
|
|
29958
|
+
}],
|
|
29959
|
+
showClear: [{
|
|
29960
|
+
type: i0.Input,
|
|
29961
|
+
args: [{
|
|
29962
|
+
isSignal: true,
|
|
29963
|
+
alias: "showClear",
|
|
29964
|
+
required: false
|
|
29965
|
+
}]
|
|
29966
|
+
}],
|
|
29967
|
+
clearLabel: [{
|
|
29968
|
+
type: i0.Input,
|
|
29969
|
+
args: [{
|
|
29970
|
+
isSignal: true,
|
|
29971
|
+
alias: "clearLabel",
|
|
29972
|
+
required: false
|
|
29973
|
+
}]
|
|
29974
|
+
}],
|
|
29975
|
+
_disabledInput: [{
|
|
29976
|
+
type: i0.Input,
|
|
29977
|
+
args: [{
|
|
29978
|
+
isSignal: true,
|
|
29979
|
+
alias: "disabled",
|
|
29980
|
+
required: false
|
|
29981
|
+
}]
|
|
29982
|
+
}],
|
|
29983
|
+
signatureChange: [{
|
|
29984
|
+
type: i0.Output,
|
|
29985
|
+
args: ["signatureChange"]
|
|
29986
|
+
}],
|
|
29987
|
+
_canvas: [{
|
|
29988
|
+
type: i0.ViewChild,
|
|
29989
|
+
args: ["canvas", { isSignal: true }]
|
|
29990
|
+
}]
|
|
29991
|
+
}
|
|
29992
|
+
});
|
|
29993
|
+
var PdfHotspotComponent = class PdfHotspotComponent {
|
|
29994
|
+
constructor() {
|
|
29995
|
+
this.x = input(0, ...ngDevMode ? [{ debugName: "x" }] : /* istanbul ignore next */ []);
|
|
29996
|
+
this.y = input(0, ...ngDevMode ? [{ debugName: "y" }] : /* istanbul ignore next */ []);
|
|
29997
|
+
this.width = input(0, ...ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []);
|
|
29998
|
+
this.height = input(0, ...ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []);
|
|
29999
|
+
this.state = input("ready", ...ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []);
|
|
30000
|
+
this.tone = input("primary", ...ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []);
|
|
30001
|
+
this.label = input("Sign Here", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
30002
|
+
this.blockedLabel = input("", ...ngDevMode ? [{ debugName: "blockedLabel" }] : /* istanbul ignore next */ []);
|
|
30003
|
+
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
30004
|
+
this.image = input(null, ...ngDevMode ? [{ debugName: "image" }] : /* istanbul ignore next */ []);
|
|
30005
|
+
this.imageAlt = input("Applied signature", ...ngDevMode ? [{ debugName: "imageAlt" }] : /* istanbul ignore next */ []);
|
|
30006
|
+
this.scale = input(1, ...ngDevMode ? [{ debugName: "scale" }] : /* istanbul ignore next */ []);
|
|
30007
|
+
this.activate = output();
|
|
30008
|
+
this._scaleVar = computed(() => {
|
|
30009
|
+
const s = this.scale();
|
|
30010
|
+
return typeof s === "number" && Number.isFinite(s) && s > 0 && s !== 1 ? String(s) : null;
|
|
30011
|
+
}, ...ngDevMode ? [{ debugName: "_scaleVar" }] : /* istanbul ignore next */ []);
|
|
30012
|
+
this.fontSize = computed(() => Math.min(11, Math.max(7, this.height() * .25)), ...ngDevMode ? [{ debugName: "fontSize" }] : /* istanbul ignore next */ []);
|
|
30013
|
+
}
|
|
30014
|
+
static {
|
|
30015
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
30016
|
+
minVersion: "12.0.0",
|
|
30017
|
+
version: "22.2.2",
|
|
30018
|
+
ngImport: i0,
|
|
30019
|
+
type: PdfHotspotComponent,
|
|
30020
|
+
deps: [],
|
|
30021
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
30022
|
+
});
|
|
30023
|
+
}
|
|
30024
|
+
static {
|
|
30025
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
30026
|
+
minVersion: "17.0.0",
|
|
30027
|
+
version: "22.2.2",
|
|
30028
|
+
type: PdfHotspotComponent,
|
|
30029
|
+
isStandalone: true,
|
|
30030
|
+
selector: "ui-pdf-hotspot",
|
|
30031
|
+
inputs: {
|
|
30032
|
+
x: {
|
|
30033
|
+
classPropertyName: "x",
|
|
30034
|
+
publicName: "x",
|
|
30035
|
+
isSignal: true,
|
|
30036
|
+
isRequired: false,
|
|
30037
|
+
transformFunction: null
|
|
30038
|
+
},
|
|
30039
|
+
y: {
|
|
30040
|
+
classPropertyName: "y",
|
|
30041
|
+
publicName: "y",
|
|
30042
|
+
isSignal: true,
|
|
30043
|
+
isRequired: false,
|
|
30044
|
+
transformFunction: null
|
|
30045
|
+
},
|
|
30046
|
+
width: {
|
|
30047
|
+
classPropertyName: "width",
|
|
30048
|
+
publicName: "width",
|
|
30049
|
+
isSignal: true,
|
|
30050
|
+
isRequired: false,
|
|
30051
|
+
transformFunction: null
|
|
30052
|
+
},
|
|
30053
|
+
height: {
|
|
30054
|
+
classPropertyName: "height",
|
|
30055
|
+
publicName: "height",
|
|
30056
|
+
isSignal: true,
|
|
30057
|
+
isRequired: false,
|
|
30058
|
+
transformFunction: null
|
|
30059
|
+
},
|
|
30060
|
+
state: {
|
|
30061
|
+
classPropertyName: "state",
|
|
30062
|
+
publicName: "state",
|
|
30063
|
+
isSignal: true,
|
|
30064
|
+
isRequired: false,
|
|
30065
|
+
transformFunction: null
|
|
30066
|
+
},
|
|
30067
|
+
tone: {
|
|
30068
|
+
classPropertyName: "tone",
|
|
30069
|
+
publicName: "tone",
|
|
30070
|
+
isSignal: true,
|
|
30071
|
+
isRequired: false,
|
|
30072
|
+
transformFunction: null
|
|
30073
|
+
},
|
|
30074
|
+
label: {
|
|
30075
|
+
classPropertyName: "label",
|
|
30076
|
+
publicName: "label",
|
|
30077
|
+
isSignal: true,
|
|
30078
|
+
isRequired: false,
|
|
30079
|
+
transformFunction: null
|
|
30080
|
+
},
|
|
30081
|
+
blockedLabel: {
|
|
30082
|
+
classPropertyName: "blockedLabel",
|
|
30083
|
+
publicName: "blockedLabel",
|
|
30084
|
+
isSignal: true,
|
|
30085
|
+
isRequired: false,
|
|
30086
|
+
transformFunction: null
|
|
30087
|
+
},
|
|
30088
|
+
ariaLabel: {
|
|
30089
|
+
classPropertyName: "ariaLabel",
|
|
30090
|
+
publicName: "ariaLabel",
|
|
30091
|
+
isSignal: true,
|
|
30092
|
+
isRequired: false,
|
|
30093
|
+
transformFunction: null
|
|
30094
|
+
},
|
|
30095
|
+
image: {
|
|
30096
|
+
classPropertyName: "image",
|
|
30097
|
+
publicName: "image",
|
|
30098
|
+
isSignal: true,
|
|
30099
|
+
isRequired: false,
|
|
30100
|
+
transformFunction: null
|
|
30101
|
+
},
|
|
30102
|
+
imageAlt: {
|
|
30103
|
+
classPropertyName: "imageAlt",
|
|
30104
|
+
publicName: "imageAlt",
|
|
30105
|
+
isSignal: true,
|
|
30106
|
+
isRequired: false,
|
|
30107
|
+
transformFunction: null
|
|
30108
|
+
},
|
|
30109
|
+
scale: {
|
|
30110
|
+
classPropertyName: "scale",
|
|
30111
|
+
publicName: "scale",
|
|
30112
|
+
isSignal: true,
|
|
30113
|
+
isRequired: false,
|
|
30114
|
+
transformFunction: null
|
|
30115
|
+
}
|
|
30116
|
+
},
|
|
30117
|
+
outputs: { activate: "activate" },
|
|
30118
|
+
host: { properties: {
|
|
30119
|
+
"style.left.px": "x()",
|
|
30120
|
+
"style.top.px": "y()",
|
|
30121
|
+
"style.width.px": "width()",
|
|
30122
|
+
"style.height.px": "height()",
|
|
30123
|
+
"attr.data-state": "state()",
|
|
30124
|
+
"style.--ph-scale": "_scaleVar()"
|
|
30125
|
+
} },
|
|
30126
|
+
ngImport: i0,
|
|
30127
|
+
template: `
|
|
30128
|
+
@if (state() === 'signed' && image()) {
|
|
30129
|
+
<img class="ph-image" [src]="image()" [alt]="imageAlt()" />
|
|
30130
|
+
} @else {
|
|
30131
|
+
<button
|
|
30132
|
+
type="button"
|
|
30133
|
+
class="ph-button"
|
|
30134
|
+
[class.ph-ready]="state() === 'ready'"
|
|
30135
|
+
[class.ph-warning]="tone() === 'warning'"
|
|
30136
|
+
[disabled]="state() !== 'ready'"
|
|
30137
|
+
[attr.aria-label]="ariaLabel() || null"
|
|
30138
|
+
[style.font-size.px]="fontSize()"
|
|
30139
|
+
(click)="activate.emit()"><span class="ph-text">{{ state() === 'blocked' ? blockedLabel() : label() }}</span></button>
|
|
30140
|
+
}
|
|
30141
|
+
`,
|
|
30142
|
+
isInline: true,
|
|
30143
|
+
styles: [":host{position:absolute;display:block;box-sizing:border-box}.ph-image{display:block;width:100%;height:100%;object-fit:contain;object-position:left}.ph-button{position:relative;box-sizing:border-box;width:100%;height:100%;white-space:nowrap;font:inherit;font-weight:500;line-height:1;border:2px solid #d1d5db;background:#f3f4f6;color:#9ca3af;cursor:not-allowed;box-shadow:0 4px 10px #0000002e;transition:background-color .15s,border-color .15s}.ph-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.ph-button.ph-ready{border-color:#2563eb;background:#dbeafe;color:#1d4ed8;cursor:pointer}.ph-button.ph-ready:hover{background:#bfdbfe}.ph-button.ph-ready.ph-warning{border-color:#f59e0b;background:#fffbeb;color:#b45309}.ph-button.ph-ready.ph-warning:hover{background:#fef3c7}.ph-button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}@media(pointer:coarse){.ph-button:after{content:\"\";position:absolute;left:0;right:0;top:50%;height:100%;min-height:calc(44px / var(--ph-scale, 1));transform:translateY(-50%)}}\n"],
|
|
30144
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
30145
|
+
});
|
|
30146
|
+
}
|
|
30147
|
+
};
|
|
30148
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
30149
|
+
minVersion: "12.0.0",
|
|
30150
|
+
version: "22.2.2",
|
|
30151
|
+
ngImport: i0,
|
|
30152
|
+
type: PdfHotspotComponent,
|
|
30153
|
+
decorators: [{
|
|
30154
|
+
type: Component,
|
|
30155
|
+
args: [{
|
|
30156
|
+
selector: "ui-pdf-hotspot",
|
|
30157
|
+
standalone: true,
|
|
30158
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
30159
|
+
host: {
|
|
30160
|
+
"[style.left.px]": "x()",
|
|
30161
|
+
"[style.top.px]": "y()",
|
|
30162
|
+
"[style.width.px]": "width()",
|
|
30163
|
+
"[style.height.px]": "height()",
|
|
30164
|
+
"[attr.data-state]": "state()",
|
|
30165
|
+
"[style.--ph-scale]": "_scaleVar()"
|
|
30166
|
+
},
|
|
30167
|
+
template: `
|
|
30168
|
+
@if (state() === 'signed' && image()) {
|
|
30169
|
+
<img class="ph-image" [src]="image()" [alt]="imageAlt()" />
|
|
30170
|
+
} @else {
|
|
30171
|
+
<button
|
|
30172
|
+
type="button"
|
|
30173
|
+
class="ph-button"
|
|
30174
|
+
[class.ph-ready]="state() === 'ready'"
|
|
30175
|
+
[class.ph-warning]="tone() === 'warning'"
|
|
30176
|
+
[disabled]="state() !== 'ready'"
|
|
30177
|
+
[attr.aria-label]="ariaLabel() || null"
|
|
30178
|
+
[style.font-size.px]="fontSize()"
|
|
30179
|
+
(click)="activate.emit()"><span class="ph-text">{{ state() === 'blocked' ? blockedLabel() : label() }}</span></button>
|
|
30180
|
+
}
|
|
30181
|
+
`,
|
|
30182
|
+
styles: [":host{position:absolute;display:block;box-sizing:border-box}.ph-image{display:block;width:100%;height:100%;object-fit:contain;object-position:left}.ph-button{position:relative;box-sizing:border-box;width:100%;height:100%;white-space:nowrap;font:inherit;font-weight:500;line-height:1;border:2px solid #d1d5db;background:#f3f4f6;color:#9ca3af;cursor:not-allowed;box-shadow:0 4px 10px #0000002e;transition:background-color .15s,border-color .15s}.ph-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.ph-button.ph-ready{border-color:#2563eb;background:#dbeafe;color:#1d4ed8;cursor:pointer}.ph-button.ph-ready:hover{background:#bfdbfe}.ph-button.ph-ready.ph-warning{border-color:#f59e0b;background:#fffbeb;color:#b45309}.ph-button.ph-ready.ph-warning:hover{background:#fef3c7}.ph-button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}@media(pointer:coarse){.ph-button:after{content:\"\";position:absolute;left:0;right:0;top:50%;height:100%;min-height:calc(44px / var(--ph-scale, 1));transform:translateY(-50%)}}\n"]
|
|
30183
|
+
}]
|
|
30184
|
+
}],
|
|
30185
|
+
propDecorators: {
|
|
30186
|
+
x: [{
|
|
30187
|
+
type: i0.Input,
|
|
30188
|
+
args: [{
|
|
30189
|
+
isSignal: true,
|
|
30190
|
+
alias: "x",
|
|
30191
|
+
required: false
|
|
30192
|
+
}]
|
|
30193
|
+
}],
|
|
30194
|
+
y: [{
|
|
30195
|
+
type: i0.Input,
|
|
30196
|
+
args: [{
|
|
30197
|
+
isSignal: true,
|
|
30198
|
+
alias: "y",
|
|
30199
|
+
required: false
|
|
30200
|
+
}]
|
|
30201
|
+
}],
|
|
30202
|
+
width: [{
|
|
30203
|
+
type: i0.Input,
|
|
30204
|
+
args: [{
|
|
30205
|
+
isSignal: true,
|
|
30206
|
+
alias: "width",
|
|
30207
|
+
required: false
|
|
30208
|
+
}]
|
|
30209
|
+
}],
|
|
30210
|
+
height: [{
|
|
30211
|
+
type: i0.Input,
|
|
30212
|
+
args: [{
|
|
30213
|
+
isSignal: true,
|
|
30214
|
+
alias: "height",
|
|
30215
|
+
required: false
|
|
30216
|
+
}]
|
|
30217
|
+
}],
|
|
30218
|
+
state: [{
|
|
30219
|
+
type: i0.Input,
|
|
30220
|
+
args: [{
|
|
30221
|
+
isSignal: true,
|
|
30222
|
+
alias: "state",
|
|
30223
|
+
required: false
|
|
30224
|
+
}]
|
|
30225
|
+
}],
|
|
30226
|
+
tone: [{
|
|
30227
|
+
type: i0.Input,
|
|
30228
|
+
args: [{
|
|
30229
|
+
isSignal: true,
|
|
30230
|
+
alias: "tone",
|
|
30231
|
+
required: false
|
|
30232
|
+
}]
|
|
30233
|
+
}],
|
|
30234
|
+
label: [{
|
|
30235
|
+
type: i0.Input,
|
|
30236
|
+
args: [{
|
|
30237
|
+
isSignal: true,
|
|
30238
|
+
alias: "label",
|
|
30239
|
+
required: false
|
|
30240
|
+
}]
|
|
30241
|
+
}],
|
|
30242
|
+
blockedLabel: [{
|
|
30243
|
+
type: i0.Input,
|
|
30244
|
+
args: [{
|
|
30245
|
+
isSignal: true,
|
|
30246
|
+
alias: "blockedLabel",
|
|
30247
|
+
required: false
|
|
30248
|
+
}]
|
|
30249
|
+
}],
|
|
30250
|
+
ariaLabel: [{
|
|
30251
|
+
type: i0.Input,
|
|
30252
|
+
args: [{
|
|
30253
|
+
isSignal: true,
|
|
30254
|
+
alias: "ariaLabel",
|
|
30255
|
+
required: false
|
|
30256
|
+
}]
|
|
30257
|
+
}],
|
|
30258
|
+
image: [{
|
|
30259
|
+
type: i0.Input,
|
|
30260
|
+
args: [{
|
|
30261
|
+
isSignal: true,
|
|
30262
|
+
alias: "image",
|
|
30263
|
+
required: false
|
|
30264
|
+
}]
|
|
30265
|
+
}],
|
|
30266
|
+
imageAlt: [{
|
|
30267
|
+
type: i0.Input,
|
|
30268
|
+
args: [{
|
|
30269
|
+
isSignal: true,
|
|
30270
|
+
alias: "imageAlt",
|
|
30271
|
+
required: false
|
|
30272
|
+
}]
|
|
30273
|
+
}],
|
|
30274
|
+
scale: [{
|
|
30275
|
+
type: i0.Input,
|
|
30276
|
+
args: [{
|
|
30277
|
+
isSignal: true,
|
|
30278
|
+
alias: "scale",
|
|
30279
|
+
required: false
|
|
30280
|
+
}]
|
|
30281
|
+
}],
|
|
30282
|
+
activate: [{
|
|
30283
|
+
type: i0.Output,
|
|
30284
|
+
args: ["activate"]
|
|
30285
|
+
}]
|
|
30286
|
+
}
|
|
30287
|
+
});
|
|
30288
|
+
var DetailCardComponent = class DetailCardComponent {
|
|
30289
|
+
constructor() {
|
|
30290
|
+
this.title = input("", ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
|
|
30291
|
+
this.uppercaseTitle = input(true, ...ngDevMode ? [{ debugName: "uppercaseTitle" }] : /* istanbul ignore next */ []);
|
|
30292
|
+
this.headingLevel = input(null, ...ngDevMode ? [{ debugName: "headingLevel" }] : /* istanbul ignore next */ []);
|
|
30293
|
+
this.titleId = input("", ...ngDevMode ? [{ debugName: "titleId" }] : /* istanbul ignore next */ []);
|
|
30294
|
+
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
30295
|
+
this.subtitle = input("", ...ngDevMode ? [{ debugName: "subtitle" }] : /* istanbul ignore next */ []);
|
|
30296
|
+
this.background = input("", ...ngDevMode ? [{ debugName: "background" }] : /* istanbul ignore next */ []);
|
|
30297
|
+
this.textColor = input("", ...ngDevMode ? [{ debugName: "textColor" }] : /* istanbul ignore next */ []);
|
|
30298
|
+
this.showHeader = input(true, ...ngDevMode ? [{ debugName: "showHeader" }] : /* istanbul ignore next */ []);
|
|
30299
|
+
this.collapsible = input(true, ...ngDevMode ? [{ debugName: "collapsible" }] : /* istanbul ignore next */ []);
|
|
30300
|
+
this.expanded = model(true, ...ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []);
|
|
30301
|
+
this.showEdit = input(false, ...ngDevMode ? [{ debugName: "showEdit" }] : /* istanbul ignore next */ []);
|
|
30302
|
+
this.editLabel = input("Edit", ...ngDevMode ? [{ debugName: "editLabel" }] : /* istanbul ignore next */ []);
|
|
30303
|
+
this.editClick = output();
|
|
30304
|
+
}
|
|
30305
|
+
groupLabel() {
|
|
30306
|
+
if (this.showHeader() && this.title()) return this.titleId() ? null : this.title();
|
|
30307
|
+
return this.ariaLabel().trim() || null;
|
|
30308
|
+
}
|
|
30309
|
+
isOpen() {
|
|
30310
|
+
return !(this.showHeader() && this.collapsible()) || this.expanded();
|
|
30311
|
+
}
|
|
30312
|
+
toggle() {
|
|
30313
|
+
this.expanded.set(!this.expanded());
|
|
30314
|
+
}
|
|
30315
|
+
onHeaderClick(event) {
|
|
30316
|
+
if (!this.showHeader() || !this.collapsible()) return;
|
|
30317
|
+
if (event.target?.closest("button, a, input, select, textarea, label, [role=\"button\"], [role=\"link\"], [tabindex]:not([tabindex=\"-1\"])")?.closest(".dc-header")) return;
|
|
30318
|
+
this.toggle();
|
|
30319
|
+
}
|
|
30320
|
+
static {
|
|
30321
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
30322
|
+
minVersion: "12.0.0",
|
|
30323
|
+
version: "22.2.2",
|
|
30324
|
+
ngImport: i0,
|
|
30325
|
+
type: DetailCardComponent,
|
|
30326
|
+
deps: [],
|
|
30327
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
30328
|
+
});
|
|
30329
|
+
}
|
|
30330
|
+
static {
|
|
30331
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
30332
|
+
minVersion: "17.0.0",
|
|
30333
|
+
version: "22.2.2",
|
|
30334
|
+
type: DetailCardComponent,
|
|
30335
|
+
isStandalone: true,
|
|
30336
|
+
selector: "ui-detail-card",
|
|
30337
|
+
inputs: {
|
|
30338
|
+
title: {
|
|
30339
|
+
classPropertyName: "title",
|
|
30340
|
+
publicName: "title",
|
|
30341
|
+
isSignal: true,
|
|
30342
|
+
isRequired: false,
|
|
30343
|
+
transformFunction: null
|
|
30344
|
+
},
|
|
30345
|
+
uppercaseTitle: {
|
|
30346
|
+
classPropertyName: "uppercaseTitle",
|
|
30347
|
+
publicName: "uppercaseTitle",
|
|
30348
|
+
isSignal: true,
|
|
30349
|
+
isRequired: false,
|
|
30350
|
+
transformFunction: null
|
|
30351
|
+
},
|
|
30352
|
+
headingLevel: {
|
|
30353
|
+
classPropertyName: "headingLevel",
|
|
30354
|
+
publicName: "headingLevel",
|
|
30355
|
+
isSignal: true,
|
|
30356
|
+
isRequired: false,
|
|
30357
|
+
transformFunction: null
|
|
30358
|
+
},
|
|
30359
|
+
titleId: {
|
|
30360
|
+
classPropertyName: "titleId",
|
|
30361
|
+
publicName: "titleId",
|
|
30362
|
+
isSignal: true,
|
|
30363
|
+
isRequired: false,
|
|
30364
|
+
transformFunction: null
|
|
30365
|
+
},
|
|
30366
|
+
ariaLabel: {
|
|
30367
|
+
classPropertyName: "ariaLabel",
|
|
30368
|
+
publicName: "ariaLabel",
|
|
30369
|
+
isSignal: true,
|
|
30370
|
+
isRequired: false,
|
|
30371
|
+
transformFunction: null
|
|
30372
|
+
},
|
|
30373
|
+
subtitle: {
|
|
30374
|
+
classPropertyName: "subtitle",
|
|
30375
|
+
publicName: "subtitle",
|
|
30376
|
+
isSignal: true,
|
|
30377
|
+
isRequired: false,
|
|
30378
|
+
transformFunction: null
|
|
30379
|
+
},
|
|
30380
|
+
background: {
|
|
30381
|
+
classPropertyName: "background",
|
|
30382
|
+
publicName: "background",
|
|
30383
|
+
isSignal: true,
|
|
30384
|
+
isRequired: false,
|
|
30385
|
+
transformFunction: null
|
|
30386
|
+
},
|
|
30387
|
+
textColor: {
|
|
30388
|
+
classPropertyName: "textColor",
|
|
30389
|
+
publicName: "textColor",
|
|
30390
|
+
isSignal: true,
|
|
30391
|
+
isRequired: false,
|
|
30392
|
+
transformFunction: null
|
|
30393
|
+
},
|
|
30394
|
+
showHeader: {
|
|
30395
|
+
classPropertyName: "showHeader",
|
|
30396
|
+
publicName: "showHeader",
|
|
30397
|
+
isSignal: true,
|
|
30398
|
+
isRequired: false,
|
|
30399
|
+
transformFunction: null
|
|
30400
|
+
},
|
|
30401
|
+
collapsible: {
|
|
30402
|
+
classPropertyName: "collapsible",
|
|
30403
|
+
publicName: "collapsible",
|
|
30404
|
+
isSignal: true,
|
|
30405
|
+
isRequired: false,
|
|
30406
|
+
transformFunction: null
|
|
30407
|
+
},
|
|
30408
|
+
expanded: {
|
|
30409
|
+
classPropertyName: "expanded",
|
|
30410
|
+
publicName: "expanded",
|
|
30411
|
+
isSignal: true,
|
|
30412
|
+
isRequired: false,
|
|
30413
|
+
transformFunction: null
|
|
30414
|
+
},
|
|
30415
|
+
showEdit: {
|
|
30416
|
+
classPropertyName: "showEdit",
|
|
30417
|
+
publicName: "showEdit",
|
|
30418
|
+
isSignal: true,
|
|
30419
|
+
isRequired: false,
|
|
30420
|
+
transformFunction: null
|
|
30421
|
+
},
|
|
30422
|
+
editLabel: {
|
|
30423
|
+
classPropertyName: "editLabel",
|
|
30424
|
+
publicName: "editLabel",
|
|
30425
|
+
isSignal: true,
|
|
30426
|
+
isRequired: false,
|
|
30427
|
+
transformFunction: null
|
|
30428
|
+
}
|
|
30429
|
+
},
|
|
30430
|
+
outputs: {
|
|
30431
|
+
expanded: "expandedChange",
|
|
30432
|
+
editClick: "editClick"
|
|
30433
|
+
},
|
|
28583
30434
|
host: {
|
|
28584
30435
|
attributes: { "role": "group" },
|
|
28585
30436
|
properties: {
|
|
@@ -28605,7 +30456,7 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
28605
30456
|
}
|
|
28606
30457
|
<ng-content select="[card-header-leading]" />
|
|
28607
30458
|
<div class="dc-header-text">
|
|
28608
|
-
@if (title()) { <span class="dc-title" [attr.id]="titleId() || null" [attr.role]="headingLevel() ? 'heading' : null" [attr.aria-level]="headingLevel() || null">{{ title() }}</span> }
|
|
30459
|
+
@if (title()) { <span class="dc-title" [class.dc-title--as-written]="!uppercaseTitle()" [attr.id]="titleId() || null" [attr.role]="headingLevel() ? 'heading' : null" [attr.aria-level]="headingLevel() || null">{{ title() }}</span> }
|
|
28609
30460
|
@if (subtitle()) { <span class="dc-subtitle">{{ subtitle() }}</span> }
|
|
28610
30461
|
<ng-content select="[card-header]" />
|
|
28611
30462
|
</div>
|
|
@@ -28629,7 +30480,7 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
28629
30480
|
</div>
|
|
28630
30481
|
`,
|
|
28631
30482
|
isInline: true,
|
|
28632
|
-
styles: [":host{display:block;margin-bottom:16px}:host(:last-child){margin-bottom:0}.dc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dc-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:14px 18px}.dc-header.open{border-bottom:1px solid #f1f5f9}.dc-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}@media(hover:hover){.dc-header.collapsible:hover{background:#f8fafc}}.dc-chevron{flex-shrink:0;color:var(--dc-text, #94a3b8)}.dc-chevron svg{transition:transform .2s}.dc-chevron svg.rotated{transform:rotate(-90deg)}.dc-header-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.dc-title{font-size:.8125rem;font-weight:800;letter-spacing:.07em;color:var(--dc-text, #1e293b);line-height:1.3;text-transform:uppercase}.dc-subtitle{font-size:.75rem;color:var(--dc-text, #94a3b8)}.dc-has-text-color .dc-subtitle{opacity:.8}.dc-has-text-color .dc-header.open{border-bottom-color:#94a3b859}.dc-edit{flex-shrink:0;margin-left:auto}.dc-edit ::ng-deep button{font-size:.8rem;font-weight:500;color:#64748b;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;gap:5px}.dc-edit ::ng-deep button:hover{background:#f1f5f9;color:#1e293b}.dc-body-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.dc-body-wrap.collapsed{grid-template-rows:0fr}.dc-body{padding:16px 18px;min-height:0;overflow:hidden}@media(max-width:480px){.dc-header{padding:12px 14px}.dc-body{padding:14px}.dc-edit{margin-left:0}}@media(prefers-reduced-motion:reduce){.dc-body-wrap,.dc-chevron svg{transition:none}}\n"],
|
|
30483
|
+
styles: [":host{display:block;margin-bottom:16px}:host(:last-child){margin-bottom:0}.dc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dc-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:14px 18px}.dc-header.open{border-bottom:1px solid #f1f5f9}.dc-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}@media(hover:hover){.dc-header.collapsible:hover{background:#f8fafc}}.dc-chevron{flex-shrink:0;color:var(--dc-text, #94a3b8)}.dc-chevron svg{transition:transform .2s}.dc-chevron svg.rotated{transform:rotate(-90deg)}.dc-header-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.dc-title{font-size:.8125rem;font-weight:800;letter-spacing:.07em;color:var(--dc-text, #1e293b);line-height:1.3;text-transform:uppercase}.dc-title--as-written{text-transform:none}.dc-subtitle{font-size:.75rem;color:var(--dc-text, #94a3b8)}.dc-has-text-color .dc-subtitle{opacity:.8}.dc-has-text-color .dc-header.open{border-bottom-color:#94a3b859}.dc-edit{flex-shrink:0;margin-left:auto}.dc-edit ::ng-deep button{font-size:.8rem;font-weight:500;color:#64748b;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;gap:5px}.dc-edit ::ng-deep button:hover{background:#f1f5f9;color:#1e293b}.dc-body-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.dc-body-wrap.collapsed{grid-template-rows:0fr}.dc-body{padding:16px 18px;min-height:0;overflow:hidden}@media(max-width:480px){.dc-header{padding:12px 14px}.dc-body{padding:14px}.dc-edit{margin-left:0}}@media(prefers-reduced-motion:reduce){.dc-body-wrap,.dc-chevron svg{transition:none}}\n"],
|
|
28633
30484
|
dependencies: [{
|
|
28634
30485
|
kind: "component",
|
|
28635
30486
|
type: ButtonComponent,
|
|
@@ -28638,6 +30489,7 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
28638
30489
|
"variant",
|
|
28639
30490
|
"routerLink",
|
|
28640
30491
|
"queryParams",
|
|
30492
|
+
"fragment",
|
|
28641
30493
|
"href",
|
|
28642
30494
|
"target",
|
|
28643
30495
|
"rel",
|
|
@@ -28694,7 +30546,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28694
30546
|
}
|
|
28695
30547
|
<ng-content select="[card-header-leading]" />
|
|
28696
30548
|
<div class="dc-header-text">
|
|
28697
|
-
@if (title()) { <span class="dc-title" [attr.id]="titleId() || null" [attr.role]="headingLevel() ? 'heading' : null" [attr.aria-level]="headingLevel() || null">{{ title() }}</span> }
|
|
30549
|
+
@if (title()) { <span class="dc-title" [class.dc-title--as-written]="!uppercaseTitle()" [attr.id]="titleId() || null" [attr.role]="headingLevel() ? 'heading' : null" [attr.aria-level]="headingLevel() || null">{{ title() }}</span> }
|
|
28698
30550
|
@if (subtitle()) { <span class="dc-subtitle">{{ subtitle() }}</span> }
|
|
28699
30551
|
<ng-content select="[card-header]" />
|
|
28700
30552
|
</div>
|
|
@@ -28717,7 +30569,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28717
30569
|
</div>
|
|
28718
30570
|
</div>
|
|
28719
30571
|
`,
|
|
28720
|
-
styles: [":host{display:block;margin-bottom:16px}:host(:last-child){margin-bottom:0}.dc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dc-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:14px 18px}.dc-header.open{border-bottom:1px solid #f1f5f9}.dc-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}@media(hover:hover){.dc-header.collapsible:hover{background:#f8fafc}}.dc-chevron{flex-shrink:0;color:var(--dc-text, #94a3b8)}.dc-chevron svg{transition:transform .2s}.dc-chevron svg.rotated{transform:rotate(-90deg)}.dc-header-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.dc-title{font-size:.8125rem;font-weight:800;letter-spacing:.07em;color:var(--dc-text, #1e293b);line-height:1.3;text-transform:uppercase}.dc-subtitle{font-size:.75rem;color:var(--dc-text, #94a3b8)}.dc-has-text-color .dc-subtitle{opacity:.8}.dc-has-text-color .dc-header.open{border-bottom-color:#94a3b859}.dc-edit{flex-shrink:0;margin-left:auto}.dc-edit ::ng-deep button{font-size:.8rem;font-weight:500;color:#64748b;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;gap:5px}.dc-edit ::ng-deep button:hover{background:#f1f5f9;color:#1e293b}.dc-body-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.dc-body-wrap.collapsed{grid-template-rows:0fr}.dc-body{padding:16px 18px;min-height:0;overflow:hidden}@media(max-width:480px){.dc-header{padding:12px 14px}.dc-body{padding:14px}.dc-edit{margin-left:0}}@media(prefers-reduced-motion:reduce){.dc-body-wrap,.dc-chevron svg{transition:none}}\n"]
|
|
30572
|
+
styles: [":host{display:block;margin-bottom:16px}:host(:last-child){margin-bottom:0}.dc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.dc-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:14px 18px}.dc-header.open{border-bottom:1px solid #f1f5f9}.dc-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}@media(hover:hover){.dc-header.collapsible:hover{background:#f8fafc}}.dc-chevron{flex-shrink:0;color:var(--dc-text, #94a3b8)}.dc-chevron svg{transition:transform .2s}.dc-chevron svg.rotated{transform:rotate(-90deg)}.dc-header-text{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0;word-break:break-word;overflow-wrap:anywhere}.dc-title{font-size:.8125rem;font-weight:800;letter-spacing:.07em;color:var(--dc-text, #1e293b);line-height:1.3;text-transform:uppercase}.dc-title--as-written{text-transform:none}.dc-subtitle{font-size:.75rem;color:var(--dc-text, #94a3b8)}.dc-has-text-color .dc-subtitle{opacity:.8}.dc-has-text-color .dc-header.open{border-bottom-color:#94a3b859}.dc-edit{flex-shrink:0;margin-left:auto}.dc-edit ::ng-deep button{font-size:.8rem;font-weight:500;color:#64748b;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;gap:5px}.dc-edit ::ng-deep button:hover{background:#f1f5f9;color:#1e293b}.dc-body-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}.dc-body-wrap.collapsed{grid-template-rows:0fr}.dc-body{padding:16px 18px;min-height:0;overflow:hidden}@media(max-width:480px){.dc-header{padding:12px 14px}.dc-body{padding:14px}.dc-edit{margin-left:0}}@media(prefers-reduced-motion:reduce){.dc-body-wrap,.dc-chevron svg{transition:none}}\n"]
|
|
28721
30573
|
}]
|
|
28722
30574
|
}],
|
|
28723
30575
|
propDecorators: {
|
|
@@ -28729,6 +30581,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28729
30581
|
required: false
|
|
28730
30582
|
}]
|
|
28731
30583
|
}],
|
|
30584
|
+
uppercaseTitle: [{
|
|
30585
|
+
type: i0.Input,
|
|
30586
|
+
args: [{
|
|
30587
|
+
isSignal: true,
|
|
30588
|
+
alias: "uppercaseTitle",
|
|
30589
|
+
required: false
|
|
30590
|
+
}]
|
|
30591
|
+
}],
|
|
28732
30592
|
headingLevel: [{
|
|
28733
30593
|
type: i0.Input,
|
|
28734
30594
|
args: [{
|
|
@@ -30248,6 +32108,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
30248
32108
|
}]
|
|
30249
32109
|
}
|
|
30250
32110
|
});
|
|
30251
|
-
export { ActionBarComponent, AlertComponent, AppShellComponent, AudioPlayerComponent, AvatarComponent, BADGE_VARIANT_STYLES, BadgeComponent, BarRowComponent, BulkMessagePanelComponent, BusinessHoursComponent, ButtonComponent, CheckboxComponent, ChipComponent, ChipGroupComponent, ColorInputComponent, ColumnFilterComponent, ColumnsComponent, ComboboxComponent, ConfirmOutletComponent, ConfirmService, ContactPickerComponent, DROPDOWN_GROUP, DataTableComponent, DateInputComponent, DateRangePickerComponent, DatetimeInputComponent, DetailCardComponent, DiscountSelectorComponent, DividerComponent, DropdownComponent, EmptyStateComponent, ErrorComponent, ErrorStateComponent, FORGEROUTE_CONFIG, FileInputComponent, FormRowComponent, FormSectionComponent, HintComponent, IconComponent, ImagePreviewComponent, ImageRepositionComponent, ImportExportComponent, KpiCardComponent, LAYOUT_GAP_PX, ListComponent, ListItemComponent, ModalComponent, MoreMenuComponent, MultiSelectComponent, PHONE_NUMBER_AREA_CODE_LENGTH, PHONE_NUMBER_ZIP_LENGTH, PaginationComponent, PanelInfoListComponent, PhoneNumberPickerComponent, PillTabsComponent, ProgressBarComponent, ProgressRingComponent, QrCodeComponent, QuickFilterTabsComponent, RICH_TEXT_OPTIONS, RadioComponent, RadioGroupComponent, RadioMatrixComponent, ReadonlyFieldsetComponent, RichTextEditorComponent, SEMANTIC_BADGE_MAP, SearchInputComponent, SectionHeaderComponent, SelectComponent, SidePanelComponent, SkeletonComponent, StackComponent, StarComponent, StepperComponent, TableToolbarComponent, TextComponent, TextInputComponent, TextareaInputComponent, TimeInputComponent, ToastComponent, ToastService, ToggleBadgeComponent, ToggleComponent, TooltipDirective, US_STATES, UiFieldValidity, acceptLabel, appShellGroupsStorageKey, autoVariant, buildDefaultSchedule, builtInActionIcon, businessTimeOptions, createFieldReveal, decodeFilterValues, digitsOnly, encodeFilterValue, encodeFilterValues, errorContextInterceptor, fileMatchesAccept, formatFileSize, formatIsoDate, formatIsoDateTime, formatTime, getEligibleIds, getEligibleOptions, getErrorMessage, humanReadableMessage, iconPath, isoKey, issueToErrors, maxLengthIssue, normalizeHexColor, parseBizHours, parseIso, parseTime, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours };
|
|
32111
|
+
export { ActionBarComponent, AlertComponent, AppShellComponent, AudioPlayerComponent, AvatarComponent, BADGE_VARIANT_STYLES, BadgeComponent, BarRowComponent, BulkMessagePanelComponent, BusinessHoursComponent, ButtonComponent, CheckboxComponent, CheckboxTrailingDirective, ChipComponent, ChipGroupComponent, ColorInputComponent, ColumnFilterComponent, ColumnsComponent, ComboboxComponent, ConfirmOutletComponent, ConfirmService, ContactPickerComponent, DROPDOWN_GROUP, DataTableComponent, DateInputComponent, DateRangePickerComponent, DatetimeInputComponent, DetailCardComponent, DiscountSelectorComponent, DividerComponent, DropdownComponent, EmptyStateComponent, ErrorComponent, ErrorStateComponent, FORGEROUTE_CONFIG, FileInputComponent, FormColSpanDirective, FormRowComponent, FormSectionComponent, HintComponent, IconComponent, ImagePreviewComponent, ImageRepositionComponent, ImportExportComponent, KpiCardComponent, LAYOUT_GAP_PX, ListComponent, ListItemComponent, ModalComponent, MoreMenuComponent, MultiSelectComponent, PHONE_NUMBER_AREA_CODE_LENGTH, PHONE_NUMBER_ZIP_LENGTH, PaginationComponent, PanelInfoListComponent, PdfHotspotComponent, PhoneNumberPickerComponent, PillTabsComponent, ProgressBarComponent, ProgressRingComponent, QrCodeComponent, QuickFilterTabsComponent, RICH_TEXT_OPTIONS, RadioComponent, RadioGroupComponent, RadioMatrixComponent, RadioOptionContentDirective, ReadonlyFieldsetComponent, RichTextEditorComponent, SEMANTIC_BADGE_MAP, SearchInputComponent, SectionHeaderComponent, SelectComponent, SidePanelComponent, SignaturePadComponent, SkeletonComponent, StackComponent, StarComponent, StepperComponent, TableToolbarComponent, TextComponent, TextInputComponent, TextareaInputComponent, TimeInputComponent, TimelineComponent, ToastComponent, ToastService, ToggleBadgeComponent, ToggleComponent, TooltipDirective, US_STATES, UiFieldValidity, acceptLabel, appShellGroupsStorageKey, autoVariant, buildDefaultSchedule, builtInActionIcon, businessTimeOptions, createFieldReveal, decodeFilterValues, digitsOnly, encodeFilterValue, encodeFilterValues, errorContextInterceptor, fileMatchesAccept, formatFileSize, formatIsoDate, formatIsoDateTime, formatTime, getEligibleIds, getEligibleOptions, getErrorMessage, humanReadableMessage, iconPath, isoKey, issueToErrors, maxLengthIssue, normalizeHexColor, parseBizHours, parseIso, parseTime, pluralize, provideForgerouteToast, reorderItems, requiredIssue, resolveLayoutGap, resolvePreset, serializeBizHours };
|
|
30252
32112
|
|
|
30253
32113
|
//# sourceMappingURL=forgeroute-ui.mjs.map
|