iss-ctrl 0.0.18 → 0.0.20
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-C_ZiixeF.mjs → iss-ctrl-iss-ctrl-BnwwafES.mjs} +390 -202
- package/fesm2022/iss-ctrl-iss-ctrl-BnwwafES.mjs.map +1 -0
- package/fesm2022/{iss-ctrl-load-event-DIPikCdF.mjs → iss-ctrl-load-event-BcWMow3s.mjs} +3 -3
- package/fesm2022/{iss-ctrl-load-event-DIPikCdF.mjs.map → iss-ctrl-load-event-BcWMow3s.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-load-options-event-DOlkFXz5.mjs → iss-ctrl-load-options-event-sTdrxJYn.mjs} +3 -3
- package/fesm2022/{iss-ctrl-load-options-event-DOlkFXz5.mjs.map → iss-ctrl-load-options-event-sTdrxJYn.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-load-value-event-BjsuFpPf.mjs → iss-ctrl-load-value-event-BG9zEexV.mjs} +3 -3
- package/fesm2022/{iss-ctrl-load-value-event-BjsuFpPf.mjs.map → iss-ctrl-load-value-event-BG9zEexV.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-note.field-CakHrlcq.mjs → iss-ctrl-note.field-DyOSzuIi.mjs} +2 -2
- package/fesm2022/{iss-ctrl-note.field-CakHrlcq.mjs.map → iss-ctrl-note.field-DyOSzuIi.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-replace-api-keys-C-G34VNS.mjs → iss-ctrl-replace-api-keys-CzJkn7fK.mjs} +2 -2
- package/fesm2022/{iss-ctrl-replace-api-keys-C-G34VNS.mjs.map → iss-ctrl-replace-api-keys-CzJkn7fK.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-set-value-event-C-uD228s.mjs → iss-ctrl-set-value-event-B800MsyP.mjs} +2 -2
- package/fesm2022/{iss-ctrl-set-value-event-C-uD228s.mjs.map → iss-ctrl-set-value-event-B800MsyP.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-table.field-Ce1KnlZO.mjs → iss-ctrl-table.field-CJmtpHsh.mjs} +4 -4
- package/fesm2022/{iss-ctrl-table.field-Ce1KnlZO.mjs.map → iss-ctrl-table.field-CJmtpHsh.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-trigger-based-on-json-value-D5S3shyl.mjs → iss-ctrl-trigger-based-on-json-value-C5x0hyWn.mjs} +2 -2
- package/fesm2022/{iss-ctrl-trigger-based-on-json-value-D5S3shyl.mjs.map → iss-ctrl-trigger-based-on-json-value-C5x0hyWn.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-user-picker.field-C7DZ3ck2.mjs → iss-ctrl-user-picker.field-CJqIvkMM.mjs} +13 -6
- package/fesm2022/iss-ctrl-user-picker.field-CJqIvkMM.mjs.map +1 -0
- package/fesm2022/iss-ctrl.mjs +1 -1
- package/package.json +1 -1
- package/types/iss-ctrl.d.ts +49 -13
- package/fesm2022/iss-ctrl-iss-ctrl-C_ZiixeF.mjs.map +0 -1
- package/fesm2022/iss-ctrl-user-picker.field-C7DZ3ck2.mjs.map +0 -1
|
@@ -1648,11 +1648,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1648
1648
|
}]
|
|
1649
1649
|
}], 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 }] }], minTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "minTime", required: false }] }], maxTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxTime", required: false }] }], hijriCalendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "hijriCalendar", required: false }] }], emitHijri: [{ type: i0.Input, args: [{ isSignal: true, alias: "emitHijri", required: false }] }] } });
|
|
1650
1650
|
|
|
1651
|
-
class
|
|
1651
|
+
class Hints {
|
|
1652
1652
|
hints = input([], ...(ngDevMode ? [{ debugName: "hints" }] : /* istanbul ignore next */ []));
|
|
1653
1653
|
touched = input(false, ...(ngDevMode ? [{ debugName: "touched" }] : /* istanbul ignore next */ []));
|
|
1654
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type:
|
|
1655
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type:
|
|
1654
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: Hints, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1655
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: Hints, isStandalone: true, selector: "iss-ctrl-hints", inputs: { hints: { classPropertyName: "hints", publicName: "hints", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1656
1656
|
@if (hints().length) {
|
|
1657
1657
|
<div class="d-flex align-items-center flex-wrap gap-2 mb-3">
|
|
1658
1658
|
@for (hint of hints(); track $index) {
|
|
@@ -1678,7 +1678,7 @@ class HintsComponent {
|
|
|
1678
1678
|
}
|
|
1679
1679
|
`, isInline: true, dependencies: [{ kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
|
|
1680
1680
|
}
|
|
1681
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type:
|
|
1681
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: Hints, decorators: [{
|
|
1682
1682
|
type: Component,
|
|
1683
1683
|
args: [{
|
|
1684
1684
|
selector: "iss-ctrl-hints",
|
|
@@ -1939,14 +1939,14 @@ class FilePickerControl extends ControlBase {
|
|
|
1939
1939
|
|
|
1940
1940
|
<iss-ctrl-hints [hints]="hints()" [touched]="touched()"/>
|
|
1941
1941
|
<!--<iss-viewer-attachment (deleteOut)="onDelete($event)" [field]="filesValue()" [uploading]="uploading()"/>-->
|
|
1942
|
-
`, isInline: true, styles: [".file-uploader{--uploader-height: 150px;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer}.file-uploader --input{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.75rem}\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: Droppable, selector: "[droppable]", outputs: ["onDrop"] }, { kind: "component", type:
|
|
1942
|
+
`, isInline: true, styles: [".file-uploader{--uploader-height: 150px;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer}.file-uploader --input{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.75rem}\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: Droppable, selector: "[droppable]", outputs: ["onDrop"] }, { kind: "component", type: Hints, selector: "iss-ctrl-hints", inputs: ["hints", "touched"] }] });
|
|
1943
1943
|
}
|
|
1944
1944
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FilePickerControl, decorators: [{
|
|
1945
1945
|
type: Component,
|
|
1946
1946
|
args: [{ selector: "iss-ctrl-file-picker", schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
|
|
1947
1947
|
ReactiveFormsModule,
|
|
1948
1948
|
Droppable,
|
|
1949
|
-
|
|
1949
|
+
Hints,
|
|
1950
1950
|
], providers: [
|
|
1951
1951
|
{ provide: NG_VALUE_ACCESSOR, useExisting: FilePickerControl, multi: true }
|
|
1952
1952
|
], template: `
|
|
@@ -2091,7 +2091,7 @@ class InputControl extends ControlBase {
|
|
|
2091
2091
|
</div>
|
|
2092
2092
|
<iss-ctrl-hints [hints]="hints()" [touched]="touched()"/>
|
|
2093
2093
|
</mat-form-field>
|
|
2094
|
-
`, 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:
|
|
2094
|
+
`, 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
2095
|
}
|
|
2096
2096
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: InputControl, decorators: [{
|
|
2097
2097
|
type: Component,
|
|
@@ -2102,7 +2102,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
2102
2102
|
imports: [
|
|
2103
2103
|
ReactiveFormsModule,
|
|
2104
2104
|
MatFormFieldModule,
|
|
2105
|
-
|
|
2105
|
+
Hints,
|
|
2106
2106
|
MatInput,
|
|
2107
2107
|
MatInputModule,
|
|
2108
2108
|
],
|
|
@@ -5596,7 +5596,7 @@ class TextareaControl extends ControlBase {
|
|
|
5596
5596
|
</textarea>
|
|
5597
5597
|
<iss-ctrl-hints [hints]="hints()" [touched]="touched()"/>
|
|
5598
5598
|
</mat-form-field>
|
|
5599
|
-
`, 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:
|
|
5599
|
+
`, 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
5600
|
}
|
|
5601
5601
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TextareaControl, decorators: [{
|
|
5602
5602
|
type: Component,
|
|
@@ -5605,7 +5605,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
5605
5605
|
imports: [
|
|
5606
5606
|
MatFormField,
|
|
5607
5607
|
MatInput,
|
|
5608
|
-
|
|
5608
|
+
Hints,
|
|
5609
5609
|
FormsModule,
|
|
5610
5610
|
ReactiveFormsModule,
|
|
5611
5611
|
MatFormFieldModule,
|
|
@@ -6049,7 +6049,8 @@ class FieldEvent {
|
|
|
6049
6049
|
* | `visible()` | `boolean` | Whether the field is rendered at all. |
|
|
6050
6050
|
* | `loading()` | `boolean` | Shows the field's own loading state. |
|
|
6051
6051
|
* | `config` | `FieldConfig` | Per-type configuration — see {@link FieldConfig}. |
|
|
6052
|
-
* | `validation` | `any` | Synchronous validation rules. |
|
|
6052
|
+
* | `validation` | `any` | Synchronous validation rules, exactly as the JSON declared them. |
|
|
6053
|
+
* | `validationFns` | `Record<string, Function>` | Validator factory behind each active rule, resolved by the outlet. |
|
|
6053
6054
|
* | `asyncValidation` | `FieldAsyncValidation` | Remote validation rules. |
|
|
6054
6055
|
* | `events` | `FieldEvent[]` | Cross-field reactions (show, hide, set value, …). |
|
|
6055
6056
|
* | `children` | `IssField[]` | Nested fields, used by table and group fields. |
|
|
@@ -6073,6 +6074,10 @@ class IssField {
|
|
|
6073
6074
|
wasVisible = signal(true, ...(ngDevMode ? [{ debugName: "wasVisible" }] : /* istanbul ignore next */ []));
|
|
6074
6075
|
events;
|
|
6075
6076
|
validation;
|
|
6077
|
+
// The lazily imported factory behind each active rule in `validation`, keyed by rule name.
|
|
6078
|
+
// The factories are kept beside the rules instead of inside them so `validation` stays the
|
|
6079
|
+
// object the JSON declared: what a rule says is the API's, how it is applied is ours.
|
|
6080
|
+
validationFns = {};
|
|
6076
6081
|
asyncValidation;
|
|
6077
6082
|
children;
|
|
6078
6083
|
apiResponse = new BehaviorSubject(null);
|
|
@@ -6163,6 +6168,18 @@ const VALIDATORS = {
|
|
|
6163
6168
|
fileSize: () => Promise.resolve().then(function () { return file_validator; }).then((c) => c.FileValidators.size),
|
|
6164
6169
|
fileType: () => Promise.resolve().then(function () { return file_validator; }).then((c) => c.FileValidators.type),
|
|
6165
6170
|
};
|
|
6171
|
+
/**
|
|
6172
|
+
* Whether a rule in a field's `validation` is switched on.
|
|
6173
|
+
*
|
|
6174
|
+
* The rule's value is the argument its validator is built with, so it is also what says
|
|
6175
|
+
* whether the rule applies at all: `{ "required": false }` is an optional field, not a
|
|
6176
|
+
* required one, and a rule the API left out or sent as null is off the same way. Values
|
|
6177
|
+
* that are falsy but meaningful — `0`, `""` — are rules, so only the three off states are
|
|
6178
|
+
* rejected here.
|
|
6179
|
+
*/
|
|
6180
|
+
function isActiveValidationRule(value) {
|
|
6181
|
+
return value !== undefined && value !== null && value !== false;
|
|
6182
|
+
}
|
|
6166
6183
|
|
|
6167
6184
|
class FormEngine {
|
|
6168
6185
|
// Fields are stored per host FormGroup, never on the service itself: a single root
|
|
@@ -6247,9 +6264,11 @@ class FormEngine {
|
|
|
6247
6264
|
trackChangesValidations(field, form) {
|
|
6248
6265
|
const changes$ = [];
|
|
6249
6266
|
const masterNames = new Set();
|
|
6250
|
-
|
|
6267
|
+
// A rule that names another field — `beforeDate`, say — carries that name as its value, and
|
|
6268
|
+
// `processTrackChanges` ignores every value that is not a string.
|
|
6269
|
+
const iterateOn = Object.entries(field.validation ?? {});
|
|
6251
6270
|
iterateOn.forEach((validationObj) => {
|
|
6252
|
-
this.processTrackChanges(validationObj[1]
|
|
6271
|
+
this.processTrackChanges(validationObj[1], masterNames, changes$, field, form);
|
|
6253
6272
|
});
|
|
6254
6273
|
return merge(...changes$);
|
|
6255
6274
|
}
|
|
@@ -6281,8 +6300,10 @@ class FormEngine {
|
|
|
6281
6300
|
changes$.push(this.#mapMasterFieldValueChangesToFieldChanges(masterField, masterCtrl));
|
|
6282
6301
|
}
|
|
6283
6302
|
}
|
|
6303
|
+
// A field carries validation only where a rule is actually switched on: one sent as `false`
|
|
6304
|
+
// or `null` says the field is free of it, so it counts for nothing here.
|
|
6284
6305
|
fieldHasValidation(field) {
|
|
6285
|
-
return !!
|
|
6306
|
+
return !!field.validation && Object.values(field.validation).some(isActiveValidationRule);
|
|
6286
6307
|
}
|
|
6287
6308
|
fieldHasAsyncValidation(field) {
|
|
6288
6309
|
return !!(field.asyncValidation && Object.values(field.asyncValidation).filter((v) => v).length);
|
|
@@ -6290,7 +6311,7 @@ class FormEngine {
|
|
|
6290
6311
|
isFormValid(form, fields) {
|
|
6291
6312
|
return fields.map((childField) => {
|
|
6292
6313
|
const currentCtrl = form.get(childField.name);
|
|
6293
|
-
if (childField.validation?.required
|
|
6314
|
+
if (isActiveValidationRule(childField.validation?.required) && childField.visible() && childField.mode() === "edit" && currentCtrl?.status !== "DISABLED") {
|
|
6294
6315
|
return currentCtrl?.valid;
|
|
6295
6316
|
}
|
|
6296
6317
|
return true;
|
|
@@ -6316,8 +6337,15 @@ class FormEngine {
|
|
|
6316
6337
|
}
|
|
6317
6338
|
return registration;
|
|
6318
6339
|
}
|
|
6340
|
+
// Builds each switched-on rule into its validator, out of the value the rule was given:
|
|
6341
|
+
// `{ "minLength": 3 }` is what makes the validator refuse two characters, and `{ "required":
|
|
6342
|
+
// false }` builds nothing at all. The field rides along as the second argument for the rules
|
|
6343
|
+
// that need their neighbours — `beforeDate` and friends — and is ignored by the rest.
|
|
6344
|
+
// A rule whose factory never resolved is skipped rather than called.
|
|
6319
6345
|
#validatorsToNgValidators(field) {
|
|
6320
|
-
return
|
|
6346
|
+
return Object.entries(field.validation ?? {})
|
|
6347
|
+
.filter(([key, value]) => isActiveValidationRule(value) && typeof field.validationFns?.[key] === "function")
|
|
6348
|
+
.map(([key, value]) => field.validationFns[key](value, field));
|
|
6321
6349
|
}
|
|
6322
6350
|
#mapNgValidators(validationObj) {
|
|
6323
6351
|
return Object.entries((validationObj ? validationObj : {}))
|
|
@@ -6383,22 +6411,22 @@ const COMPONENTS = {
|
|
|
6383
6411
|
datetime: () => Promise.resolve().then(function () { return datetimePicker_field; }).then((c) => c.DatetimePickerField),
|
|
6384
6412
|
date_range: () => Promise.resolve().then(function () { return dateRangePicker_field; }).then((c) => c.DateRangePickerField),
|
|
6385
6413
|
attachment: () => Promise.resolve().then(function () { return filePicker_field; }).then((c) => c.FilePickerField),
|
|
6386
|
-
userPicker: () => import('./iss-ctrl-user-picker.field-
|
|
6414
|
+
userPicker: () => import('./iss-ctrl-user-picker.field-CJqIvkMM.mjs').then((c) => c.UserPickerField),
|
|
6387
6415
|
vehicle_plate: () => Promise.resolve().then(function () { return plate_field; }).then((c) => c.PlateField),
|
|
6388
|
-
enrichment: () => import('./iss-ctrl-note.field-
|
|
6416
|
+
enrichment: () => import('./iss-ctrl-note.field-DyOSzuIi.mjs').then((c) => c.NoteField),
|
|
6389
6417
|
mobile: () => Promise.resolve().then(function () { return mobile_field; }).then((c) => c.MobileField),
|
|
6390
|
-
table: () => import('./iss-ctrl-table.field-
|
|
6418
|
+
table: () => import('./iss-ctrl-table.field-CJmtpHsh.mjs').then((c) => c.TableField),
|
|
6391
6419
|
chips: () => Promise.resolve().then(function () { return chips_field; }).then((c) => c.ChipsField),
|
|
6392
6420
|
switch: () => Promise.resolve().then(function () { return slideToggle_field; }).then((c) => c.SlideToggleField),
|
|
6393
6421
|
};
|
|
6394
6422
|
|
|
6395
6423
|
const SERVICES = {
|
|
6396
|
-
setValue: () => import('./iss-ctrl-set-value-event-
|
|
6424
|
+
setValue: () => import('./iss-ctrl-set-value-event-B800MsyP.mjs').then((s) => s.SetValueEvent),
|
|
6397
6425
|
show: () => import('./iss-ctrl-show-event-BcRCwAfo.mjs').then((s) => s.ShowEvent),
|
|
6398
|
-
load: () => import('./iss-ctrl-load-value-event-
|
|
6399
|
-
loadOptions: () => import('./iss-ctrl-load-options-event-
|
|
6400
|
-
triggerBasedOnJsonValue: () => import('./iss-ctrl-trigger-based-on-json-value-
|
|
6401
|
-
replaceApiKeyDefaultImpl: () => import('./iss-ctrl-replace-api-keys-
|
|
6426
|
+
load: () => import('./iss-ctrl-load-value-event-BG9zEexV.mjs').then((s) => s.LoadValueEvent),
|
|
6427
|
+
loadOptions: () => import('./iss-ctrl-load-options-event-sTdrxJYn.mjs').then((s) => s.LoadOptionsEvent),
|
|
6428
|
+
triggerBasedOnJsonValue: () => import('./iss-ctrl-trigger-based-on-json-value-C5x0hyWn.mjs').then((s) => s.TriggerBasedOnJsonValue),
|
|
6429
|
+
replaceApiKeyDefaultImpl: () => import('./iss-ctrl-replace-api-keys-CzJkn7fK.mjs').then((s) => s.ReplaceApiKeys),
|
|
6402
6430
|
};
|
|
6403
6431
|
|
|
6404
6432
|
// Read-only counterpart of COMPONENTS: the component used to render a field's value
|
|
@@ -6585,6 +6613,11 @@ class Outlet {
|
|
|
6585
6613
|
action.config.fn = configFn;
|
|
6586
6614
|
}));
|
|
6587
6615
|
}
|
|
6616
|
+
// Resolves the validator behind every rule the field switched on. `validation` itself is left
|
|
6617
|
+
// exactly as it arrived — the caller's own object, which it may still read and re-render — so
|
|
6618
|
+
// the factories land in `validationFns` and the rules keep the values they were given.
|
|
6619
|
+
// A rule that is off carries no validator: nothing is imported for it and nothing is built
|
|
6620
|
+
// from it, which is what makes `{ "required": false }` an optional field.
|
|
6588
6621
|
async #loadFieldValidation(f) {
|
|
6589
6622
|
if (!f.validation)
|
|
6590
6623
|
return;
|
|
@@ -6593,13 +6626,10 @@ class Outlet {
|
|
|
6593
6626
|
console.error(`${key} not found`);
|
|
6594
6627
|
return false;
|
|
6595
6628
|
}
|
|
6596
|
-
return validation
|
|
6629
|
+
return isActiveValidationRule(validation);
|
|
6597
6630
|
});
|
|
6598
|
-
await Promise.all(validationEntries.map(async ([key
|
|
6599
|
-
f.
|
|
6600
|
-
fn: await VALIDATORS[key](),
|
|
6601
|
-
value: validation
|
|
6602
|
-
};
|
|
6631
|
+
await Promise.all(validationEntries.map(async ([key]) => {
|
|
6632
|
+
f.validationFns[key] = await VALIDATORS[key]();
|
|
6603
6633
|
}));
|
|
6604
6634
|
}
|
|
6605
6635
|
#listenToHostFormGroupChanges() {
|
|
@@ -6779,7 +6809,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
6779
6809
|
args: [{ name: "translate" }]
|
|
6780
6810
|
}] });
|
|
6781
6811
|
|
|
6782
|
-
class
|
|
6812
|
+
class ValidationMessage {
|
|
6783
6813
|
errors = input.required(...(ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []));
|
|
6784
6814
|
showMessage = input.required(...(ngDevMode ? [{ debugName: "showMessage" }] : /* istanbul ignore next */ []));
|
|
6785
6815
|
getValidationMessage(error) {
|
|
@@ -6790,8 +6820,8 @@ class ValidationMessageComponent {
|
|
|
6790
6820
|
}
|
|
6791
6821
|
return errorMessageGenerator(error.value);
|
|
6792
6822
|
}
|
|
6793
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type:
|
|
6794
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type:
|
|
6823
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ValidationMessage, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6824
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ValidationMessage, isStandalone: true, selector: "iss-validation-message-viewer", inputs: { errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: true, transformFunction: null }, showMessage: { classPropertyName: "showMessage", publicName: "showMessage", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
6795
6825
|
@if (errors() !== null && showMessage()) {
|
|
6796
6826
|
<div class="messages">
|
|
6797
6827
|
@for (error of errors() ?? {} | keyvalue; track error) {
|
|
@@ -6803,7 +6833,7 @@ class ValidationMessageComponent {
|
|
|
6803
6833
|
}
|
|
6804
6834
|
`, isInline: true, styles: [":host{display:block;position:relative}.messages{position:absolute;inset-inline:0;top:0;z-index:1}p{margin:0}\n"], dependencies: [{ kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
6805
6835
|
}
|
|
6806
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type:
|
|
6836
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ValidationMessage, decorators: [{
|
|
6807
6837
|
type: Component,
|
|
6808
6838
|
args: [{ selector: "iss-validation-message-viewer", imports: [
|
|
6809
6839
|
KeyValuePipe,
|
|
@@ -7085,6 +7115,44 @@ var input_viewer = /*#__PURE__*/Object.freeze({
|
|
|
7085
7115
|
InputViewer: InputViewer
|
|
7086
7116
|
});
|
|
7087
7117
|
|
|
7118
|
+
/**
|
|
7119
|
+
* `<iss-field-viewer>` — read-only presentation of a single field as a
|
|
7120
|
+
* label / value row.
|
|
7121
|
+
*
|
|
7122
|
+
* Project the caption into the `label` slot and the rendered value into any
|
|
7123
|
+
* element carrying a `value` attribute:
|
|
7124
|
+
*
|
|
7125
|
+
* ```html
|
|
7126
|
+
* <iss-field-viewer>
|
|
7127
|
+
* <label>Request Type</label>
|
|
7128
|
+
* <span>value</span>
|
|
7129
|
+
* </iss-field-viewer>
|
|
7130
|
+
* ```
|
|
7131
|
+
*
|
|
7132
|
+
* The label sits in a fixed-width column, so every value in a stack of viewers
|
|
7133
|
+
* starts on the same vertical line. Override that column with the
|
|
7134
|
+
* `--field-viewer-label-width` custom property on any ancestor.
|
|
7135
|
+
* When no label is projected, the value spans the full width of the row.
|
|
7136
|
+
*/
|
|
7137
|
+
class FieldViewer {
|
|
7138
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FieldViewer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7139
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: FieldViewer, isStandalone: true, selector: "iss-field-viewer", ngImport: i0, template: `
|
|
7140
|
+
<div class="field-viewer w-100">
|
|
7141
|
+
<span class="field-viewer__label"><ng-content select="label"></ng-content></span>
|
|
7142
|
+
<span class="field-viewer__value"><ng-content></ng-content></span>
|
|
7143
|
+
</div>
|
|
7144
|
+
`, isInline: true, styles: [":host{--field-viewer-label-width: 14rem;--field-viewer-gap: 1.5rem;--field-viewer-padding: .75rem 1rem;--field-viewer-label-fc: var(--dark-gray);--field-viewer-value-fc: var(--black);display:block;width:100%}.field-viewer{display:grid;grid-template-columns:var(--field-viewer-label-width) minmax(0,1fr);align-items:baseline;column-gap:var(--field-viewer-gap);padding:var(--field-viewer-padding);border-radius:var(--box-radius);font-size:.875rem;line-height:var(--default-line-height)}.field-viewer__label{color:var(--field-viewer-label-fc);font-weight:var(--font-regular);overflow-wrap:anywhere}.field-viewer__value{min-width:0;color:var(--field-viewer-value-fc);font-weight:var(--font-bold);overflow-wrap:anywhere}.field-viewer__label ::ng-deep label{display:block;margin:0;color:inherit;font:inherit}.field-viewer:not(:has(.field-viewer__label>*)){grid-template-columns:minmax(0,1fr)}.field-viewer:not(:has(.field-viewer__label>*)) .field-viewer__label{display:none}@media(max-width:575.98px){.field-viewer{grid-template-columns:minmax(0,1fr);row-gap:.25rem}}\n"] });
|
|
7145
|
+
}
|
|
7146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FieldViewer, decorators: [{
|
|
7147
|
+
type: Component,
|
|
7148
|
+
args: [{ selector: "iss-field-viewer", imports: [], template: `
|
|
7149
|
+
<div class="field-viewer w-100">
|
|
7150
|
+
<span class="field-viewer__label"><ng-content select="label"></ng-content></span>
|
|
7151
|
+
<span class="field-viewer__value"><ng-content></ng-content></span>
|
|
7152
|
+
</div>
|
|
7153
|
+
`, styles: [":host{--field-viewer-label-width: 14rem;--field-viewer-gap: 1.5rem;--field-viewer-padding: .75rem 1rem;--field-viewer-label-fc: var(--dark-gray);--field-viewer-value-fc: var(--black);display:block;width:100%}.field-viewer{display:grid;grid-template-columns:var(--field-viewer-label-width) minmax(0,1fr);align-items:baseline;column-gap:var(--field-viewer-gap);padding:var(--field-viewer-padding);border-radius:var(--box-radius);font-size:.875rem;line-height:var(--default-line-height)}.field-viewer__label{color:var(--field-viewer-label-fc);font-weight:var(--font-regular);overflow-wrap:anywhere}.field-viewer__value{min-width:0;color:var(--field-viewer-value-fc);font-weight:var(--font-bold);overflow-wrap:anywhere}.field-viewer__label ::ng-deep label{display:block;margin:0;color:inherit;font:inherit}.field-viewer:not(:has(.field-viewer__label>*)){grid-template-columns:minmax(0,1fr)}.field-viewer:not(:has(.field-viewer__label>*)) .field-viewer__label{display:none}@media(max-width:575.98px){.field-viewer{grid-template-columns:minmax(0,1fr);row-gap:.25rem}}\n"] }]
|
|
7154
|
+
}] });
|
|
7155
|
+
|
|
7088
7156
|
/**
|
|
7089
7157
|
* `<iss-field-input>` — single line text, number, email or password entry.
|
|
7090
7158
|
*
|
|
@@ -7132,10 +7200,13 @@ class InputField extends FieldBase {
|
|
|
7132
7200
|
</iss-ctrl-input>
|
|
7133
7201
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7134
7202
|
} @else {
|
|
7135
|
-
<iss-viewer
|
|
7203
|
+
<iss-field-viewer>
|
|
7204
|
+
<label>{{ field.label() }}</label>
|
|
7205
|
+
<iss-viewer-input [field]="field"/>
|
|
7206
|
+
</iss-field-viewer>
|
|
7136
7207
|
}
|
|
7137
7208
|
}
|
|
7138
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: InputControl, selector: "iss-ctrl-input", inputs: ["type", "prefixIcon", "prefixText", "suffixIcon", "suffixText"], outputs: ["onPrefixClick", "onSuffixClick"] }, { kind: "component", type:
|
|
7209
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: InputControl, selector: "iss-ctrl-input", inputs: ["type", "prefixIcon", "prefixText", "suffixIcon", "suffixText"], outputs: ["onPrefixClick", "onSuffixClick"] }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: InputViewer, selector: "iss-viewer-input" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
7139
7210
|
}
|
|
7140
7211
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: InputField, decorators: [{
|
|
7141
7212
|
type: Component,
|
|
@@ -7145,8 +7216,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7145
7216
|
imports: [
|
|
7146
7217
|
ReactiveFormsModule,
|
|
7147
7218
|
InputControl,
|
|
7148
|
-
|
|
7149
|
-
InputViewer
|
|
7219
|
+
ValidationMessage,
|
|
7220
|
+
InputViewer,
|
|
7221
|
+
FieldViewer
|
|
7150
7222
|
],
|
|
7151
7223
|
template: `
|
|
7152
7224
|
@if (field.visible()) {
|
|
@@ -7165,7 +7237,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7165
7237
|
</iss-ctrl-input>
|
|
7166
7238
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7167
7239
|
} @else {
|
|
7168
|
-
<iss-viewer
|
|
7240
|
+
<iss-field-viewer>
|
|
7241
|
+
<label>{{ field.label() }}</label>
|
|
7242
|
+
<iss-viewer-input [field]="field"/>
|
|
7243
|
+
</iss-field-viewer>
|
|
7169
7244
|
}
|
|
7170
7245
|
}
|
|
7171
7246
|
`
|
|
@@ -7232,10 +7307,13 @@ class TextareaField extends FieldBase {
|
|
|
7232
7307
|
</iss-ctrl-textarea>
|
|
7233
7308
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7234
7309
|
} @else {
|
|
7235
|
-
<iss-viewer
|
|
7310
|
+
<iss-field-viewer>
|
|
7311
|
+
<label>{{ field.label() }}</label>
|
|
7312
|
+
<iss-viewer-textarea [field]="field"/>
|
|
7313
|
+
</iss-field-viewer>
|
|
7236
7314
|
}
|
|
7237
7315
|
}
|
|
7238
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TextareaControl, selector: "iss-ctrl-textarea" }, { kind: "component", type:
|
|
7316
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TextareaControl, selector: "iss-ctrl-textarea" }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: TextareaViewer, selector: "iss-viewer-textarea" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
7239
7317
|
}
|
|
7240
7318
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TextareaField, decorators: [{
|
|
7241
7319
|
type: Component,
|
|
@@ -7245,8 +7323,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7245
7323
|
imports: [
|
|
7246
7324
|
ReactiveFormsModule,
|
|
7247
7325
|
TextareaControl,
|
|
7248
|
-
|
|
7249
|
-
TextareaViewer
|
|
7326
|
+
ValidationMessage,
|
|
7327
|
+
TextareaViewer,
|
|
7328
|
+
FieldViewer
|
|
7250
7329
|
],
|
|
7251
7330
|
template: `
|
|
7252
7331
|
@if (field.visible()) {
|
|
@@ -7256,7 +7335,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7256
7335
|
</iss-ctrl-textarea>
|
|
7257
7336
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7258
7337
|
} @else {
|
|
7259
|
-
<iss-viewer
|
|
7338
|
+
<iss-field-viewer>
|
|
7339
|
+
<label>{{ field.label() }}</label>
|
|
7340
|
+
<iss-viewer-textarea [field]="field"/>
|
|
7341
|
+
</iss-field-viewer>
|
|
7260
7342
|
}
|
|
7261
7343
|
}
|
|
7262
7344
|
`
|
|
@@ -7334,10 +7416,13 @@ class ChipsField extends FieldBase {
|
|
|
7334
7416
|
<iss-ctrl-chips [formControlName]="field.name" [readonly]="field.config.readonly() ?? false"><label>{{ field.label() }}</label></iss-ctrl-chips>
|
|
7335
7417
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7336
7418
|
} @else {
|
|
7337
|
-
<iss-viewer
|
|
7419
|
+
<iss-field-viewer>
|
|
7420
|
+
<label>{{ field.label() }}</label>
|
|
7421
|
+
<iss-viewer-chips [field]="field"/>
|
|
7422
|
+
</iss-field-viewer>
|
|
7338
7423
|
}
|
|
7339
7424
|
}
|
|
7340
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ChipsControl, selector: "iss-ctrl-chips" }, { kind: "component", type:
|
|
7425
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ChipsControl, selector: "iss-ctrl-chips" }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: ChipsViewer, selector: "iss-viewer-chips" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
7341
7426
|
}
|
|
7342
7427
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ChipsField, decorators: [{
|
|
7343
7428
|
type: Component,
|
|
@@ -7347,8 +7432,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7347
7432
|
imports: [
|
|
7348
7433
|
ReactiveFormsModule,
|
|
7349
7434
|
ChipsControl,
|
|
7350
|
-
|
|
7351
|
-
ChipsViewer
|
|
7435
|
+
ValidationMessage,
|
|
7436
|
+
ChipsViewer,
|
|
7437
|
+
FieldViewer
|
|
7352
7438
|
],
|
|
7353
7439
|
template: `
|
|
7354
7440
|
@if (field.visible()) {
|
|
@@ -7356,7 +7442,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7356
7442
|
<iss-ctrl-chips [formControlName]="field.name" [readonly]="field.config.readonly() ?? false"><label>{{ field.label() }}</label></iss-ctrl-chips>
|
|
7357
7443
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7358
7444
|
} @else {
|
|
7359
|
-
<iss-viewer
|
|
7445
|
+
<iss-field-viewer>
|
|
7446
|
+
<label>{{ field.label() }}</label>
|
|
7447
|
+
<iss-viewer-chips [field]="field"/>
|
|
7448
|
+
</iss-field-viewer>
|
|
7360
7449
|
}
|
|
7361
7450
|
}
|
|
7362
7451
|
`
|
|
@@ -7428,19 +7517,23 @@ class RadioField extends FieldBase {
|
|
|
7428
7517
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: RadioField, isStandalone: true, selector: "iss-field-radio", usesInheritance: true, ngImport: i0, template: `
|
|
7429
7518
|
@if (field.visible()) {
|
|
7430
7519
|
<div style="display: flex; flex-direction: column">
|
|
7431
|
-
@if (!field.config.hideLabel()) {
|
|
7432
|
-
<mat-label>{{ field.label() }}</mat-label>
|
|
7433
|
-
}
|
|
7434
|
-
|
|
7435
7520
|
@if (field.mode() === "edit") {
|
|
7521
|
+
@if (!field.config.hideLabel()) {
|
|
7522
|
+
<mat-label>{{ field.label() }}</mat-label>
|
|
7523
|
+
}
|
|
7436
7524
|
<iss-ctrl-radio [formControlName]="field.name" [options]="field.options()" [readonly]="field.config.readonly() ?? false" (onChange)="onChange($event)"/>
|
|
7437
7525
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7438
7526
|
} @else {
|
|
7439
|
-
<iss-viewer
|
|
7527
|
+
<iss-field-viewer>
|
|
7528
|
+
@if (!field.config.hideLabel()) {
|
|
7529
|
+
<label>{{ field.label() }}</label>
|
|
7530
|
+
}
|
|
7531
|
+
<iss-viewer-radio [field]="field"/>
|
|
7532
|
+
</iss-field-viewer>
|
|
7440
7533
|
}
|
|
7441
7534
|
</div>
|
|
7442
7535
|
}
|
|
7443
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: RadioControl, selector: "iss-ctrl-radio", inputs: ["options"] }, { kind: "component", type:
|
|
7536
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: RadioControl, selector: "iss-ctrl-radio", inputs: ["options"] }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: RadioViewer, selector: "iss-viewer-radio" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
7444
7537
|
}
|
|
7445
7538
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RadioField, decorators: [{
|
|
7446
7539
|
type: Component,
|
|
@@ -7451,21 +7544,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7451
7544
|
ReactiveFormsModule,
|
|
7452
7545
|
MatLabel,
|
|
7453
7546
|
RadioControl,
|
|
7454
|
-
|
|
7455
|
-
RadioViewer
|
|
7547
|
+
ValidationMessage,
|
|
7548
|
+
RadioViewer,
|
|
7549
|
+
FieldViewer
|
|
7456
7550
|
],
|
|
7457
7551
|
template: `
|
|
7458
7552
|
@if (field.visible()) {
|
|
7459
7553
|
<div style="display: flex; flex-direction: column">
|
|
7460
|
-
@if (!field.config.hideLabel()) {
|
|
7461
|
-
<mat-label>{{ field.label() }}</mat-label>
|
|
7462
|
-
}
|
|
7463
|
-
|
|
7464
7554
|
@if (field.mode() === "edit") {
|
|
7555
|
+
@if (!field.config.hideLabel()) {
|
|
7556
|
+
<mat-label>{{ field.label() }}</mat-label>
|
|
7557
|
+
}
|
|
7465
7558
|
<iss-ctrl-radio [formControlName]="field.name" [options]="field.options()" [readonly]="field.config.readonly() ?? false" (onChange)="onChange($event)"/>
|
|
7466
7559
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7467
7560
|
} @else {
|
|
7468
|
-
<iss-viewer
|
|
7561
|
+
<iss-field-viewer>
|
|
7562
|
+
@if (!field.config.hideLabel()) {
|
|
7563
|
+
<label>{{ field.label() }}</label>
|
|
7564
|
+
}
|
|
7565
|
+
<iss-viewer-radio [field]="field"/>
|
|
7566
|
+
</iss-field-viewer>
|
|
7469
7567
|
}
|
|
7470
7568
|
</div>
|
|
7471
7569
|
}
|
|
@@ -7546,10 +7644,13 @@ class SelectField extends FieldBase {
|
|
|
7546
7644
|
</iss-ctrl-select>
|
|
7547
7645
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7548
7646
|
} @else {
|
|
7549
|
-
<iss-viewer
|
|
7647
|
+
<iss-field-viewer>
|
|
7648
|
+
<label>{{ field.label() }}</label>
|
|
7649
|
+
<iss-viewer-select [field]="field"/>
|
|
7650
|
+
</iss-field-viewer>
|
|
7550
7651
|
}
|
|
7551
7652
|
}
|
|
7552
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: SelectControl, selector: "iss-ctrl-select", inputs: ["options", "height", "loading"], outputs: ["onQueryChange"] }, { kind: "component", type:
|
|
7653
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: SelectControl, selector: "iss-ctrl-select", inputs: ["options", "height", "loading"], outputs: ["onQueryChange"] }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: SelectViewer, selector: "iss-viewer-select" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
7553
7654
|
}
|
|
7554
7655
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SelectField, decorators: [{
|
|
7555
7656
|
type: Component,
|
|
@@ -7559,8 +7660,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7559
7660
|
imports: [
|
|
7560
7661
|
ReactiveFormsModule,
|
|
7561
7662
|
SelectControl,
|
|
7562
|
-
|
|
7563
|
-
SelectViewer
|
|
7663
|
+
ValidationMessage,
|
|
7664
|
+
SelectViewer,
|
|
7665
|
+
FieldViewer
|
|
7564
7666
|
],
|
|
7565
7667
|
template: `
|
|
7566
7668
|
@if (field.visible()) {
|
|
@@ -7570,7 +7672,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7570
7672
|
</iss-ctrl-select>
|
|
7571
7673
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7572
7674
|
} @else {
|
|
7573
|
-
<iss-viewer
|
|
7675
|
+
<iss-field-viewer>
|
|
7676
|
+
<label>{{ field.label() }}</label>
|
|
7677
|
+
<iss-viewer-select [field]="field"/>
|
|
7678
|
+
</iss-field-viewer>
|
|
7574
7679
|
}
|
|
7575
7680
|
}
|
|
7576
7681
|
`
|
|
@@ -7634,10 +7739,13 @@ class MobileField extends FieldBase {
|
|
|
7634
7739
|
<label>{{ field.label() }}</label>
|
|
7635
7740
|
</iss-ctrl-mobile>
|
|
7636
7741
|
} @else {
|
|
7637
|
-
<iss-viewer
|
|
7742
|
+
<iss-field-viewer>
|
|
7743
|
+
<label>{{ field.label() }}</label>
|
|
7744
|
+
<iss-viewer-mobile [field]="field"/>
|
|
7745
|
+
</iss-field-viewer>
|
|
7638
7746
|
}
|
|
7639
7747
|
}
|
|
7640
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: MobileControl, selector: "iss-ctrl-mobile", inputs: ["preferredCountries"] }, { kind: "component", type: MobileViewer, selector: "iss-viewer-mobile" }], viewProviders: [VIEW_PROVIDER] });
|
|
7748
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: MobileControl, selector: "iss-ctrl-mobile", inputs: ["preferredCountries"] }, { kind: "component", type: MobileViewer, selector: "iss-viewer-mobile" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
7641
7749
|
}
|
|
7642
7750
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: MobileField, decorators: [{
|
|
7643
7751
|
type: Component,
|
|
@@ -7647,7 +7755,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7647
7755
|
imports: [
|
|
7648
7756
|
ReactiveFormsModule,
|
|
7649
7757
|
MobileControl,
|
|
7650
|
-
MobileViewer
|
|
7758
|
+
MobileViewer,
|
|
7759
|
+
FieldViewer
|
|
7651
7760
|
],
|
|
7652
7761
|
template: `
|
|
7653
7762
|
@if (field.visible()) {
|
|
@@ -7656,7 +7765,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7656
7765
|
<label>{{ field.label() }}</label>
|
|
7657
7766
|
</iss-ctrl-mobile>
|
|
7658
7767
|
} @else {
|
|
7659
|
-
<iss-viewer
|
|
7768
|
+
<iss-field-viewer>
|
|
7769
|
+
<label>{{ field.label() }}</label>
|
|
7770
|
+
<iss-viewer-mobile [field]="field"/>
|
|
7771
|
+
</iss-field-viewer>
|
|
7660
7772
|
}
|
|
7661
7773
|
}
|
|
7662
7774
|
`
|
|
@@ -7736,10 +7848,15 @@ class CheckboxField extends FieldBase {
|
|
|
7736
7848
|
</iss-ctrl-checkbox>
|
|
7737
7849
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7738
7850
|
} @else {
|
|
7739
|
-
<iss-viewer
|
|
7851
|
+
<iss-field-viewer>
|
|
7852
|
+
@if (!field.config.hideLabel()) {
|
|
7853
|
+
<label>{{ field.label() }}</label>
|
|
7854
|
+
}
|
|
7855
|
+
<iss-viewer-checkbox [field]="field"/>
|
|
7856
|
+
</iss-field-viewer>
|
|
7740
7857
|
}
|
|
7741
7858
|
}
|
|
7742
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CheckboxControl, selector: "iss-ctrl-checkbox", inputs: ["options"] }, { kind: "component", type:
|
|
7859
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CheckboxControl, selector: "iss-ctrl-checkbox", inputs: ["options"] }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: CheckboxViewer, selector: "iss-viewer-checkbox" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
7743
7860
|
}
|
|
7744
7861
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CheckboxField, decorators: [{
|
|
7745
7862
|
type: Component,
|
|
@@ -7749,8 +7866,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7749
7866
|
imports: [
|
|
7750
7867
|
ReactiveFormsModule,
|
|
7751
7868
|
CheckboxControl,
|
|
7752
|
-
|
|
7753
|
-
CheckboxViewer
|
|
7869
|
+
ValidationMessage,
|
|
7870
|
+
CheckboxViewer,
|
|
7871
|
+
FieldViewer
|
|
7754
7872
|
],
|
|
7755
7873
|
template: `
|
|
7756
7874
|
@if (field.visible()) {
|
|
@@ -7762,7 +7880,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7762
7880
|
</iss-ctrl-checkbox>
|
|
7763
7881
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7764
7882
|
} @else {
|
|
7765
|
-
<iss-viewer
|
|
7883
|
+
<iss-field-viewer>
|
|
7884
|
+
@if (!field.config.hideLabel()) {
|
|
7885
|
+
<label>{{ field.label() }}</label>
|
|
7886
|
+
}
|
|
7887
|
+
<iss-viewer-checkbox [field]="field"/>
|
|
7888
|
+
</iss-field-viewer>
|
|
7766
7889
|
}
|
|
7767
7890
|
}
|
|
7768
7891
|
`
|
|
@@ -7834,10 +7957,10 @@ class ToggleButtonField extends FieldBase {
|
|
|
7834
7957
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ToggleButtonField, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
7835
7958
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ToggleButtonField, isStandalone: true, selector: "iss-field-toggle-button", usesInheritance: true, ngImport: i0, template: `
|
|
7836
7959
|
@if (field.visible()) {
|
|
7837
|
-
@if (!field.config.hideLabel()) {
|
|
7838
|
-
<mat-label>{{ field.label() }}</mat-label>
|
|
7839
|
-
}
|
|
7840
7960
|
@if (field.mode() === "edit") {
|
|
7961
|
+
@if (!field.config.hideLabel()) {
|
|
7962
|
+
<mat-label>{{ field.label() }}</mat-label>
|
|
7963
|
+
}
|
|
7841
7964
|
<iss-ctrl-toggle-button
|
|
7842
7965
|
[formControlName]="field.name"
|
|
7843
7966
|
[options]="field.options()"
|
|
@@ -7847,10 +7970,15 @@ class ToggleButtonField extends FieldBase {
|
|
|
7847
7970
|
/>
|
|
7848
7971
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7849
7972
|
} @else {
|
|
7850
|
-
<iss-viewer
|
|
7973
|
+
<iss-field-viewer>
|
|
7974
|
+
@if (!field.config.hideLabel()) {
|
|
7975
|
+
<label>{{ field.label() }}</label>
|
|
7976
|
+
}
|
|
7977
|
+
<iss-viewer-toggle-button [field]="field"/>
|
|
7978
|
+
</iss-field-viewer>
|
|
7851
7979
|
}
|
|
7852
7980
|
}
|
|
7853
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: ToggleButtonControl, selector: "iss-ctrl-toggle-button", inputs: ["options"] }, { kind: "component", type:
|
|
7981
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: ToggleButtonControl, selector: "iss-ctrl-toggle-button", inputs: ["options"] }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: ToggleButtonViewer, selector: "iss-viewer-toggle-button" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
7854
7982
|
}
|
|
7855
7983
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ToggleButtonField, decorators: [{
|
|
7856
7984
|
type: Component,
|
|
@@ -7861,15 +7989,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7861
7989
|
ReactiveFormsModule,
|
|
7862
7990
|
MatLabel,
|
|
7863
7991
|
ToggleButtonControl,
|
|
7864
|
-
|
|
7865
|
-
ToggleButtonViewer
|
|
7992
|
+
ValidationMessage,
|
|
7993
|
+
ToggleButtonViewer,
|
|
7994
|
+
FieldViewer
|
|
7866
7995
|
],
|
|
7867
7996
|
template: `
|
|
7868
7997
|
@if (field.visible()) {
|
|
7869
|
-
@if (!field.config.hideLabel()) {
|
|
7870
|
-
<mat-label>{{ field.label() }}</mat-label>
|
|
7871
|
-
}
|
|
7872
7998
|
@if (field.mode() === "edit") {
|
|
7999
|
+
@if (!field.config.hideLabel()) {
|
|
8000
|
+
<mat-label>{{ field.label() }}</mat-label>
|
|
8001
|
+
}
|
|
7873
8002
|
<iss-ctrl-toggle-button
|
|
7874
8003
|
[formControlName]="field.name"
|
|
7875
8004
|
[options]="field.options()"
|
|
@@ -7879,7 +8008,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7879
8008
|
/>
|
|
7880
8009
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7881
8010
|
} @else {
|
|
7882
|
-
<iss-viewer
|
|
8011
|
+
<iss-field-viewer>
|
|
8012
|
+
@if (!field.config.hideLabel()) {
|
|
8013
|
+
<label>{{ field.label() }}</label>
|
|
8014
|
+
}
|
|
8015
|
+
<iss-viewer-toggle-button [field]="field"/>
|
|
8016
|
+
</iss-field-viewer>
|
|
7883
8017
|
}
|
|
7884
8018
|
}
|
|
7885
8019
|
`
|
|
@@ -7954,36 +8088,44 @@ class SlideToggleField extends FieldBase {
|
|
|
7954
8088
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SlideToggleField, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
7955
8089
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SlideToggleField, isStandalone: true, selector: "iss-field-slide-toggle", usesInheritance: true, ngImport: i0, template: `
|
|
7956
8090
|
@if (field.visible()) {
|
|
7957
|
-
@if (!field.config.hideLabel()) {
|
|
7958
|
-
<mat-label>{{ field.label() }}</mat-label>
|
|
7959
|
-
}
|
|
7960
|
-
|
|
7961
8091
|
@if (field.mode() === "edit") {
|
|
8092
|
+
@if (!field.config.hideLabel()) {
|
|
8093
|
+
<mat-label>{{ field.label() }}</mat-label>
|
|
8094
|
+
}
|
|
7962
8095
|
<iss-ctrl-slide-toggle [formControlName]="field.name" [readonly]="field.config.readonly() ?? false" (onChange)="onChange($event)"/>
|
|
7963
8096
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7964
8097
|
} @else {
|
|
7965
|
-
<iss-viewer
|
|
8098
|
+
<iss-field-viewer>
|
|
8099
|
+
@if (!field.config.hideLabel()) {
|
|
8100
|
+
<label>{{ field.label() }}</label>
|
|
8101
|
+
}
|
|
8102
|
+
<iss-viewer-slide-toggle [field]="field"/>
|
|
8103
|
+
</iss-field-viewer>
|
|
7966
8104
|
}
|
|
7967
8105
|
}
|
|
7968
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: SlideToggleControl, selector: "iss-ctrl-slide-toggle" }, { kind: "component", type: SlideToggleViewer, selector: "iss-viewer-slide-toggle" }, { kind: "component", type:
|
|
8106
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: SlideToggleControl, selector: "iss-ctrl-slide-toggle" }, { kind: "component", type: SlideToggleViewer, selector: "iss-viewer-slide-toggle" }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
7969
8107
|
}
|
|
7970
8108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SlideToggleField, decorators: [{
|
|
7971
8109
|
type: Component,
|
|
7972
8110
|
args: [{
|
|
7973
8111
|
selector: "iss-field-slide-toggle",
|
|
7974
8112
|
viewProviders: [VIEW_PROVIDER],
|
|
7975
|
-
imports: [ReactiveFormsModule, MatLabel, SlideToggleControl, SlideToggleViewer,
|
|
8113
|
+
imports: [ReactiveFormsModule, MatLabel, SlideToggleControl, SlideToggleViewer, ValidationMessage, FieldViewer],
|
|
7976
8114
|
template: `
|
|
7977
8115
|
@if (field.visible()) {
|
|
7978
|
-
@if (!field.config.hideLabel()) {
|
|
7979
|
-
<mat-label>{{ field.label() }}</mat-label>
|
|
7980
|
-
}
|
|
7981
|
-
|
|
7982
8116
|
@if (field.mode() === "edit") {
|
|
8117
|
+
@if (!field.config.hideLabel()) {
|
|
8118
|
+
<mat-label>{{ field.label() }}</mat-label>
|
|
8119
|
+
}
|
|
7983
8120
|
<iss-ctrl-slide-toggle [formControlName]="field.name" [readonly]="field.config.readonly() ?? false" (onChange)="onChange($event)"/>
|
|
7984
8121
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
7985
8122
|
} @else {
|
|
7986
|
-
<iss-viewer
|
|
8123
|
+
<iss-field-viewer>
|
|
8124
|
+
@if (!field.config.hideLabel()) {
|
|
8125
|
+
<label>{{ field.label() }}</label>
|
|
8126
|
+
}
|
|
8127
|
+
<iss-viewer-slide-toggle [field]="field"/>
|
|
8128
|
+
</iss-field-viewer>
|
|
7987
8129
|
}
|
|
7988
8130
|
}
|
|
7989
8131
|
`
|
|
@@ -8202,18 +8344,22 @@ class PlateField extends FieldBase {
|
|
|
8202
8344
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PlateField, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
8203
8345
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: PlateField, isStandalone: true, selector: "iss-field-plate-number", usesInheritance: true, ngImport: i0, template: `
|
|
8204
8346
|
@if (field.visible()) {
|
|
8205
|
-
@if (!field.config.hideLabel()) {
|
|
8206
|
-
<mat-label>{{ field.label() }}</mat-label>
|
|
8207
|
-
}
|
|
8208
|
-
|
|
8209
8347
|
@if (field.mode() === "edit") {
|
|
8348
|
+
@if (!field.config.hideLabel()) {
|
|
8349
|
+
<mat-label>{{ field.label() }}</mat-label>
|
|
8350
|
+
}
|
|
8210
8351
|
<iss-ctrl-plate-number [formControlName]="field.name" [readonly]="field.config.readonly() ?? false" (onChange)="updateField($event)"/>
|
|
8211
8352
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
8212
8353
|
} @else {
|
|
8213
|
-
<iss-viewer
|
|
8354
|
+
<iss-field-viewer>
|
|
8355
|
+
@if (!field.config.hideLabel()) {
|
|
8356
|
+
<label>{{ field.label() }}</label>
|
|
8357
|
+
}
|
|
8358
|
+
<iss-viewer-plate [field]="field"/>
|
|
8359
|
+
</iss-field-viewer>
|
|
8214
8360
|
}
|
|
8215
8361
|
}
|
|
8216
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: PlateControl, selector: "iss-ctrl-plate-number" }, { kind: "component", type:
|
|
8362
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: PlateControl, selector: "iss-ctrl-plate-number" }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: PlateViewer, selector: "iss-viewer-plate" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
8217
8363
|
}
|
|
8218
8364
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PlateField, decorators: [{
|
|
8219
8365
|
type: Component,
|
|
@@ -8223,21 +8369,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8223
8369
|
imports: [
|
|
8224
8370
|
ReactiveFormsModule,
|
|
8225
8371
|
PlateControl,
|
|
8226
|
-
|
|
8372
|
+
ValidationMessage,
|
|
8227
8373
|
MatLabel,
|
|
8228
|
-
PlateViewer
|
|
8374
|
+
PlateViewer,
|
|
8375
|
+
FieldViewer
|
|
8229
8376
|
],
|
|
8230
8377
|
template: `
|
|
8231
8378
|
@if (field.visible()) {
|
|
8232
|
-
@if (!field.config.hideLabel()) {
|
|
8233
|
-
<mat-label>{{ field.label() }}</mat-label>
|
|
8234
|
-
}
|
|
8235
|
-
|
|
8236
8379
|
@if (field.mode() === "edit") {
|
|
8380
|
+
@if (!field.config.hideLabel()) {
|
|
8381
|
+
<mat-label>{{ field.label() }}</mat-label>
|
|
8382
|
+
}
|
|
8237
8383
|
<iss-ctrl-plate-number [formControlName]="field.name" [readonly]="field.config.readonly() ?? false" (onChange)="updateField($event)"/>
|
|
8238
8384
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
8239
8385
|
} @else {
|
|
8240
|
-
<iss-viewer
|
|
8386
|
+
<iss-field-viewer>
|
|
8387
|
+
@if (!field.config.hideLabel()) {
|
|
8388
|
+
<label>{{ field.label() }}</label>
|
|
8389
|
+
}
|
|
8390
|
+
<iss-viewer-plate [field]="field"/>
|
|
8391
|
+
</iss-field-viewer>
|
|
8241
8392
|
}
|
|
8242
8393
|
}
|
|
8243
8394
|
`
|
|
@@ -8562,10 +8713,10 @@ class FilePickerField extends FieldBase {
|
|
|
8562
8713
|
super.ngOnDestroy();
|
|
8563
8714
|
this.#valueEffect.destroy();
|
|
8564
8715
|
}
|
|
8565
|
-
//
|
|
8716
|
+
// The accepted extensions are the `fileType` rule's own value, the same one its validator is
|
|
8717
|
+
// built from — a list, or the comma-separated string an older definition wrote it as.
|
|
8566
8718
|
#acceptFactory() {
|
|
8567
|
-
const
|
|
8568
|
-
const extensions = fileType && fileType.hasOwnProperty("fn") ? fileType.value : fileType;
|
|
8719
|
+
const extensions = this.field.validation?.["fileType"];
|
|
8569
8720
|
if (!extensions) {
|
|
8570
8721
|
return "";
|
|
8571
8722
|
}
|
|
@@ -8600,8 +8751,8 @@ class FilePickerField extends FieldBase {
|
|
|
8600
8751
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FilePickerField, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
8601
8752
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: FilePickerField, isStandalone: true, selector: "iss-field-file-picker", usesInheritance: true, ngImport: i0, template: `
|
|
8602
8753
|
@if (field.visible()) {
|
|
8603
|
-
<mat-label>{{ field.label() }}</mat-label>
|
|
8604
8754
|
@if (field.mode() === "edit") {
|
|
8755
|
+
<mat-label>{{ field.label() }}</mat-label>
|
|
8605
8756
|
<input type="hidden" [formControlName]="field.name">
|
|
8606
8757
|
<!-- [showDeleteButton]="field.config.showDeleteButton" [showDownloadButton]="field.config.showDownloadButton"-->
|
|
8607
8758
|
<iss-ctrl-file-picker
|
|
@@ -8616,10 +8767,13 @@ class FilePickerField extends FieldBase {
|
|
|
8616
8767
|
/>
|
|
8617
8768
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="ctrl.touched"/>
|
|
8618
8769
|
} @else {
|
|
8619
|
-
<iss-viewer
|
|
8770
|
+
<iss-field-viewer>
|
|
8771
|
+
<label>{{ field.label() }}</label>
|
|
8772
|
+
<iss-viewer-attachment [uploading]="uploading()" [field]="viewField()"/>
|
|
8773
|
+
</iss-field-viewer>
|
|
8620
8774
|
}
|
|
8621
8775
|
}
|
|
8622
|
-
`, 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: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FilePickerControl, selector: "iss-ctrl-file-picker", inputs: ["accept", "showDownloadButton", "showDeleteButton", "uploading", "uploadedFiles", "uploadingError"] }, { kind: "component", type:
|
|
8776
|
+
`, 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: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FilePickerControl, selector: "iss-ctrl-file-picker", inputs: ["accept", "showDownloadButton", "showDeleteButton", "uploading", "uploadedFiles", "uploadingError"] }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: AttachmentViewer, selector: "iss-viewer-attachment", inputs: ["uploading", "uploadingError"], outputs: ["deleteOut"] }, { kind: "directive", type: MatLabel$1, selector: "mat-label" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
8623
8777
|
}
|
|
8624
8778
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FilePickerField, decorators: [{
|
|
8625
8779
|
type: Component,
|
|
@@ -8629,14 +8783,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8629
8783
|
imports: [
|
|
8630
8784
|
ReactiveFormsModule,
|
|
8631
8785
|
FilePickerControl,
|
|
8632
|
-
|
|
8786
|
+
ValidationMessage,
|
|
8633
8787
|
AttachmentViewer,
|
|
8634
|
-
MatLabel$1
|
|
8788
|
+
MatLabel$1,
|
|
8789
|
+
FieldViewer
|
|
8635
8790
|
],
|
|
8636
8791
|
template: `
|
|
8637
8792
|
@if (field.visible()) {
|
|
8638
|
-
<mat-label>{{ field.label() }}</mat-label>
|
|
8639
8793
|
@if (field.mode() === "edit") {
|
|
8794
|
+
<mat-label>{{ field.label() }}</mat-label>
|
|
8640
8795
|
<input type="hidden" [formControlName]="field.name">
|
|
8641
8796
|
<!-- [showDeleteButton]="field.config.showDeleteButton" [showDownloadButton]="field.config.showDownloadButton"-->
|
|
8642
8797
|
<iss-ctrl-file-picker
|
|
@@ -8651,7 +8806,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8651
8806
|
/>
|
|
8652
8807
|
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="ctrl.touched"/>
|
|
8653
8808
|
} @else {
|
|
8654
|
-
<iss-viewer
|
|
8809
|
+
<iss-field-viewer>
|
|
8810
|
+
<label>{{ field.label() }}</label>
|
|
8811
|
+
<iss-viewer-attachment [uploading]="uploading()" [field]="viewField()"/>
|
|
8812
|
+
</iss-field-viewer>
|
|
8655
8813
|
}
|
|
8656
8814
|
}
|
|
8657
8815
|
`
|
|
@@ -8715,10 +8873,13 @@ class TimePickerField extends FieldBase {
|
|
|
8715
8873
|
<label>{{ field.label() }}</label>
|
|
8716
8874
|
</iss-ctrl-time-picker>
|
|
8717
8875
|
} @else {
|
|
8718
|
-
<iss-viewer
|
|
8876
|
+
<iss-field-viewer>
|
|
8877
|
+
<label>{{ field.label() }}</label>
|
|
8878
|
+
<iss-viewer-time-picker [field]="field"/>
|
|
8879
|
+
</iss-field-viewer>
|
|
8719
8880
|
}
|
|
8720
8881
|
}
|
|
8721
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TimePickerControl, selector: "iss-ctrl-time-picker", inputs: ["interval", "minTime", "maxTime"] }, { kind: "component", type: TimePickerViewer, selector: "iss-viewer-time-picker" }], viewProviders: [VIEW_PROVIDER] });
|
|
8882
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TimePickerControl, selector: "iss-ctrl-time-picker", inputs: ["interval", "minTime", "maxTime"] }, { kind: "component", type: TimePickerViewer, selector: "iss-viewer-time-picker" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
8722
8883
|
}
|
|
8723
8884
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TimePickerField, decorators: [{
|
|
8724
8885
|
type: Component,
|
|
@@ -8728,7 +8889,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8728
8889
|
imports: [
|
|
8729
8890
|
ReactiveFormsModule,
|
|
8730
8891
|
TimePickerControl,
|
|
8731
|
-
TimePickerViewer
|
|
8892
|
+
TimePickerViewer,
|
|
8893
|
+
FieldViewer
|
|
8732
8894
|
],
|
|
8733
8895
|
template: `
|
|
8734
8896
|
@if (field.visible()) {
|
|
@@ -8737,7 +8899,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8737
8899
|
<label>{{ field.label() }}</label>
|
|
8738
8900
|
</iss-ctrl-time-picker>
|
|
8739
8901
|
} @else {
|
|
8740
|
-
<iss-viewer
|
|
8902
|
+
<iss-field-viewer>
|
|
8903
|
+
<label>{{ field.label() }}</label>
|
|
8904
|
+
<iss-viewer-time-picker [field]="field"/>
|
|
8905
|
+
</iss-field-viewer>
|
|
8741
8906
|
}
|
|
8742
8907
|
}
|
|
8743
8908
|
`
|
|
@@ -8815,9 +8980,9 @@ var datePicker_viewer = /*#__PURE__*/Object.freeze({
|
|
|
8815
8980
|
*/
|
|
8816
8981
|
class DatePickerField extends FieldBase {
|
|
8817
8982
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DatePickerField, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
8818
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DatePickerField, isStandalone: true, selector: "iss-field-date-picker", usesInheritance: true, ngImport: i0, template: `
|
|
8819
|
-
@if (field.visible()) {
|
|
8820
|
-
@if (field.mode() === "edit") {
|
|
8983
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DatePickerField, isStandalone: true, selector: "iss-field-date-picker", usesInheritance: true, ngImport: i0, template: `
|
|
8984
|
+
@if (field.visible()) {
|
|
8985
|
+
@if (field.mode() === "edit") {
|
|
8821
8986
|
<iss-ctrl-date-picker
|
|
8822
8987
|
[formControlName]="field.name"
|
|
8823
8988
|
[minDate]="field.config.minDate() ?? null"
|
|
@@ -8825,15 +8990,18 @@ class DatePickerField extends FieldBase {
|
|
|
8825
8990
|
[readonly]="field.config.readonly() ?? false"
|
|
8826
8991
|
[hijriCalendar]="field.config.hijriCalendar() ?? false"
|
|
8827
8992
|
[emitHijri]="field.config.emitHijri() ?? false"
|
|
8828
|
-
>
|
|
8829
|
-
<label>{{ field.label() }}</label>
|
|
8830
|
-
</iss-ctrl-date-picker>
|
|
8831
|
-
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
8832
|
-
} @else {
|
|
8833
|
-
<iss-viewer
|
|
8834
|
-
|
|
8835
|
-
|
|
8836
|
-
|
|
8993
|
+
>
|
|
8994
|
+
<label>{{ field.label() }}</label>
|
|
8995
|
+
</iss-ctrl-date-picker>
|
|
8996
|
+
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
8997
|
+
} @else {
|
|
8998
|
+
<iss-field-viewer>
|
|
8999
|
+
<label>{{ field.label() }}</label>
|
|
9000
|
+
<iss-viewer-date-picker [field]="field"/>
|
|
9001
|
+
</iss-field-viewer>
|
|
9002
|
+
}
|
|
9003
|
+
}
|
|
9004
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DatePickerControl, selector: "iss-ctrl-date-picker", inputs: ["disabledDays", "minDate", "maxDate", "hijriCalendar", "emitHijri"] }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: DatePickerViewer, selector: "iss-viewer-date-picker" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
8837
9005
|
}
|
|
8838
9006
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DatePickerField, decorators: [{
|
|
8839
9007
|
type: Component,
|
|
@@ -8843,12 +9011,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8843
9011
|
imports: [
|
|
8844
9012
|
ReactiveFormsModule,
|
|
8845
9013
|
DatePickerControl,
|
|
8846
|
-
|
|
8847
|
-
DatePickerViewer
|
|
9014
|
+
ValidationMessage,
|
|
9015
|
+
DatePickerViewer,
|
|
9016
|
+
FieldViewer
|
|
8848
9017
|
],
|
|
8849
|
-
template: `
|
|
8850
|
-
@if (field.visible()) {
|
|
8851
|
-
@if (field.mode() === "edit") {
|
|
9018
|
+
template: `
|
|
9019
|
+
@if (field.visible()) {
|
|
9020
|
+
@if (field.mode() === "edit") {
|
|
8852
9021
|
<iss-ctrl-date-picker
|
|
8853
9022
|
[formControlName]="field.name"
|
|
8854
9023
|
[minDate]="field.config.minDate() ?? null"
|
|
@@ -8856,14 +9025,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8856
9025
|
[readonly]="field.config.readonly() ?? false"
|
|
8857
9026
|
[hijriCalendar]="field.config.hijriCalendar() ?? false"
|
|
8858
9027
|
[emitHijri]="field.config.emitHijri() ?? false"
|
|
8859
|
-
>
|
|
8860
|
-
<label>{{ field.label() }}</label>
|
|
8861
|
-
</iss-ctrl-date-picker>
|
|
8862
|
-
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
8863
|
-
} @else {
|
|
8864
|
-
<iss-viewer
|
|
8865
|
-
|
|
8866
|
-
|
|
9028
|
+
>
|
|
9029
|
+
<label>{{ field.label() }}</label>
|
|
9030
|
+
</iss-ctrl-date-picker>
|
|
9031
|
+
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
9032
|
+
} @else {
|
|
9033
|
+
<iss-field-viewer>
|
|
9034
|
+
<label>{{ field.label() }}</label>
|
|
9035
|
+
<iss-viewer-date-picker [field]="field"/>
|
|
9036
|
+
</iss-field-viewer>
|
|
9037
|
+
}
|
|
9038
|
+
}
|
|
8867
9039
|
`
|
|
8868
9040
|
}]
|
|
8869
9041
|
}] });
|
|
@@ -8941,9 +9113,9 @@ var datetimePicker_viewer = /*#__PURE__*/Object.freeze({
|
|
|
8941
9113
|
*/
|
|
8942
9114
|
class DatetimePickerField extends FieldBase {
|
|
8943
9115
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DatetimePickerField, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
8944
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DatetimePickerField, isStandalone: true, selector: "iss-field-datetime-picker", usesInheritance: true, ngImport: i0, template: `
|
|
8945
|
-
@if (field.visible()) {
|
|
8946
|
-
@if (field.mode() === "edit") {
|
|
9116
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DatetimePickerField, isStandalone: true, selector: "iss-field-datetime-picker", usesInheritance: true, ngImport: i0, template: `
|
|
9117
|
+
@if (field.visible()) {
|
|
9118
|
+
@if (field.mode() === "edit") {
|
|
8947
9119
|
<iss-ctrl-datetime-picker
|
|
8948
9120
|
[formControlName]="field.name"
|
|
8949
9121
|
[minDate]="field.config.minDate() ?? null"
|
|
@@ -8951,15 +9123,18 @@ class DatetimePickerField extends FieldBase {
|
|
|
8951
9123
|
[readonly]="field.config.readonly() ?? false"
|
|
8952
9124
|
[hijriCalendar]="field.config.hijriCalendar() ?? false"
|
|
8953
9125
|
[emitHijri]="field.config.emitHijri() ?? false"
|
|
8954
|
-
>
|
|
8955
|
-
<label>{{ field.label() }}</label>
|
|
8956
|
-
</iss-ctrl-datetime-picker>
|
|
8957
|
-
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
8958
|
-
} @else {
|
|
8959
|
-
<iss-viewer
|
|
8960
|
-
|
|
8961
|
-
|
|
8962
|
-
|
|
9126
|
+
>
|
|
9127
|
+
<label>{{ field.label() }}</label>
|
|
9128
|
+
</iss-ctrl-datetime-picker>
|
|
9129
|
+
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
9130
|
+
} @else {
|
|
9131
|
+
<iss-field-viewer>
|
|
9132
|
+
<label>{{ field.label() }}</label>
|
|
9133
|
+
<iss-viewer-datetime-picker [field]="field"/>
|
|
9134
|
+
</iss-field-viewer>
|
|
9135
|
+
}
|
|
9136
|
+
}
|
|
9137
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DatetimePickerControl, selector: "iss-ctrl-datetime-picker", inputs: ["disabledDays", "minDate", "maxDate", "minTime", "maxTime", "hijriCalendar", "emitHijri"] }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: DatePickerTimeViewer, selector: "iss-viewer-datetime-picker" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
8963
9138
|
}
|
|
8964
9139
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DatetimePickerField, decorators: [{
|
|
8965
9140
|
type: Component,
|
|
@@ -8969,12 +9144,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8969
9144
|
imports: [
|
|
8970
9145
|
ReactiveFormsModule,
|
|
8971
9146
|
DatetimePickerControl,
|
|
8972
|
-
|
|
9147
|
+
ValidationMessage,
|
|
8973
9148
|
DatePickerTimeViewer,
|
|
9149
|
+
FieldViewer
|
|
8974
9150
|
],
|
|
8975
|
-
template: `
|
|
8976
|
-
@if (field.visible()) {
|
|
8977
|
-
@if (field.mode() === "edit") {
|
|
9151
|
+
template: `
|
|
9152
|
+
@if (field.visible()) {
|
|
9153
|
+
@if (field.mode() === "edit") {
|
|
8978
9154
|
<iss-ctrl-datetime-picker
|
|
8979
9155
|
[formControlName]="field.name"
|
|
8980
9156
|
[minDate]="field.config.minDate() ?? null"
|
|
@@ -8982,14 +9158,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8982
9158
|
[readonly]="field.config.readonly() ?? false"
|
|
8983
9159
|
[hijriCalendar]="field.config.hijriCalendar() ?? false"
|
|
8984
9160
|
[emitHijri]="field.config.emitHijri() ?? false"
|
|
8985
|
-
>
|
|
8986
|
-
<label>{{ field.label() }}</label>
|
|
8987
|
-
</iss-ctrl-datetime-picker>
|
|
8988
|
-
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
8989
|
-
} @else {
|
|
8990
|
-
<iss-viewer
|
|
8991
|
-
|
|
8992
|
-
|
|
9161
|
+
>
|
|
9162
|
+
<label>{{ field.label() }}</label>
|
|
9163
|
+
</iss-ctrl-datetime-picker>
|
|
9164
|
+
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
9165
|
+
} @else {
|
|
9166
|
+
<iss-field-viewer>
|
|
9167
|
+
<label>{{ field.label() }}</label>
|
|
9168
|
+
<iss-viewer-datetime-picker [field]="field"/>
|
|
9169
|
+
</iss-field-viewer>
|
|
9170
|
+
}
|
|
9171
|
+
}
|
|
8993
9172
|
`
|
|
8994
9173
|
}]
|
|
8995
9174
|
}] });
|
|
@@ -9068,9 +9247,9 @@ var dateRangePicker_viewer = /*#__PURE__*/Object.freeze({
|
|
|
9068
9247
|
*/
|
|
9069
9248
|
class DateRangePickerField extends FieldBase {
|
|
9070
9249
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DateRangePickerField, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
9071
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DateRangePickerField, isStandalone: true, selector: "iss-field-date-range-picker", usesInheritance: true, ngImport: i0, template: `
|
|
9072
|
-
@if (field.visible()) {
|
|
9073
|
-
@if (field.mode() === "edit") {
|
|
9250
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DateRangePickerField, isStandalone: true, selector: "iss-field-date-range-picker", usesInheritance: true, ngImport: i0, template: `
|
|
9251
|
+
@if (field.visible()) {
|
|
9252
|
+
@if (field.mode() === "edit") {
|
|
9074
9253
|
<iss-ctrl-date-range-picker
|
|
9075
9254
|
[formControlName]="field.name"
|
|
9076
9255
|
[minDate]="field.config.minDate() ?? null"
|
|
@@ -9078,14 +9257,17 @@ class DateRangePickerField extends FieldBase {
|
|
|
9078
9257
|
[readonly]="field.config.readonly() ?? false"
|
|
9079
9258
|
[hijriCalendar]="field.config.hijriCalendar() ?? false"
|
|
9080
9259
|
[emitHijri]="field.config.emitHijri() ?? false"
|
|
9081
|
-
>
|
|
9082
|
-
<label>{{ field.label() }}</label>
|
|
9083
|
-
</iss-ctrl-date-range-picker>
|
|
9084
|
-
} @else {
|
|
9085
|
-
<iss-viewer
|
|
9086
|
-
|
|
9087
|
-
|
|
9088
|
-
|
|
9260
|
+
>
|
|
9261
|
+
<label>{{ field.label() }}</label>
|
|
9262
|
+
</iss-ctrl-date-range-picker>
|
|
9263
|
+
} @else {
|
|
9264
|
+
<iss-field-viewer>
|
|
9265
|
+
<label>{{ field.label() }}</label>
|
|
9266
|
+
<iss-viewer-date-range-picker [field]="field"/>
|
|
9267
|
+
</iss-field-viewer>
|
|
9268
|
+
}
|
|
9269
|
+
}
|
|
9270
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DateRangePickerControl, selector: "iss-ctrl-date-range-picker", inputs: ["disabledDays", "minDate", "maxDate", "hijriCalendar", "emitHijri"], outputs: ["onDateRangeObjectChange"] }, { kind: "component", type: DateRangePickerViewer, selector: "iss-viewer-date-range-picker" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
|
|
9089
9271
|
}
|
|
9090
9272
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DateRangePickerField, decorators: [{
|
|
9091
9273
|
type: Component,
|
|
@@ -9095,11 +9277,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
9095
9277
|
imports: [
|
|
9096
9278
|
ReactiveFormsModule,
|
|
9097
9279
|
DateRangePickerControl,
|
|
9098
|
-
DateRangePickerViewer
|
|
9280
|
+
DateRangePickerViewer,
|
|
9281
|
+
FieldViewer
|
|
9099
9282
|
],
|
|
9100
|
-
template: `
|
|
9101
|
-
@if (field.visible()) {
|
|
9102
|
-
@if (field.mode() === "edit") {
|
|
9283
|
+
template: `
|
|
9284
|
+
@if (field.visible()) {
|
|
9285
|
+
@if (field.mode() === "edit") {
|
|
9103
9286
|
<iss-ctrl-date-range-picker
|
|
9104
9287
|
[formControlName]="field.name"
|
|
9105
9288
|
[minDate]="field.config.minDate() ?? null"
|
|
@@ -9107,13 +9290,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
9107
9290
|
[readonly]="field.config.readonly() ?? false"
|
|
9108
9291
|
[hijriCalendar]="field.config.hijriCalendar() ?? false"
|
|
9109
9292
|
[emitHijri]="field.config.emitHijri() ?? false"
|
|
9110
|
-
>
|
|
9111
|
-
<label>{{ field.label() }}</label>
|
|
9112
|
-
</iss-ctrl-date-range-picker>
|
|
9113
|
-
} @else {
|
|
9114
|
-
<iss-viewer
|
|
9115
|
-
|
|
9116
|
-
|
|
9293
|
+
>
|
|
9294
|
+
<label>{{ field.label() }}</label>
|
|
9295
|
+
</iss-ctrl-date-range-picker>
|
|
9296
|
+
} @else {
|
|
9297
|
+
<iss-field-viewer>
|
|
9298
|
+
<label>{{ field.label() }}</label>
|
|
9299
|
+
<iss-viewer-date-range-picker [field]="field"/>
|
|
9300
|
+
</iss-field-viewer>
|
|
9301
|
+
}
|
|
9302
|
+
}
|
|
9117
9303
|
`
|
|
9118
9304
|
}]
|
|
9119
9305
|
}] });
|
|
@@ -9402,11 +9588,13 @@ var file_validator = /*#__PURE__*/Object.freeze({
|
|
|
9402
9588
|
});
|
|
9403
9589
|
|
|
9404
9590
|
class TimeValidator {
|
|
9405
|
-
|
|
9591
|
+
// The rule's value is the name of the field this one must not run past, so it arrives here
|
|
9592
|
+
// rather than being read back off the field.
|
|
9593
|
+
static beforeDate(otherFieldName) {
|
|
9406
9594
|
const controlContainer = inject(ControlContainer);
|
|
9407
9595
|
const parentForm = controlContainer.control;
|
|
9408
9596
|
return (control) => {
|
|
9409
|
-
const anotherControl = parentForm.get(
|
|
9597
|
+
const anotherControl = parentForm.get(otherFieldName);
|
|
9410
9598
|
if (anotherControl) {
|
|
9411
9599
|
const anotherControlValue = anotherControl.getRawValue();
|
|
9412
9600
|
const controlValue = control.getRawValue();
|
|
@@ -9419,7 +9607,7 @@ class TimeValidator {
|
|
|
9419
9607
|
return null;
|
|
9420
9608
|
};
|
|
9421
9609
|
}
|
|
9422
|
-
static afterDate(
|
|
9610
|
+
static afterDate(otherFieldName) {
|
|
9423
9611
|
return (control) => {
|
|
9424
9612
|
return null;
|
|
9425
9613
|
};
|
|
@@ -9437,5 +9625,5 @@ var time_validator = /*#__PURE__*/Object.freeze({
|
|
|
9437
9625
|
* Generated bundle index. Do not edit.
|
|
9438
9626
|
*/
|
|
9439
9627
|
|
|
9440
|
-
export {
|
|
9441
|
-
//# sourceMappingURL=iss-ctrl-iss-ctrl-
|
|
9628
|
+
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-BnwwafES.mjs.map
|