iss-ctrl 0.0.20 → 0.0.21
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/{iss-ctrl-iss-ctrl-BnwwafES.mjs → iss-ctrl-iss-ctrl-BKu6a5HF.mjs} +645 -591
- package/fesm2022/iss-ctrl-iss-ctrl-BKu6a5HF.mjs.map +1 -0
- package/fesm2022/{iss-ctrl-load-event-BcWMow3s.mjs → iss-ctrl-load-event-bOt6IlIo.mjs} +3 -3
- package/fesm2022/{iss-ctrl-load-event-BcWMow3s.mjs.map → iss-ctrl-load-event-bOt6IlIo.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-load-options-event-sTdrxJYn.mjs → iss-ctrl-load-options-event-CxyAyNMe.mjs} +3 -3
- package/fesm2022/{iss-ctrl-load-options-event-sTdrxJYn.mjs.map → iss-ctrl-load-options-event-CxyAyNMe.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-load-value-event-BG9zEexV.mjs → iss-ctrl-load-value-event-DJKJ5S3h.mjs} +3 -3
- package/fesm2022/{iss-ctrl-load-value-event-BG9zEexV.mjs.map → iss-ctrl-load-value-event-DJKJ5S3h.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-note.field-DyOSzuIi.mjs → iss-ctrl-note.field-B_Lbp28X.mjs} +2 -2
- package/fesm2022/{iss-ctrl-note.field-DyOSzuIi.mjs.map → iss-ctrl-note.field-B_Lbp28X.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-replace-api-keys-CzJkn7fK.mjs → iss-ctrl-replace-api-keys-C0XYQW4i.mjs} +2 -2
- package/fesm2022/{iss-ctrl-replace-api-keys-CzJkn7fK.mjs.map → iss-ctrl-replace-api-keys-C0XYQW4i.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-set-value-event-B800MsyP.mjs → iss-ctrl-set-value-event-CgXhi0Bv.mjs} +2 -2
- package/fesm2022/{iss-ctrl-set-value-event-B800MsyP.mjs.map → iss-ctrl-set-value-event-CgXhi0Bv.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-table.field-CJmtpHsh.mjs → iss-ctrl-table.field-B5FxF6hn.mjs} +2 -2
- package/fesm2022/{iss-ctrl-table.field-CJmtpHsh.mjs.map → iss-ctrl-table.field-B5FxF6hn.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-trigger-based-on-json-value-C5x0hyWn.mjs → iss-ctrl-trigger-based-on-json-value-2v1kLVHZ.mjs} +2 -2
- package/fesm2022/{iss-ctrl-trigger-based-on-json-value-C5x0hyWn.mjs.map → iss-ctrl-trigger-based-on-json-value-2v1kLVHZ.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-user-picker.field-CJqIvkMM.mjs → iss-ctrl-user-picker.field-BH63sZ-X.mjs} +2 -2
- package/fesm2022/{iss-ctrl-user-picker.field-CJqIvkMM.mjs.map → iss-ctrl-user-picker.field-BH63sZ-X.mjs.map} +1 -1
- package/fesm2022/iss-ctrl.mjs +1 -1
- package/package.json +1 -1
- package/types/iss-ctrl.d.ts +20 -2
- package/upgrade.scss +30 -18
- package/fesm2022/iss-ctrl-iss-ctrl-BnwwafES.mjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Pipe, input, signal, output, Component, CUSTOM_ELEMENTS_SCHEMA, InjectionToken,
|
|
2
|
+
import { Pipe, input, signal, output, inject, Injector, Component, CUSTOM_ELEMENTS_SCHEMA, InjectionToken, Injectable, effect, HostListener, Directive, computed, ChangeDetectionStrategy, ElementRef, contentChild, isSignal, DestroyRef } from '@angular/core';
|
|
3
3
|
import * as i1$2 from '@angular/forms';
|
|
4
|
-
import { FormControl, ReactiveFormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS, FormGroup, FormsModule, Validators, ControlContainer } from '@angular/forms';
|
|
4
|
+
import { FormControl, NgControl, ReactiveFormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS, FormGroup, FormsModule, Validators, ControlContainer } from '@angular/forms';
|
|
5
5
|
import * as i1 from '@angular/material/checkbox';
|
|
6
6
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
7
7
|
import * as i4 from '@angular/material/chips';
|
|
@@ -145,6 +145,29 @@ class ControlBase {
|
|
|
145
145
|
*/
|
|
146
146
|
onChange = output();
|
|
147
147
|
ctrl = new FormControl(null);
|
|
148
|
+
/**
|
|
149
|
+
* Error state for the inner `mat-form-field`, derived from the **host** control.
|
|
150
|
+
*
|
|
151
|
+
* Material reads `errorState` off the `NgControl` bound to its own `matInput` — here that is
|
|
152
|
+
* {@link ControlBase.ctrl}, which carries no validators and is therefore always valid. Every
|
|
153
|
+
* error a consumer cares about (the field config's validators plus the control's own
|
|
154
|
+
* {@link ControlBase.validate}) lives on the host control instead, so without this matcher an
|
|
155
|
+
* invalid `iss-ctrl-*` would keep rendering the valid outline. Bind it on the `matInput` as
|
|
156
|
+
* `[errorStateMatcher]="errorStateMatcher"`.
|
|
157
|
+
*/
|
|
158
|
+
errorStateMatcher = {
|
|
159
|
+
isErrorState: (_control, form) => {
|
|
160
|
+
const host = this.hostControl();
|
|
161
|
+
if (!host) {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
return !!host.invalid && (!!host.touched || this.touched() || !!form?.submitted);
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
#injector = inject(Injector);
|
|
168
|
+
// Resolved lazily: injecting NgControl in the constructor would close the DI cycle through
|
|
169
|
+
// NG_VALUE_ACCESSOR, which every control provides with `useExisting`.
|
|
170
|
+
#hostControl = undefined;
|
|
148
171
|
registerOnChange(fn) {
|
|
149
172
|
this.onPropagateValue = fn;
|
|
150
173
|
}
|
|
@@ -170,6 +193,16 @@ class ControlBase {
|
|
|
170
193
|
validate(control) {
|
|
171
194
|
return this.ctrl.errors;
|
|
172
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* The `NgControl` this component is bound to from the outside (`formControlName`,
|
|
198
|
+
* `[formControl]` or `[ngModel]`), or `null` when it is used without one.
|
|
199
|
+
*/
|
|
200
|
+
hostControl() {
|
|
201
|
+
if (this.#hostControl === undefined) {
|
|
202
|
+
this.#hostControl = this.#injector.get(NgControl, null, { self: true });
|
|
203
|
+
}
|
|
204
|
+
return this.#hostControl;
|
|
205
|
+
}
|
|
173
206
|
/**
|
|
174
207
|
* Whether the control currently holds no value.
|
|
175
208
|
*
|
|
@@ -210,13 +243,13 @@ class ControlBase {
|
|
|
210
243
|
this.onChange.emit(emissionValue);
|
|
211
244
|
}
|
|
212
245
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ControlBase, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
213
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: ControlBase, isStandalone: true, selector: "ng-component", inputs: { formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, hints: { classPropertyName: "hints", publicName: "hints", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange" }, host: { properties: { "class.iss-ctrl-empty": "isEmpty()" } }, ngImport: i0, template: ``, isInline: true });
|
|
246
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: ControlBase, isStandalone: true, selector: "ng-component", inputs: { formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, hints: { classPropertyName: "hints", publicName: "hints", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange" }, host: { properties: { "class.iss-ctrl-empty": "isEmpty()" }, classAttribute: "iss-ctrl" }, ngImport: i0, template: ``, isInline: true });
|
|
214
247
|
}
|
|
215
248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ControlBase, decorators: [{
|
|
216
249
|
type: Component,
|
|
217
250
|
args: [{
|
|
218
251
|
template: ``,
|
|
219
|
-
host: { "[class.iss-ctrl-empty]": "isEmpty()" }
|
|
252
|
+
host: { "class": "iss-ctrl", "[class.iss-ctrl-empty]": "isEmpty()" }
|
|
220
253
|
}]
|
|
221
254
|
}], propDecorators: { formControlName: [{ type: i0.Input, args: [{ isSignal: true, alias: "formControlName", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], minLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minLength", required: false }] }], maxLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLength", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], hints: [{ type: i0.Input, args: [{ isSignal: true, alias: "hints", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], onChange: [{ type: i0.Output, args: ["onChange"] }] } });
|
|
222
255
|
|
|
@@ -421,31 +454,32 @@ class ChipsControl extends ControlBase {
|
|
|
421
454
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ChipsControl, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
422
455
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ChipsControl, isStandalone: true, selector: "iss-ctrl-chips", providers: [
|
|
423
456
|
{ provide: NG_VALUE_ACCESSOR, useExisting: ChipsControl, multi: true }
|
|
424
|
-
], usesInheritance: true, ngImport: i0, template: `
|
|
425
|
-
<mat-form-field floatLabel="auto" class="">
|
|
426
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
427
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
428
|
-
<ng-content select="label"></ng-content>
|
|
429
|
-
</mat-label>
|
|
430
|
-
<input
|
|
431
|
-
matInput
|
|
432
|
-
[
|
|
433
|
-
[
|
|
434
|
-
[
|
|
435
|
-
[
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
457
|
+
], usesInheritance: true, ngImport: i0, template: `
|
|
458
|
+
<mat-form-field floatLabel="auto" class="">
|
|
459
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
460
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
461
|
+
<ng-content select="label"></ng-content>
|
|
462
|
+
</mat-label>
|
|
463
|
+
<input
|
|
464
|
+
matInput
|
|
465
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
466
|
+
[placeholder]="placeholder()"
|
|
467
|
+
[matChipInputFor]="chipGrid"
|
|
468
|
+
[disabled]="disabled()"
|
|
469
|
+
[readonly]="readonly()"
|
|
470
|
+
(matChipInputTokenEnd)="add($event)"
|
|
471
|
+
/>
|
|
472
|
+
</mat-form-field>
|
|
473
|
+
<mat-chip-grid #chipGrid>
|
|
474
|
+
@for (keyword of keywords(); track keyword) {
|
|
475
|
+
<mat-chip-row (removed)="remove(keyword)">
|
|
476
|
+
{{ keyword }}
|
|
477
|
+
<button matChipRemove [disabled]="disabled() || readonly()">
|
|
478
|
+
<ds-icon icon="trash" class="fc-red"></ds-icon>
|
|
479
|
+
</button>
|
|
480
|
+
</mat-chip-row>
|
|
481
|
+
}
|
|
482
|
+
</mat-chip-grid>
|
|
449
483
|
`, isInline: true, dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "component", type: MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: MatChipRemove, selector: "[matChipRemove]" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }] });
|
|
450
484
|
}
|
|
451
485
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ChipsControl, decorators: [{
|
|
@@ -466,31 +500,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
466
500
|
providers: [
|
|
467
501
|
{ provide: NG_VALUE_ACCESSOR, useExisting: ChipsControl, multi: true }
|
|
468
502
|
],
|
|
469
|
-
template: `
|
|
470
|
-
<mat-form-field floatLabel="auto" class="">
|
|
471
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
472
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
473
|
-
<ng-content select="label"></ng-content>
|
|
474
|
-
</mat-label>
|
|
475
|
-
<input
|
|
476
|
-
matInput
|
|
477
|
-
[
|
|
478
|
-
[
|
|
479
|
-
[
|
|
480
|
-
[
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
503
|
+
template: `
|
|
504
|
+
<mat-form-field floatLabel="auto" class="">
|
|
505
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
506
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
507
|
+
<ng-content select="label"></ng-content>
|
|
508
|
+
</mat-label>
|
|
509
|
+
<input
|
|
510
|
+
matInput
|
|
511
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
512
|
+
[placeholder]="placeholder()"
|
|
513
|
+
[matChipInputFor]="chipGrid"
|
|
514
|
+
[disabled]="disabled()"
|
|
515
|
+
[readonly]="readonly()"
|
|
516
|
+
(matChipInputTokenEnd)="add($event)"
|
|
517
|
+
/>
|
|
518
|
+
</mat-form-field>
|
|
519
|
+
<mat-chip-grid #chipGrid>
|
|
520
|
+
@for (keyword of keywords(); track keyword) {
|
|
521
|
+
<mat-chip-row (removed)="remove(keyword)">
|
|
522
|
+
{{ keyword }}
|
|
523
|
+
<button matChipRemove [disabled]="disabled() || readonly()">
|
|
524
|
+
<ds-icon icon="trash" class="fc-red"></ds-icon>
|
|
525
|
+
</button>
|
|
526
|
+
</mat-chip-row>
|
|
527
|
+
}
|
|
528
|
+
</mat-chip-grid>
|
|
494
529
|
`
|
|
495
530
|
}]
|
|
496
531
|
}] });
|
|
@@ -956,32 +991,33 @@ class DatePickerControl extends ControlBase {
|
|
|
956
991
|
provideIssDateAdapter(),
|
|
957
992
|
{ provide: NG_VALUE_ACCESSOR, useExisting: DatePickerControl, multi: true },
|
|
958
993
|
{ provide: NG_VALIDATORS, useExisting: DatePickerControl, multi: true },
|
|
959
|
-
], usesInheritance: true, ngImport: i0, template: `
|
|
960
|
-
<mat-form-field floatLabel="auto" class="">
|
|
961
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
962
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
963
|
-
<ng-content select="label"></ng-content>
|
|
964
|
-
</mat-label>
|
|
965
|
-
<input
|
|
966
|
-
class="cursor-pointer"
|
|
967
|
-
matInput
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
[
|
|
973
|
-
[
|
|
974
|
-
[
|
|
975
|
-
[
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
<mat-datepicker
|
|
983
|
-
|
|
984
|
-
|
|
994
|
+
], usesInheritance: true, ngImport: i0, template: `
|
|
995
|
+
<mat-form-field floatLabel="auto" class="">
|
|
996
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
997
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
998
|
+
<ng-content select="label"></ng-content>
|
|
999
|
+
</mat-label>
|
|
1000
|
+
<input
|
|
1001
|
+
class="cursor-pointer"
|
|
1002
|
+
matInput
|
|
1003
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
1004
|
+
readonly
|
|
1005
|
+
[matDatepicker]="picker"
|
|
1006
|
+
(click)="openPicker(picker)"
|
|
1007
|
+
[formControl]="ctrl"
|
|
1008
|
+
[readonly]="readonly()"
|
|
1009
|
+
[min]="minDate()"
|
|
1010
|
+
[max]="maxDate()"
|
|
1011
|
+
[matDatepickerFilter]="calendarDaysFilter"
|
|
1012
|
+
(dateChange)="emit($event)"
|
|
1013
|
+
/>
|
|
1014
|
+
@if (ctrl.getRawValue()) {
|
|
1015
|
+
<mat-icon matSuffix style="cursor: pointer" (click)="clear($event)">close</mat-icon>
|
|
1016
|
+
}
|
|
1017
|
+
<mat-datepicker-toggle matIconSuffix [for]="picker" [disabled]="readonly()"></mat-datepicker-toggle>
|
|
1018
|
+
<mat-datepicker #picker [panelClass]="isHijri() ? 'iss-hijri-calendar' : ''"></mat-datepicker>
|
|
1019
|
+
|
|
1020
|
+
</mat-form-field>
|
|
985
1021
|
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
986
1022
|
}
|
|
987
1023
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DatePickerControl, decorators: [{
|
|
@@ -991,32 +1027,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
991
1027
|
provideIssDateAdapter(),
|
|
992
1028
|
{ provide: NG_VALUE_ACCESSOR, useExisting: DatePickerControl, multi: true },
|
|
993
1029
|
{ provide: NG_VALIDATORS, useExisting: DatePickerControl, multi: true },
|
|
994
|
-
], template: `
|
|
995
|
-
<mat-form-field floatLabel="auto" class="">
|
|
996
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
997
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
998
|
-
<ng-content select="label"></ng-content>
|
|
999
|
-
</mat-label>
|
|
1000
|
-
<input
|
|
1001
|
-
class="cursor-pointer"
|
|
1002
|
-
matInput
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
[
|
|
1008
|
-
[
|
|
1009
|
-
[
|
|
1010
|
-
[
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
<mat-datepicker
|
|
1018
|
-
|
|
1019
|
-
|
|
1030
|
+
], template: `
|
|
1031
|
+
<mat-form-field floatLabel="auto" class="">
|
|
1032
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
1033
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
1034
|
+
<ng-content select="label"></ng-content>
|
|
1035
|
+
</mat-label>
|
|
1036
|
+
<input
|
|
1037
|
+
class="cursor-pointer"
|
|
1038
|
+
matInput
|
|
1039
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
1040
|
+
readonly
|
|
1041
|
+
[matDatepicker]="picker"
|
|
1042
|
+
(click)="openPicker(picker)"
|
|
1043
|
+
[formControl]="ctrl"
|
|
1044
|
+
[readonly]="readonly()"
|
|
1045
|
+
[min]="minDate()"
|
|
1046
|
+
[max]="maxDate()"
|
|
1047
|
+
[matDatepickerFilter]="calendarDaysFilter"
|
|
1048
|
+
(dateChange)="emit($event)"
|
|
1049
|
+
/>
|
|
1050
|
+
@if (ctrl.getRawValue()) {
|
|
1051
|
+
<mat-icon matSuffix style="cursor: pointer" (click)="clear($event)">close</mat-icon>
|
|
1052
|
+
}
|
|
1053
|
+
<mat-datepicker-toggle matIconSuffix [for]="picker" [disabled]="readonly()"></mat-datepicker-toggle>
|
|
1054
|
+
<mat-datepicker #picker [panelClass]="isHijri() ? 'iss-hijri-calendar' : ''"></mat-datepicker>
|
|
1055
|
+
|
|
1056
|
+
</mat-form-field>
|
|
1020
1057
|
` }]
|
|
1021
1058
|
}], propDecorators: { disabledDays: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledDays", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], hijriCalendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "hijriCalendar", required: false }] }], emitHijri: [{ type: i0.Input, args: [{ isSignal: true, alias: "emitHijri", required: false }] }] } });
|
|
1022
1059
|
|
|
@@ -1208,42 +1245,44 @@ class DateRangePickerControl extends ControlBase {
|
|
|
1208
1245
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DateRangePickerControl, isStandalone: true, selector: "iss-ctrl-date-range-picker", inputs: { disabledDays: { classPropertyName: "disabledDays", publicName: "disabledDays", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, hijriCalendar: { classPropertyName: "hijriCalendar", publicName: "hijriCalendar", isSignal: true, isRequired: false, transformFunction: null }, emitHijri: { classPropertyName: "emitHijri", publicName: "emitHijri", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDateRangeObjectChange: "onDateRangeObjectChange" }, providers: [
|
|
1209
1246
|
provideIssDateAdapter(),
|
|
1210
1247
|
{ provide: NG_VALUE_ACCESSOR, useExisting: DateRangePickerControl, multi: true },
|
|
1211
|
-
], usesInheritance: true, ngImport: i0, template: `
|
|
1212
|
-
<mat-form-field floatLabel="auto" class="">
|
|
1213
|
-
|
|
1214
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
1215
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
1216
|
-
<ng-content select="label"></ng-content>
|
|
1217
|
-
</mat-label>
|
|
1218
|
-
<mat-date-range-input
|
|
1219
|
-
[formGroup]="range"
|
|
1220
|
-
[rangePicker]="picker"
|
|
1221
|
-
[min]="minDate()"
|
|
1222
|
-
[max]="maxDate()"
|
|
1223
|
-
[dateFilter]="calendarDaysFilter"
|
|
1224
|
-
>
|
|
1225
|
-
<input
|
|
1226
|
-
matStartDate
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
[
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1248
|
+
], usesInheritance: true, ngImport: i0, template: `
|
|
1249
|
+
<mat-form-field floatLabel="auto" class="">
|
|
1250
|
+
|
|
1251
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
1252
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
1253
|
+
<ng-content select="label"></ng-content>
|
|
1254
|
+
</mat-label>
|
|
1255
|
+
<mat-date-range-input
|
|
1256
|
+
[formGroup]="range"
|
|
1257
|
+
[rangePicker]="picker"
|
|
1258
|
+
[min]="minDate()"
|
|
1259
|
+
[max]="maxDate()"
|
|
1260
|
+
[dateFilter]="calendarDaysFilter"
|
|
1261
|
+
>
|
|
1262
|
+
<input
|
|
1263
|
+
matStartDate
|
|
1264
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
1265
|
+
formControlName="start"
|
|
1266
|
+
[readonly]="readonly()"
|
|
1267
|
+
placeholder="dd/mm/yyyy"
|
|
1268
|
+
(click)="openPicker(picker)"
|
|
1269
|
+
/>
|
|
1270
|
+
<input
|
|
1271
|
+
matEndDate
|
|
1272
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
1273
|
+
formControlName="end"
|
|
1274
|
+
[readonly]="readonly()"
|
|
1275
|
+
placeholder="dd/mm/yyyy"
|
|
1276
|
+
(click)="openPicker(picker)"
|
|
1277
|
+
/>
|
|
1278
|
+
</mat-date-range-input>
|
|
1279
|
+
@if (range.getRawValue().start || range.getRawValue().end) {
|
|
1280
|
+
<mat-icon matSuffix style="cursor: pointer" (click)="clear($event)">close</mat-icon>
|
|
1281
|
+
}
|
|
1282
|
+
<mat-datepicker-toggle matSuffix [for]="picker" [disabled]="readonly()"></mat-datepicker-toggle>
|
|
1283
|
+
<mat-date-range-picker #picker [panelClass]="isHijri() ? 'iss-hijri-calendar' : ''"></mat-date-range-picker>
|
|
1284
|
+
|
|
1285
|
+
</mat-form-field>
|
|
1247
1286
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
1248
1287
|
}
|
|
1249
1288
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DateRangePickerControl, decorators: [{
|
|
@@ -1260,42 +1299,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1260
1299
|
provideIssDateAdapter(),
|
|
1261
1300
|
{ provide: NG_VALUE_ACCESSOR, useExisting: DateRangePickerControl, multi: true },
|
|
1262
1301
|
],
|
|
1263
|
-
template: `
|
|
1264
|
-
<mat-form-field floatLabel="auto" class="">
|
|
1265
|
-
|
|
1266
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
1267
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
1268
|
-
<ng-content select="label"></ng-content>
|
|
1269
|
-
</mat-label>
|
|
1270
|
-
<mat-date-range-input
|
|
1271
|
-
[formGroup]="range"
|
|
1272
|
-
[rangePicker]="picker"
|
|
1273
|
-
[min]="minDate()"
|
|
1274
|
-
[max]="maxDate()"
|
|
1275
|
-
[dateFilter]="calendarDaysFilter"
|
|
1276
|
-
>
|
|
1277
|
-
<input
|
|
1278
|
-
matStartDate
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
[
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1302
|
+
template: `
|
|
1303
|
+
<mat-form-field floatLabel="auto" class="">
|
|
1304
|
+
|
|
1305
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
1306
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
1307
|
+
<ng-content select="label"></ng-content>
|
|
1308
|
+
</mat-label>
|
|
1309
|
+
<mat-date-range-input
|
|
1310
|
+
[formGroup]="range"
|
|
1311
|
+
[rangePicker]="picker"
|
|
1312
|
+
[min]="minDate()"
|
|
1313
|
+
[max]="maxDate()"
|
|
1314
|
+
[dateFilter]="calendarDaysFilter"
|
|
1315
|
+
>
|
|
1316
|
+
<input
|
|
1317
|
+
matStartDate
|
|
1318
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
1319
|
+
formControlName="start"
|
|
1320
|
+
[readonly]="readonly()"
|
|
1321
|
+
placeholder="dd/mm/yyyy"
|
|
1322
|
+
(click)="openPicker(picker)"
|
|
1323
|
+
/>
|
|
1324
|
+
<input
|
|
1325
|
+
matEndDate
|
|
1326
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
1327
|
+
formControlName="end"
|
|
1328
|
+
[readonly]="readonly()"
|
|
1329
|
+
placeholder="dd/mm/yyyy"
|
|
1330
|
+
(click)="openPicker(picker)"
|
|
1331
|
+
/>
|
|
1332
|
+
</mat-date-range-input>
|
|
1333
|
+
@if (range.getRawValue().start || range.getRawValue().end) {
|
|
1334
|
+
<mat-icon matSuffix style="cursor: pointer" (click)="clear($event)">close</mat-icon>
|
|
1335
|
+
}
|
|
1336
|
+
<mat-datepicker-toggle matSuffix [for]="picker" [disabled]="readonly()"></mat-datepicker-toggle>
|
|
1337
|
+
<mat-date-range-picker #picker [panelClass]="isHijri() ? 'iss-hijri-calendar' : ''"></mat-date-range-picker>
|
|
1338
|
+
|
|
1339
|
+
</mat-form-field>
|
|
1299
1340
|
`
|
|
1300
1341
|
}]
|
|
1301
1342
|
}], propDecorators: { disabledDays: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledDays", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], hijriCalendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "hijriCalendar", required: false }] }], emitHijri: [{ type: i0.Input, args: [{ isSignal: true, alias: "emitHijri", required: false }] }], onDateRangeObjectChange: [{ type: i0.Output, args: ["onDateRangeObjectChange"] }] } });
|
|
@@ -1381,28 +1422,29 @@ class TimePickerControl extends ControlBase {
|
|
|
1381
1422
|
provideNativeDateAdapter(),
|
|
1382
1423
|
{ provide: NG_VALUE_ACCESSOR, useExisting: TimePickerControl, multi: true },
|
|
1383
1424
|
{ provide: NG_VALIDATORS, useExisting: TimePickerControl, multi: true },
|
|
1384
|
-
], usesInheritance: true, ngImport: i0, template: `
|
|
1385
|
-
<mat-form-field floatLabel="auto" class="">
|
|
1386
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
1387
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
1388
|
-
<ng-content select="label"></ng-content>
|
|
1389
|
-
</mat-label>
|
|
1390
|
-
<input
|
|
1391
|
-
matInput
|
|
1392
|
-
[
|
|
1393
|
-
[
|
|
1394
|
-
[
|
|
1395
|
-
[
|
|
1396
|
-
[
|
|
1397
|
-
readonly
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
<mat-timepicker
|
|
1404
|
-
|
|
1405
|
-
|
|
1425
|
+
], usesInheritance: true, ngImport: i0, template: `
|
|
1426
|
+
<mat-form-field floatLabel="auto" class="">
|
|
1427
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
1428
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
1429
|
+
<ng-content select="label"></ng-content>
|
|
1430
|
+
</mat-label>
|
|
1431
|
+
<input
|
|
1432
|
+
matInput
|
|
1433
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
1434
|
+
[formControl]="ctrl"
|
|
1435
|
+
[matTimepicker]="picker"
|
|
1436
|
+
[matTimepickerMin]="minTime()"
|
|
1437
|
+
[matTimepickerMax]="maxTime()"
|
|
1438
|
+
[readonly]="readonly()"
|
|
1439
|
+
readonly
|
|
1440
|
+
/>
|
|
1441
|
+
@if (ctrl.getRawValue()) {
|
|
1442
|
+
<mat-icon matSuffix style="cursor: pointer" (click)="clear($event)">close</mat-icon>
|
|
1443
|
+
}
|
|
1444
|
+
<mat-timepicker-toggle matIconSuffix [for]="picker" [disabled]="readonly()"/>
|
|
1445
|
+
<mat-timepicker (selected)="emit($event)" [interval]="interval()" #picker/>
|
|
1446
|
+
|
|
1447
|
+
</mat-form-field>
|
|
1406
1448
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatTimepickerModule }, { kind: "component", type: i2$1.MatTimepicker, selector: "mat-timepicker", inputs: ["interval", "options", "disableRipple", "aria-label", "aria-labelledby", "panelClass"], outputs: ["selected", "opened", "closed"], exportAs: ["matTimepicker"] }, { kind: "directive", type: i2$1.MatTimepickerInput, selector: "input[matTimepicker]", inputs: ["value", "matTimepicker", "matTimepickerMin", "matTimepickerMax", "matTimepickerOpenOnClick", "disabled"], outputs: ["valueChange"], exportAs: ["matTimepickerInput"] }, { kind: "component", type: i2$1.MatTimepickerToggle, selector: "mat-timepicker-toggle", inputs: ["for", "aria-label", "aria-labelledby", "disabled", "tabIndex", "disableRipple"], exportAs: ["matTimepickerToggle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
1407
1449
|
}
|
|
1408
1450
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TimePickerControl, decorators: [{
|
|
@@ -1418,28 +1460,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1418
1460
|
{ provide: NG_VALUE_ACCESSOR, useExisting: TimePickerControl, multi: true },
|
|
1419
1461
|
{ provide: NG_VALIDATORS, useExisting: TimePickerControl, multi: true },
|
|
1420
1462
|
],
|
|
1421
|
-
template: `
|
|
1422
|
-
<mat-form-field floatLabel="auto" class="">
|
|
1423
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
1424
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
1425
|
-
<ng-content select="label"></ng-content>
|
|
1426
|
-
</mat-label>
|
|
1427
|
-
<input
|
|
1428
|
-
matInput
|
|
1429
|
-
[
|
|
1430
|
-
[
|
|
1431
|
-
[
|
|
1432
|
-
[
|
|
1433
|
-
[
|
|
1434
|
-
readonly
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
<mat-timepicker
|
|
1441
|
-
|
|
1442
|
-
|
|
1463
|
+
template: `
|
|
1464
|
+
<mat-form-field floatLabel="auto" class="">
|
|
1465
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
1466
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
1467
|
+
<ng-content select="label"></ng-content>
|
|
1468
|
+
</mat-label>
|
|
1469
|
+
<input
|
|
1470
|
+
matInput
|
|
1471
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
1472
|
+
[formControl]="ctrl"
|
|
1473
|
+
[matTimepicker]="picker"
|
|
1474
|
+
[matTimepickerMin]="minTime()"
|
|
1475
|
+
[matTimepickerMax]="maxTime()"
|
|
1476
|
+
[readonly]="readonly()"
|
|
1477
|
+
readonly
|
|
1478
|
+
/>
|
|
1479
|
+
@if (ctrl.getRawValue()) {
|
|
1480
|
+
<mat-icon matSuffix style="cursor: pointer" (click)="clear($event)">close</mat-icon>
|
|
1481
|
+
}
|
|
1482
|
+
<mat-timepicker-toggle matIconSuffix [for]="picker" [disabled]="readonly()"/>
|
|
1483
|
+
<mat-timepicker (selected)="emit($event)" [interval]="interval()" #picker/>
|
|
1484
|
+
|
|
1485
|
+
</mat-form-field>
|
|
1443
1486
|
`,
|
|
1444
1487
|
}]
|
|
1445
1488
|
}], propDecorators: { interval: [{ type: i0.Input, args: [{ isSignal: true, alias: "interval", required: false }] }], minTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "minTime", required: false }] }], maxTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxTime", required: false }] }] } });
|
|
@@ -2052,45 +2095,46 @@ class InputControl extends ControlBase {
|
|
|
2052
2095
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: InputControl, isStandalone: true, selector: "iss-ctrl-input", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, prefixIcon: { classPropertyName: "prefixIcon", publicName: "prefixIcon", isSignal: true, isRequired: false, transformFunction: null }, prefixText: { classPropertyName: "prefixText", publicName: "prefixText", isSignal: true, isRequired: false, transformFunction: null }, suffixIcon: { classPropertyName: "suffixIcon", publicName: "suffixIcon", isSignal: true, isRequired: false, transformFunction: null }, suffixText: { classPropertyName: "suffixText", publicName: "suffixText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPrefixClick: "onPrefixClick", onSuffixClick: "onSuffixClick" }, providers: [
|
|
2053
2096
|
{ provide: NG_VALUE_ACCESSOR, useExisting: InputControl, multi: true },
|
|
2054
2097
|
{ provide: NG_VALIDATORS, useExisting: InputControl, multi: true }
|
|
2055
|
-
], usesInheritance: true, ngImport: i0, template: `
|
|
2056
|
-
<mat-form-field floatLabel="auto" class="">
|
|
2057
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
2058
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
2059
|
-
<ng-content select="label"></ng-content>
|
|
2060
|
-
</mat-label>
|
|
2061
|
-
<ng-content select="[issPrefix]"></ng-content>
|
|
2062
|
-
<div (click)="emitPrefixClick()" class="cursor-pointer">
|
|
2063
|
-
@if (prefixText()) {
|
|
2064
|
-
<span matTextPrefix>{{ prefixText() }}</span>
|
|
2065
|
-
}
|
|
2066
|
-
@if (prefixIcon()) {
|
|
2067
|
-
<ds-icon matPrefix icon="{{prefixIcon()}}"></ds-icon>
|
|
2068
|
-
}
|
|
2069
|
-
</div>
|
|
2070
|
-
<input
|
|
2071
|
-
matInput
|
|
2072
|
-
|
|
2073
|
-
(
|
|
2074
|
-
|
|
2075
|
-
[
|
|
2076
|
-
[attr.
|
|
2077
|
-
[attr.
|
|
2078
|
-
[attr.
|
|
2079
|
-
[
|
|
2080
|
-
[
|
|
2081
|
-
[
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
<
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2098
|
+
], usesInheritance: true, ngImport: i0, template: `
|
|
2099
|
+
<mat-form-field floatLabel="auto" class="">
|
|
2100
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
2101
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
2102
|
+
<ng-content select="label"></ng-content>
|
|
2103
|
+
</mat-label>
|
|
2104
|
+
<ng-content select="[issPrefix]"></ng-content>
|
|
2105
|
+
<div (click)="emitPrefixClick()" class="cursor-pointer">
|
|
2106
|
+
@if (prefixText()) {
|
|
2107
|
+
<span matTextPrefix>{{ prefixText() }}</span>
|
|
2108
|
+
}
|
|
2109
|
+
@if (prefixIcon()) {
|
|
2110
|
+
<ds-icon matPrefix icon="{{prefixIcon()}}"></ds-icon>
|
|
2111
|
+
}
|
|
2112
|
+
</div>
|
|
2113
|
+
<input
|
|
2114
|
+
matInput
|
|
2115
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
2116
|
+
(blur)="markAsTouched()"
|
|
2117
|
+
(input)="emitValue()"
|
|
2118
|
+
[formControl]="ctrl"
|
|
2119
|
+
[attr.maxlength]="maxLength()"
|
|
2120
|
+
[attr.minlength]="minLength()"
|
|
2121
|
+
[attr.max]="max()"
|
|
2122
|
+
[attr.min]="min()"
|
|
2123
|
+
[placeholder]="placeholder()"
|
|
2124
|
+
[readonly]="readonly()"
|
|
2125
|
+
[type]="type()"
|
|
2126
|
+
/>
|
|
2127
|
+
<ng-content select="[issSuffix]"></ng-content>
|
|
2128
|
+
<div (click)="emitSuffixClick()" class="cursor-pointer">
|
|
2129
|
+
@if (suffixText()) {
|
|
2130
|
+
<span matTextSuffix>{{ suffixText() }}</span>
|
|
2131
|
+
}
|
|
2132
|
+
@if (suffixIcon()) {
|
|
2133
|
+
<ds-icon matSuffix icon="{{suffixIcon()}}"></ds-icon>
|
|
2134
|
+
}
|
|
2135
|
+
</div>
|
|
2136
|
+
<iss-ctrl-hints [hints]="hints()" [touched]="touched()"/>
|
|
2137
|
+
</mat-form-field>
|
|
2094
2138
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i1$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: Hints, selector: "iss-ctrl-hints", inputs: ["hints", "touched"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatInputModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2095
2139
|
}
|
|
2096
2140
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: InputControl, decorators: [{
|
|
@@ -2110,45 +2154,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
2110
2154
|
{ provide: NG_VALUE_ACCESSOR, useExisting: InputControl, multi: true },
|
|
2111
2155
|
{ provide: NG_VALIDATORS, useExisting: InputControl, multi: true }
|
|
2112
2156
|
],
|
|
2113
|
-
template: `
|
|
2114
|
-
<mat-form-field floatLabel="auto" class="">
|
|
2115
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
2116
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
2117
|
-
<ng-content select="label"></ng-content>
|
|
2118
|
-
</mat-label>
|
|
2119
|
-
<ng-content select="[issPrefix]"></ng-content>
|
|
2120
|
-
<div (click)="emitPrefixClick()" class="cursor-pointer">
|
|
2121
|
-
@if (prefixText()) {
|
|
2122
|
-
<span matTextPrefix>{{ prefixText() }}</span>
|
|
2123
|
-
}
|
|
2124
|
-
@if (prefixIcon()) {
|
|
2125
|
-
<ds-icon matPrefix icon="{{prefixIcon()}}"></ds-icon>
|
|
2126
|
-
}
|
|
2127
|
-
</div>
|
|
2128
|
-
<input
|
|
2129
|
-
matInput
|
|
2130
|
-
|
|
2131
|
-
(
|
|
2132
|
-
|
|
2133
|
-
[
|
|
2134
|
-
[attr.
|
|
2135
|
-
[attr.
|
|
2136
|
-
[attr.
|
|
2137
|
-
[
|
|
2138
|
-
[
|
|
2139
|
-
[
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
<
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2157
|
+
template: `
|
|
2158
|
+
<mat-form-field floatLabel="auto" class="">
|
|
2159
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
2160
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
2161
|
+
<ng-content select="label"></ng-content>
|
|
2162
|
+
</mat-label>
|
|
2163
|
+
<ng-content select="[issPrefix]"></ng-content>
|
|
2164
|
+
<div (click)="emitPrefixClick()" class="cursor-pointer">
|
|
2165
|
+
@if (prefixText()) {
|
|
2166
|
+
<span matTextPrefix>{{ prefixText() }}</span>
|
|
2167
|
+
}
|
|
2168
|
+
@if (prefixIcon()) {
|
|
2169
|
+
<ds-icon matPrefix icon="{{prefixIcon()}}"></ds-icon>
|
|
2170
|
+
}
|
|
2171
|
+
</div>
|
|
2172
|
+
<input
|
|
2173
|
+
matInput
|
|
2174
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
2175
|
+
(blur)="markAsTouched()"
|
|
2176
|
+
(input)="emitValue()"
|
|
2177
|
+
[formControl]="ctrl"
|
|
2178
|
+
[attr.maxlength]="maxLength()"
|
|
2179
|
+
[attr.minlength]="minLength()"
|
|
2180
|
+
[attr.max]="max()"
|
|
2181
|
+
[attr.min]="min()"
|
|
2182
|
+
[placeholder]="placeholder()"
|
|
2183
|
+
[readonly]="readonly()"
|
|
2184
|
+
[type]="type()"
|
|
2185
|
+
/>
|
|
2186
|
+
<ng-content select="[issSuffix]"></ng-content>
|
|
2187
|
+
<div (click)="emitSuffixClick()" class="cursor-pointer">
|
|
2188
|
+
@if (suffixText()) {
|
|
2189
|
+
<span matTextSuffix>{{ suffixText() }}</span>
|
|
2190
|
+
}
|
|
2191
|
+
@if (suffixIcon()) {
|
|
2192
|
+
<ds-icon matSuffix icon="{{suffixIcon()}}"></ds-icon>
|
|
2193
|
+
}
|
|
2194
|
+
</div>
|
|
2195
|
+
<iss-ctrl-hints [hints]="hints()" [touched]="touched()"/>
|
|
2196
|
+
</mat-form-field>
|
|
2152
2197
|
`
|
|
2153
2198
|
}]
|
|
2154
2199
|
}], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], prefixIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefixIcon", required: false }] }], prefixText: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefixText", required: false }] }], suffixIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffixIcon", required: false }] }], suffixText: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffixText", required: false }] }], onPrefixClick: [{ type: i0.Output, args: ["onPrefixClick"] }], onSuffixClick: [{ type: i0.Output, args: ["onSuffixClick"] }] } });
|
|
@@ -4446,67 +4491,68 @@ class MobileControl extends ControlBase {
|
|
|
4446
4491
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: MobileControl, isStandalone: true, selector: "iss-ctrl-mobile", inputs: { preferredCountries: { classPropertyName: "preferredCountries", publicName: "preferredCountries", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
4447
4492
|
{ provide: NG_VALUE_ACCESSOR, useExisting: MobileControl, multi: true },
|
|
4448
4493
|
{ provide: NG_VALIDATORS, useExisting: MobileControl, multi: true }
|
|
4449
|
-
], usesInheritance: true, ngImport: i0, template: `
|
|
4450
|
-
<mat-form-field floatLabel="auto" cdkOverlayOrigin #trigger="cdkOverlayOrigin">
|
|
4451
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
4452
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
4453
|
-
<ng-content select="label"></ng-content>
|
|
4454
|
-
</mat-label>
|
|
4455
|
-
<div class="d-inline-flex align-items-center gap-1 country-flag" matPrefix (click)="toggleCountryCodeMenu()">
|
|
4456
|
-
<img
|
|
4457
|
-
ngSrc="./flags/{{selectedCountry().code.toLowerCase()}}.svg"
|
|
4458
|
-
width="20"
|
|
4459
|
-
height="20"
|
|
4460
|
-
[alt]="selectedCountry().code.toLowerCase()"
|
|
4461
|
-
class="country-flag--image"
|
|
4462
|
-
[priority]="true"
|
|
4463
|
-
>
|
|
4464
|
-
<ds-icon icon="arrow-down" class="fs-12 fc-dark-gray"></ds-icon>
|
|
4465
|
-
</div>
|
|
4466
|
-
<input
|
|
4467
|
-
matInput
|
|
4468
|
-
type="tel"
|
|
4469
|
-
autocomplete="off"
|
|
4470
|
-
(blur)="markAsTouched()"
|
|
4471
|
-
(keydown)="onInput($event)"
|
|
4472
|
-
(input)="emit()"
|
|
4473
|
-
[formControl]="ctrl"
|
|
4474
|
-
[readonly]="readonly()"
|
|
4475
|
-
[placeholder]="selectedCountry().placeholder"
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
[
|
|
4484
|
-
[
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
<span class="fs-12 fc-
|
|
4505
|
-
|
|
4506
|
-
|
|
4507
|
-
|
|
4508
|
-
|
|
4509
|
-
|
|
4494
|
+
], usesInheritance: true, ngImport: i0, template: `
|
|
4495
|
+
<mat-form-field floatLabel="auto" cdkOverlayOrigin #trigger="cdkOverlayOrigin">
|
|
4496
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
4497
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
4498
|
+
<ng-content select="label"></ng-content>
|
|
4499
|
+
</mat-label>
|
|
4500
|
+
<div class="d-inline-flex align-items-center gap-1 country-flag" matPrefix (click)="toggleCountryCodeMenu()">
|
|
4501
|
+
<img
|
|
4502
|
+
ngSrc="./flags/{{selectedCountry().code.toLowerCase()}}.svg"
|
|
4503
|
+
width="20"
|
|
4504
|
+
height="20"
|
|
4505
|
+
[alt]="selectedCountry().code.toLowerCase()"
|
|
4506
|
+
class="country-flag--image"
|
|
4507
|
+
[priority]="true"
|
|
4508
|
+
>
|
|
4509
|
+
<ds-icon icon="arrow-down" class="fs-12 fc-dark-gray"></ds-icon>
|
|
4510
|
+
</div>
|
|
4511
|
+
<input
|
|
4512
|
+
matInput
|
|
4513
|
+
type="tel"
|
|
4514
|
+
autocomplete="off"
|
|
4515
|
+
(blur)="markAsTouched()"
|
|
4516
|
+
(keydown)="onInput($event)"
|
|
4517
|
+
(input)="emit()"
|
|
4518
|
+
[formControl]="ctrl"
|
|
4519
|
+
[readonly]="readonly()"
|
|
4520
|
+
[placeholder]="selectedCountry().placeholder"
|
|
4521
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
4522
|
+
/>
|
|
4523
|
+
</mat-form-field>
|
|
4524
|
+
<ng-template
|
|
4525
|
+
cdkConnectedOverlay
|
|
4526
|
+
[cdkConnectedOverlayHasBackdrop]="true"
|
|
4527
|
+
(backdropClick)="closeCountryCodeMenu()"
|
|
4528
|
+
[cdkConnectedOverlayGrowAfterOpen]="true"
|
|
4529
|
+
[cdkConnectedOverlayOrigin]="trigger"
|
|
4530
|
+
[cdkConnectedOverlayOpen]="isOpen()"
|
|
4531
|
+
>
|
|
4532
|
+
<div class="country-dropdown bc-white box-shadow p-2">
|
|
4533
|
+
<div class="search-container">
|
|
4534
|
+
<mat-form-field>
|
|
4535
|
+
<input matInput id="country-search-box" [formControl]="searchInput" (click)="$event.stopPropagation()"/>
|
|
4536
|
+
</mat-form-field>
|
|
4537
|
+
</div>
|
|
4538
|
+
<ul class="country-list">
|
|
4539
|
+
@for (country of filteredCountries(); track $index) {
|
|
4540
|
+
<li
|
|
4541
|
+
#countryEl
|
|
4542
|
+
[ngClass]="country.order > 1 ? 'preferredCounty' : ''"
|
|
4543
|
+
class="d-flex align-items-center gap-2 cursor-pointer p-2"
|
|
4544
|
+
(click)="onSelectCountry(country)"
|
|
4545
|
+
>
|
|
4546
|
+
@defer (on viewport(countryEl)) {
|
|
4547
|
+
<img ngSrc="./flags/{{country.code.toLowerCase()}}.svg" width="20" height="20" alt="" class="country-flag--image">
|
|
4548
|
+
}
|
|
4549
|
+
<span class="fs-12 fc-dark-gray">(+{{ country.dailCode }})</span>
|
|
4550
|
+
<span class="fs-12 fc-black">{{ country.name }}</span>
|
|
4551
|
+
</li>
|
|
4552
|
+
}
|
|
4553
|
+
</ul>
|
|
4554
|
+
</div>
|
|
4555
|
+
</ng-template>
|
|
4510
4556
|
`, isInline: true, styles: [".country-flag{border-inline-end:var(--input-border);padding-inline-end:.5rem;margin-inline-end:.5rem;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "decoding", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }], deferBlockDependencies: [() => [NgOptimizedImage]] });
|
|
4511
4557
|
}
|
|
4512
4558
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: MobileControl, decorators: [{
|
|
@@ -4524,67 +4570,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
4524
4570
|
], providers: [
|
|
4525
4571
|
{ provide: NG_VALUE_ACCESSOR, useExisting: MobileControl, multi: true },
|
|
4526
4572
|
{ provide: NG_VALIDATORS, useExisting: MobileControl, multi: true }
|
|
4527
|
-
], template: `
|
|
4528
|
-
<mat-form-field floatLabel="auto" cdkOverlayOrigin #trigger="cdkOverlayOrigin">
|
|
4529
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
4530
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
4531
|
-
<ng-content select="label"></ng-content>
|
|
4532
|
-
</mat-label>
|
|
4533
|
-
<div class="d-inline-flex align-items-center gap-1 country-flag" matPrefix (click)="toggleCountryCodeMenu()">
|
|
4534
|
-
<img
|
|
4535
|
-
ngSrc="./flags/{{selectedCountry().code.toLowerCase()}}.svg"
|
|
4536
|
-
width="20"
|
|
4537
|
-
height="20"
|
|
4538
|
-
[alt]="selectedCountry().code.toLowerCase()"
|
|
4539
|
-
class="country-flag--image"
|
|
4540
|
-
[priority]="true"
|
|
4541
|
-
>
|
|
4542
|
-
<ds-icon icon="arrow-down" class="fs-12 fc-dark-gray"></ds-icon>
|
|
4543
|
-
</div>
|
|
4544
|
-
<input
|
|
4545
|
-
matInput
|
|
4546
|
-
type="tel"
|
|
4547
|
-
autocomplete="off"
|
|
4548
|
-
(blur)="markAsTouched()"
|
|
4549
|
-
(keydown)="onInput($event)"
|
|
4550
|
-
(input)="emit()"
|
|
4551
|
-
[formControl]="ctrl"
|
|
4552
|
-
[readonly]="readonly()"
|
|
4553
|
-
[placeholder]="selectedCountry().placeholder"
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4561
|
-
[
|
|
4562
|
-
[
|
|
4563
|
-
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
|
|
4568
|
-
|
|
4569
|
-
|
|
4570
|
-
|
|
4571
|
-
|
|
4572
|
-
|
|
4573
|
-
|
|
4574
|
-
|
|
4575
|
-
|
|
4576
|
-
|
|
4577
|
-
|
|
4578
|
-
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
<span class="fs-12 fc-
|
|
4583
|
-
|
|
4584
|
-
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
|
|
4573
|
+
], template: `
|
|
4574
|
+
<mat-form-field floatLabel="auto" cdkOverlayOrigin #trigger="cdkOverlayOrigin">
|
|
4575
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
4576
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
4577
|
+
<ng-content select="label"></ng-content>
|
|
4578
|
+
</mat-label>
|
|
4579
|
+
<div class="d-inline-flex align-items-center gap-1 country-flag" matPrefix (click)="toggleCountryCodeMenu()">
|
|
4580
|
+
<img
|
|
4581
|
+
ngSrc="./flags/{{selectedCountry().code.toLowerCase()}}.svg"
|
|
4582
|
+
width="20"
|
|
4583
|
+
height="20"
|
|
4584
|
+
[alt]="selectedCountry().code.toLowerCase()"
|
|
4585
|
+
class="country-flag--image"
|
|
4586
|
+
[priority]="true"
|
|
4587
|
+
>
|
|
4588
|
+
<ds-icon icon="arrow-down" class="fs-12 fc-dark-gray"></ds-icon>
|
|
4589
|
+
</div>
|
|
4590
|
+
<input
|
|
4591
|
+
matInput
|
|
4592
|
+
type="tel"
|
|
4593
|
+
autocomplete="off"
|
|
4594
|
+
(blur)="markAsTouched()"
|
|
4595
|
+
(keydown)="onInput($event)"
|
|
4596
|
+
(input)="emit()"
|
|
4597
|
+
[formControl]="ctrl"
|
|
4598
|
+
[readonly]="readonly()"
|
|
4599
|
+
[placeholder]="selectedCountry().placeholder"
|
|
4600
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
4601
|
+
/>
|
|
4602
|
+
</mat-form-field>
|
|
4603
|
+
<ng-template
|
|
4604
|
+
cdkConnectedOverlay
|
|
4605
|
+
[cdkConnectedOverlayHasBackdrop]="true"
|
|
4606
|
+
(backdropClick)="closeCountryCodeMenu()"
|
|
4607
|
+
[cdkConnectedOverlayGrowAfterOpen]="true"
|
|
4608
|
+
[cdkConnectedOverlayOrigin]="trigger"
|
|
4609
|
+
[cdkConnectedOverlayOpen]="isOpen()"
|
|
4610
|
+
>
|
|
4611
|
+
<div class="country-dropdown bc-white box-shadow p-2">
|
|
4612
|
+
<div class="search-container">
|
|
4613
|
+
<mat-form-field>
|
|
4614
|
+
<input matInput id="country-search-box" [formControl]="searchInput" (click)="$event.stopPropagation()"/>
|
|
4615
|
+
</mat-form-field>
|
|
4616
|
+
</div>
|
|
4617
|
+
<ul class="country-list">
|
|
4618
|
+
@for (country of filteredCountries(); track $index) {
|
|
4619
|
+
<li
|
|
4620
|
+
#countryEl
|
|
4621
|
+
[ngClass]="country.order > 1 ? 'preferredCounty' : ''"
|
|
4622
|
+
class="d-flex align-items-center gap-2 cursor-pointer p-2"
|
|
4623
|
+
(click)="onSelectCountry(country)"
|
|
4624
|
+
>
|
|
4625
|
+
@defer (on viewport(countryEl)) {
|
|
4626
|
+
<img ngSrc="./flags/{{country.code.toLowerCase()}}.svg" width="20" height="20" alt="" class="country-flag--image">
|
|
4627
|
+
}
|
|
4628
|
+
<span class="fs-12 fc-dark-gray">(+{{ country.dailCode }})</span>
|
|
4629
|
+
<span class="fs-12 fc-black">{{ country.name }}</span>
|
|
4630
|
+
</li>
|
|
4631
|
+
}
|
|
4632
|
+
</ul>
|
|
4633
|
+
</div>
|
|
4634
|
+
</ng-template>
|
|
4588
4635
|
`, styles: [".country-flag{border-inline-end:var(--input-border);padding-inline-end:.5rem;margin-inline-end:.5rem;cursor:pointer}\n"] }]
|
|
4589
4636
|
}], propDecorators: { preferredCountries: [{ type: i0.Input, args: [{ isSignal: true, alias: "preferredCountries", required: false }] }] } });
|
|
4590
4637
|
|
|
@@ -5301,6 +5348,11 @@ class SelectControl extends ControlBase {
|
|
|
5301
5348
|
this.#queryEffectRef.destroy();
|
|
5302
5349
|
this.#disabledEffectRef.destroy();
|
|
5303
5350
|
}
|
|
5351
|
+
// the selection is the value here; `ctrl` doubles as the autocomplete's search box, so while
|
|
5352
|
+
// the user is typing a query it holds that string rather than the chosen options.
|
|
5353
|
+
isEmpty() {
|
|
5354
|
+
return this.selectedOptions().size === 0;
|
|
5355
|
+
}
|
|
5304
5356
|
#addToSelectedOptionsMap(option) {
|
|
5305
5357
|
if (option) {
|
|
5306
5358
|
const selectedOption = option;
|
|
@@ -5344,67 +5396,67 @@ class SelectControl extends ControlBase {
|
|
|
5344
5396
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SelectControl, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5345
5397
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SelectControl, isStandalone: true, selector: "iss-ctrl-select", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onQueryChange: "onQueryChange" }, providers: [
|
|
5346
5398
|
{ provide: NG_VALUE_ACCESSOR, useExisting: SelectControl, multi: true },
|
|
5347
|
-
], queries: [{ propertyName: "optionTemplate", first: true, predicate: ["optionTemplate"], descendants: true, isSignal: true }, { propertyName: "cardViewerTemplate", first: true, predicate: ["cardViewerTemplate"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
5348
|
-
<mat-form-field floatLabel="auto" class="">
|
|
5349
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
5350
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
5351
|
-
<ng-content select="label"></ng-content>
|
|
5352
|
-
</mat-label>
|
|
5353
|
-
<input [formControl]="ctrl" [matAutocomplete]="auto" [matChipInputFor]="chipGrid" [placeholder]="placeholder()" [readonly]="readonly()" (blur)="markAsTouched()" class="m-0" matInput/>
|
|
5354
|
-
@if (!disabled()) {
|
|
5355
|
-
@if (selectedOptions().size) {
|
|
5356
|
-
<span matSuffix class="sfi sfi-close fs-18 fc-black cursor-pointer" (click)="clearSelection()"></span>
|
|
5357
|
-
} @else {
|
|
5358
|
-
<span matSuffix class="sfi sfi-arrow-down fs-18 fc-black cursor-pointer"></span>
|
|
5359
|
-
}
|
|
5360
|
-
}
|
|
5361
|
-
|
|
5362
|
-
<mat-autocomplete #auto="matAutocomplete" (optionSelected)="captureValue($event)" [displayWith]="displayFn" autoActiveFirstOption hideSingleSelectionIndicator>
|
|
5363
|
-
@if (loading()) {
|
|
5364
|
-
<mat-option disabled="true">
|
|
5365
|
-
<ds-icon icon="spinner" class="spin fc-coral fs-20"></ds-icon>
|
|
5366
|
-
</mat-option>
|
|
5367
|
-
} @else {
|
|
5368
|
-
@if (filteredOptions().length) {
|
|
5369
|
-
@if (multiple()) {
|
|
5370
|
-
<mat-option (click)="toggleAllSelection()" value="_SELECT_ALL_OPTIONS_">
|
|
5371
|
-
{{ allSelected() ? "deselect all" : "Select All" }}
|
|
5372
|
-
</mat-option>
|
|
5373
|
-
}
|
|
5374
|
-
<cdk-virtual-scroll-viewport itemSize="5" [ngStyle]="{'height': height()}">
|
|
5375
|
-
<mat-option *cdkVirtualFor="let option of filteredOptions()" [value]="option" [ngClass]="{'mdc-list-item__selected': option | selectStatus: selectedOptions()}">
|
|
5376
|
-
@if (optionTemplate()) {
|
|
5377
|
-
<ng-container *ngTemplateOutlet="optionTemplate(); context: { $implicit: option}"/>
|
|
5378
|
-
} @else {
|
|
5379
|
-
{{ option.label }}
|
|
5380
|
-
}
|
|
5381
|
-
</mat-option>
|
|
5382
|
-
</cdk-virtual-scroll-viewport>
|
|
5383
|
-
} @else {
|
|
5384
|
-
<mat-option disabled="true">No Result Found</mat-option>
|
|
5385
|
-
}
|
|
5386
|
-
}
|
|
5387
|
-
</mat-autocomplete>
|
|
5388
|
-
</mat-form-field>
|
|
5389
|
-
|
|
5390
|
-
<mat-chip-grid #chipGrid>
|
|
5391
|
-
@if (multiple()) {
|
|
5392
|
-
@for (chip of selectedOptions(); track chip[0]) {
|
|
5393
|
-
<mat-chip-row (removed)="removeFromSelectedOptionsMap(chip[1])">
|
|
5394
|
-
@if (cardViewerTemplate()) {
|
|
5395
|
-
<ng-container
|
|
5396
|
-
*ngTemplateOutlet="cardViewerTemplate(); context: { $implicit: chip[1]}"
|
|
5397
|
-
/>
|
|
5398
|
-
} @else {
|
|
5399
|
-
{{ chip[1].label }}
|
|
5400
|
-
}
|
|
5401
|
-
<button matChipRemove [disabled]="readonly()" [attr.aria-label]="'remove ' + chip[1].label">
|
|
5402
|
-
<ds-icon icon="trash" class="fc-red"></ds-icon>
|
|
5403
|
-
</button>
|
|
5404
|
-
</mat-chip-row>
|
|
5405
|
-
}
|
|
5406
|
-
}
|
|
5407
|
-
</mat-chip-grid>
|
|
5399
|
+
], queries: [{ propertyName: "optionTemplate", first: true, predicate: ["optionTemplate"], descendants: true, isSignal: true }, { propertyName: "cardViewerTemplate", first: true, predicate: ["cardViewerTemplate"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
5400
|
+
<mat-form-field floatLabel="auto" class="">
|
|
5401
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
5402
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
5403
|
+
<ng-content select="label"></ng-content>
|
|
5404
|
+
</mat-label>
|
|
5405
|
+
<input [formControl]="ctrl" [matAutocomplete]="auto" [matChipInputFor]="chipGrid" [placeholder]="placeholder()" [readonly]="readonly()" [errorStateMatcher]="errorStateMatcher" (blur)="markAsTouched()" class="m-0" matInput/>
|
|
5406
|
+
@if (!disabled()) {
|
|
5407
|
+
@if (selectedOptions().size) {
|
|
5408
|
+
<span matSuffix class="sfi sfi-close fs-18 fc-black cursor-pointer" (click)="clearSelection()"></span>
|
|
5409
|
+
} @else {
|
|
5410
|
+
<span matSuffix class="sfi sfi-arrow-down fs-18 fc-black cursor-pointer"></span>
|
|
5411
|
+
}
|
|
5412
|
+
}
|
|
5413
|
+
|
|
5414
|
+
<mat-autocomplete #auto="matAutocomplete" (optionSelected)="captureValue($event)" [displayWith]="displayFn" autoActiveFirstOption hideSingleSelectionIndicator>
|
|
5415
|
+
@if (loading()) {
|
|
5416
|
+
<mat-option disabled="true">
|
|
5417
|
+
<ds-icon icon="spinner" class="spin fc-coral fs-20"></ds-icon>
|
|
5418
|
+
</mat-option>
|
|
5419
|
+
} @else {
|
|
5420
|
+
@if (filteredOptions().length) {
|
|
5421
|
+
@if (multiple()) {
|
|
5422
|
+
<mat-option (click)="toggleAllSelection()" value="_SELECT_ALL_OPTIONS_">
|
|
5423
|
+
{{ allSelected() ? "deselect all" : "Select All" }}
|
|
5424
|
+
</mat-option>
|
|
5425
|
+
}
|
|
5426
|
+
<cdk-virtual-scroll-viewport itemSize="5" [ngStyle]="{'height': height()}">
|
|
5427
|
+
<mat-option *cdkVirtualFor="let option of filteredOptions()" [value]="option" [ngClass]="{'mdc-list-item__selected': option | selectStatus: selectedOptions()}">
|
|
5428
|
+
@if (optionTemplate()) {
|
|
5429
|
+
<ng-container *ngTemplateOutlet="optionTemplate(); context: { $implicit: option}"/>
|
|
5430
|
+
} @else {
|
|
5431
|
+
{{ option.label }}
|
|
5432
|
+
}
|
|
5433
|
+
</mat-option>
|
|
5434
|
+
</cdk-virtual-scroll-viewport>
|
|
5435
|
+
} @else {
|
|
5436
|
+
<mat-option disabled="true">No Result Found</mat-option>
|
|
5437
|
+
}
|
|
5438
|
+
}
|
|
5439
|
+
</mat-autocomplete>
|
|
5440
|
+
</mat-form-field>
|
|
5441
|
+
|
|
5442
|
+
<mat-chip-grid #chipGrid>
|
|
5443
|
+
@if (multiple()) {
|
|
5444
|
+
@for (chip of selectedOptions(); track chip[0]) {
|
|
5445
|
+
<mat-chip-row (removed)="removeFromSelectedOptionsMap(chip[1])">
|
|
5446
|
+
@if (cardViewerTemplate()) {
|
|
5447
|
+
<ng-container
|
|
5448
|
+
*ngTemplateOutlet="cardViewerTemplate(); context: { $implicit: chip[1]}"
|
|
5449
|
+
/>
|
|
5450
|
+
} @else {
|
|
5451
|
+
{{ chip[1].label }}
|
|
5452
|
+
}
|
|
5453
|
+
<button matChipRemove [disabled]="readonly()" [attr.aria-label]="'remove ' + chip[1].label">
|
|
5454
|
+
<ds-icon icon="trash" class="fc-red"></ds-icon>
|
|
5455
|
+
</button>
|
|
5456
|
+
</mat-chip-row>
|
|
5457
|
+
}
|
|
5458
|
+
}
|
|
5459
|
+
</mat-chip-grid>
|
|
5408
5460
|
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SelectStatusPipe, name: "selectStatus" }] });
|
|
5409
5461
|
}
|
|
5410
5462
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SelectControl, decorators: [{
|
|
@@ -5424,67 +5476,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
5424
5476
|
NgTemplateOutlet,
|
|
5425
5477
|
], providers: [
|
|
5426
5478
|
{ provide: NG_VALUE_ACCESSOR, useExisting: SelectControl, multi: true },
|
|
5427
|
-
], template: `
|
|
5428
|
-
<mat-form-field floatLabel="auto" class="">
|
|
5429
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
5430
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
5431
|
-
<ng-content select="label"></ng-content>
|
|
5432
|
-
</mat-label>
|
|
5433
|
-
<input [formControl]="ctrl" [matAutocomplete]="auto" [matChipInputFor]="chipGrid" [placeholder]="placeholder()" [readonly]="readonly()" (blur)="markAsTouched()" class="m-0" matInput/>
|
|
5434
|
-
@if (!disabled()) {
|
|
5435
|
-
@if (selectedOptions().size) {
|
|
5436
|
-
<span matSuffix class="sfi sfi-close fs-18 fc-black cursor-pointer" (click)="clearSelection()"></span>
|
|
5437
|
-
} @else {
|
|
5438
|
-
<span matSuffix class="sfi sfi-arrow-down fs-18 fc-black cursor-pointer"></span>
|
|
5439
|
-
}
|
|
5440
|
-
}
|
|
5441
|
-
|
|
5442
|
-
<mat-autocomplete #auto="matAutocomplete" (optionSelected)="captureValue($event)" [displayWith]="displayFn" autoActiveFirstOption hideSingleSelectionIndicator>
|
|
5443
|
-
@if (loading()) {
|
|
5444
|
-
<mat-option disabled="true">
|
|
5445
|
-
<ds-icon icon="spinner" class="spin fc-coral fs-20"></ds-icon>
|
|
5446
|
-
</mat-option>
|
|
5447
|
-
} @else {
|
|
5448
|
-
@if (filteredOptions().length) {
|
|
5449
|
-
@if (multiple()) {
|
|
5450
|
-
<mat-option (click)="toggleAllSelection()" value="_SELECT_ALL_OPTIONS_">
|
|
5451
|
-
{{ allSelected() ? "deselect all" : "Select All" }}
|
|
5452
|
-
</mat-option>
|
|
5453
|
-
}
|
|
5454
|
-
<cdk-virtual-scroll-viewport itemSize="5" [ngStyle]="{'height': height()}">
|
|
5455
|
-
<mat-option *cdkVirtualFor="let option of filteredOptions()" [value]="option" [ngClass]="{'mdc-list-item__selected': option | selectStatus: selectedOptions()}">
|
|
5456
|
-
@if (optionTemplate()) {
|
|
5457
|
-
<ng-container *ngTemplateOutlet="optionTemplate(); context: { $implicit: option}"/>
|
|
5458
|
-
} @else {
|
|
5459
|
-
{{ option.label }}
|
|
5460
|
-
}
|
|
5461
|
-
</mat-option>
|
|
5462
|
-
</cdk-virtual-scroll-viewport>
|
|
5463
|
-
} @else {
|
|
5464
|
-
<mat-option disabled="true">No Result Found</mat-option>
|
|
5465
|
-
}
|
|
5466
|
-
}
|
|
5467
|
-
</mat-autocomplete>
|
|
5468
|
-
</mat-form-field>
|
|
5469
|
-
|
|
5470
|
-
<mat-chip-grid #chipGrid>
|
|
5471
|
-
@if (multiple()) {
|
|
5472
|
-
@for (chip of selectedOptions(); track chip[0]) {
|
|
5473
|
-
<mat-chip-row (removed)="removeFromSelectedOptionsMap(chip[1])">
|
|
5474
|
-
@if (cardViewerTemplate()) {
|
|
5475
|
-
<ng-container
|
|
5476
|
-
*ngTemplateOutlet="cardViewerTemplate(); context: { $implicit: chip[1]}"
|
|
5477
|
-
/>
|
|
5478
|
-
} @else {
|
|
5479
|
-
{{ chip[1].label }}
|
|
5480
|
-
}
|
|
5481
|
-
<button matChipRemove [disabled]="readonly()" [attr.aria-label]="'remove ' + chip[1].label">
|
|
5482
|
-
<ds-icon icon="trash" class="fc-red"></ds-icon>
|
|
5483
|
-
</button>
|
|
5484
|
-
</mat-chip-row>
|
|
5485
|
-
}
|
|
5486
|
-
}
|
|
5487
|
-
</mat-chip-grid>
|
|
5479
|
+
], template: `
|
|
5480
|
+
<mat-form-field floatLabel="auto" class="">
|
|
5481
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
5482
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
5483
|
+
<ng-content select="label"></ng-content>
|
|
5484
|
+
</mat-label>
|
|
5485
|
+
<input [formControl]="ctrl" [matAutocomplete]="auto" [matChipInputFor]="chipGrid" [placeholder]="placeholder()" [readonly]="readonly()" [errorStateMatcher]="errorStateMatcher" (blur)="markAsTouched()" class="m-0" matInput/>
|
|
5486
|
+
@if (!disabled()) {
|
|
5487
|
+
@if (selectedOptions().size) {
|
|
5488
|
+
<span matSuffix class="sfi sfi-close fs-18 fc-black cursor-pointer" (click)="clearSelection()"></span>
|
|
5489
|
+
} @else {
|
|
5490
|
+
<span matSuffix class="sfi sfi-arrow-down fs-18 fc-black cursor-pointer"></span>
|
|
5491
|
+
}
|
|
5492
|
+
}
|
|
5493
|
+
|
|
5494
|
+
<mat-autocomplete #auto="matAutocomplete" (optionSelected)="captureValue($event)" [displayWith]="displayFn" autoActiveFirstOption hideSingleSelectionIndicator>
|
|
5495
|
+
@if (loading()) {
|
|
5496
|
+
<mat-option disabled="true">
|
|
5497
|
+
<ds-icon icon="spinner" class="spin fc-coral fs-20"></ds-icon>
|
|
5498
|
+
</mat-option>
|
|
5499
|
+
} @else {
|
|
5500
|
+
@if (filteredOptions().length) {
|
|
5501
|
+
@if (multiple()) {
|
|
5502
|
+
<mat-option (click)="toggleAllSelection()" value="_SELECT_ALL_OPTIONS_">
|
|
5503
|
+
{{ allSelected() ? "deselect all" : "Select All" }}
|
|
5504
|
+
</mat-option>
|
|
5505
|
+
}
|
|
5506
|
+
<cdk-virtual-scroll-viewport itemSize="5" [ngStyle]="{'height': height()}">
|
|
5507
|
+
<mat-option *cdkVirtualFor="let option of filteredOptions()" [value]="option" [ngClass]="{'mdc-list-item__selected': option | selectStatus: selectedOptions()}">
|
|
5508
|
+
@if (optionTemplate()) {
|
|
5509
|
+
<ng-container *ngTemplateOutlet="optionTemplate(); context: { $implicit: option}"/>
|
|
5510
|
+
} @else {
|
|
5511
|
+
{{ option.label }}
|
|
5512
|
+
}
|
|
5513
|
+
</mat-option>
|
|
5514
|
+
</cdk-virtual-scroll-viewport>
|
|
5515
|
+
} @else {
|
|
5516
|
+
<mat-option disabled="true">No Result Found</mat-option>
|
|
5517
|
+
}
|
|
5518
|
+
}
|
|
5519
|
+
</mat-autocomplete>
|
|
5520
|
+
</mat-form-field>
|
|
5521
|
+
|
|
5522
|
+
<mat-chip-grid #chipGrid>
|
|
5523
|
+
@if (multiple()) {
|
|
5524
|
+
@for (chip of selectedOptions(); track chip[0]) {
|
|
5525
|
+
<mat-chip-row (removed)="removeFromSelectedOptionsMap(chip[1])">
|
|
5526
|
+
@if (cardViewerTemplate()) {
|
|
5527
|
+
<ng-container
|
|
5528
|
+
*ngTemplateOutlet="cardViewerTemplate(); context: { $implicit: chip[1]}"
|
|
5529
|
+
/>
|
|
5530
|
+
} @else {
|
|
5531
|
+
{{ chip[1].label }}
|
|
5532
|
+
}
|
|
5533
|
+
<button matChipRemove [disabled]="readonly()" [attr.aria-label]="'remove ' + chip[1].label">
|
|
5534
|
+
<ds-icon icon="trash" class="fc-red"></ds-icon>
|
|
5535
|
+
</button>
|
|
5536
|
+
</mat-chip-row>
|
|
5537
|
+
}
|
|
5538
|
+
}
|
|
5539
|
+
</mat-chip-grid>
|
|
5488
5540
|
`, schemas: [CUSTOM_ELEMENTS_SCHEMA] }]
|
|
5489
5541
|
}], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: true }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], onQueryChange: [{ type: i0.Output, args: ["onQueryChange"] }], optionTemplate: [{ type: i0.ContentChild, args: ["optionTemplate", { isSignal: true }] }], cardViewerTemplate: [{ type: i0.ContentChild, args: ["cardViewerTemplate", { isSignal: true }] }] } });
|
|
5490
5542
|
|
|
@@ -5577,25 +5629,26 @@ class TextareaControl extends ControlBase {
|
|
|
5577
5629
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: TextareaControl, isStandalone: true, selector: "iss-ctrl-textarea", providers: [
|
|
5578
5630
|
{ provide: NG_VALUE_ACCESSOR, useExisting: TextareaControl, multi: true },
|
|
5579
5631
|
{ provide: NG_VALIDATORS, useExisting: TextareaControl, multi: true }
|
|
5580
|
-
], usesInheritance: true, ngImport: i0, template: `
|
|
5581
|
-
<mat-form-field floatLabel="auto" class="custom-textarea">
|
|
5582
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
5583
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
5584
|
-
<ng-content select="label"></ng-content>
|
|
5585
|
-
</mat-label>
|
|
5586
|
-
<textarea
|
|
5587
|
-
matInput
|
|
5588
|
-
[
|
|
5589
|
-
[
|
|
5590
|
-
[
|
|
5591
|
-
[attr.
|
|
5592
|
-
[
|
|
5593
|
-
|
|
5594
|
-
(
|
|
5595
|
-
|
|
5596
|
-
|
|
5597
|
-
|
|
5598
|
-
|
|
5632
|
+
], usesInheritance: true, ngImport: i0, template: `
|
|
5633
|
+
<mat-form-field floatLabel="auto" class="custom-textarea">
|
|
5634
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
5635
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
5636
|
+
<ng-content select="label"></ng-content>
|
|
5637
|
+
</mat-label>
|
|
5638
|
+
<textarea
|
|
5639
|
+
matInput
|
|
5640
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
5641
|
+
[placeholder]="placeholder()"
|
|
5642
|
+
[formControl]="ctrl"
|
|
5643
|
+
[attr.maxlength]="maxLength()"
|
|
5644
|
+
[attr.minlength]="minLength()"
|
|
5645
|
+
[readonly]="readonly()"
|
|
5646
|
+
(input)="emitValue()"
|
|
5647
|
+
(focusout)="markAsTouched()"
|
|
5648
|
+
>
|
|
5649
|
+
</textarea>
|
|
5650
|
+
<iss-ctrl-hints [hints]="hints()" [touched]="touched()"/>
|
|
5651
|
+
</mat-form-field>
|
|
5599
5652
|
`, isInline: true, dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: Hints, selector: "iss-ctrl-hints", inputs: ["hints", "touched"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }] });
|
|
5600
5653
|
}
|
|
5601
5654
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TextareaControl, decorators: [{
|
|
@@ -5615,25 +5668,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
5615
5668
|
{ provide: NG_VALIDATORS, useExisting: TextareaControl, multi: true }
|
|
5616
5669
|
],
|
|
5617
5670
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
5618
|
-
template: `
|
|
5619
|
-
<mat-form-field floatLabel="auto" class="custom-textarea">
|
|
5620
|
-
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
5621
|
-
<mat-label class="fs-16 fc-dark-gray">
|
|
5622
|
-
<ng-content select="label"></ng-content>
|
|
5623
|
-
</mat-label>
|
|
5624
|
-
<textarea
|
|
5625
|
-
matInput
|
|
5626
|
-
[
|
|
5627
|
-
[
|
|
5628
|
-
[
|
|
5629
|
-
[attr.
|
|
5630
|
-
[
|
|
5631
|
-
|
|
5632
|
-
(
|
|
5633
|
-
|
|
5634
|
-
|
|
5635
|
-
|
|
5636
|
-
|
|
5671
|
+
template: `
|
|
5672
|
+
<mat-form-field floatLabel="auto" class="custom-textarea">
|
|
5673
|
+
<!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
|
|
5674
|
+
<mat-label class="fs-16 fc-dark-gray">
|
|
5675
|
+
<ng-content select="label"></ng-content>
|
|
5676
|
+
</mat-label>
|
|
5677
|
+
<textarea
|
|
5678
|
+
matInput
|
|
5679
|
+
[errorStateMatcher]="errorStateMatcher"
|
|
5680
|
+
[placeholder]="placeholder()"
|
|
5681
|
+
[formControl]="ctrl"
|
|
5682
|
+
[attr.maxlength]="maxLength()"
|
|
5683
|
+
[attr.minlength]="minLength()"
|
|
5684
|
+
[readonly]="readonly()"
|
|
5685
|
+
(input)="emitValue()"
|
|
5686
|
+
(focusout)="markAsTouched()"
|
|
5687
|
+
>
|
|
5688
|
+
</textarea>
|
|
5689
|
+
<iss-ctrl-hints [hints]="hints()" [touched]="touched()"/>
|
|
5690
|
+
</mat-form-field>
|
|
5637
5691
|
`
|
|
5638
5692
|
}]
|
|
5639
5693
|
}] });
|
|
@@ -6411,22 +6465,22 @@ const COMPONENTS = {
|
|
|
6411
6465
|
datetime: () => Promise.resolve().then(function () { return datetimePicker_field; }).then((c) => c.DatetimePickerField),
|
|
6412
6466
|
date_range: () => Promise.resolve().then(function () { return dateRangePicker_field; }).then((c) => c.DateRangePickerField),
|
|
6413
6467
|
attachment: () => Promise.resolve().then(function () { return filePicker_field; }).then((c) => c.FilePickerField),
|
|
6414
|
-
userPicker: () => import('./iss-ctrl-user-picker.field-
|
|
6468
|
+
userPicker: () => import('./iss-ctrl-user-picker.field-BH63sZ-X.mjs').then((c) => c.UserPickerField),
|
|
6415
6469
|
vehicle_plate: () => Promise.resolve().then(function () { return plate_field; }).then((c) => c.PlateField),
|
|
6416
|
-
enrichment: () => import('./iss-ctrl-note.field-
|
|
6470
|
+
enrichment: () => import('./iss-ctrl-note.field-B_Lbp28X.mjs').then((c) => c.NoteField),
|
|
6417
6471
|
mobile: () => Promise.resolve().then(function () { return mobile_field; }).then((c) => c.MobileField),
|
|
6418
|
-
table: () => import('./iss-ctrl-table.field-
|
|
6472
|
+
table: () => import('./iss-ctrl-table.field-B5FxF6hn.mjs').then((c) => c.TableField),
|
|
6419
6473
|
chips: () => Promise.resolve().then(function () { return chips_field; }).then((c) => c.ChipsField),
|
|
6420
6474
|
switch: () => Promise.resolve().then(function () { return slideToggle_field; }).then((c) => c.SlideToggleField),
|
|
6421
6475
|
};
|
|
6422
6476
|
|
|
6423
6477
|
const SERVICES = {
|
|
6424
|
-
setValue: () => import('./iss-ctrl-set-value-event-
|
|
6478
|
+
setValue: () => import('./iss-ctrl-set-value-event-CgXhi0Bv.mjs').then((s) => s.SetValueEvent),
|
|
6425
6479
|
show: () => import('./iss-ctrl-show-event-BcRCwAfo.mjs').then((s) => s.ShowEvent),
|
|
6426
|
-
load: () => import('./iss-ctrl-load-value-event-
|
|
6427
|
-
loadOptions: () => import('./iss-ctrl-load-options-event-
|
|
6428
|
-
triggerBasedOnJsonValue: () => import('./iss-ctrl-trigger-based-on-json-value-
|
|
6429
|
-
replaceApiKeyDefaultImpl: () => import('./iss-ctrl-replace-api-keys-
|
|
6480
|
+
load: () => import('./iss-ctrl-load-value-event-DJKJ5S3h.mjs').then((s) => s.LoadValueEvent),
|
|
6481
|
+
loadOptions: () => import('./iss-ctrl-load-options-event-CxyAyNMe.mjs').then((s) => s.LoadOptionsEvent),
|
|
6482
|
+
triggerBasedOnJsonValue: () => import('./iss-ctrl-trigger-based-on-json-value-2v1kLVHZ.mjs').then((s) => s.TriggerBasedOnJsonValue),
|
|
6483
|
+
replaceApiKeyDefaultImpl: () => import('./iss-ctrl-replace-api-keys-C0XYQW4i.mjs').then((s) => s.ReplaceApiKeys),
|
|
6430
6484
|
};
|
|
6431
6485
|
|
|
6432
6486
|
// Read-only counterpart of COMPONENTS: the component used to render a field's value
|
|
@@ -9626,4 +9680,4 @@ var time_validator = /*#__PURE__*/Object.freeze({
|
|
|
9626
9680
|
*/
|
|
9627
9681
|
|
|
9628
9682
|
export { SlideToggleViewer as $, FilePickerField as A, TimePickerField as B, ControlBase as C, DatePickerControl as D, Employee as E, FieldBase as F, DatePickerField as G, HOST as H, IssField as I, DatetimePickerField as J, DateRangePickerField as K, Loader as L, MobileControl as M, InputViewer as N, Outlet as O, PLACEHOLDER_REGEX as P, TextareaViewer as Q, RadioControl as R, SelectControl as S, TextareaControl as T, ChipsViewer as U, VIEW_PROVIDER as V, RadioViewer as W, SelectViewer as X, MobileViewer as Y, CheckboxViewer as Z, ToggleButtonViewer as _, ValidationMessage as a, PlateViewer as a0, AttachmentViewer as a1, TimePickerViewer as a2, DatePickerViewer as a3, DatePickerTimeViewer as a4, DateRangePickerViewer as a5, DEFAULT_COUNTRY as a6, COUNTRIES as a7, DATE_FORMAT_ADAPTER as a8, DATETIME_FORMAT as a9, HIJRI_MONTH_NAMES as aA, getHijriParts as aB, startOfHijriMonth as aC, getHijriDaysInMonth as aD, createHijriDate as aE, formatHijriDate as aF, parseHijriDate as aG, toHijriDisplay as aH, IssValidators as aI, FileValidators as aJ, TimeValidator as aK, PLATE_LETTERS as aa, VALIDATION_MESSAGES as ab, COMPONENTS as ac, SERVICES as ad, VALIDATORS as ae, isActiveValidationRule as af, FIELD_DATA as ag, UI_LANGUAGE as ah, ATTACHMENT_UPLOAD_URL as ai, ATTACHMENT_UPLOAD_RESPONSE_MAPPER as aj, ATTACHMENT_DOWNLOAD_URL as ak, USER_SEARCH_API as al, Hints as am, Droppable as an, ArabicNumberPipe as ao, FieldDataInjector as ap, PlateLetterPipe as aq, SelectStatusPipe as ar, TranslatePipe as as, FileHandler as at, IssDateAdapter as au, provideIssDateAdapter as av, Phone as aw, arrayFrom as ax, formatFileSize as ay, HIJRI_LOCALE as az, FieldViewer as b, ViewerBase as c, FormEngine as d, CheckboxControl as e, ChipsControl as f, getPropertyByPath as g, DateRangePickerControl as h, DatetimePickerControl as i, FilePickerControl as j, InputControl as k, PlateControl as l, SlideToggleControl as m, TimePickerControl as n, ToggleButtonControl as o, InputField as p, TextareaField as q, replacePlaceholders as r, ChipsField as s, RadioField as t, SelectField as u, MobileField as v, CheckboxField as w, ToggleButtonField as x, SlideToggleField as y, PlateField as z };
|
|
9629
|
-
//# sourceMappingURL=iss-ctrl-iss-ctrl-
|
|
9683
|
+
//# sourceMappingURL=iss-ctrl-iss-ctrl-BKu6a5HF.mjs.map
|