@forgeroute/ui 0.4.4 → 0.4.5
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 +2019 -205
- 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 +597 -23
|
@@ -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,6 +14024,7 @@ 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"
|
|
@@ -13712,6 +14115,13 @@ var RadioComponent = class RadioComponent {
|
|
|
13712
14115
|
isRequired: false,
|
|
13713
14116
|
transformFunction: null
|
|
13714
14117
|
},
|
|
14118
|
+
controls: {
|
|
14119
|
+
classPropertyName: "controls",
|
|
14120
|
+
publicName: "controls",
|
|
14121
|
+
isSignal: true,
|
|
14122
|
+
isRequired: false,
|
|
14123
|
+
transformFunction: null
|
|
14124
|
+
},
|
|
13715
14125
|
_disabledInput: {
|
|
13716
14126
|
classPropertyName: "_disabledInput",
|
|
13717
14127
|
publicName: "disabled",
|
|
@@ -13738,6 +14148,7 @@ var RadioComponent = class RadioComponent {
|
|
|
13738
14148
|
[attr.aria-labelledby]="_labelledBy()"
|
|
13739
14149
|
[attr.aria-invalid]="invalid() ? 'true' : null"
|
|
13740
14150
|
[attr.aria-describedby]="_describedByIds()"
|
|
14151
|
+
[attr.aria-controls]="controls() || null"
|
|
13741
14152
|
(change)="onChange($event)"
|
|
13742
14153
|
/>
|
|
13743
14154
|
<span class="rd-text">
|
|
@@ -13780,6 +14191,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13780
14191
|
[attr.aria-labelledby]="_labelledBy()"
|
|
13781
14192
|
[attr.aria-invalid]="invalid() ? 'true' : null"
|
|
13782
14193
|
[attr.aria-describedby]="_describedByIds()"
|
|
14194
|
+
[attr.aria-controls]="controls() || null"
|
|
13783
14195
|
(change)="onChange($event)"
|
|
13784
14196
|
/>
|
|
13785
14197
|
<span class="rd-text">
|
|
@@ -13857,6 +14269,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13857
14269
|
required: false
|
|
13858
14270
|
}]
|
|
13859
14271
|
}],
|
|
14272
|
+
controls: [{
|
|
14273
|
+
type: i0.Input,
|
|
14274
|
+
args: [{
|
|
14275
|
+
isSignal: true,
|
|
14276
|
+
alias: "controls",
|
|
14277
|
+
required: false
|
|
14278
|
+
}]
|
|
14279
|
+
}],
|
|
13860
14280
|
_disabledInput: [{
|
|
13861
14281
|
type: i0.Input,
|
|
13862
14282
|
args: [{
|
|
@@ -13871,6 +14291,63 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
13871
14291
|
}]
|
|
13872
14292
|
}
|
|
13873
14293
|
});
|
|
14294
|
+
var RadioOptionContentDirective = class RadioOptionContentDirective {
|
|
14295
|
+
constructor() {
|
|
14296
|
+
this.value = input.required({
|
|
14297
|
+
...ngDevMode ? { debugName: "value" } : /* istanbul ignore next */ {},
|
|
14298
|
+
alias: "uiRadioOptionContent"
|
|
14299
|
+
});
|
|
14300
|
+
this.template = inject(TemplateRef);
|
|
14301
|
+
}
|
|
14302
|
+
static {
|
|
14303
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
14304
|
+
minVersion: "12.0.0",
|
|
14305
|
+
version: "22.2.2",
|
|
14306
|
+
ngImport: i0,
|
|
14307
|
+
type: RadioOptionContentDirective,
|
|
14308
|
+
deps: [],
|
|
14309
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
14310
|
+
});
|
|
14311
|
+
}
|
|
14312
|
+
static {
|
|
14313
|
+
this.ɵdir = i0.ɵɵngDeclareDirective({
|
|
14314
|
+
minVersion: "17.1.0",
|
|
14315
|
+
version: "22.2.2",
|
|
14316
|
+
type: RadioOptionContentDirective,
|
|
14317
|
+
isStandalone: true,
|
|
14318
|
+
selector: "ng-template[uiRadioOptionContent]",
|
|
14319
|
+
inputs: { value: {
|
|
14320
|
+
classPropertyName: "value",
|
|
14321
|
+
publicName: "uiRadioOptionContent",
|
|
14322
|
+
isSignal: true,
|
|
14323
|
+
isRequired: true,
|
|
14324
|
+
transformFunction: null
|
|
14325
|
+
} },
|
|
14326
|
+
ngImport: i0
|
|
14327
|
+
});
|
|
14328
|
+
}
|
|
14329
|
+
};
|
|
14330
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
14331
|
+
minVersion: "12.0.0",
|
|
14332
|
+
version: "22.2.2",
|
|
14333
|
+
ngImport: i0,
|
|
14334
|
+
type: RadioOptionContentDirective,
|
|
14335
|
+
decorators: [{
|
|
14336
|
+
type: Directive,
|
|
14337
|
+
args: [{
|
|
14338
|
+
selector: "ng-template[uiRadioOptionContent]",
|
|
14339
|
+
standalone: true
|
|
14340
|
+
}]
|
|
14341
|
+
}],
|
|
14342
|
+
propDecorators: { value: [{
|
|
14343
|
+
type: i0.Input,
|
|
14344
|
+
args: [{
|
|
14345
|
+
isSignal: true,
|
|
14346
|
+
alias: "uiRadioOptionContent",
|
|
14347
|
+
required: true
|
|
14348
|
+
}]
|
|
14349
|
+
}] }
|
|
14350
|
+
});
|
|
13874
14351
|
var RadioGroupComponent = class RadioGroupComponent {
|
|
13875
14352
|
get _name() {
|
|
13876
14353
|
return this.name() || this._generatedName;
|
|
@@ -13884,6 +14361,12 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
13884
14361
|
this.showErrors = input(false, ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
13885
14362
|
this.orientation = input("vertical", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
|
|
13886
14363
|
this.name = input("", ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
14364
|
+
this._optionContent = contentChildren(RadioOptionContentDirective, ...ngDevMode ? [{ debugName: "_optionContent" }] : /* istanbul ignore next */ []);
|
|
14365
|
+
this._nestedContent = computed(() => {
|
|
14366
|
+
const byValue = /* @__PURE__ */ new Map();
|
|
14367
|
+
for (const content of this._optionContent()) byValue.set(content.value(), content.template);
|
|
14368
|
+
return byValue;
|
|
14369
|
+
}, ...ngDevMode ? [{ debugName: "_nestedContent" }] : /* istanbul ignore next */ []);
|
|
13887
14370
|
this._disabledInput = input(false, {
|
|
13888
14371
|
...ngDevMode ? { debugName: "_disabledInput" } : /* istanbul ignore next */ {},
|
|
13889
14372
|
alias: "disabled"
|
|
@@ -13892,6 +14375,7 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
13892
14375
|
this.disabled = computed(() => this._disabledInput() || this._cvaDisabled(), ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
13893
14376
|
this._generatedName = `rg-${Math.random().toString(36).slice(2, 8)}`;
|
|
13894
14377
|
this._descId = `${this._generatedName}-desc`;
|
|
14378
|
+
this._nestedId = `${this._generatedName}-nested`;
|
|
13895
14379
|
this._value = signal("", ...ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []);
|
|
13896
14380
|
this._reveal = createFieldReveal(this.showErrors);
|
|
13897
14381
|
this._issue = computed(() => this._check(this._value()), ...ngDevMode ? [{ debugName: "_issue" }] : /* istanbul ignore next */ []);
|
|
@@ -14047,6 +14531,11 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
14047
14531
|
useExisting: forwardRef(() => RadioGroupComponent)
|
|
14048
14532
|
}
|
|
14049
14533
|
],
|
|
14534
|
+
queries: [{
|
|
14535
|
+
propertyName: "_optionContent",
|
|
14536
|
+
predicate: RadioOptionContentDirective,
|
|
14537
|
+
isSignal: true
|
|
14538
|
+
}],
|
|
14050
14539
|
usesOnChanges: true,
|
|
14051
14540
|
ngImport: i0,
|
|
14052
14541
|
template: `
|
|
@@ -14077,7 +14566,11 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
14077
14566
|
[disabled]="disabled() || !!opt.disabled"
|
|
14078
14567
|
[invalid]="!!_activeError()"
|
|
14079
14568
|
[describedBy]="(_activeError() || hint()) ? _descId : ''"
|
|
14569
|
+
[controls]="(_value() === opt.value && _nestedContent().has(opt.value)) ? _nestedId : ''"
|
|
14080
14570
|
(selected)="onSelect($event)" />
|
|
14571
|
+
@if (_value() === opt.value && _nestedContent().get(opt.value); as nested) {
|
|
14572
|
+
<div class="rg-nested" [id]="_nestedId"><ng-container [ngTemplateOutlet]="nested" /></div>
|
|
14573
|
+
}
|
|
14081
14574
|
}
|
|
14082
14575
|
</div>
|
|
14083
14576
|
@if (_activeError()) {
|
|
@@ -14088,7 +14581,7 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
14088
14581
|
</fieldset>
|
|
14089
14582
|
`,
|
|
14090
14583
|
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"],
|
|
14584
|
+
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
14585
|
dependencies: [{
|
|
14093
14586
|
kind: "component",
|
|
14094
14587
|
type: RadioComponent,
|
|
@@ -14102,9 +14595,19 @@ var RadioGroupComponent = class RadioGroupComponent {
|
|
|
14102
14595
|
"checked",
|
|
14103
14596
|
"invalid",
|
|
14104
14597
|
"describedBy",
|
|
14598
|
+
"controls",
|
|
14105
14599
|
"disabled"
|
|
14106
14600
|
],
|
|
14107
14601
|
outputs: ["selected"]
|
|
14602
|
+
}, {
|
|
14603
|
+
kind: "directive",
|
|
14604
|
+
type: NgTemplateOutlet,
|
|
14605
|
+
selector: "[ngTemplateOutlet]",
|
|
14606
|
+
inputs: [
|
|
14607
|
+
"ngTemplateOutletContext",
|
|
14608
|
+
"ngTemplateOutlet",
|
|
14609
|
+
"ngTemplateOutletInjector"
|
|
14610
|
+
]
|
|
14108
14611
|
}],
|
|
14109
14612
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
14110
14613
|
});
|
|
@@ -14120,7 +14623,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14120
14623
|
args: [{
|
|
14121
14624
|
selector: "ui-radio-group",
|
|
14122
14625
|
standalone: true,
|
|
14123
|
-
imports: [RadioComponent],
|
|
14626
|
+
imports: [RadioComponent, NgTemplateOutlet],
|
|
14124
14627
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14125
14628
|
providers: [
|
|
14126
14629
|
{
|
|
@@ -14166,7 +14669,11 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14166
14669
|
[disabled]="disabled() || !!opt.disabled"
|
|
14167
14670
|
[invalid]="!!_activeError()"
|
|
14168
14671
|
[describedBy]="(_activeError() || hint()) ? _descId : ''"
|
|
14672
|
+
[controls]="(_value() === opt.value && _nestedContent().has(opt.value)) ? _nestedId : ''"
|
|
14169
14673
|
(selected)="onSelect($event)" />
|
|
14674
|
+
@if (_value() === opt.value && _nestedContent().get(opt.value); as nested) {
|
|
14675
|
+
<div class="rg-nested" [id]="_nestedId"><ng-container [ngTemplateOutlet]="nested" /></div>
|
|
14676
|
+
}
|
|
14170
14677
|
}
|
|
14171
14678
|
</div>
|
|
14172
14679
|
@if (_activeError()) {
|
|
@@ -14176,7 +14683,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14176
14683
|
}
|
|
14177
14684
|
</fieldset>
|
|
14178
14685
|
`,
|
|
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"]
|
|
14686
|
+
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
14687
|
}]
|
|
14181
14688
|
}],
|
|
14182
14689
|
ctorParameters: () => [],
|
|
@@ -14245,6 +14752,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14245
14752
|
required: false
|
|
14246
14753
|
}]
|
|
14247
14754
|
}],
|
|
14755
|
+
_optionContent: [{
|
|
14756
|
+
type: i0.ContentChildren,
|
|
14757
|
+
args: [i0.forwardRef(() => RadioOptionContentDirective), { isSignal: true }]
|
|
14758
|
+
}],
|
|
14248
14759
|
_disabledInput: [{
|
|
14249
14760
|
type: i0.Input,
|
|
14250
14761
|
args: [{
|
|
@@ -14340,7 +14851,7 @@ var AlertComponent = class AlertComponent {
|
|
|
14340
14851
|
</div>
|
|
14341
14852
|
`,
|
|
14342
14853
|
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"],
|
|
14854
|
+
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
14855
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
14345
14856
|
});
|
|
14346
14857
|
}
|
|
@@ -14371,7 +14882,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
14371
14882
|
}
|
|
14372
14883
|
</div>
|
|
14373
14884
|
`,
|
|
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"]
|
|
14885
|
+
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
14886
|
}]
|
|
14376
14887
|
}],
|
|
14377
14888
|
propDecorators: {
|
|
@@ -14884,7 +15395,9 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
14884
15395
|
"primaryLabel",
|
|
14885
15396
|
"primaryVariant",
|
|
14886
15397
|
"primaryLoading",
|
|
14887
|
-
"primaryDisabled"
|
|
15398
|
+
"primaryDisabled",
|
|
15399
|
+
"cancelTestId",
|
|
15400
|
+
"primaryTestId"
|
|
14888
15401
|
],
|
|
14889
15402
|
outputs: ["closed", "primaryClick"]
|
|
14890
15403
|
},
|
|
@@ -14896,6 +15409,7 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
14896
15409
|
"label",
|
|
14897
15410
|
"ariaLabel",
|
|
14898
15411
|
"placeholder",
|
|
15412
|
+
"prefix",
|
|
14899
15413
|
"type",
|
|
14900
15414
|
"maxlength",
|
|
14901
15415
|
"required",
|
|
@@ -14910,6 +15424,7 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
14910
15424
|
"maxDecimals",
|
|
14911
15425
|
"step",
|
|
14912
15426
|
"valueType",
|
|
15427
|
+
"formatter",
|
|
14913
15428
|
"showErrors",
|
|
14914
15429
|
"disabled"
|
|
14915
15430
|
],
|
|
@@ -14944,6 +15459,7 @@ var PhoneNumberPickerComponent = class PhoneNumberPickerComponent {
|
|
|
14944
15459
|
"variant",
|
|
14945
15460
|
"routerLink",
|
|
14946
15461
|
"queryParams",
|
|
15462
|
+
"fragment",
|
|
14947
15463
|
"href",
|
|
14948
15464
|
"target",
|
|
14949
15465
|
"rel",
|
|
@@ -16058,7 +16574,7 @@ var ContactPickerComponent = class ContactPickerComponent {
|
|
|
16058
16574
|
{
|
|
16059
16575
|
kind: "component",
|
|
16060
16576
|
type: CheckboxComponent,
|
|
16061
|
-
selector: "ui-checkbox",
|
|
16577
|
+
selector: "ui-checkbox, ui-checkbox-group",
|
|
16062
16578
|
inputs: [
|
|
16063
16579
|
"label",
|
|
16064
16580
|
"ariaLabel",
|
|
@@ -16066,6 +16582,9 @@ var ContactPickerComponent = class ContactPickerComponent {
|
|
|
16066
16582
|
"checked",
|
|
16067
16583
|
"options",
|
|
16068
16584
|
"legend",
|
|
16585
|
+
"orientation",
|
|
16586
|
+
"values",
|
|
16587
|
+
"description",
|
|
16069
16588
|
"indent",
|
|
16070
16589
|
"required",
|
|
16071
16590
|
"requiredMessage",
|
|
@@ -16074,7 +16593,11 @@ var ContactPickerComponent = class ContactPickerComponent {
|
|
|
16074
16593
|
"showErrors",
|
|
16075
16594
|
"disabled"
|
|
16076
16595
|
],
|
|
16077
|
-
outputs: [
|
|
16596
|
+
outputs: [
|
|
16597
|
+
"checkedChange",
|
|
16598
|
+
"valuesChange",
|
|
16599
|
+
"invalidChange"
|
|
16600
|
+
]
|
|
16078
16601
|
}
|
|
16079
16602
|
],
|
|
16080
16603
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
@@ -16996,7 +17519,9 @@ var BulkMessagePanelComponent = class BulkMessagePanelComponent {
|
|
|
16996
17519
|
"primaryLabel",
|
|
16997
17520
|
"primaryVariant",
|
|
16998
17521
|
"primaryLoading",
|
|
16999
|
-
"primaryDisabled"
|
|
17522
|
+
"primaryDisabled",
|
|
17523
|
+
"cancelTestId",
|
|
17524
|
+
"primaryTestId"
|
|
17000
17525
|
],
|
|
17001
17526
|
outputs: ["closed", "primaryClick"]
|
|
17002
17527
|
},
|
|
@@ -17015,6 +17540,7 @@ var BulkMessagePanelComponent = class BulkMessagePanelComponent {
|
|
|
17015
17540
|
"label",
|
|
17016
17541
|
"ariaLabel",
|
|
17017
17542
|
"placeholder",
|
|
17543
|
+
"prefix",
|
|
17018
17544
|
"type",
|
|
17019
17545
|
"maxlength",
|
|
17020
17546
|
"required",
|
|
@@ -17029,6 +17555,7 @@ var BulkMessagePanelComponent = class BulkMessagePanelComponent {
|
|
|
17029
17555
|
"maxDecimals",
|
|
17030
17556
|
"step",
|
|
17031
17557
|
"valueType",
|
|
17558
|
+
"formatter",
|
|
17032
17559
|
"showErrors",
|
|
17033
17560
|
"disabled"
|
|
17034
17561
|
],
|
|
@@ -17544,6 +18071,7 @@ var FileInputComponent = class FileInputComponent {
|
|
|
17544
18071
|
this.error = input("", ...ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []);
|
|
17545
18072
|
this.showField = input(true, ...ngDevMode ? [{ debugName: "showField" }] : /* istanbul ignore next */ []);
|
|
17546
18073
|
this.showErrors = input(false, ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
18074
|
+
this.toastOnReject = input(false, ...ngDevMode ? [{ debugName: "toastOnReject" }] : /* istanbul ignore next */ []);
|
|
17547
18075
|
this.clearable = input(false, ...ngDevMode ? [{ debugName: "clearable" }] : /* istanbul ignore next */ []);
|
|
17548
18076
|
this.removeLabel = input("Remove", ...ngDevMode ? [{ debugName: "removeLabel" }] : /* istanbul ignore next */ []);
|
|
17549
18077
|
this.maxSize = input(null, ...ngDevMode ? [{ debugName: "maxSize" }] : /* istanbul ignore next */ []);
|
|
@@ -17573,6 +18101,7 @@ var FileInputComponent = class FileInputComponent {
|
|
|
17573
18101
|
this._inputId = `fi-${Math.random().toString(36).slice(2, 8)}`;
|
|
17574
18102
|
this.fileEl = viewChild("fileEl", ...ngDevMode ? [{ debugName: "fileEl" }] : /* istanbul ignore next */ []);
|
|
17575
18103
|
this._dragging = signal(false, ...ngDevMode ? [{ debugName: "_dragging" }] : /* istanbul ignore next */ []);
|
|
18104
|
+
this._toast = inject(ToastService);
|
|
17576
18105
|
this._rejection = signal("", ...ngDevMode ? [{ debugName: "_rejection" }] : /* istanbul ignore next */ []);
|
|
17577
18106
|
this._reveal = createFieldReveal(this.showErrors);
|
|
17578
18107
|
this._issue = computed(() => this.disabled() || !this.required() || this._files().length > 0 ? null : requiredIssue(this.label() || "File"), ...ngDevMode ? [{ debugName: "_issue" }] : /* istanbul ignore next */ []);
|
|
@@ -17723,6 +18252,7 @@ var FileInputComponent = class FileInputComponent {
|
|
|
17723
18252
|
}
|
|
17724
18253
|
this._rejection.set(rejected[0]?.message ?? "");
|
|
17725
18254
|
rejected.forEach((r) => this.fileRejected.emit(r));
|
|
18255
|
+
if (this.toastOnReject() && rejected.length > 0) this._toast.error(rejected.map((r) => `"${r.file.name}" was not added. ${r.message}`).join(" "));
|
|
17726
18256
|
if (ok.length === 0) {
|
|
17727
18257
|
if (native) native.value = "";
|
|
17728
18258
|
this._files.set([]);
|
|
@@ -17830,6 +18360,13 @@ var FileInputComponent = class FileInputComponent {
|
|
|
17830
18360
|
isRequired: false,
|
|
17831
18361
|
transformFunction: null
|
|
17832
18362
|
},
|
|
18363
|
+
toastOnReject: {
|
|
18364
|
+
classPropertyName: "toastOnReject",
|
|
18365
|
+
publicName: "toastOnReject",
|
|
18366
|
+
isSignal: true,
|
|
18367
|
+
isRequired: false,
|
|
18368
|
+
transformFunction: null
|
|
18369
|
+
},
|
|
17833
18370
|
clearable: {
|
|
17834
18371
|
classPropertyName: "clearable",
|
|
17835
18372
|
publicName: "clearable",
|
|
@@ -18230,6 +18767,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
18230
18767
|
required: false
|
|
18231
18768
|
}]
|
|
18232
18769
|
}],
|
|
18770
|
+
toastOnReject: [{
|
|
18771
|
+
type: i0.Input,
|
|
18772
|
+
args: [{
|
|
18773
|
+
isSignal: true,
|
|
18774
|
+
alias: "toastOnReject",
|
|
18775
|
+
required: false
|
|
18776
|
+
}]
|
|
18777
|
+
}],
|
|
18233
18778
|
clearable: [{
|
|
18234
18779
|
type: i0.Input,
|
|
18235
18780
|
args: [{
|
|
@@ -20673,7 +21218,7 @@ var MultiSelectComponent = class MultiSelectComponent {
|
|
|
20673
21218
|
}, {
|
|
20674
21219
|
kind: "component",
|
|
20675
21220
|
type: CheckboxComponent,
|
|
20676
|
-
selector: "ui-checkbox",
|
|
21221
|
+
selector: "ui-checkbox, ui-checkbox-group",
|
|
20677
21222
|
inputs: [
|
|
20678
21223
|
"label",
|
|
20679
21224
|
"ariaLabel",
|
|
@@ -20681,6 +21226,9 @@ var MultiSelectComponent = class MultiSelectComponent {
|
|
|
20681
21226
|
"checked",
|
|
20682
21227
|
"options",
|
|
20683
21228
|
"legend",
|
|
21229
|
+
"orientation",
|
|
21230
|
+
"values",
|
|
21231
|
+
"description",
|
|
20684
21232
|
"indent",
|
|
20685
21233
|
"required",
|
|
20686
21234
|
"requiredMessage",
|
|
@@ -20689,7 +21237,11 @@ var MultiSelectComponent = class MultiSelectComponent {
|
|
|
20689
21237
|
"showErrors",
|
|
20690
21238
|
"disabled"
|
|
20691
21239
|
],
|
|
20692
|
-
outputs: [
|
|
21240
|
+
outputs: [
|
|
21241
|
+
"checkedChange",
|
|
21242
|
+
"valuesChange",
|
|
21243
|
+
"invalidChange"
|
|
21244
|
+
]
|
|
20693
21245
|
}],
|
|
20694
21246
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
20695
21247
|
});
|
|
@@ -20992,7 +21544,7 @@ var DiscountSelectorComponent = class DiscountSelectorComponent {
|
|
|
20992
21544
|
dependencies: [{
|
|
20993
21545
|
kind: "component",
|
|
20994
21546
|
type: CheckboxComponent,
|
|
20995
|
-
selector: "ui-checkbox",
|
|
21547
|
+
selector: "ui-checkbox, ui-checkbox-group",
|
|
20996
21548
|
inputs: [
|
|
20997
21549
|
"label",
|
|
20998
21550
|
"ariaLabel",
|
|
@@ -21000,6 +21552,9 @@ var DiscountSelectorComponent = class DiscountSelectorComponent {
|
|
|
21000
21552
|
"checked",
|
|
21001
21553
|
"options",
|
|
21002
21554
|
"legend",
|
|
21555
|
+
"orientation",
|
|
21556
|
+
"values",
|
|
21557
|
+
"description",
|
|
21003
21558
|
"indent",
|
|
21004
21559
|
"required",
|
|
21005
21560
|
"requiredMessage",
|
|
@@ -21008,7 +21563,11 @@ var DiscountSelectorComponent = class DiscountSelectorComponent {
|
|
|
21008
21563
|
"showErrors",
|
|
21009
21564
|
"disabled"
|
|
21010
21565
|
],
|
|
21011
|
-
outputs: [
|
|
21566
|
+
outputs: [
|
|
21567
|
+
"checkedChange",
|
|
21568
|
+
"valuesChange",
|
|
21569
|
+
"invalidChange"
|
|
21570
|
+
]
|
|
21012
21571
|
}],
|
|
21013
21572
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
21014
21573
|
});
|
|
@@ -21636,7 +22195,7 @@ var FormRowComponent = class FormRowComponent {
|
|
|
21636
22195
|
ngImport: i0,
|
|
21637
22196
|
template: `<div class="fr-row" [style.--fr-cols]="cols()"><ng-content /></div>`,
|
|
21638
22197
|
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"],
|
|
22198
|
+
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
22199
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
21641
22200
|
});
|
|
21642
22201
|
}
|
|
@@ -21653,7 +22212,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
21653
22212
|
standalone: true,
|
|
21654
22213
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
21655
22214
|
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"]
|
|
22215
|
+
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
22216
|
}]
|
|
21658
22217
|
}],
|
|
21659
22218
|
propDecorators: { cols: [{
|
|
@@ -21665,6 +22224,65 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
21665
22224
|
}]
|
|
21666
22225
|
}] }
|
|
21667
22226
|
});
|
|
22227
|
+
var FormColSpanDirective = class FormColSpanDirective {
|
|
22228
|
+
constructor() {
|
|
22229
|
+
this.uiColSpan = input("", ...ngDevMode ? [{ debugName: "uiColSpan" }] : /* istanbul ignore next */ []);
|
|
22230
|
+
this._class = computed(() => {
|
|
22231
|
+
const v = String(this.uiColSpan());
|
|
22232
|
+
return v === "2" || v === "3" || v === "all" ? `ui-span-${v}` : "";
|
|
22233
|
+
}, ...ngDevMode ? [{ debugName: "_class" }] : /* istanbul ignore next */ []);
|
|
22234
|
+
}
|
|
22235
|
+
static {
|
|
22236
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
22237
|
+
minVersion: "12.0.0",
|
|
22238
|
+
version: "22.2.2",
|
|
22239
|
+
ngImport: i0,
|
|
22240
|
+
type: FormColSpanDirective,
|
|
22241
|
+
deps: [],
|
|
22242
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
22243
|
+
});
|
|
22244
|
+
}
|
|
22245
|
+
static {
|
|
22246
|
+
this.ɵdir = i0.ɵɵngDeclareDirective({
|
|
22247
|
+
minVersion: "17.1.0",
|
|
22248
|
+
version: "22.2.2",
|
|
22249
|
+
type: FormColSpanDirective,
|
|
22250
|
+
isStandalone: true,
|
|
22251
|
+
selector: "[uiColSpan]",
|
|
22252
|
+
inputs: { uiColSpan: {
|
|
22253
|
+
classPropertyName: "uiColSpan",
|
|
22254
|
+
publicName: "uiColSpan",
|
|
22255
|
+
isSignal: true,
|
|
22256
|
+
isRequired: false,
|
|
22257
|
+
transformFunction: null
|
|
22258
|
+
} },
|
|
22259
|
+
host: { properties: { "class": "_class()" } },
|
|
22260
|
+
ngImport: i0
|
|
22261
|
+
});
|
|
22262
|
+
}
|
|
22263
|
+
};
|
|
22264
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
22265
|
+
minVersion: "12.0.0",
|
|
22266
|
+
version: "22.2.2",
|
|
22267
|
+
ngImport: i0,
|
|
22268
|
+
type: FormColSpanDirective,
|
|
22269
|
+
decorators: [{
|
|
22270
|
+
type: Directive,
|
|
22271
|
+
args: [{
|
|
22272
|
+
selector: "[uiColSpan]",
|
|
22273
|
+
standalone: true,
|
|
22274
|
+
host: { "[class]": "_class()" }
|
|
22275
|
+
}]
|
|
22276
|
+
}],
|
|
22277
|
+
propDecorators: { uiColSpan: [{
|
|
22278
|
+
type: i0.Input,
|
|
22279
|
+
args: [{
|
|
22280
|
+
isSignal: true,
|
|
22281
|
+
alias: "uiColSpan",
|
|
22282
|
+
required: false
|
|
22283
|
+
}]
|
|
22284
|
+
}] }
|
|
22285
|
+
});
|
|
21668
22286
|
var ListItemComponent = class ListItemComponent {
|
|
21669
22287
|
constructor() {
|
|
21670
22288
|
this.leading = input("none", ...ngDevMode ? [{ debugName: "leading" }] : /* istanbul ignore next */ []);
|
|
@@ -22602,6 +23220,7 @@ var ListComponent = class ListComponent {
|
|
|
22602
23220
|
"variant",
|
|
22603
23221
|
"routerLink",
|
|
22604
23222
|
"queryParams",
|
|
23223
|
+
"fragment",
|
|
22605
23224
|
"href",
|
|
22606
23225
|
"target",
|
|
22607
23226
|
"rel",
|
|
@@ -23905,6 +24524,7 @@ var QrCodeComponent = class QrCodeComponent {
|
|
|
23905
24524
|
"variant",
|
|
23906
24525
|
"routerLink",
|
|
23907
24526
|
"queryParams",
|
|
24527
|
+
"fragment",
|
|
23908
24528
|
"href",
|
|
23909
24529
|
"target",
|
|
23910
24530
|
"rel",
|
|
@@ -24030,6 +24650,28 @@ var PanelInfoListComponent = class PanelInfoListComponent {
|
|
|
24030
24650
|
this.showEmptyState = input(false, ...ngDevMode ? [{ debugName: "showEmptyState" }] : /* istanbul ignore next */ []);
|
|
24031
24651
|
this.displaySections = computed(() => this.showEmptyState() ? this.sections() : this.sections().filter((s) => s.items.some((i) => !i.hidden)), ...ngDevMode ? [{ debugName: "displaySections" }] : /* istanbul ignore next */ []);
|
|
24032
24652
|
}
|
|
24653
|
+
hrefOf(item) {
|
|
24654
|
+
let raw = item.href?.trim() ?? "";
|
|
24655
|
+
if (!raw && item.email?.trim()) raw = "mailto:" + item.email.trim();
|
|
24656
|
+
if (!raw && item.phone?.trim()) {
|
|
24657
|
+
const p = item.phone.trim();
|
|
24658
|
+
raw = "tel:" + (p.startsWith("+") ? "+" : "") + p.replace(/\D/g, "");
|
|
24659
|
+
}
|
|
24660
|
+
if (!raw) return null;
|
|
24661
|
+
const scheme = /^([a-z][a-z0-9+.\-]*):/i.exec(raw.replace(/[\u0000-\u0020]/g, ""));
|
|
24662
|
+
return scheme && [
|
|
24663
|
+
"mailto",
|
|
24664
|
+
"tel",
|
|
24665
|
+
"http",
|
|
24666
|
+
"https"
|
|
24667
|
+
].includes(scheme[1].toLowerCase()) ? raw : null;
|
|
24668
|
+
}
|
|
24669
|
+
isWeb(href) {
|
|
24670
|
+
return /^https?:/i.test(href.replace(/[\u0000-\u0020]/g, ""));
|
|
24671
|
+
}
|
|
24672
|
+
textOf(item) {
|
|
24673
|
+
return item.value || item.email || item.phone || item.href || "";
|
|
24674
|
+
}
|
|
24033
24675
|
visibleItems(section) {
|
|
24034
24676
|
return section.items.filter((i) => !i.hidden);
|
|
24035
24677
|
}
|
|
@@ -24088,6 +24730,8 @@ var PanelInfoListComponent = class PanelInfoListComponent {
|
|
|
24088
24730
|
<span class="pil-value pil-value--block">
|
|
24089
24731
|
@if (item.badge) {
|
|
24090
24732
|
<ui-badge [label]="item.badge.label" [variant]="item.badge.variant" />
|
|
24733
|
+
} @else if (hrefOf(item); as h) {
|
|
24734
|
+
<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
24735
|
} @else {
|
|
24092
24736
|
<span [class.pil-muted]="item.muted" [class.pil-danger]="item.danger">{{ item.value || '—' }}</span>
|
|
24093
24737
|
}
|
|
@@ -24108,6 +24752,8 @@ var PanelInfoListComponent = class PanelInfoListComponent {
|
|
|
24108
24752
|
</span>
|
|
24109
24753
|
} @else if (item.badge) {
|
|
24110
24754
|
<ui-badge [label]="item.badge.label" [variant]="item.badge.variant" />
|
|
24755
|
+
} @else if (hrefOf(item); as h) {
|
|
24756
|
+
<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
24757
|
} @else if (item.link && item.value && item.linkIcon) {
|
|
24112
24758
|
<a class="pil-link-icon" [routerLink]="item.link">
|
|
24113
24759
|
{{ item.value }}
|
|
@@ -24133,7 +24779,7 @@ var PanelInfoListComponent = class PanelInfoListComponent {
|
|
|
24133
24779
|
}
|
|
24134
24780
|
`,
|
|
24135
24781
|
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"],
|
|
24782
|
+
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
24783
|
dependencies: [
|
|
24138
24784
|
{
|
|
24139
24785
|
kind: "component",
|
|
@@ -24178,6 +24824,7 @@ var PanelInfoListComponent = class PanelInfoListComponent {
|
|
|
24178
24824
|
"variant",
|
|
24179
24825
|
"routerLink",
|
|
24180
24826
|
"queryParams",
|
|
24827
|
+
"fragment",
|
|
24181
24828
|
"href",
|
|
24182
24829
|
"target",
|
|
24183
24830
|
"rel",
|
|
@@ -24239,6 +24886,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
24239
24886
|
<span class="pil-value pil-value--block">
|
|
24240
24887
|
@if (item.badge) {
|
|
24241
24888
|
<ui-badge [label]="item.badge.label" [variant]="item.badge.variant" />
|
|
24889
|
+
} @else if (hrefOf(item); as h) {
|
|
24890
|
+
<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
24891
|
} @else {
|
|
24243
24892
|
<span [class.pil-muted]="item.muted" [class.pil-danger]="item.danger">{{ item.value || '—' }}</span>
|
|
24244
24893
|
}
|
|
@@ -24259,6 +24908,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
24259
24908
|
</span>
|
|
24260
24909
|
} @else if (item.badge) {
|
|
24261
24910
|
<ui-badge [label]="item.badge.label" [variant]="item.badge.variant" />
|
|
24911
|
+
} @else if (hrefOf(item); as h) {
|
|
24912
|
+
<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
24913
|
} @else if (item.link && item.value && item.linkIcon) {
|
|
24263
24914
|
<a class="pil-link-icon" [routerLink]="item.link">
|
|
24264
24915
|
{{ item.value }}
|
|
@@ -24283,7 +24934,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
24283
24934
|
</div>
|
|
24284
24935
|
}
|
|
24285
24936
|
`,
|
|
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"]
|
|
24937
|
+
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
24938
|
}]
|
|
24288
24939
|
}],
|
|
24289
24940
|
propDecorators: {
|
|
@@ -25502,7 +26153,15 @@ const EXTRA_ICONS = {
|
|
|
25502
26153
|
"chevron-down": "M6 9l6 6 6-6",
|
|
25503
26154
|
"arrow-left": "M19 12H5 M12 19l-7-7 7-7",
|
|
25504
26155
|
"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"
|
|
26156
|
+
"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",
|
|
26157
|
+
"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",
|
|
26158
|
+
"arrow-up": "M12 19V5 M5 12l7-7 7 7",
|
|
26159
|
+
"arrow-down": "M12 5v14 M19 12l-7 7-7-7",
|
|
26160
|
+
"arrow-right": "M5 12h14 M12 5l7 7-7 7",
|
|
26161
|
+
"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",
|
|
26162
|
+
"grip": "M9 5h.01 M15 5h.01 M9 12h.01 M15 12h.01 M9 19h.01 M15 19h.01",
|
|
26163
|
+
"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",
|
|
26164
|
+
"bank": "M3 21h18 M3 10h18 M5 6l7-3 7 3 M4 10v11 M20 10v11 M8 14v3 M12 14v3 M16 14v3"
|
|
25506
26165
|
};
|
|
25507
26166
|
function iconPath(name) {
|
|
25508
26167
|
return Object.prototype.hasOwnProperty.call(EXTRA_ICONS, name) ? EXTRA_ICONS[name] : builtInActionIcon(name);
|
|
@@ -25757,17 +26416,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
25757
26416
|
}]
|
|
25758
26417
|
}
|
|
25759
26418
|
});
|
|
25760
|
-
var
|
|
26419
|
+
var TimelineComponent = class TimelineComponent {
|
|
25761
26420
|
constructor() {
|
|
25762
|
-
this.
|
|
25763
|
-
this.
|
|
26421
|
+
this.items = input([], ...ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []);
|
|
26422
|
+
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
26423
|
+
this.emptyMessage = input("", ...ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []);
|
|
25764
26424
|
}
|
|
25765
26425
|
static {
|
|
25766
26426
|
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
25767
26427
|
minVersion: "12.0.0",
|
|
25768
26428
|
version: "22.2.2",
|
|
25769
26429
|
ngImport: i0,
|
|
25770
|
-
type:
|
|
26430
|
+
type: TimelineComponent,
|
|
25771
26431
|
deps: [],
|
|
25772
26432
|
target: i0.ɵɵFactoryTarget.Component
|
|
25773
26433
|
});
|
|
@@ -25776,20 +26436,27 @@ var ErrorComponent = class ErrorComponent {
|
|
|
25776
26436
|
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
25777
26437
|
minVersion: "17.0.0",
|
|
25778
26438
|
version: "22.2.2",
|
|
25779
|
-
type:
|
|
26439
|
+
type: TimelineComponent,
|
|
25780
26440
|
isStandalone: true,
|
|
25781
|
-
selector: "ui-
|
|
26441
|
+
selector: "ui-timeline",
|
|
25782
26442
|
inputs: {
|
|
25783
|
-
|
|
25784
|
-
classPropertyName: "
|
|
25785
|
-
publicName: "
|
|
26443
|
+
items: {
|
|
26444
|
+
classPropertyName: "items",
|
|
26445
|
+
publicName: "items",
|
|
25786
26446
|
isSignal: true,
|
|
25787
26447
|
isRequired: false,
|
|
25788
26448
|
transformFunction: null
|
|
25789
26449
|
},
|
|
25790
|
-
|
|
25791
|
-
classPropertyName: "
|
|
25792
|
-
publicName: "
|
|
26450
|
+
ariaLabel: {
|
|
26451
|
+
classPropertyName: "ariaLabel",
|
|
26452
|
+
publicName: "ariaLabel",
|
|
26453
|
+
isSignal: true,
|
|
26454
|
+
isRequired: false,
|
|
26455
|
+
transformFunction: null
|
|
26456
|
+
},
|
|
26457
|
+
emptyMessage: {
|
|
26458
|
+
classPropertyName: "emptyMessage",
|
|
26459
|
+
publicName: "emptyMessage",
|
|
25793
26460
|
isSignal: true,
|
|
25794
26461
|
isRequired: false,
|
|
25795
26462
|
transformFunction: null
|
|
@@ -25797,12 +26464,61 @@ var ErrorComponent = class ErrorComponent {
|
|
|
25797
26464
|
},
|
|
25798
26465
|
ngImport: i0,
|
|
25799
26466
|
template: `
|
|
25800
|
-
@if (
|
|
25801
|
-
<
|
|
26467
|
+
@if (items().length) {
|
|
26468
|
+
<ol class="tl" [attr.aria-label]="ariaLabel() || null">
|
|
26469
|
+
@for (item of items(); track item.id ?? $index) {
|
|
26470
|
+
<li class="tl-item" [class]="'tl-item tl-item--' + (item.tone ?? 'default')" [class.tl-item--icon]="!!item.icon">
|
|
26471
|
+
<span class="tl-marker" aria-hidden="true">
|
|
26472
|
+
@if (item.icon) { <ui-icon [name]="item.icon" [interactive]="false" [size]="12" /> }
|
|
26473
|
+
</span>
|
|
26474
|
+
<div class="tl-content">
|
|
26475
|
+
<div class="tl-head">
|
|
26476
|
+
<span class="tl-title">{{ item.title }}</span>
|
|
26477
|
+
@if (item.badge) { <ui-badge [label]="item.badge.label" [variant]="item.badge.variant" /> }
|
|
26478
|
+
</div>
|
|
26479
|
+
@if (item.description) { <p class="tl-description">{{ item.description }}</p> }
|
|
26480
|
+
@if (item.time || item.dateTime) {
|
|
26481
|
+
<time class="tl-time" [attr.datetime]="item.dateTime || null">{{ item.time || item.dateTime }}</time>
|
|
26482
|
+
}
|
|
26483
|
+
</div>
|
|
26484
|
+
</li>
|
|
26485
|
+
}
|
|
26486
|
+
</ol>
|
|
26487
|
+
} @else if (emptyMessage()) {
|
|
26488
|
+
<ui-hint class="tl-empty">{{ emptyMessage() }}</ui-hint>
|
|
25802
26489
|
}
|
|
25803
26490
|
`,
|
|
25804
26491
|
isInline: true,
|
|
25805
|
-
styles: [":host{display:block}.
|
|
26492
|
+
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"],
|
|
26493
|
+
dependencies: [
|
|
26494
|
+
{
|
|
26495
|
+
kind: "component",
|
|
26496
|
+
type: BadgeComponent,
|
|
26497
|
+
selector: "ui-badge",
|
|
26498
|
+
inputs: ["label", "variant"]
|
|
26499
|
+
},
|
|
26500
|
+
{
|
|
26501
|
+
kind: "component",
|
|
26502
|
+
type: HintComponent,
|
|
26503
|
+
selector: "ui-hint"
|
|
26504
|
+
},
|
|
26505
|
+
{
|
|
26506
|
+
kind: "component",
|
|
26507
|
+
type: IconComponent,
|
|
26508
|
+
selector: "ui-icon",
|
|
26509
|
+
inputs: [
|
|
26510
|
+
"name",
|
|
26511
|
+
"tooltip",
|
|
26512
|
+
"ariaLabel",
|
|
26513
|
+
"size",
|
|
26514
|
+
"variant",
|
|
26515
|
+
"disabled",
|
|
26516
|
+
"loading",
|
|
26517
|
+
"interactive"
|
|
26518
|
+
],
|
|
26519
|
+
outputs: ["iconClick"]
|
|
26520
|
+
}
|
|
26521
|
+
],
|
|
25806
26522
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
25807
26523
|
});
|
|
25808
26524
|
}
|
|
@@ -25811,51 +26527,172 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
25811
26527
|
minVersion: "12.0.0",
|
|
25812
26528
|
version: "22.2.2",
|
|
25813
26529
|
ngImport: i0,
|
|
25814
|
-
type:
|
|
26530
|
+
type: TimelineComponent,
|
|
25815
26531
|
decorators: [{
|
|
25816
26532
|
type: Component,
|
|
25817
26533
|
args: [{
|
|
25818
|
-
selector: "ui-
|
|
26534
|
+
selector: "ui-timeline",
|
|
25819
26535
|
standalone: true,
|
|
25820
26536
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
26537
|
+
imports: [
|
|
26538
|
+
BadgeComponent,
|
|
26539
|
+
HintComponent,
|
|
26540
|
+
IconComponent
|
|
26541
|
+
],
|
|
25821
26542
|
template: `
|
|
25822
|
-
@if (
|
|
25823
|
-
<
|
|
26543
|
+
@if (items().length) {
|
|
26544
|
+
<ol class="tl" [attr.aria-label]="ariaLabel() || null">
|
|
26545
|
+
@for (item of items(); track item.id ?? $index) {
|
|
26546
|
+
<li class="tl-item" [class]="'tl-item tl-item--' + (item.tone ?? 'default')" [class.tl-item--icon]="!!item.icon">
|
|
26547
|
+
<span class="tl-marker" aria-hidden="true">
|
|
26548
|
+
@if (item.icon) { <ui-icon [name]="item.icon" [interactive]="false" [size]="12" /> }
|
|
26549
|
+
</span>
|
|
26550
|
+
<div class="tl-content">
|
|
26551
|
+
<div class="tl-head">
|
|
26552
|
+
<span class="tl-title">{{ item.title }}</span>
|
|
26553
|
+
@if (item.badge) { <ui-badge [label]="item.badge.label" [variant]="item.badge.variant" /> }
|
|
26554
|
+
</div>
|
|
26555
|
+
@if (item.description) { <p class="tl-description">{{ item.description }}</p> }
|
|
26556
|
+
@if (item.time || item.dateTime) {
|
|
26557
|
+
<time class="tl-time" [attr.datetime]="item.dateTime || null">{{ item.time || item.dateTime }}</time>
|
|
26558
|
+
}
|
|
26559
|
+
</div>
|
|
26560
|
+
</li>
|
|
26561
|
+
}
|
|
26562
|
+
</ol>
|
|
26563
|
+
} @else if (emptyMessage()) {
|
|
26564
|
+
<ui-hint class="tl-empty">{{ emptyMessage() }}</ui-hint>
|
|
25824
26565
|
}
|
|
25825
26566
|
`,
|
|
25826
|
-
styles: [":host{display:block}.
|
|
26567
|
+
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
26568
|
}]
|
|
25828
26569
|
}],
|
|
25829
26570
|
propDecorators: {
|
|
25830
|
-
|
|
26571
|
+
items: [{
|
|
25831
26572
|
type: i0.Input,
|
|
25832
26573
|
args: [{
|
|
25833
26574
|
isSignal: true,
|
|
25834
|
-
alias: "
|
|
26575
|
+
alias: "items",
|
|
25835
26576
|
required: false
|
|
25836
26577
|
}]
|
|
25837
26578
|
}],
|
|
25838
|
-
|
|
26579
|
+
ariaLabel: [{
|
|
25839
26580
|
type: i0.Input,
|
|
25840
26581
|
args: [{
|
|
25841
26582
|
isSignal: true,
|
|
25842
|
-
alias: "
|
|
26583
|
+
alias: "ariaLabel",
|
|
26584
|
+
required: false
|
|
26585
|
+
}]
|
|
26586
|
+
}],
|
|
26587
|
+
emptyMessage: [{
|
|
26588
|
+
type: i0.Input,
|
|
26589
|
+
args: [{
|
|
26590
|
+
isSignal: true,
|
|
26591
|
+
alias: "emptyMessage",
|
|
25843
26592
|
required: false
|
|
25844
26593
|
}]
|
|
25845
26594
|
}]
|
|
25846
26595
|
}
|
|
25847
26596
|
});
|
|
25848
|
-
var
|
|
26597
|
+
var ErrorComponent = class ErrorComponent {
|
|
25849
26598
|
constructor() {
|
|
25850
|
-
this.
|
|
25851
|
-
this.
|
|
25852
|
-
|
|
25853
|
-
|
|
25854
|
-
this
|
|
25855
|
-
|
|
25856
|
-
|
|
25857
|
-
|
|
25858
|
-
|
|
26599
|
+
this.message = input("", ...ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []);
|
|
26600
|
+
this.errorId = input("", ...ngDevMode ? [{ debugName: "errorId" }] : /* istanbul ignore next */ []);
|
|
26601
|
+
}
|
|
26602
|
+
static {
|
|
26603
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
26604
|
+
minVersion: "12.0.0",
|
|
26605
|
+
version: "22.2.2",
|
|
26606
|
+
ngImport: i0,
|
|
26607
|
+
type: ErrorComponent,
|
|
26608
|
+
deps: [],
|
|
26609
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
26610
|
+
});
|
|
26611
|
+
}
|
|
26612
|
+
static {
|
|
26613
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
26614
|
+
minVersion: "17.0.0",
|
|
26615
|
+
version: "22.2.2",
|
|
26616
|
+
type: ErrorComponent,
|
|
26617
|
+
isStandalone: true,
|
|
26618
|
+
selector: "ui-error",
|
|
26619
|
+
inputs: {
|
|
26620
|
+
message: {
|
|
26621
|
+
classPropertyName: "message",
|
|
26622
|
+
publicName: "message",
|
|
26623
|
+
isSignal: true,
|
|
26624
|
+
isRequired: false,
|
|
26625
|
+
transformFunction: null
|
|
26626
|
+
},
|
|
26627
|
+
errorId: {
|
|
26628
|
+
classPropertyName: "errorId",
|
|
26629
|
+
publicName: "errorId",
|
|
26630
|
+
isSignal: true,
|
|
26631
|
+
isRequired: false,
|
|
26632
|
+
transformFunction: null
|
|
26633
|
+
}
|
|
26634
|
+
},
|
|
26635
|
+
ngImport: i0,
|
|
26636
|
+
template: `
|
|
26637
|
+
@if (message()) {
|
|
26638
|
+
<p class="ui-error" role="alert" [attr.id]="errorId() || null">{{ message() }}</p>
|
|
26639
|
+
}
|
|
26640
|
+
`,
|
|
26641
|
+
isInline: true,
|
|
26642
|
+
styles: [":host{display:block}.ui-error{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#ef4444}\n"],
|
|
26643
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
26644
|
+
});
|
|
26645
|
+
}
|
|
26646
|
+
};
|
|
26647
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
26648
|
+
minVersion: "12.0.0",
|
|
26649
|
+
version: "22.2.2",
|
|
26650
|
+
ngImport: i0,
|
|
26651
|
+
type: ErrorComponent,
|
|
26652
|
+
decorators: [{
|
|
26653
|
+
type: Component,
|
|
26654
|
+
args: [{
|
|
26655
|
+
selector: "ui-error",
|
|
26656
|
+
standalone: true,
|
|
26657
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
26658
|
+
template: `
|
|
26659
|
+
@if (message()) {
|
|
26660
|
+
<p class="ui-error" role="alert" [attr.id]="errorId() || null">{{ message() }}</p>
|
|
26661
|
+
}
|
|
26662
|
+
`,
|
|
26663
|
+
styles: [":host{display:block}.ui-error{margin:6px 0 0;font-size:.75rem;line-height:1.4;color:#ef4444}\n"]
|
|
26664
|
+
}]
|
|
26665
|
+
}],
|
|
26666
|
+
propDecorators: {
|
|
26667
|
+
message: [{
|
|
26668
|
+
type: i0.Input,
|
|
26669
|
+
args: [{
|
|
26670
|
+
isSignal: true,
|
|
26671
|
+
alias: "message",
|
|
26672
|
+
required: false
|
|
26673
|
+
}]
|
|
26674
|
+
}],
|
|
26675
|
+
errorId: [{
|
|
26676
|
+
type: i0.Input,
|
|
26677
|
+
args: [{
|
|
26678
|
+
isSignal: true,
|
|
26679
|
+
alias: "errorId",
|
|
26680
|
+
required: false
|
|
26681
|
+
}]
|
|
26682
|
+
}]
|
|
26683
|
+
}
|
|
26684
|
+
});
|
|
26685
|
+
var KpiCardComponent = class KpiCardComponent {
|
|
26686
|
+
constructor() {
|
|
26687
|
+
this.sanitizer = inject(DomSanitizer);
|
|
26688
|
+
this.host = inject(ElementRef);
|
|
26689
|
+
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
26690
|
+
this.value = input("", ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
26691
|
+
this.subtitle = input("", ...ngDevMode ? [{ debugName: "subtitle" }] : /* istanbul ignore next */ []);
|
|
26692
|
+
this.icon = input("", ...ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []);
|
|
26693
|
+
this.color = input("slate", ...ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []);
|
|
26694
|
+
this.highlight = input(false, ...ngDevMode ? [{ debugName: "highlight" }] : /* istanbul ignore next */ []);
|
|
26695
|
+
this.clickable = input(false, ...ngDevMode ? [{ debugName: "clickable" }] : /* istanbul ignore next */ []);
|
|
25859
26696
|
this.valueColor = input("default", ...ngDevMode ? [{ debugName: "valueColor" }] : /* istanbul ignore next */ []);
|
|
25860
26697
|
this.background = input("", ...ngDevMode ? [{ debugName: "background" }] : /* istanbul ignore next */ []);
|
|
25861
26698
|
this.progress = input(null, ...ngDevMode ? [{ debugName: "progress" }] : /* istanbul ignore next */ []);
|
|
@@ -26447,6 +27284,7 @@ var DateRangePickerComponent = class DateRangePickerComponent {
|
|
|
26447
27284
|
"variant",
|
|
26448
27285
|
"routerLink",
|
|
26449
27286
|
"queryParams",
|
|
27287
|
+
"fragment",
|
|
26450
27288
|
"href",
|
|
26451
27289
|
"target",
|
|
26452
27290
|
"rel",
|
|
@@ -28260,6 +29098,7 @@ var RadioMatrixComponent = class RadioMatrixComponent {
|
|
|
28260
29098
|
"checked",
|
|
28261
29099
|
"invalid",
|
|
28262
29100
|
"describedBy",
|
|
29101
|
+
"controls",
|
|
28263
29102
|
"disabled"
|
|
28264
29103
|
],
|
|
28265
29104
|
outputs: ["selected"]
|
|
@@ -28442,43 +29281,318 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28442
29281
|
}]
|
|
28443
29282
|
}
|
|
28444
29283
|
});
|
|
28445
|
-
|
|
29284
|
+
let nextPadId = 0;
|
|
29285
|
+
var SignaturePadComponent = class SignaturePadComponent {
|
|
28446
29286
|
constructor() {
|
|
28447
|
-
this.
|
|
28448
|
-
this.headingLevel = input(null, ...ngDevMode ? [{ debugName: "headingLevel" }] : /* istanbul ignore next */ []);
|
|
28449
|
-
this.titleId = input("", ...ngDevMode ? [{ debugName: "titleId" }] : /* istanbul ignore next */ []);
|
|
29287
|
+
this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
28450
29288
|
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.
|
|
29289
|
+
this.hint = input("", ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
|
|
29290
|
+
this.error = input("", ...ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []);
|
|
29291
|
+
this.width = input(600, ...ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []);
|
|
29292
|
+
this.height = input(120, ...ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []);
|
|
29293
|
+
this.outputWidth = input(600, ...ngDevMode ? [{ debugName: "outputWidth" }] : /* istanbul ignore next */ []);
|
|
29294
|
+
this.outputHeight = input(60, ...ngDevMode ? [{ debugName: "outputHeight" }] : /* istanbul ignore next */ []);
|
|
29295
|
+
this.penColor = input("#000000", ...ngDevMode ? [{ debugName: "penColor" }] : /* istanbul ignore next */ []);
|
|
29296
|
+
this.penWidth = input(3, ...ngDevMode ? [{ debugName: "penWidth" }] : /* istanbul ignore next */ []);
|
|
29297
|
+
this.showClear = input(true, ...ngDevMode ? [{ debugName: "showClear" }] : /* istanbul ignore next */ []);
|
|
29298
|
+
this.clearLabel = input("Clear", ...ngDevMode ? [{ debugName: "clearLabel" }] : /* istanbul ignore next */ []);
|
|
29299
|
+
this._disabledInput = input(false, {
|
|
29300
|
+
...ngDevMode ? { debugName: "_disabledInput" } : /* istanbul ignore next */ {},
|
|
29301
|
+
alias: "disabled"
|
|
29302
|
+
});
|
|
29303
|
+
this.signatureChange = output();
|
|
29304
|
+
this._canvas = viewChild("canvas", ...ngDevMode ? [{ debugName: "_canvas" }] : /* istanbul ignore next */ []);
|
|
29305
|
+
this._cvaDisabled = signal(false, ...ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []);
|
|
29306
|
+
this.disabled = computed(() => this._disabledInput() || this._cvaDisabled(), ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
29307
|
+
this._empty = signal(true, ...ngDevMode ? [{ debugName: "_empty" }] : /* istanbul ignore next */ []);
|
|
29308
|
+
this._cursorVisible = signal(false, ...ngDevMode ? [{ debugName: "_cursorVisible" }] : /* istanbul ignore next */ []);
|
|
29309
|
+
this._cursorX = signal(0, ...ngDevMode ? [{ debugName: "_cursorX" }] : /* istanbul ignore next */ []);
|
|
29310
|
+
this._cursorY = signal(0, ...ngDevMode ? [{ debugName: "_cursorY" }] : /* istanbul ignore next */ []);
|
|
29311
|
+
this._keyboardDrawing = signal(false, ...ngDevMode ? [{ debugName: "_keyboardDrawing" }] : /* istanbul ignore next */ []);
|
|
29312
|
+
this._announcement = signal("", ...ngDevMode ? [{ debugName: "_announcement" }] : /* istanbul ignore next */ []);
|
|
29313
|
+
this._keyboardHelp = "Use the arrow keys to move the cursor, hold Space to draw, press Escape to hide the cursor.";
|
|
29314
|
+
this._injector = inject(Injector);
|
|
29315
|
+
this._id = ++nextPadId;
|
|
29316
|
+
this._labelId = `sp-label-${this._id}`;
|
|
29317
|
+
this._descId = `sp-desc-${this._id}`;
|
|
29318
|
+
this._helpId = `sp-help-${this._id}`;
|
|
29319
|
+
this._accessibleName = computed(() => this.ariaLabel() || (this.label() ? null : "Signature pad"), ...ngDevMode ? [{ debugName: "_accessibleName" }] : /* istanbul ignore next */ []);
|
|
29320
|
+
this._describedBy = computed(() => (this.error() || this.hint() ? this._descId + " " : "") + this._helpId, ...ngDevMode ? [{ debugName: "_describedBy" }] : /* istanbul ignore next */ []);
|
|
29321
|
+
this._ctx = null;
|
|
29322
|
+
this._pointerId = null;
|
|
29323
|
+
this._dirty = false;
|
|
29324
|
+
this._pendingImage = false;
|
|
29325
|
+
this._value = null;
|
|
29326
|
+
this._loading = false;
|
|
29327
|
+
this._sizeKey = null;
|
|
29328
|
+
this._onChange = () => {};
|
|
29329
|
+
this._onTouched = () => {};
|
|
29330
|
+
effect(() => {
|
|
29331
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29332
|
+
const sizeKey = `${this.width()}x${this.height()}`;
|
|
29333
|
+
this.penColor();
|
|
29334
|
+
this.penWidth();
|
|
29335
|
+
if (canvas) untracked(() => {
|
|
29336
|
+
this._setUpContext(canvas);
|
|
29337
|
+
if (this._sizeKey !== null && this._sizeKey !== sizeKey) this._repaintAfterResize();
|
|
29338
|
+
this._sizeKey = sizeKey;
|
|
29339
|
+
if (this._pendingImage && this._value && this._ctx) {
|
|
29340
|
+
this._pendingImage = false;
|
|
29341
|
+
this._paint(this._value, canvas, this._ctx);
|
|
29342
|
+
}
|
|
29343
|
+
});
|
|
29344
|
+
});
|
|
28460
29345
|
}
|
|
28461
|
-
|
|
28462
|
-
|
|
28463
|
-
return this.ariaLabel().trim() || null;
|
|
29346
|
+
isEmpty() {
|
|
29347
|
+
return this._empty();
|
|
28464
29348
|
}
|
|
28465
|
-
|
|
28466
|
-
|
|
29349
|
+
toDataUrl() {
|
|
29350
|
+
if (this._empty()) return null;
|
|
29351
|
+
return this._loading || this._pendingImage ? this._value : this._normalize();
|
|
28467
29352
|
}
|
|
28468
|
-
|
|
28469
|
-
this.
|
|
29353
|
+
clear() {
|
|
29354
|
+
this._clearBitmap();
|
|
29355
|
+
this._value = null;
|
|
29356
|
+
this._pendingImage = false;
|
|
29357
|
+
this._loading = false;
|
|
29358
|
+
const wasEmpty = this._empty();
|
|
29359
|
+
this._empty.set(true);
|
|
29360
|
+
this._dirty = false;
|
|
29361
|
+
this._keyboardDrawing.set(false);
|
|
29362
|
+
this._cursorVisible.set(false);
|
|
29363
|
+
if (!wasEmpty) this._announcement.set("Signature cleared");
|
|
29364
|
+
this._onChange(null);
|
|
29365
|
+
this.signatureChange.emit(null);
|
|
29366
|
+
}
|
|
29367
|
+
writeValue(value) {
|
|
29368
|
+
this._value = value || null;
|
|
29369
|
+
this._pendingImage = false;
|
|
29370
|
+
this._loading = false;
|
|
29371
|
+
this._clearBitmap();
|
|
29372
|
+
this._announcement.set("");
|
|
29373
|
+
this._dirty = false;
|
|
29374
|
+
if (!value) {
|
|
29375
|
+
this._empty.set(true);
|
|
29376
|
+
return;
|
|
29377
|
+
}
|
|
29378
|
+
this._empty.set(false);
|
|
29379
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29380
|
+
const ctx = canvas ? this._contextOf(canvas) : null;
|
|
29381
|
+
if (!canvas || !ctx) {
|
|
29382
|
+
this._pendingImage = true;
|
|
29383
|
+
return;
|
|
29384
|
+
}
|
|
29385
|
+
this._paint(value, canvas, ctx);
|
|
28470
29386
|
}
|
|
28471
|
-
|
|
28472
|
-
|
|
28473
|
-
|
|
28474
|
-
|
|
29387
|
+
_paint(value, canvas, ctx) {
|
|
29388
|
+
const image = new Image();
|
|
29389
|
+
this._loading = true;
|
|
29390
|
+
image.onerror = () => {
|
|
29391
|
+
if (this._value === value) this._loading = false;
|
|
29392
|
+
};
|
|
29393
|
+
image.onload = () => {
|
|
29394
|
+
if (this._value !== value) return;
|
|
29395
|
+
this._loading = false;
|
|
29396
|
+
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
29397
|
+
const scale = Math.min(canvas.width / image.width, canvas.height / image.height);
|
|
29398
|
+
const drawWidth = image.width * scale;
|
|
29399
|
+
const drawHeight = image.height * scale;
|
|
29400
|
+
ctx.drawImage(image, 0, (canvas.height - drawHeight) / 2, drawWidth, drawHeight);
|
|
29401
|
+
};
|
|
29402
|
+
image.src = value;
|
|
29403
|
+
}
|
|
29404
|
+
_repaintAfterResize() {
|
|
29405
|
+
afterNextRender(() => {
|
|
29406
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29407
|
+
const ctx = canvas ? this._contextOf(canvas) : null;
|
|
29408
|
+
if (!canvas || !ctx || this._empty() || !this._value) return;
|
|
29409
|
+
this._paint(this._value, canvas, ctx);
|
|
29410
|
+
}, { injector: this._injector });
|
|
29411
|
+
}
|
|
29412
|
+
registerOnChange(fn) {
|
|
29413
|
+
this._onChange = fn;
|
|
29414
|
+
}
|
|
29415
|
+
registerOnTouched(fn) {
|
|
29416
|
+
this._onTouched = fn;
|
|
29417
|
+
}
|
|
29418
|
+
setDisabledState(disabled) {
|
|
29419
|
+
this._cvaDisabled.set(disabled);
|
|
29420
|
+
}
|
|
29421
|
+
onPointerDown(event) {
|
|
29422
|
+
if (this.disabled() || event.pointerType === "mouse" && event.button !== 0) return;
|
|
29423
|
+
if (!event.isPrimary) return;
|
|
29424
|
+
if (this._pointerId !== null) {
|
|
29425
|
+
if (event.pointerId !== this._pointerId) return;
|
|
29426
|
+
this._pointerId = null;
|
|
29427
|
+
this._commit();
|
|
29428
|
+
}
|
|
29429
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29430
|
+
const ctx = canvas ? this._contextOf(canvas) : null;
|
|
29431
|
+
if (!canvas || !ctx) return;
|
|
29432
|
+
event.preventDefault();
|
|
29433
|
+
this._applyPen(ctx);
|
|
29434
|
+
this._pointerId = event.pointerId;
|
|
29435
|
+
canvas.setPointerCapture?.(event.pointerId);
|
|
29436
|
+
this._cursorVisible.set(false);
|
|
29437
|
+
const point = this._pointOf(event.clientX, event.clientY, canvas);
|
|
29438
|
+
ctx.beginPath();
|
|
29439
|
+
ctx.moveTo(point.x, point.y);
|
|
29440
|
+
ctx.lineTo(point.x + .01, point.y);
|
|
29441
|
+
ctx.stroke();
|
|
29442
|
+
this._dirty = true;
|
|
29443
|
+
}
|
|
29444
|
+
onPointerMove(event) {
|
|
29445
|
+
if (this._pointerId === null || event.pointerId !== this._pointerId) return;
|
|
29446
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29447
|
+
const ctx = this._ctx;
|
|
29448
|
+
if (!canvas || !ctx) return;
|
|
29449
|
+
event.preventDefault();
|
|
29450
|
+
const point = this._pointOf(event.clientX, event.clientY, canvas);
|
|
29451
|
+
ctx.lineTo(point.x, point.y);
|
|
29452
|
+
ctx.stroke();
|
|
29453
|
+
}
|
|
29454
|
+
onPointerEnd(event) {
|
|
29455
|
+
if (this._pointerId === null || event.pointerId !== this._pointerId) return;
|
|
29456
|
+
this._pointerId = null;
|
|
29457
|
+
this._commit();
|
|
29458
|
+
}
|
|
29459
|
+
onKeyDown(event) {
|
|
29460
|
+
if (this.disabled()) return;
|
|
29461
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29462
|
+
const ctx = canvas ? this._contextOf(canvas) : null;
|
|
29463
|
+
if (!ctx) return;
|
|
29464
|
+
if (event.key === "Escape") {
|
|
29465
|
+
if (this._cursorVisible()) {
|
|
29466
|
+
event.stopPropagation();
|
|
29467
|
+
this._stopKeyboardStroke();
|
|
29468
|
+
this._cursorVisible.set(false);
|
|
29469
|
+
}
|
|
29470
|
+
return;
|
|
29471
|
+
}
|
|
29472
|
+
const isArrow = [
|
|
29473
|
+
"ArrowUp",
|
|
29474
|
+
"ArrowDown",
|
|
29475
|
+
"ArrowLeft",
|
|
29476
|
+
"ArrowRight"
|
|
29477
|
+
].includes(event.key);
|
|
29478
|
+
if (!isArrow && event.key !== " ") return;
|
|
29479
|
+
event.preventDefault();
|
|
29480
|
+
if (!this._cursorVisible()) {
|
|
29481
|
+
this._cursorVisible.set(true);
|
|
29482
|
+
this._cursorX.set(this.width() / 2);
|
|
29483
|
+
this._cursorY.set(this.height() / 2);
|
|
29484
|
+
}
|
|
29485
|
+
if (isArrow) {
|
|
29486
|
+
const step = event.shiftKey ? 10 : 2;
|
|
29487
|
+
if (event.key === "ArrowUp") this._cursorY.set(Math.max(0, this._cursorY() - step));
|
|
29488
|
+
if (event.key === "ArrowDown") this._cursorY.set(Math.min(this.height(), this._cursorY() + step));
|
|
29489
|
+
if (event.key === "ArrowLeft") this._cursorX.set(Math.max(0, this._cursorX() - step));
|
|
29490
|
+
if (event.key === "ArrowRight") this._cursorX.set(Math.min(this.width(), this._cursorX() + step));
|
|
29491
|
+
if (this._keyboardDrawing()) {
|
|
29492
|
+
ctx.lineTo(this._cursorX(), this._cursorY());
|
|
29493
|
+
ctx.stroke();
|
|
29494
|
+
this._dirty = true;
|
|
29495
|
+
}
|
|
29496
|
+
return;
|
|
29497
|
+
}
|
|
29498
|
+
if (!this._keyboardDrawing()) {
|
|
29499
|
+
this._keyboardDrawing.set(true);
|
|
29500
|
+
this._applyPen(ctx);
|
|
29501
|
+
ctx.beginPath();
|
|
29502
|
+
ctx.moveTo(this._cursorX(), this._cursorY());
|
|
29503
|
+
ctx.lineTo(this._cursorX() + .01, this._cursorY());
|
|
29504
|
+
ctx.stroke();
|
|
29505
|
+
this._dirty = true;
|
|
29506
|
+
}
|
|
29507
|
+
}
|
|
29508
|
+
onKeyUp(event) {
|
|
29509
|
+
if (event.key !== " " || this.disabled()) return;
|
|
29510
|
+
event.preventDefault();
|
|
29511
|
+
this._stopKeyboardStroke();
|
|
29512
|
+
}
|
|
29513
|
+
onBlur() {
|
|
29514
|
+
this._stopKeyboardStroke();
|
|
29515
|
+
this._cursorVisible.set(false);
|
|
29516
|
+
this._onTouched();
|
|
29517
|
+
}
|
|
29518
|
+
_stopKeyboardStroke() {
|
|
29519
|
+
if (!this._keyboardDrawing()) return;
|
|
29520
|
+
this._keyboardDrawing.set(false);
|
|
29521
|
+
this._commit();
|
|
29522
|
+
}
|
|
29523
|
+
_commit() {
|
|
29524
|
+
if (!this._dirty) return;
|
|
29525
|
+
this._dirty = false;
|
|
29526
|
+
const wasEmpty = this._empty();
|
|
29527
|
+
this._empty.set(false);
|
|
29528
|
+
this._loading = false;
|
|
29529
|
+
this._value = this._normalize();
|
|
29530
|
+
if (wasEmpty) this._announcement.set("Signature captured");
|
|
29531
|
+
this._onChange(this._value);
|
|
29532
|
+
this.signatureChange.emit(this._value);
|
|
29533
|
+
}
|
|
29534
|
+
_setUpContext(canvas) {
|
|
29535
|
+
this._ctx = canvas.getContext("2d");
|
|
29536
|
+
if (this._ctx) this._applyPen(this._ctx);
|
|
29537
|
+
}
|
|
29538
|
+
_contextOf(canvas) {
|
|
29539
|
+
if (!this._ctx) this._setUpContext(canvas);
|
|
29540
|
+
return this._ctx;
|
|
29541
|
+
}
|
|
29542
|
+
_applyPen(ctx) {
|
|
29543
|
+
ctx.strokeStyle = this.penColor();
|
|
29544
|
+
ctx.lineWidth = this.penWidth();
|
|
29545
|
+
ctx.lineCap = "round";
|
|
29546
|
+
ctx.lineJoin = "round";
|
|
29547
|
+
}
|
|
29548
|
+
_clearBitmap() {
|
|
29549
|
+
const canvas = this._canvas()?.nativeElement;
|
|
29550
|
+
this._ctx?.clearRect(0, 0, canvas?.width ?? this.width(), canvas?.height ?? this.height());
|
|
29551
|
+
}
|
|
29552
|
+
_pointOf(clientX, clientY, canvas) {
|
|
29553
|
+
const rect = canvas.getBoundingClientRect();
|
|
29554
|
+
const scaleX = rect.width ? canvas.width / rect.width : 1;
|
|
29555
|
+
const scaleY = rect.height ? canvas.height / rect.height : 1;
|
|
29556
|
+
return {
|
|
29557
|
+
x: (clientX - rect.left) * scaleX,
|
|
29558
|
+
y: (clientY - rect.top) * scaleY
|
|
29559
|
+
};
|
|
29560
|
+
}
|
|
29561
|
+
_normalize() {
|
|
29562
|
+
const source = this._canvas()?.nativeElement;
|
|
29563
|
+
const sourceCtx = this._ctx;
|
|
29564
|
+
if (!source || !sourceCtx) return null;
|
|
29565
|
+
const { data, width, height } = sourceCtx.getImageData(0, 0, source.width, source.height);
|
|
29566
|
+
let minX = width, minY = height, maxX = -1, maxY = -1;
|
|
29567
|
+
for (let y = 0; y < height; y++) for (let x = 0; x < width; x++) if (data[(y * width + x) * 4 + 3] > 0) {
|
|
29568
|
+
if (x < minX) minX = x;
|
|
29569
|
+
if (x > maxX) maxX = x;
|
|
29570
|
+
if (y < minY) minY = y;
|
|
29571
|
+
if (y > maxY) maxY = y;
|
|
29572
|
+
}
|
|
29573
|
+
if (maxX < 0) return null;
|
|
29574
|
+
const padding = 4;
|
|
29575
|
+
minX = Math.max(0, minX - padding);
|
|
29576
|
+
minY = Math.max(0, minY - padding);
|
|
29577
|
+
maxX = Math.min(width - 1, maxX + padding);
|
|
29578
|
+
maxY = Math.min(height - 1, maxY + padding);
|
|
29579
|
+
const cropWidth = maxX - minX + 1;
|
|
29580
|
+
const cropHeight = maxY - minY + 1;
|
|
29581
|
+
const out = document.createElement("canvas");
|
|
29582
|
+
out.width = this.outputWidth();
|
|
29583
|
+
out.height = this.outputHeight();
|
|
29584
|
+
const scale = Math.min(out.width / cropWidth, out.height / cropHeight);
|
|
29585
|
+
const drawWidth = cropWidth * scale;
|
|
29586
|
+
const drawHeight = cropHeight * scale;
|
|
29587
|
+
out.getContext("2d").drawImage(source, minX, minY, cropWidth, cropHeight, 0, (out.height - drawHeight) / 2, drawWidth, drawHeight);
|
|
29588
|
+
return out.toDataURL("image/png");
|
|
28475
29589
|
}
|
|
28476
29590
|
static {
|
|
28477
29591
|
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
28478
29592
|
minVersion: "12.0.0",
|
|
28479
29593
|
version: "22.2.2",
|
|
28480
29594
|
ngImport: i0,
|
|
28481
|
-
type:
|
|
29595
|
+
type: SignaturePadComponent,
|
|
28482
29596
|
deps: [],
|
|
28483
29597
|
target: i0.ɵɵFactoryTarget.Component
|
|
28484
29598
|
});
|
|
@@ -28487,101 +29601,792 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
28487
29601
|
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
28488
29602
|
minVersion: "17.0.0",
|
|
28489
29603
|
version: "22.2.2",
|
|
28490
|
-
type:
|
|
29604
|
+
type: SignaturePadComponent,
|
|
28491
29605
|
isStandalone: true,
|
|
28492
|
-
selector: "ui-
|
|
29606
|
+
selector: "ui-signature-pad",
|
|
28493
29607
|
inputs: {
|
|
28494
|
-
|
|
28495
|
-
classPropertyName: "
|
|
28496
|
-
publicName: "
|
|
29608
|
+
label: {
|
|
29609
|
+
classPropertyName: "label",
|
|
29610
|
+
publicName: "label",
|
|
28497
29611
|
isSignal: true,
|
|
28498
29612
|
isRequired: false,
|
|
28499
29613
|
transformFunction: null
|
|
28500
29614
|
},
|
|
28501
|
-
|
|
28502
|
-
classPropertyName: "
|
|
28503
|
-
publicName: "
|
|
29615
|
+
ariaLabel: {
|
|
29616
|
+
classPropertyName: "ariaLabel",
|
|
29617
|
+
publicName: "ariaLabel",
|
|
28504
29618
|
isSignal: true,
|
|
28505
29619
|
isRequired: false,
|
|
28506
29620
|
transformFunction: null
|
|
28507
29621
|
},
|
|
28508
|
-
|
|
28509
|
-
classPropertyName: "
|
|
28510
|
-
publicName: "
|
|
29622
|
+
hint: {
|
|
29623
|
+
classPropertyName: "hint",
|
|
29624
|
+
publicName: "hint",
|
|
28511
29625
|
isSignal: true,
|
|
28512
29626
|
isRequired: false,
|
|
28513
29627
|
transformFunction: null
|
|
28514
29628
|
},
|
|
28515
|
-
|
|
28516
|
-
classPropertyName: "
|
|
28517
|
-
publicName: "
|
|
29629
|
+
error: {
|
|
29630
|
+
classPropertyName: "error",
|
|
29631
|
+
publicName: "error",
|
|
28518
29632
|
isSignal: true,
|
|
28519
29633
|
isRequired: false,
|
|
28520
29634
|
transformFunction: null
|
|
28521
29635
|
},
|
|
28522
|
-
|
|
28523
|
-
classPropertyName: "
|
|
28524
|
-
publicName: "
|
|
29636
|
+
width: {
|
|
29637
|
+
classPropertyName: "width",
|
|
29638
|
+
publicName: "width",
|
|
28525
29639
|
isSignal: true,
|
|
28526
29640
|
isRequired: false,
|
|
28527
29641
|
transformFunction: null
|
|
28528
29642
|
},
|
|
28529
|
-
|
|
28530
|
-
classPropertyName: "
|
|
28531
|
-
publicName: "
|
|
29643
|
+
height: {
|
|
29644
|
+
classPropertyName: "height",
|
|
29645
|
+
publicName: "height",
|
|
28532
29646
|
isSignal: true,
|
|
28533
29647
|
isRequired: false,
|
|
28534
29648
|
transformFunction: null
|
|
28535
29649
|
},
|
|
28536
|
-
|
|
28537
|
-
classPropertyName: "
|
|
28538
|
-
publicName: "
|
|
29650
|
+
outputWidth: {
|
|
29651
|
+
classPropertyName: "outputWidth",
|
|
29652
|
+
publicName: "outputWidth",
|
|
28539
29653
|
isSignal: true,
|
|
28540
29654
|
isRequired: false,
|
|
28541
29655
|
transformFunction: null
|
|
28542
29656
|
},
|
|
28543
|
-
|
|
28544
|
-
classPropertyName: "
|
|
28545
|
-
publicName: "
|
|
29657
|
+
outputHeight: {
|
|
29658
|
+
classPropertyName: "outputHeight",
|
|
29659
|
+
publicName: "outputHeight",
|
|
28546
29660
|
isSignal: true,
|
|
28547
29661
|
isRequired: false,
|
|
28548
29662
|
transformFunction: null
|
|
28549
29663
|
},
|
|
28550
|
-
|
|
28551
|
-
classPropertyName: "
|
|
28552
|
-
publicName: "
|
|
29664
|
+
penColor: {
|
|
29665
|
+
classPropertyName: "penColor",
|
|
29666
|
+
publicName: "penColor",
|
|
28553
29667
|
isSignal: true,
|
|
28554
29668
|
isRequired: false,
|
|
28555
29669
|
transformFunction: null
|
|
28556
29670
|
},
|
|
28557
|
-
|
|
28558
|
-
classPropertyName: "
|
|
28559
|
-
publicName: "
|
|
29671
|
+
penWidth: {
|
|
29672
|
+
classPropertyName: "penWidth",
|
|
29673
|
+
publicName: "penWidth",
|
|
28560
29674
|
isSignal: true,
|
|
28561
29675
|
isRequired: false,
|
|
28562
29676
|
transformFunction: null
|
|
28563
29677
|
},
|
|
28564
|
-
|
|
28565
|
-
classPropertyName: "
|
|
28566
|
-
publicName: "
|
|
29678
|
+
showClear: {
|
|
29679
|
+
classPropertyName: "showClear",
|
|
29680
|
+
publicName: "showClear",
|
|
28567
29681
|
isSignal: true,
|
|
28568
29682
|
isRequired: false,
|
|
28569
29683
|
transformFunction: null
|
|
28570
29684
|
},
|
|
28571
|
-
|
|
28572
|
-
classPropertyName: "
|
|
28573
|
-
publicName: "
|
|
29685
|
+
clearLabel: {
|
|
29686
|
+
classPropertyName: "clearLabel",
|
|
29687
|
+
publicName: "clearLabel",
|
|
29688
|
+
isSignal: true,
|
|
29689
|
+
isRequired: false,
|
|
29690
|
+
transformFunction: null
|
|
29691
|
+
},
|
|
29692
|
+
_disabledInput: {
|
|
29693
|
+
classPropertyName: "_disabledInput",
|
|
29694
|
+
publicName: "disabled",
|
|
28574
29695
|
isSignal: true,
|
|
28575
29696
|
isRequired: false,
|
|
28576
29697
|
transformFunction: null
|
|
28577
29698
|
}
|
|
28578
29699
|
},
|
|
28579
|
-
outputs: {
|
|
28580
|
-
|
|
28581
|
-
|
|
28582
|
-
|
|
28583
|
-
|
|
28584
|
-
|
|
29700
|
+
outputs: { signatureChange: "signatureChange" },
|
|
29701
|
+
providers: [{
|
|
29702
|
+
provide: NG_VALUE_ACCESSOR,
|
|
29703
|
+
useExisting: forwardRef(() => SignaturePadComponent),
|
|
29704
|
+
multi: true
|
|
29705
|
+
}],
|
|
29706
|
+
viewQueries: [{
|
|
29707
|
+
propertyName: "_canvas",
|
|
29708
|
+
first: true,
|
|
29709
|
+
predicate: ["canvas"],
|
|
29710
|
+
descendants: true,
|
|
29711
|
+
isSignal: true
|
|
29712
|
+
}],
|
|
29713
|
+
ngImport: i0,
|
|
29714
|
+
template: `
|
|
29715
|
+
<div class="sp-field" [class.sp-disabled]="disabled()" [class.sp-error]="!!error()">
|
|
29716
|
+
@if (label()) {
|
|
29717
|
+
<span class="sp-label" [id]="_labelId">{{ label() }}</span>
|
|
29718
|
+
}
|
|
29719
|
+
<div class="sp-pad">
|
|
29720
|
+
<canvas
|
|
29721
|
+
#canvas
|
|
29722
|
+
class="sp-canvas"
|
|
29723
|
+
role="application"
|
|
29724
|
+
[width]="width()"
|
|
29725
|
+
[height]="height()"
|
|
29726
|
+
[style.aspect-ratio]="width() + ' / ' + height()"
|
|
29727
|
+
[attr.tabindex]="disabled() ? null : 0"
|
|
29728
|
+
[attr.aria-label]="_accessibleName()"
|
|
29729
|
+
[attr.aria-labelledby]="!ariaLabel() && label() ? _labelId : null"
|
|
29730
|
+
[attr.aria-describedby]="_describedBy()"
|
|
29731
|
+
[attr.aria-disabled]="disabled() ? 'true' : null"
|
|
29732
|
+
[attr.aria-invalid]="error() ? 'true' : null"
|
|
29733
|
+
(pointerdown)="onPointerDown($event)"
|
|
29734
|
+
(pointermove)="onPointerMove($event)"
|
|
29735
|
+
(pointerup)="onPointerEnd($event)"
|
|
29736
|
+
(pointercancel)="onPointerEnd($event)"
|
|
29737
|
+
(lostpointercapture)="onPointerEnd($event)"
|
|
29738
|
+
(keydown)="onKeyDown($event)"
|
|
29739
|
+
(keyup)="onKeyUp($event)"
|
|
29740
|
+
(blur)="onBlur()"></canvas>
|
|
29741
|
+
@if (_cursorVisible()) {
|
|
29742
|
+
<span class="sp-cursor" [class.is-drawing]="_keyboardDrawing()" [style.left.%]="_cursorX() / width() * 100" [style.top.%]="_cursorY() / height() * 100"></span>
|
|
29743
|
+
}
|
|
29744
|
+
</div>
|
|
29745
|
+
<span class="sp-sr" [id]="_helpId">{{ _keyboardHelp }}</span>
|
|
29746
|
+
<span class="sp-sr" role="status" aria-live="polite">{{ _announcement() }}</span>
|
|
29747
|
+
@if (error()) {
|
|
29748
|
+
<p class="sp-desc sp-desc-error" [id]="_descId" role="alert">{{ error() }}</p>
|
|
29749
|
+
} @else if (hint()) {
|
|
29750
|
+
<p class="sp-desc" [id]="_descId">{{ hint() }}</p>
|
|
29751
|
+
}
|
|
29752
|
+
@if (showClear()) {
|
|
29753
|
+
<ui-button variant="secondary" size="sm" [disabled]="disabled() || _empty()" (click)="clear()">{{ clearLabel() }}</ui-button>
|
|
29754
|
+
}
|
|
29755
|
+
</div>
|
|
29756
|
+
`,
|
|
29757
|
+
isInline: true,
|
|
29758
|
+
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"],
|
|
29759
|
+
dependencies: [{
|
|
29760
|
+
kind: "component",
|
|
29761
|
+
type: ButtonComponent,
|
|
29762
|
+
selector: "ui-button",
|
|
29763
|
+
inputs: [
|
|
29764
|
+
"variant",
|
|
29765
|
+
"routerLink",
|
|
29766
|
+
"queryParams",
|
|
29767
|
+
"fragment",
|
|
29768
|
+
"href",
|
|
29769
|
+
"target",
|
|
29770
|
+
"rel",
|
|
29771
|
+
"color",
|
|
29772
|
+
"active",
|
|
29773
|
+
"size",
|
|
29774
|
+
"type",
|
|
29775
|
+
"disabled",
|
|
29776
|
+
"loading",
|
|
29777
|
+
"fullWidth",
|
|
29778
|
+
"ariaLabel",
|
|
29779
|
+
"ariaExpanded",
|
|
29780
|
+
"ariaPressed",
|
|
29781
|
+
"ariaDescribedBy",
|
|
29782
|
+
"modal-footer-left",
|
|
29783
|
+
"modal-footer-right"
|
|
29784
|
+
]
|
|
29785
|
+
}],
|
|
29786
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
29787
|
+
});
|
|
29788
|
+
}
|
|
29789
|
+
};
|
|
29790
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
29791
|
+
minVersion: "12.0.0",
|
|
29792
|
+
version: "22.2.2",
|
|
29793
|
+
ngImport: i0,
|
|
29794
|
+
type: SignaturePadComponent,
|
|
29795
|
+
decorators: [{
|
|
29796
|
+
type: Component,
|
|
29797
|
+
args: [{
|
|
29798
|
+
selector: "ui-signature-pad",
|
|
29799
|
+
standalone: true,
|
|
29800
|
+
imports: [ButtonComponent],
|
|
29801
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
29802
|
+
providers: [{
|
|
29803
|
+
provide: NG_VALUE_ACCESSOR,
|
|
29804
|
+
useExisting: forwardRef(() => SignaturePadComponent),
|
|
29805
|
+
multi: true
|
|
29806
|
+
}],
|
|
29807
|
+
template: `
|
|
29808
|
+
<div class="sp-field" [class.sp-disabled]="disabled()" [class.sp-error]="!!error()">
|
|
29809
|
+
@if (label()) {
|
|
29810
|
+
<span class="sp-label" [id]="_labelId">{{ label() }}</span>
|
|
29811
|
+
}
|
|
29812
|
+
<div class="sp-pad">
|
|
29813
|
+
<canvas
|
|
29814
|
+
#canvas
|
|
29815
|
+
class="sp-canvas"
|
|
29816
|
+
role="application"
|
|
29817
|
+
[width]="width()"
|
|
29818
|
+
[height]="height()"
|
|
29819
|
+
[style.aspect-ratio]="width() + ' / ' + height()"
|
|
29820
|
+
[attr.tabindex]="disabled() ? null : 0"
|
|
29821
|
+
[attr.aria-label]="_accessibleName()"
|
|
29822
|
+
[attr.aria-labelledby]="!ariaLabel() && label() ? _labelId : null"
|
|
29823
|
+
[attr.aria-describedby]="_describedBy()"
|
|
29824
|
+
[attr.aria-disabled]="disabled() ? 'true' : null"
|
|
29825
|
+
[attr.aria-invalid]="error() ? 'true' : null"
|
|
29826
|
+
(pointerdown)="onPointerDown($event)"
|
|
29827
|
+
(pointermove)="onPointerMove($event)"
|
|
29828
|
+
(pointerup)="onPointerEnd($event)"
|
|
29829
|
+
(pointercancel)="onPointerEnd($event)"
|
|
29830
|
+
(lostpointercapture)="onPointerEnd($event)"
|
|
29831
|
+
(keydown)="onKeyDown($event)"
|
|
29832
|
+
(keyup)="onKeyUp($event)"
|
|
29833
|
+
(blur)="onBlur()"></canvas>
|
|
29834
|
+
@if (_cursorVisible()) {
|
|
29835
|
+
<span class="sp-cursor" [class.is-drawing]="_keyboardDrawing()" [style.left.%]="_cursorX() / width() * 100" [style.top.%]="_cursorY() / height() * 100"></span>
|
|
29836
|
+
}
|
|
29837
|
+
</div>
|
|
29838
|
+
<span class="sp-sr" [id]="_helpId">{{ _keyboardHelp }}</span>
|
|
29839
|
+
<span class="sp-sr" role="status" aria-live="polite">{{ _announcement() }}</span>
|
|
29840
|
+
@if (error()) {
|
|
29841
|
+
<p class="sp-desc sp-desc-error" [id]="_descId" role="alert">{{ error() }}</p>
|
|
29842
|
+
} @else if (hint()) {
|
|
29843
|
+
<p class="sp-desc" [id]="_descId">{{ hint() }}</p>
|
|
29844
|
+
}
|
|
29845
|
+
@if (showClear()) {
|
|
29846
|
+
<ui-button variant="secondary" size="sm" [disabled]="disabled() || _empty()" (click)="clear()">{{ clearLabel() }}</ui-button>
|
|
29847
|
+
}
|
|
29848
|
+
</div>
|
|
29849
|
+
`,
|
|
29850
|
+
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"]
|
|
29851
|
+
}]
|
|
29852
|
+
}],
|
|
29853
|
+
ctorParameters: () => [],
|
|
29854
|
+
propDecorators: {
|
|
29855
|
+
label: [{
|
|
29856
|
+
type: i0.Input,
|
|
29857
|
+
args: [{
|
|
29858
|
+
isSignal: true,
|
|
29859
|
+
alias: "label",
|
|
29860
|
+
required: false
|
|
29861
|
+
}]
|
|
29862
|
+
}],
|
|
29863
|
+
ariaLabel: [{
|
|
29864
|
+
type: i0.Input,
|
|
29865
|
+
args: [{
|
|
29866
|
+
isSignal: true,
|
|
29867
|
+
alias: "ariaLabel",
|
|
29868
|
+
required: false
|
|
29869
|
+
}]
|
|
29870
|
+
}],
|
|
29871
|
+
hint: [{
|
|
29872
|
+
type: i0.Input,
|
|
29873
|
+
args: [{
|
|
29874
|
+
isSignal: true,
|
|
29875
|
+
alias: "hint",
|
|
29876
|
+
required: false
|
|
29877
|
+
}]
|
|
29878
|
+
}],
|
|
29879
|
+
error: [{
|
|
29880
|
+
type: i0.Input,
|
|
29881
|
+
args: [{
|
|
29882
|
+
isSignal: true,
|
|
29883
|
+
alias: "error",
|
|
29884
|
+
required: false
|
|
29885
|
+
}]
|
|
29886
|
+
}],
|
|
29887
|
+
width: [{
|
|
29888
|
+
type: i0.Input,
|
|
29889
|
+
args: [{
|
|
29890
|
+
isSignal: true,
|
|
29891
|
+
alias: "width",
|
|
29892
|
+
required: false
|
|
29893
|
+
}]
|
|
29894
|
+
}],
|
|
29895
|
+
height: [{
|
|
29896
|
+
type: i0.Input,
|
|
29897
|
+
args: [{
|
|
29898
|
+
isSignal: true,
|
|
29899
|
+
alias: "height",
|
|
29900
|
+
required: false
|
|
29901
|
+
}]
|
|
29902
|
+
}],
|
|
29903
|
+
outputWidth: [{
|
|
29904
|
+
type: i0.Input,
|
|
29905
|
+
args: [{
|
|
29906
|
+
isSignal: true,
|
|
29907
|
+
alias: "outputWidth",
|
|
29908
|
+
required: false
|
|
29909
|
+
}]
|
|
29910
|
+
}],
|
|
29911
|
+
outputHeight: [{
|
|
29912
|
+
type: i0.Input,
|
|
29913
|
+
args: [{
|
|
29914
|
+
isSignal: true,
|
|
29915
|
+
alias: "outputHeight",
|
|
29916
|
+
required: false
|
|
29917
|
+
}]
|
|
29918
|
+
}],
|
|
29919
|
+
penColor: [{
|
|
29920
|
+
type: i0.Input,
|
|
29921
|
+
args: [{
|
|
29922
|
+
isSignal: true,
|
|
29923
|
+
alias: "penColor",
|
|
29924
|
+
required: false
|
|
29925
|
+
}]
|
|
29926
|
+
}],
|
|
29927
|
+
penWidth: [{
|
|
29928
|
+
type: i0.Input,
|
|
29929
|
+
args: [{
|
|
29930
|
+
isSignal: true,
|
|
29931
|
+
alias: "penWidth",
|
|
29932
|
+
required: false
|
|
29933
|
+
}]
|
|
29934
|
+
}],
|
|
29935
|
+
showClear: [{
|
|
29936
|
+
type: i0.Input,
|
|
29937
|
+
args: [{
|
|
29938
|
+
isSignal: true,
|
|
29939
|
+
alias: "showClear",
|
|
29940
|
+
required: false
|
|
29941
|
+
}]
|
|
29942
|
+
}],
|
|
29943
|
+
clearLabel: [{
|
|
29944
|
+
type: i0.Input,
|
|
29945
|
+
args: [{
|
|
29946
|
+
isSignal: true,
|
|
29947
|
+
alias: "clearLabel",
|
|
29948
|
+
required: false
|
|
29949
|
+
}]
|
|
29950
|
+
}],
|
|
29951
|
+
_disabledInput: [{
|
|
29952
|
+
type: i0.Input,
|
|
29953
|
+
args: [{
|
|
29954
|
+
isSignal: true,
|
|
29955
|
+
alias: "disabled",
|
|
29956
|
+
required: false
|
|
29957
|
+
}]
|
|
29958
|
+
}],
|
|
29959
|
+
signatureChange: [{
|
|
29960
|
+
type: i0.Output,
|
|
29961
|
+
args: ["signatureChange"]
|
|
29962
|
+
}],
|
|
29963
|
+
_canvas: [{
|
|
29964
|
+
type: i0.ViewChild,
|
|
29965
|
+
args: ["canvas", { isSignal: true }]
|
|
29966
|
+
}]
|
|
29967
|
+
}
|
|
29968
|
+
});
|
|
29969
|
+
var PdfHotspotComponent = class PdfHotspotComponent {
|
|
29970
|
+
constructor() {
|
|
29971
|
+
this.x = input(0, ...ngDevMode ? [{ debugName: "x" }] : /* istanbul ignore next */ []);
|
|
29972
|
+
this.y = input(0, ...ngDevMode ? [{ debugName: "y" }] : /* istanbul ignore next */ []);
|
|
29973
|
+
this.width = input(0, ...ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []);
|
|
29974
|
+
this.height = input(0, ...ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []);
|
|
29975
|
+
this.state = input("ready", ...ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []);
|
|
29976
|
+
this.tone = input("primary", ...ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []);
|
|
29977
|
+
this.label = input("Sign Here", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
29978
|
+
this.blockedLabel = input("", ...ngDevMode ? [{ debugName: "blockedLabel" }] : /* istanbul ignore next */ []);
|
|
29979
|
+
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
29980
|
+
this.image = input(null, ...ngDevMode ? [{ debugName: "image" }] : /* istanbul ignore next */ []);
|
|
29981
|
+
this.imageAlt = input("Applied signature", ...ngDevMode ? [{ debugName: "imageAlt" }] : /* istanbul ignore next */ []);
|
|
29982
|
+
this.activate = output();
|
|
29983
|
+
this.fontSize = computed(() => Math.min(11, Math.max(7, this.height() * .25)), ...ngDevMode ? [{ debugName: "fontSize" }] : /* istanbul ignore next */ []);
|
|
29984
|
+
}
|
|
29985
|
+
static {
|
|
29986
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
29987
|
+
minVersion: "12.0.0",
|
|
29988
|
+
version: "22.2.2",
|
|
29989
|
+
ngImport: i0,
|
|
29990
|
+
type: PdfHotspotComponent,
|
|
29991
|
+
deps: [],
|
|
29992
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
29993
|
+
});
|
|
29994
|
+
}
|
|
29995
|
+
static {
|
|
29996
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
29997
|
+
minVersion: "17.0.0",
|
|
29998
|
+
version: "22.2.2",
|
|
29999
|
+
type: PdfHotspotComponent,
|
|
30000
|
+
isStandalone: true,
|
|
30001
|
+
selector: "ui-pdf-hotspot",
|
|
30002
|
+
inputs: {
|
|
30003
|
+
x: {
|
|
30004
|
+
classPropertyName: "x",
|
|
30005
|
+
publicName: "x",
|
|
30006
|
+
isSignal: true,
|
|
30007
|
+
isRequired: false,
|
|
30008
|
+
transformFunction: null
|
|
30009
|
+
},
|
|
30010
|
+
y: {
|
|
30011
|
+
classPropertyName: "y",
|
|
30012
|
+
publicName: "y",
|
|
30013
|
+
isSignal: true,
|
|
30014
|
+
isRequired: false,
|
|
30015
|
+
transformFunction: null
|
|
30016
|
+
},
|
|
30017
|
+
width: {
|
|
30018
|
+
classPropertyName: "width",
|
|
30019
|
+
publicName: "width",
|
|
30020
|
+
isSignal: true,
|
|
30021
|
+
isRequired: false,
|
|
30022
|
+
transformFunction: null
|
|
30023
|
+
},
|
|
30024
|
+
height: {
|
|
30025
|
+
classPropertyName: "height",
|
|
30026
|
+
publicName: "height",
|
|
30027
|
+
isSignal: true,
|
|
30028
|
+
isRequired: false,
|
|
30029
|
+
transformFunction: null
|
|
30030
|
+
},
|
|
30031
|
+
state: {
|
|
30032
|
+
classPropertyName: "state",
|
|
30033
|
+
publicName: "state",
|
|
30034
|
+
isSignal: true,
|
|
30035
|
+
isRequired: false,
|
|
30036
|
+
transformFunction: null
|
|
30037
|
+
},
|
|
30038
|
+
tone: {
|
|
30039
|
+
classPropertyName: "tone",
|
|
30040
|
+
publicName: "tone",
|
|
30041
|
+
isSignal: true,
|
|
30042
|
+
isRequired: false,
|
|
30043
|
+
transformFunction: null
|
|
30044
|
+
},
|
|
30045
|
+
label: {
|
|
30046
|
+
classPropertyName: "label",
|
|
30047
|
+
publicName: "label",
|
|
30048
|
+
isSignal: true,
|
|
30049
|
+
isRequired: false,
|
|
30050
|
+
transformFunction: null
|
|
30051
|
+
},
|
|
30052
|
+
blockedLabel: {
|
|
30053
|
+
classPropertyName: "blockedLabel",
|
|
30054
|
+
publicName: "blockedLabel",
|
|
30055
|
+
isSignal: true,
|
|
30056
|
+
isRequired: false,
|
|
30057
|
+
transformFunction: null
|
|
30058
|
+
},
|
|
30059
|
+
ariaLabel: {
|
|
30060
|
+
classPropertyName: "ariaLabel",
|
|
30061
|
+
publicName: "ariaLabel",
|
|
30062
|
+
isSignal: true,
|
|
30063
|
+
isRequired: false,
|
|
30064
|
+
transformFunction: null
|
|
30065
|
+
},
|
|
30066
|
+
image: {
|
|
30067
|
+
classPropertyName: "image",
|
|
30068
|
+
publicName: "image",
|
|
30069
|
+
isSignal: true,
|
|
30070
|
+
isRequired: false,
|
|
30071
|
+
transformFunction: null
|
|
30072
|
+
},
|
|
30073
|
+
imageAlt: {
|
|
30074
|
+
classPropertyName: "imageAlt",
|
|
30075
|
+
publicName: "imageAlt",
|
|
30076
|
+
isSignal: true,
|
|
30077
|
+
isRequired: false,
|
|
30078
|
+
transformFunction: null
|
|
30079
|
+
}
|
|
30080
|
+
},
|
|
30081
|
+
outputs: { activate: "activate" },
|
|
30082
|
+
host: { properties: {
|
|
30083
|
+
"style.left.px": "x()",
|
|
30084
|
+
"style.top.px": "y()",
|
|
30085
|
+
"style.width.px": "width()",
|
|
30086
|
+
"style.height.px": "height()",
|
|
30087
|
+
"attr.data-state": "state()"
|
|
30088
|
+
} },
|
|
30089
|
+
ngImport: i0,
|
|
30090
|
+
template: `
|
|
30091
|
+
@if (state() === 'signed' && image()) {
|
|
30092
|
+
<img class="ph-image" [src]="image()" [alt]="imageAlt()" />
|
|
30093
|
+
} @else {
|
|
30094
|
+
<button
|
|
30095
|
+
type="button"
|
|
30096
|
+
class="ph-button"
|
|
30097
|
+
[class.ph-ready]="state() === 'ready'"
|
|
30098
|
+
[class.ph-warning]="tone() === 'warning'"
|
|
30099
|
+
[disabled]="state() !== 'ready'"
|
|
30100
|
+
[attr.aria-label]="ariaLabel() || null"
|
|
30101
|
+
[style.font-size.px]="fontSize()"
|
|
30102
|
+
(click)="activate.emit()"><span class="ph-text">{{ state() === 'blocked' ? blockedLabel() : label() }}</span></button>
|
|
30103
|
+
}
|
|
30104
|
+
`,
|
|
30105
|
+
isInline: true,
|
|
30106
|
+
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:44px;transform:translateY(-50%)}}\n"],
|
|
30107
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
30108
|
+
});
|
|
30109
|
+
}
|
|
30110
|
+
};
|
|
30111
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
30112
|
+
minVersion: "12.0.0",
|
|
30113
|
+
version: "22.2.2",
|
|
30114
|
+
ngImport: i0,
|
|
30115
|
+
type: PdfHotspotComponent,
|
|
30116
|
+
decorators: [{
|
|
30117
|
+
type: Component,
|
|
30118
|
+
args: [{
|
|
30119
|
+
selector: "ui-pdf-hotspot",
|
|
30120
|
+
standalone: true,
|
|
30121
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
30122
|
+
host: {
|
|
30123
|
+
"[style.left.px]": "x()",
|
|
30124
|
+
"[style.top.px]": "y()",
|
|
30125
|
+
"[style.width.px]": "width()",
|
|
30126
|
+
"[style.height.px]": "height()",
|
|
30127
|
+
"[attr.data-state]": "state()"
|
|
30128
|
+
},
|
|
30129
|
+
template: `
|
|
30130
|
+
@if (state() === 'signed' && image()) {
|
|
30131
|
+
<img class="ph-image" [src]="image()" [alt]="imageAlt()" />
|
|
30132
|
+
} @else {
|
|
30133
|
+
<button
|
|
30134
|
+
type="button"
|
|
30135
|
+
class="ph-button"
|
|
30136
|
+
[class.ph-ready]="state() === 'ready'"
|
|
30137
|
+
[class.ph-warning]="tone() === 'warning'"
|
|
30138
|
+
[disabled]="state() !== 'ready'"
|
|
30139
|
+
[attr.aria-label]="ariaLabel() || null"
|
|
30140
|
+
[style.font-size.px]="fontSize()"
|
|
30141
|
+
(click)="activate.emit()"><span class="ph-text">{{ state() === 'blocked' ? blockedLabel() : label() }}</span></button>
|
|
30142
|
+
}
|
|
30143
|
+
`,
|
|
30144
|
+
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:44px;transform:translateY(-50%)}}\n"]
|
|
30145
|
+
}]
|
|
30146
|
+
}],
|
|
30147
|
+
propDecorators: {
|
|
30148
|
+
x: [{
|
|
30149
|
+
type: i0.Input,
|
|
30150
|
+
args: [{
|
|
30151
|
+
isSignal: true,
|
|
30152
|
+
alias: "x",
|
|
30153
|
+
required: false
|
|
30154
|
+
}]
|
|
30155
|
+
}],
|
|
30156
|
+
y: [{
|
|
30157
|
+
type: i0.Input,
|
|
30158
|
+
args: [{
|
|
30159
|
+
isSignal: true,
|
|
30160
|
+
alias: "y",
|
|
30161
|
+
required: false
|
|
30162
|
+
}]
|
|
30163
|
+
}],
|
|
30164
|
+
width: [{
|
|
30165
|
+
type: i0.Input,
|
|
30166
|
+
args: [{
|
|
30167
|
+
isSignal: true,
|
|
30168
|
+
alias: "width",
|
|
30169
|
+
required: false
|
|
30170
|
+
}]
|
|
30171
|
+
}],
|
|
30172
|
+
height: [{
|
|
30173
|
+
type: i0.Input,
|
|
30174
|
+
args: [{
|
|
30175
|
+
isSignal: true,
|
|
30176
|
+
alias: "height",
|
|
30177
|
+
required: false
|
|
30178
|
+
}]
|
|
30179
|
+
}],
|
|
30180
|
+
state: [{
|
|
30181
|
+
type: i0.Input,
|
|
30182
|
+
args: [{
|
|
30183
|
+
isSignal: true,
|
|
30184
|
+
alias: "state",
|
|
30185
|
+
required: false
|
|
30186
|
+
}]
|
|
30187
|
+
}],
|
|
30188
|
+
tone: [{
|
|
30189
|
+
type: i0.Input,
|
|
30190
|
+
args: [{
|
|
30191
|
+
isSignal: true,
|
|
30192
|
+
alias: "tone",
|
|
30193
|
+
required: false
|
|
30194
|
+
}]
|
|
30195
|
+
}],
|
|
30196
|
+
label: [{
|
|
30197
|
+
type: i0.Input,
|
|
30198
|
+
args: [{
|
|
30199
|
+
isSignal: true,
|
|
30200
|
+
alias: "label",
|
|
30201
|
+
required: false
|
|
30202
|
+
}]
|
|
30203
|
+
}],
|
|
30204
|
+
blockedLabel: [{
|
|
30205
|
+
type: i0.Input,
|
|
30206
|
+
args: [{
|
|
30207
|
+
isSignal: true,
|
|
30208
|
+
alias: "blockedLabel",
|
|
30209
|
+
required: false
|
|
30210
|
+
}]
|
|
30211
|
+
}],
|
|
30212
|
+
ariaLabel: [{
|
|
30213
|
+
type: i0.Input,
|
|
30214
|
+
args: [{
|
|
30215
|
+
isSignal: true,
|
|
30216
|
+
alias: "ariaLabel",
|
|
30217
|
+
required: false
|
|
30218
|
+
}]
|
|
30219
|
+
}],
|
|
30220
|
+
image: [{
|
|
30221
|
+
type: i0.Input,
|
|
30222
|
+
args: [{
|
|
30223
|
+
isSignal: true,
|
|
30224
|
+
alias: "image",
|
|
30225
|
+
required: false
|
|
30226
|
+
}]
|
|
30227
|
+
}],
|
|
30228
|
+
imageAlt: [{
|
|
30229
|
+
type: i0.Input,
|
|
30230
|
+
args: [{
|
|
30231
|
+
isSignal: true,
|
|
30232
|
+
alias: "imageAlt",
|
|
30233
|
+
required: false
|
|
30234
|
+
}]
|
|
30235
|
+
}],
|
|
30236
|
+
activate: [{
|
|
30237
|
+
type: i0.Output,
|
|
30238
|
+
args: ["activate"]
|
|
30239
|
+
}]
|
|
30240
|
+
}
|
|
30241
|
+
});
|
|
30242
|
+
var DetailCardComponent = class DetailCardComponent {
|
|
30243
|
+
constructor() {
|
|
30244
|
+
this.title = input("", ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
|
|
30245
|
+
this.uppercaseTitle = input(true, ...ngDevMode ? [{ debugName: "uppercaseTitle" }] : /* istanbul ignore next */ []);
|
|
30246
|
+
this.headingLevel = input(null, ...ngDevMode ? [{ debugName: "headingLevel" }] : /* istanbul ignore next */ []);
|
|
30247
|
+
this.titleId = input("", ...ngDevMode ? [{ debugName: "titleId" }] : /* istanbul ignore next */ []);
|
|
30248
|
+
this.ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
30249
|
+
this.subtitle = input("", ...ngDevMode ? [{ debugName: "subtitle" }] : /* istanbul ignore next */ []);
|
|
30250
|
+
this.background = input("", ...ngDevMode ? [{ debugName: "background" }] : /* istanbul ignore next */ []);
|
|
30251
|
+
this.textColor = input("", ...ngDevMode ? [{ debugName: "textColor" }] : /* istanbul ignore next */ []);
|
|
30252
|
+
this.showHeader = input(true, ...ngDevMode ? [{ debugName: "showHeader" }] : /* istanbul ignore next */ []);
|
|
30253
|
+
this.collapsible = input(true, ...ngDevMode ? [{ debugName: "collapsible" }] : /* istanbul ignore next */ []);
|
|
30254
|
+
this.expanded = model(true, ...ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []);
|
|
30255
|
+
this.showEdit = input(false, ...ngDevMode ? [{ debugName: "showEdit" }] : /* istanbul ignore next */ []);
|
|
30256
|
+
this.editLabel = input("Edit", ...ngDevMode ? [{ debugName: "editLabel" }] : /* istanbul ignore next */ []);
|
|
30257
|
+
this.editClick = output();
|
|
30258
|
+
}
|
|
30259
|
+
groupLabel() {
|
|
30260
|
+
if (this.showHeader() && this.title()) return this.titleId() ? null : this.title();
|
|
30261
|
+
return this.ariaLabel().trim() || null;
|
|
30262
|
+
}
|
|
30263
|
+
isOpen() {
|
|
30264
|
+
return !(this.showHeader() && this.collapsible()) || this.expanded();
|
|
30265
|
+
}
|
|
30266
|
+
toggle() {
|
|
30267
|
+
this.expanded.set(!this.expanded());
|
|
30268
|
+
}
|
|
30269
|
+
onHeaderClick(event) {
|
|
30270
|
+
if (!this.showHeader() || !this.collapsible()) return;
|
|
30271
|
+
if (event.target?.closest("button, a, input, select, textarea, label, [role=\"button\"], [role=\"link\"], [tabindex]:not([tabindex=\"-1\"])")?.closest(".dc-header")) return;
|
|
30272
|
+
this.toggle();
|
|
30273
|
+
}
|
|
30274
|
+
static {
|
|
30275
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
30276
|
+
minVersion: "12.0.0",
|
|
30277
|
+
version: "22.2.2",
|
|
30278
|
+
ngImport: i0,
|
|
30279
|
+
type: DetailCardComponent,
|
|
30280
|
+
deps: [],
|
|
30281
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
30282
|
+
});
|
|
30283
|
+
}
|
|
30284
|
+
static {
|
|
30285
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
30286
|
+
minVersion: "17.0.0",
|
|
30287
|
+
version: "22.2.2",
|
|
30288
|
+
type: DetailCardComponent,
|
|
30289
|
+
isStandalone: true,
|
|
30290
|
+
selector: "ui-detail-card",
|
|
30291
|
+
inputs: {
|
|
30292
|
+
title: {
|
|
30293
|
+
classPropertyName: "title",
|
|
30294
|
+
publicName: "title",
|
|
30295
|
+
isSignal: true,
|
|
30296
|
+
isRequired: false,
|
|
30297
|
+
transformFunction: null
|
|
30298
|
+
},
|
|
30299
|
+
uppercaseTitle: {
|
|
30300
|
+
classPropertyName: "uppercaseTitle",
|
|
30301
|
+
publicName: "uppercaseTitle",
|
|
30302
|
+
isSignal: true,
|
|
30303
|
+
isRequired: false,
|
|
30304
|
+
transformFunction: null
|
|
30305
|
+
},
|
|
30306
|
+
headingLevel: {
|
|
30307
|
+
classPropertyName: "headingLevel",
|
|
30308
|
+
publicName: "headingLevel",
|
|
30309
|
+
isSignal: true,
|
|
30310
|
+
isRequired: false,
|
|
30311
|
+
transformFunction: null
|
|
30312
|
+
},
|
|
30313
|
+
titleId: {
|
|
30314
|
+
classPropertyName: "titleId",
|
|
30315
|
+
publicName: "titleId",
|
|
30316
|
+
isSignal: true,
|
|
30317
|
+
isRequired: false,
|
|
30318
|
+
transformFunction: null
|
|
30319
|
+
},
|
|
30320
|
+
ariaLabel: {
|
|
30321
|
+
classPropertyName: "ariaLabel",
|
|
30322
|
+
publicName: "ariaLabel",
|
|
30323
|
+
isSignal: true,
|
|
30324
|
+
isRequired: false,
|
|
30325
|
+
transformFunction: null
|
|
30326
|
+
},
|
|
30327
|
+
subtitle: {
|
|
30328
|
+
classPropertyName: "subtitle",
|
|
30329
|
+
publicName: "subtitle",
|
|
30330
|
+
isSignal: true,
|
|
30331
|
+
isRequired: false,
|
|
30332
|
+
transformFunction: null
|
|
30333
|
+
},
|
|
30334
|
+
background: {
|
|
30335
|
+
classPropertyName: "background",
|
|
30336
|
+
publicName: "background",
|
|
30337
|
+
isSignal: true,
|
|
30338
|
+
isRequired: false,
|
|
30339
|
+
transformFunction: null
|
|
30340
|
+
},
|
|
30341
|
+
textColor: {
|
|
30342
|
+
classPropertyName: "textColor",
|
|
30343
|
+
publicName: "textColor",
|
|
30344
|
+
isSignal: true,
|
|
30345
|
+
isRequired: false,
|
|
30346
|
+
transformFunction: null
|
|
30347
|
+
},
|
|
30348
|
+
showHeader: {
|
|
30349
|
+
classPropertyName: "showHeader",
|
|
30350
|
+
publicName: "showHeader",
|
|
30351
|
+
isSignal: true,
|
|
30352
|
+
isRequired: false,
|
|
30353
|
+
transformFunction: null
|
|
30354
|
+
},
|
|
30355
|
+
collapsible: {
|
|
30356
|
+
classPropertyName: "collapsible",
|
|
30357
|
+
publicName: "collapsible",
|
|
30358
|
+
isSignal: true,
|
|
30359
|
+
isRequired: false,
|
|
30360
|
+
transformFunction: null
|
|
30361
|
+
},
|
|
30362
|
+
expanded: {
|
|
30363
|
+
classPropertyName: "expanded",
|
|
30364
|
+
publicName: "expanded",
|
|
30365
|
+
isSignal: true,
|
|
30366
|
+
isRequired: false,
|
|
30367
|
+
transformFunction: null
|
|
30368
|
+
},
|
|
30369
|
+
showEdit: {
|
|
30370
|
+
classPropertyName: "showEdit",
|
|
30371
|
+
publicName: "showEdit",
|
|
30372
|
+
isSignal: true,
|
|
30373
|
+
isRequired: false,
|
|
30374
|
+
transformFunction: null
|
|
30375
|
+
},
|
|
30376
|
+
editLabel: {
|
|
30377
|
+
classPropertyName: "editLabel",
|
|
30378
|
+
publicName: "editLabel",
|
|
30379
|
+
isSignal: true,
|
|
30380
|
+
isRequired: false,
|
|
30381
|
+
transformFunction: null
|
|
30382
|
+
}
|
|
30383
|
+
},
|
|
30384
|
+
outputs: {
|
|
30385
|
+
expanded: "expandedChange",
|
|
30386
|
+
editClick: "editClick"
|
|
30387
|
+
},
|
|
30388
|
+
host: {
|
|
30389
|
+
attributes: { "role": "group" },
|
|
28585
30390
|
properties: {
|
|
28586
30391
|
"attr.aria-labelledby": "showHeader() && title() && titleId() ? titleId() : null",
|
|
28587
30392
|
"attr.aria-label": "groupLabel()"
|
|
@@ -28605,7 +30410,7 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
28605
30410
|
}
|
|
28606
30411
|
<ng-content select="[card-header-leading]" />
|
|
28607
30412
|
<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> }
|
|
30413
|
+
@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
30414
|
@if (subtitle()) { <span class="dc-subtitle">{{ subtitle() }}</span> }
|
|
28610
30415
|
<ng-content select="[card-header]" />
|
|
28611
30416
|
</div>
|
|
@@ -28629,7 +30434,7 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
28629
30434
|
</div>
|
|
28630
30435
|
`,
|
|
28631
30436
|
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"],
|
|
30437
|
+
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
30438
|
dependencies: [{
|
|
28634
30439
|
kind: "component",
|
|
28635
30440
|
type: ButtonComponent,
|
|
@@ -28638,6 +30443,7 @@ var DetailCardComponent = class DetailCardComponent {
|
|
|
28638
30443
|
"variant",
|
|
28639
30444
|
"routerLink",
|
|
28640
30445
|
"queryParams",
|
|
30446
|
+
"fragment",
|
|
28641
30447
|
"href",
|
|
28642
30448
|
"target",
|
|
28643
30449
|
"rel",
|
|
@@ -28694,7 +30500,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28694
30500
|
}
|
|
28695
30501
|
<ng-content select="[card-header-leading]" />
|
|
28696
30502
|
<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> }
|
|
30503
|
+
@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
30504
|
@if (subtitle()) { <span class="dc-subtitle">{{ subtitle() }}</span> }
|
|
28699
30505
|
<ng-content select="[card-header]" />
|
|
28700
30506
|
</div>
|
|
@@ -28717,7 +30523,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28717
30523
|
</div>
|
|
28718
30524
|
</div>
|
|
28719
30525
|
`,
|
|
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"]
|
|
30526
|
+
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
30527
|
}]
|
|
28722
30528
|
}],
|
|
28723
30529
|
propDecorators: {
|
|
@@ -28729,6 +30535,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
28729
30535
|
required: false
|
|
28730
30536
|
}]
|
|
28731
30537
|
}],
|
|
30538
|
+
uppercaseTitle: [{
|
|
30539
|
+
type: i0.Input,
|
|
30540
|
+
args: [{
|
|
30541
|
+
isSignal: true,
|
|
30542
|
+
alias: "uppercaseTitle",
|
|
30543
|
+
required: false
|
|
30544
|
+
}]
|
|
30545
|
+
}],
|
|
28732
30546
|
headingLevel: [{
|
|
28733
30547
|
type: i0.Input,
|
|
28734
30548
|
args: [{
|
|
@@ -30248,6 +32062,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
30248
32062
|
}]
|
|
30249
32063
|
}
|
|
30250
32064
|
});
|
|
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 };
|
|
32065
|
+
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
32066
|
|
|
30253
32067
|
//# sourceMappingURL=forgeroute-ui.mjs.map
|