@muraai/mnl-form 0.0.1-alpha-db495b1 → 0.0.1-alpha-6116399
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/muraai-mnl-form.mjs +150 -143
- package/fesm2022/muraai-mnl-form.mjs.map +1 -1
- package/lib/types/upload-file.d.ts +1 -1
- package/lib/workflow-status/ workflow-status.module.d.ts +8 -8
- package/lib/workflow-status/workflow-status.component.d.ts +1 -1
- package/package.json +4 -5
- package/esm2022/lib/confirmation-dialog/confirmation-dialog.component.mjs +0 -34
- package/esm2022/lib/mnl-form/mnl-form-standalone.module.mjs +0 -155
- package/esm2022/lib/mnl-form/mnl-form.component.mjs +0 -199
- package/esm2022/lib/models/custom-form-field.model.mjs +0 -2
- package/esm2022/lib/models/workflow-status.model.mjs +0 -2
- package/esm2022/lib/services/graphql.service.mjs +0 -30
- package/esm2022/lib/services/scoring.service.mjs +0 -103
- package/esm2022/lib/types/action-button-renderer.component.mjs +0 -59
- package/esm2022/lib/types/autocomplete-type.component.mjs +0 -68
- package/esm2022/lib/types/button.type.mjs +0 -72
- package/esm2022/lib/types/comments.type.mjs +0 -102
- package/esm2022/lib/types/country-code-input.type.mjs +0 -181
- package/esm2022/lib/types/custom-date.type.mjs +0 -20
- package/esm2022/lib/types/custom-input.component.mjs +0 -62
- package/esm2022/lib/types/date-format.type.mjs +0 -196
- package/esm2022/lib/types/expansion-panel.types.mjs +0 -85
- package/esm2022/lib/types/formly-field-panel.type.mjs +0 -70
- package/esm2022/lib/types/grid-actionable.type.mjs +0 -197
- package/esm2022/lib/types/grid-formly-cell.component.mjs +0 -42
- package/esm2022/lib/types/grid.type.mjs +0 -125
- package/esm2022/lib/types/input.type.mjs +0 -43
- package/esm2022/lib/types/mu-helper-text.type.mjs +0 -331
- package/esm2022/lib/types/multi-select-autocomplete.mjs +0 -139
- package/esm2022/lib/types/multi-select-checkbox.component.mjs +0 -247
- package/esm2022/lib/types/radio.type.mjs +0 -71
- package/esm2022/lib/types/scrollable-tabs.types.mjs +0 -220
- package/esm2022/lib/types/select-api-auto-complete.component.mjs +0 -111
- package/esm2022/lib/types/select-autocomplete-redefined.component.mjs +0 -142
- package/esm2022/lib/types/select-autocomplete.type.mjs +0 -254
- package/esm2022/lib/types/stepper.type.mjs +0 -268
- package/esm2022/lib/types/table.types.mjs +0 -79
- package/esm2022/lib/types/tabs.types.mjs +0 -293
- package/esm2022/lib/types/tabular-form-dialog.component.mjs +0 -331
- package/esm2022/lib/types/tabular-form.type.mjs +0 -641
- package/esm2022/lib/types/upload-file.mjs +0 -524
- package/esm2022/lib/types/view-file-dialog.component.mjs +0 -90
- package/esm2022/lib/utils/formly.utils.mjs +0 -105
- package/esm2022/lib/validators/custom-email-validator.mjs +0 -18
- package/esm2022/lib/validators/ein-validators.mjs +0 -11
- package/esm2022/lib/validators/gst-validator.mjs +0 -11
- package/esm2022/lib/validators/normal-email-validator.mjs +0 -17
- package/esm2022/lib/validators/npi-validator.mjs +0 -11
- package/esm2022/lib/validators/pan-validator.mjs +0 -11
- package/esm2022/lib/validators/phone-number-validator.mjs +0 -22
- package/esm2022/lib/validators/select-validator.mjs +0 -7
- package/esm2022/lib/validators/tinSsn-validator.mjs +0 -12
- package/esm2022/lib/workflow-status/ workflow-status.module.mjs +0 -52
- package/esm2022/lib/workflow-status/workflow-status.component.mjs +0 -70
- package/esm2022/lib/wrappers/form-field-description-wrapper.component.mjs +0 -44
- package/esm2022/lib/wrappers/form-field-wrapper.component.mjs +0 -34
- package/esm2022/lib/wrappers/formly-wrapper-with-old-value.component.mjs +0 -140
- package/esm2022/lib/wrappers/prefix-suffix-wrapper.component.mjs +0 -95
- package/esm2022/lib/wrappers/prefix-sufix-extension.component.mjs +0 -9
- package/esm2022/muraai-mnl-form.mjs +0 -5
- package/esm2022/public-api.mjs +0 -12
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
5
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
6
|
-
import { MatInputModule } from '@angular/material/input';
|
|
7
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
8
|
-
import { FormlyModule } from '@ngx-formly/core';
|
|
9
|
-
import { FieldType, FormlyMaterialModule } from '@ngx-formly/material';
|
|
10
|
-
import { map, of, startWith } from 'rxjs';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@angular/forms";
|
|
13
|
-
import * as i2 from "@angular/common";
|
|
14
|
-
import * as i3 from "@angular/material/form-field";
|
|
15
|
-
import * as i4 from "@angular/material/input";
|
|
16
|
-
import * as i5 from "@ngx-formly/core";
|
|
17
|
-
import * as i6 from "@angular/material/autocomplete";
|
|
18
|
-
import * as i7 from "@angular/material/core";
|
|
19
|
-
import * as i8 from "@angular/material/tooltip";
|
|
20
|
-
export class FormlyFieldCountryCodeComponent extends FieldType {
|
|
21
|
-
constructor() {
|
|
22
|
-
super(...arguments);
|
|
23
|
-
this.isFocused = false;
|
|
24
|
-
this.hasValue = false;
|
|
25
|
-
this.hourCtrl = new FormControl('');
|
|
26
|
-
this.hours = [];
|
|
27
|
-
}
|
|
28
|
-
get control() {
|
|
29
|
-
return this.formControl;
|
|
30
|
-
}
|
|
31
|
-
ngOnInit() {
|
|
32
|
-
this.loadCountryCodes();
|
|
33
|
-
this.hasValue = (this.control.value !== '' && this.control.value !== undefined);
|
|
34
|
-
}
|
|
35
|
-
onFocus() {
|
|
36
|
-
this.isFocused = true;
|
|
37
|
-
this.hasValue = (this.control.value !== '' && this.control.value !== undefined);
|
|
38
|
-
}
|
|
39
|
-
onBlur() {
|
|
40
|
-
this.isFocused = false;
|
|
41
|
-
this.hasValue = (this.control.value !== '' && this.control.value !== undefined);
|
|
42
|
-
}
|
|
43
|
-
onInput() {
|
|
44
|
-
this.hasValue = (this.control.value !== '' && this.control.value !== undefined);
|
|
45
|
-
}
|
|
46
|
-
_filter(options, value) {
|
|
47
|
-
const filterValue = (value || '').toLowerCase();
|
|
48
|
-
return options?.filter((option) => option.toLowerCase().includes(filterValue));
|
|
49
|
-
}
|
|
50
|
-
onCountryCodeChange() {
|
|
51
|
-
if (this.field && this.field.props?.['countryCodeChange']) {
|
|
52
|
-
this.field.props?.['countryCodeChange'](event, this.hourCtrl.value, this.field);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
async loadCountryCodes() {
|
|
56
|
-
this.hours = await this.options.formState.getCountryCodesApi;
|
|
57
|
-
this.filteredHours$ = this.hourCtrl.valueChanges.pipe(startWith(this.hourCtrl.value || ''), map((value) => this._filter(this.hours, value)));
|
|
58
|
-
this.hourCtrl.setValue(this.field.model?.['countryCode']);
|
|
59
|
-
if (!this.hourCtrl.value) {
|
|
60
|
-
this.hourCtrl.setValue(this.to['countryCode'] || '+91');
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
validateInput() {
|
|
64
|
-
const options$ = Array.isArray(this.hours) ? of(this.hours) : this.hours || of([]);
|
|
65
|
-
options$.subscribe((options) => {
|
|
66
|
-
const isValidOption = options.some((option) => option.split('+')[1] === (this.hourCtrl.value?.includes('+') ? this.hourCtrl.value?.split('+')[1] : this.hourCtrl.value));
|
|
67
|
-
if (!isValidOption) {
|
|
68
|
-
this.hourCtrl.setValue('');
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormlyFieldCountryCodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormlyFieldCountryCodeComponent, isStandalone: true, selector: "mu-country-code-phone", host: { classAttribute: "w-full grid" }, usesInheritance: true, ngImport: i0, template: `
|
|
74
|
-
<div class="flex flex-nowrap items-center gap-3 w-full">
|
|
75
|
-
<mat-form-field appearance="outline" [ngStyle]="{'width': to['codeWidth'] || '20%'}">
|
|
76
|
-
<mat-label matTooltip="Country Code">Code</mat-label>
|
|
77
|
-
<input
|
|
78
|
-
type="text"
|
|
79
|
-
matInput
|
|
80
|
-
[readonly]="to.readonly || to.disabled || to['disableCountryCode']"
|
|
81
|
-
[required]="to.required || false"
|
|
82
|
-
[disabled]="to.disabled || to['disableCountryCode'] || false"
|
|
83
|
-
[formControl]="hourCtrl"
|
|
84
|
-
[matAutocomplete]="autoHour"
|
|
85
|
-
(input)="onCountryCodeChange()"
|
|
86
|
-
(blur)="validateInput()"
|
|
87
|
-
/>
|
|
88
|
-
<mat-autocomplete #autoHour="matAutocomplete" (optionSelected)="onCountryCodeChange()">
|
|
89
|
-
<mat-option
|
|
90
|
-
*ngFor="let hour of filteredHours$ | async"
|
|
91
|
-
[value]="hour"
|
|
92
|
-
>
|
|
93
|
-
{{ hour }}
|
|
94
|
-
</mat-option>
|
|
95
|
-
</mat-autocomplete>
|
|
96
|
-
</mat-form-field>
|
|
97
|
-
<mat-form-field appearance="outline" [ngStyle]="{'width': to['phoneNumberWidth'] || '75%'}">
|
|
98
|
-
<mat-label>{{to.label}}</mat-label>
|
|
99
|
-
<input
|
|
100
|
-
fxFlex
|
|
101
|
-
matInput
|
|
102
|
-
[type]="to.type || 'number'"
|
|
103
|
-
[required]="to.required || false"
|
|
104
|
-
[formControl]="formControl"
|
|
105
|
-
[formlyAttributes]="field"
|
|
106
|
-
[placeholder]="to.placeholder ?? ''"
|
|
107
|
-
[readonly]="to.readonly"
|
|
108
|
-
[disabled]="to.disabled || false"
|
|
109
|
-
(focus)="onFocus()"
|
|
110
|
-
(blur)="onBlur()"
|
|
111
|
-
(input)="onInput()"
|
|
112
|
-
/>
|
|
113
|
-
</mat-form-field>
|
|
114
|
-
</div>
|
|
115
|
-
<mat-error *ngIf="formControl.invalid && formControl.touched">
|
|
116
|
-
{{ field.validation?.messages?.['required'] || field.validation?.messages?.['phoneValidation']}}
|
|
117
|
-
</mat-error>
|
|
118
|
-
`, isInline: true, styles: [".vertical-line{display:inline-block;width:1px;height:18px;background-color:#000;margin-top:3px;margin-right:8px;vertical-align:middle}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i5.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "ngmodule", type: FormlyMaterialModule }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
119
|
-
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormlyFieldCountryCodeComponent, decorators: [{
|
|
121
|
-
type: Component,
|
|
122
|
-
args: [{ selector: 'mu-country-code-phone', standalone: true, imports: [
|
|
123
|
-
FormsModule,
|
|
124
|
-
CommonModule,
|
|
125
|
-
ReactiveFormsModule,
|
|
126
|
-
MatFormFieldModule,
|
|
127
|
-
MatInputModule,
|
|
128
|
-
FormlyModule,
|
|
129
|
-
FormlyMaterialModule,
|
|
130
|
-
MatAutocompleteModule,
|
|
131
|
-
MatTooltipModule
|
|
132
|
-
], host: {
|
|
133
|
-
class: 'w-full grid'
|
|
134
|
-
}, template: `
|
|
135
|
-
<div class="flex flex-nowrap items-center gap-3 w-full">
|
|
136
|
-
<mat-form-field appearance="outline" [ngStyle]="{'width': to['codeWidth'] || '20%'}">
|
|
137
|
-
<mat-label matTooltip="Country Code">Code</mat-label>
|
|
138
|
-
<input
|
|
139
|
-
type="text"
|
|
140
|
-
matInput
|
|
141
|
-
[readonly]="to.readonly || to.disabled || to['disableCountryCode']"
|
|
142
|
-
[required]="to.required || false"
|
|
143
|
-
[disabled]="to.disabled || to['disableCountryCode'] || false"
|
|
144
|
-
[formControl]="hourCtrl"
|
|
145
|
-
[matAutocomplete]="autoHour"
|
|
146
|
-
(input)="onCountryCodeChange()"
|
|
147
|
-
(blur)="validateInput()"
|
|
148
|
-
/>
|
|
149
|
-
<mat-autocomplete #autoHour="matAutocomplete" (optionSelected)="onCountryCodeChange()">
|
|
150
|
-
<mat-option
|
|
151
|
-
*ngFor="let hour of filteredHours$ | async"
|
|
152
|
-
[value]="hour"
|
|
153
|
-
>
|
|
154
|
-
{{ hour }}
|
|
155
|
-
</mat-option>
|
|
156
|
-
</mat-autocomplete>
|
|
157
|
-
</mat-form-field>
|
|
158
|
-
<mat-form-field appearance="outline" [ngStyle]="{'width': to['phoneNumberWidth'] || '75%'}">
|
|
159
|
-
<mat-label>{{to.label}}</mat-label>
|
|
160
|
-
<input
|
|
161
|
-
fxFlex
|
|
162
|
-
matInput
|
|
163
|
-
[type]="to.type || 'number'"
|
|
164
|
-
[required]="to.required || false"
|
|
165
|
-
[formControl]="formControl"
|
|
166
|
-
[formlyAttributes]="field"
|
|
167
|
-
[placeholder]="to.placeholder ?? ''"
|
|
168
|
-
[readonly]="to.readonly"
|
|
169
|
-
[disabled]="to.disabled || false"
|
|
170
|
-
(focus)="onFocus()"
|
|
171
|
-
(blur)="onBlur()"
|
|
172
|
-
(input)="onInput()"
|
|
173
|
-
/>
|
|
174
|
-
</mat-form-field>
|
|
175
|
-
</div>
|
|
176
|
-
<mat-error *ngIf="formControl.invalid && formControl.touched">
|
|
177
|
-
{{ field.validation?.messages?.['required'] || field.validation?.messages?.['phoneValidation']}}
|
|
178
|
-
</mat-error>
|
|
179
|
-
`, styles: [".vertical-line{display:inline-block;width:1px;height:18px;background-color:#000;margin-top:3px;margin-right:8px;vertical-align:middle}\n"] }]
|
|
180
|
-
}] });
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1jb2RlLWlucHV0LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Zvcm0vc3JjL2xpYi90eXBlcy9jb3VudHJ5LWNvZGUtaW5wdXQudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFtQixZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBNkV0RCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsU0FBMEI7SUEzRS9FOztRQTRFRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLFVBQUssR0FBYSxFQUFFLENBQUM7S0EyRHRCO0lBeERDLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQTBCLENBQUM7SUFDekMsQ0FBQztJ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QjtxQkFDakIsUUFDSzt3QkFDSixLQUFLLEVBQUUsYUFBYTtxQkFDckIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkNUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcsIEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlNYXRlcmlhbE1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdS1jb3VudHJ5LWNvZGUtcGhvbmUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIEZvcm1seU1vZHVsZSxcbiAgICBGb3JtbHlNYXRlcmlhbE1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZVxuICBdLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICd3LWZ1bGwgZ3JpZCdcbiAgfSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LW5vd3JhcCBpdGVtcy1jZW50ZXIgZ2FwLTMgdy1mdWxsXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIFtuZ1N0eWxlXT1cInsnd2lkdGgnOiB0b1snY29kZVdpZHRoJ10gfHwgJzIwJSd9XCI+XG4gICAgICAgIDxtYXQtbGFiZWwgbWF0VG9vbHRpcD1cIkNvdW50cnkgQ29kZVwiPkNvZGU8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICBbcmVhZG9ubHldPVwidG8ucmVhZG9ubHkgfHwgdG8uZGlzYWJsZWQgfHwgdG9bJ2Rpc2FibGVDb3VudHJ5Q29kZSddXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0by5yZXF1aXJlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwidG8uZGlzYWJsZWQgfHwgdG9bJ2Rpc2FibGVDb3VudHJ5Q29kZSddIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJob3VyQ3RybFwiXG4gICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9Ib3VyXCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJvbkNvdW50cnlDb2RlQ2hhbmdlKClcIlxuICAgICAgICAgICAgKGJsdXIpPVwidmFsaWRhdGVJbnB1dCgpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvSG91cj1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJvbkNvdW50cnlDb2RlQ2hhbmdlKClcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBob3VyIG9mIGZpbHRlcmVkSG91cnMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiaG91clwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGhvdXIgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogdG9bJ3Bob25lTnVtYmVyV2lkdGgnXSB8fCAnNzUlJ31cIj5cbiAgICAgICAgPG1hdC1sYWJlbD57e3RvLmxhYmVsfX08L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgZnhGbGV4XG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICBbdHlwZV09XCJ0by50eXBlIHx8ICdudW1iZXInXCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwidG8ucmVxdWlyZWQgfHwgZmFsc2VcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0by5wbGFjZWhvbGRlciA/PyAnJ1wiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cInRvLnJlYWRvbmx5XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwidG8uZGlzYWJsZWQgfHwgZmFsc2VcIlxuICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dCgpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sLmludmFsaWQgJiYgZm9ybUNvbnRyb2wudG91Y2hlZFwiPlxuICAgICAge3sgZmllbGQudmFsaWRhdGlvbj8ubWVzc2FnZXM/LlsncmVxdWlyZWQnXSB8fCBmaWVsZC52YWxpZGF0aW9uPy5tZXNzYWdlcz8uWydwaG9uZVZhbGlkYXRpb24nXX19XG4gICAgPC9tYXQtZXJyb3I+XG4gIGAsXG4gIHN0eWxlczogYFxuICAudmVydGljYWwtbGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWx5RmllbGRDb3VudHJ5Q29kZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkVHlwZTxGaWVsZFR5cGVDb25maWc+IGltcGxlbWVudHMgT25Jbml0e1xuICBpc0ZvY3VzZWQgPSBmYWxzZTtcbiAgaGFzVmFsdWUgPSBmYWxzZTtcbiAgaG91ckN0cmwgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuICBob3Vyczogc3RyaW5nW10gPSBbXTtcbiAgZmlsdGVyZWRIb3VycyQhOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICBnZXQgY29udHJvbCgpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRDb3VudHJ5Q29kZXMoKTtcbiAgICB0aGlzLmhhc1ZhbHVlID0gKHRoaXMuY29udHJvbC52YWx1ZSAhPT0gJycgJiYgdGhpcy5jb250cm9sLnZhbHVlICE9PSB1bmRlZmluZWQpOyAgICBcbiAgfVxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgICB0aGlzLmhhc1ZhbHVlID0gKHRoaXMuY29udHJvbC52YWx1ZSAhPT0gJycgJiYgdGhpcy5jb250cm9sLnZhbHVlICE9PSB1bmRlZmluZWQpO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5oYXNWYWx1ZSA9ICh0aGlzLmNvbnRyb2wudmFsdWUgIT09ICcnICYmIHRoaXMuY29udHJvbC52YWx1ZSAhPT0gdW5kZWZpbmVkKTtcbiAgfVxuXG4gIG9uSW5wdXQoKSB7XG4gICAgdGhpcy5oYXNWYWx1ZSA9ICh0aGlzLmNvbnRyb2wudmFsdWUgIT09ICcnICYmIHRoaXMuY29udHJvbC52YWx1ZSAhPT0gdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlcihvcHRpb25zOiBzdHJpbmdbXSwgdmFsdWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9ICh2YWx1ZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gb3B0aW9ucz8uZmlsdGVyKChvcHRpb24pID0+XG4gICAgICBvcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICApO1xuICB9XG5cbiAgb25Db3VudHJ5Q29kZUNoYW5nZSgpIHtcbiAgICBpZiAodGhpcy5maWVsZCAmJiB0aGlzLmZpZWxkLnByb3BzPy5bJ2NvdW50cnlDb2RlQ2hhbmdlJ10pIHtcbiAgICAgIHRoaXMuZmllbGQucHJvcHM/LlsnY291bnRyeUNvZGVDaGFuZ2UnXShldmVudCwgdGhpcy5ob3VyQ3RybC52YWx1ZSwgdGhpcy5maWVsZCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZENvdW50cnlDb2RlcygpIHtcbiAgICB0aGlzLmhvdXJzID0gYXdhaXQgdGhpcy5vcHRpb25zLmZvcm1TdGF0ZS5nZXRDb3VudHJ5Q29kZXNBcGk7XG4gICAgdGhpcy5maWx0ZXJlZEhvdXJzJCA9IHRoaXMuaG91ckN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgodGhpcy5ob3VyQ3RybC52YWx1ZSB8fCAnJyksXG4gICAgICBtYXAoKHZhbHVlOiBhbnkpID0+IHRoaXMuX2ZpbHRlcih0aGlzLmhvdXJzLCB2YWx1ZSkpXG4gICAgKTtcbiAgICB0aGlzLmhvdXJDdHJsLnNldFZhbHVlKHRoaXMuZmllbGQubW9kZWw/LlsnY291bnRyeUNvZGUnXSk7XG4gICAgaWYoIXRoaXMuaG91ckN0cmwudmFsdWUpIHtcbiAgICAgIHRoaXMuaG91ckN0cmwuc2V0VmFsdWUodGhpcy50b1snY291bnRyeUNvZGUnXSB8fCAnKzkxJylcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUlucHV0KCkge1xuICAgICAgY29uc3Qgb3B0aW9ucyQgPSBBcnJheS5pc0FycmF5KHRoaXMuaG91cnMpID8gb2YodGhpcy5ob3VycykgOiB0aGlzLmhvdXJzIHx8IG9mKFtdKTtcbiAgICAgIG9wdGlvbnMkLnN1YnNjcmliZSgob3B0aW9ucykgPT4ge1xuICAgICAgICBjb25zdCBpc1ZhbGlkT3B0aW9uID0gb3B0aW9ucy5zb21lKChvcHRpb24pID0+IG9wdGlvbi5zcGxpdCgnKycpWzFdID09PSAodGhpcy5ob3VyQ3RybC52YWx1ZT8uaW5jbHVkZXMoJysnKSA/IHRoaXMuaG91ckN0cmwudmFsdWU/LnNwbGl0KCcrJylbMV0gOiB0aGlzLmhvdXJDdHJsLnZhbHVlKSk7XG4gICAgICAgIGlmICghaXNWYWxpZE9wdGlvbikge1xuICAgICAgICAgIHRoaXMuaG91ckN0cmwuc2V0VmFsdWUoJycpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufSJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { NativeDateAdapter } from '@angular/material/core';
|
|
2
|
-
export class CustomDate extends NativeDateAdapter {
|
|
3
|
-
parse(value) {
|
|
4
|
-
if (typeof value === 'string' && value.trim()) {
|
|
5
|
-
const [day, month, year] = value.split('-');
|
|
6
|
-
const date = new Date(`${month} ${day}, ${year}`);
|
|
7
|
-
return isNaN(date.getTime()) ? null : date;
|
|
8
|
-
}
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
format(date, displayFormat) {
|
|
12
|
-
if (!date)
|
|
13
|
-
return '';
|
|
14
|
-
const day = date.getDate().toString().padStart(2, '0');
|
|
15
|
-
const month = date.toLocaleString('en-US', { month: 'short' });
|
|
16
|
-
const year = date.getFullYear();
|
|
17
|
-
return `${day}-${month}-${year}`;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRhdGUudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZm9ybS9zcmMvbGliL3R5cGVzL2N1c3RvbS1kYXRlLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0QsTUFBTSxPQUFPLFVBQVcsU0FBUSxpQkFBaUI7SUFDdEMsS0FBSyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDOUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNsRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNRLE1BQU0sQ0FBQyxJQUFVLEVBQUUsYUFBcUI7UUFDL0MsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNyQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoQyxPQUFPLEdBQUcsR0FBRyxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXRpdmVEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuIFxuZXhwb3J0IGNsYXNzIEN1c3RvbURhdGUgZXh0ZW5kcyBOYXRpdmVEYXRlQWRhcHRlciB7XG4gIG92ZXJyaWRlIHBhcnNlKHZhbHVlOiBhbnkpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpKSB7XG4gICAgICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSB2YWx1ZS5zcGxpdCgnLScpO1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGAke21vbnRofSAke2RheX0sICR7eWVhcn1gKTtcbiAgICAgIHJldHVybiBpc05hTihkYXRlLmdldFRpbWUoKSkgPyBudWxsIDogZGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgb3ZlcnJpZGUgZm9ybWF0KGRhdGU6IERhdGUsIGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXRlKSByZXR1cm4gJyc7XG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIGNvbnN0IG1vbnRoID0gZGF0ZS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IG1vbnRoOiAnc2hvcnQnIH0pO1xuICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgcmV0dXJuIGAke2RheX0tJHttb250aH0tJHt5ZWFyfWA7XG4gIH1cbn0iXX0=
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { FieldType, FormlyModule } from '@ngx-formly/core';
|
|
5
|
-
import { FormlyMaterialModule } from '@ngx-formly/material';
|
|
6
|
-
import { MatInputModule } from '@angular/material/input';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common";
|
|
9
|
-
import * as i2 from "@angular/material/input";
|
|
10
|
-
import * as i3 from "@angular/forms";
|
|
11
|
-
import * as i4 from "@ngx-formly/core";
|
|
12
|
-
export class CustomInputComponent extends FieldType {
|
|
13
|
-
get control() {
|
|
14
|
-
return this.formControl;
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CustomInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CustomInputComponent, isStandalone: true, selector: "mu-formly-field-custom-input", usesInheritance: true, ngImport: i0, template: `
|
|
18
|
-
<input
|
|
19
|
-
matInput
|
|
20
|
-
*ngIf="to.type !== 'textarea'; else textarea"
|
|
21
|
-
[type]="to.type || 'text'"
|
|
22
|
-
[formControl]="control"
|
|
23
|
-
[formlyAttributes]="field"
|
|
24
|
-
class="form-control"
|
|
25
|
-
/>
|
|
26
|
-
<ng-template #textarea>
|
|
27
|
-
<textarea
|
|
28
|
-
matInput
|
|
29
|
-
[formControl]="control"
|
|
30
|
-
[formlyAttributes]="field"
|
|
31
|
-
class="form-control"
|
|
32
|
-
></textarea>
|
|
33
|
-
</ng-template>
|
|
34
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i4.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyMaterialModule }] }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CustomInputComponent, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{
|
|
39
|
-
selector: 'mu-formly-field-custom-input',
|
|
40
|
-
standalone: true,
|
|
41
|
-
imports: [CommonModule, MatInputModule, FormsModule, FormlyModule, ReactiveFormsModule, FormlyMaterialModule],
|
|
42
|
-
template: `
|
|
43
|
-
<input
|
|
44
|
-
matInput
|
|
45
|
-
*ngIf="to.type !== 'textarea'; else textarea"
|
|
46
|
-
[type]="to.type || 'text'"
|
|
47
|
-
[formControl]="control"
|
|
48
|
-
[formlyAttributes]="field"
|
|
49
|
-
class="form-control"
|
|
50
|
-
/>
|
|
51
|
-
<ng-template #textarea>
|
|
52
|
-
<textarea
|
|
53
|
-
matInput
|
|
54
|
-
[formControl]="control"
|
|
55
|
-
[formlyAttributes]="field"
|
|
56
|
-
class="form-control"
|
|
57
|
-
></textarea>
|
|
58
|
-
</ng-template>
|
|
59
|
-
`,
|
|
60
|
-
}]
|
|
61
|
-
}] });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZm9ybS9zcmMvbGliL3R5cGVzL2N1c3RvbS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUF5QnpELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxTQUFTO0lBQ2pELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQTBCLENBQUM7SUFDekMsQ0FBQzsrR0FIVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwrR0FuQnJCOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVCwyREFsQlMsWUFBWSxrSUFBRSxjQUFjLDBXQUFFLFdBQVcsc1pBQUUsWUFBWSxxSkFBRSxtQkFBbUIsaU5BQUUsb0JBQW9COzs0RkFvQmpHLG9CQUFvQjtrQkF2QmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsQ0FBQztvQkFDN0csUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybWx5TWF0ZXJpYWxNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXUtZm9ybWx5LWZpZWxkLWN1c3RvbS1pbnB1dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdElucHV0TW9kdWxlLCBGb3Jtc01vZHVsZSwgRm9ybWx5TW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtbHlNYXRlcmlhbE1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgKm5nSWY9XCJ0by50eXBlICE9PSAndGV4dGFyZWEnOyBlbHNlIHRleHRhcmVhXCJcbiAgICAgIFt0eXBlXT1cInRvLnR5cGUgfHwgJ3RleHQnXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAvPlxuICAgIDxuZy10ZW1wbGF0ZSAjdGV4dGFyZWE+XG4gICAgICA8dGV4dGFyZWFcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICBbZm9ybWx5QXR0cmlidXRlc109XCJmaWVsZFwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgID48L3RleHRhcmVhPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbUlucHV0Q29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlIHtcbiAgZ2V0IGNvbnRyb2woKTogRm9ybUNvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLmZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sO1xuICB9XG59XG4iXX0=
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
5
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
6
|
-
import { MatInputModule } from '@angular/material/input';
|
|
7
|
-
import { FieldType, FormlyModule } from '@ngx-formly/core';
|
|
8
|
-
import { map, startWith } from 'rxjs';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/forms";
|
|
11
|
-
import * as i2 from "@angular/material/form-field";
|
|
12
|
-
import * as i3 from "@angular/material/input";
|
|
13
|
-
import * as i4 from "@angular/common";
|
|
14
|
-
import * as i5 from "@angular/material/autocomplete";
|
|
15
|
-
import * as i6 from "@angular/material/core";
|
|
16
|
-
export class FormlyFieldTimeComponent extends FieldType {
|
|
17
|
-
constructor() {
|
|
18
|
-
super(...arguments);
|
|
19
|
-
this.hours = Array.from({ length: 24 }, (_, i) => i.toString().padStart(2, '0'));
|
|
20
|
-
this.minutes = Array.from({ length: 60 }, (_, i) => i.toString().padStart(2, '0'));
|
|
21
|
-
this.hourCtrl = new FormControl('');
|
|
22
|
-
this.minuteCtrl = new FormControl('');
|
|
23
|
-
}
|
|
24
|
-
get control() {
|
|
25
|
-
return this.formControl;
|
|
26
|
-
}
|
|
27
|
-
ngOnInit() {
|
|
28
|
-
const modelTime = this.formControl.value;
|
|
29
|
-
if (modelTime && modelTime.includes(':')) {
|
|
30
|
-
const [h, m] = modelTime.split(':');
|
|
31
|
-
this.hourCtrl.setValue(h);
|
|
32
|
-
this.minuteCtrl.setValue(m);
|
|
33
|
-
}
|
|
34
|
-
this.filteredHours$ = this.hourCtrl.valueChanges.pipe(startWith(this.hourCtrl.value || ''), map((value) => this._filter(this.hours, value)));
|
|
35
|
-
this.filteredMinutes$ = this.minuteCtrl.valueChanges.pipe(startWith(this.minuteCtrl.value || ''), map((value) => this._filter(this.minutes, value)));
|
|
36
|
-
this.hourCtrl.valueChanges.subscribe((value) => {
|
|
37
|
-
if (!this.hours.includes(value)) {
|
|
38
|
-
this.hourCtrl.setErrors({ invalidHour: true });
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
this.hourCtrl.setErrors(null);
|
|
42
|
-
}
|
|
43
|
-
this.updateModel();
|
|
44
|
-
});
|
|
45
|
-
this.minuteCtrl.valueChanges.subscribe((value) => {
|
|
46
|
-
if (!this.minutes.includes(value)) {
|
|
47
|
-
this.minuteCtrl.setErrors({ invalidMinute: true });
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
this.minuteCtrl.setErrors(null);
|
|
51
|
-
}
|
|
52
|
-
this.updateModel();
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
updateModel() {
|
|
56
|
-
const h = this.hourCtrl.value;
|
|
57
|
-
const m = this.minuteCtrl.value;
|
|
58
|
-
if (this.hours.includes(h) && this.minutes.includes(m)) {
|
|
59
|
-
this.formControl.setValue(`${h}:${m}`);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
this.formControl.setValue(null); // Prevent saving invalid input
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
_filter(options, value) {
|
|
66
|
-
const filterValue = (value || '').toLowerCase();
|
|
67
|
-
return options.filter((option) => option.toLowerCase().includes(filterValue));
|
|
68
|
-
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormlyFieldTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormlyFieldTimeComponent, isStandalone: true, selector: "mu-formly-field-time", usesInheritance: true, ngImport: i0, template: `
|
|
71
|
-
<div class="flex flex-col gap-2">
|
|
72
|
-
<div class="flex gap-4">
|
|
73
|
-
<mat-form-field appearance="outline" class="w-25">
|
|
74
|
-
<mat-label>Hour</mat-label>
|
|
75
|
-
<input
|
|
76
|
-
type="text"
|
|
77
|
-
matInput
|
|
78
|
-
[readonly]="to.readonly || to.disabled"
|
|
79
|
-
[required]="to.required || false"
|
|
80
|
-
[disabled]="to.disabled || false"
|
|
81
|
-
[formControl]="hourCtrl"
|
|
82
|
-
[matAutocomplete]="autoHour"
|
|
83
|
-
/>
|
|
84
|
-
<mat-autocomplete #autoHour="matAutocomplete">
|
|
85
|
-
<mat-option
|
|
86
|
-
*ngFor="let hour of filteredHours$ | async"
|
|
87
|
-
[value]="hour"
|
|
88
|
-
>
|
|
89
|
-
{{ hour }}
|
|
90
|
-
</mat-option>
|
|
91
|
-
</mat-autocomplete>
|
|
92
|
-
<mat-error class="text-[12px]" *ngIf="formControl.invalid && formControl.touched">
|
|
93
|
-
{{ field.validation?.messages?.['required'] || 'This field is required' }}
|
|
94
|
-
</mat-error>
|
|
95
|
-
<mat-hint>{{to.description || 'Time in 24 hour format'}}</mat-hint>
|
|
96
|
-
</mat-form-field>
|
|
97
|
-
<span> : </span>
|
|
98
|
-
<mat-form-field appearance="outline" class="w-25">
|
|
99
|
-
<mat-label>Minute</mat-label>
|
|
100
|
-
<input
|
|
101
|
-
type="text"
|
|
102
|
-
matInput
|
|
103
|
-
[readonly]="to.readonly || to.disabled"
|
|
104
|
-
[required]="to.required || false"
|
|
105
|
-
[disabled]="to.disabled || false"
|
|
106
|
-
[formControl]="minuteCtrl"
|
|
107
|
-
[matAutocomplete]="autoMinute"
|
|
108
|
-
/>
|
|
109
|
-
<mat-autocomplete #autoMinute="matAutocomplete">
|
|
110
|
-
<mat-option
|
|
111
|
-
*ngFor="let minute of filteredMinutes$ | async"
|
|
112
|
-
[value]="minute"
|
|
113
|
-
>
|
|
114
|
-
{{ minute }}
|
|
115
|
-
</mat-option>
|
|
116
|
-
</mat-autocomplete>
|
|
117
|
-
<mat-error class="text-[12px]" *ngIf="formControl.invalid && formControl.touched">
|
|
118
|
-
{{ field.validation?.messages?.['required'] || 'This field is required' }}
|
|
119
|
-
</mat-error>
|
|
120
|
-
</mat-form-field>
|
|
121
|
-
</div>
|
|
122
|
-
|
|
123
|
-
</div>
|
|
124
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }] }); }
|
|
125
|
-
}
|
|
126
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormlyFieldTimeComponent, decorators: [{
|
|
127
|
-
type: Component,
|
|
128
|
-
args: [{
|
|
129
|
-
selector: 'mu-formly-field-time',
|
|
130
|
-
standalone: true,
|
|
131
|
-
imports: [
|
|
132
|
-
ReactiveFormsModule,
|
|
133
|
-
MatFormFieldModule,
|
|
134
|
-
MatInputModule,
|
|
135
|
-
FormlyModule,
|
|
136
|
-
CommonModule,
|
|
137
|
-
MatAutocompleteModule,
|
|
138
|
-
],
|
|
139
|
-
template: `
|
|
140
|
-
<div class="flex flex-col gap-2">
|
|
141
|
-
<div class="flex gap-4">
|
|
142
|
-
<mat-form-field appearance="outline" class="w-25">
|
|
143
|
-
<mat-label>Hour</mat-label>
|
|
144
|
-
<input
|
|
145
|
-
type="text"
|
|
146
|
-
matInput
|
|
147
|
-
[readonly]="to.readonly || to.disabled"
|
|
148
|
-
[required]="to.required || false"
|
|
149
|
-
[disabled]="to.disabled || false"
|
|
150
|
-
[formControl]="hourCtrl"
|
|
151
|
-
[matAutocomplete]="autoHour"
|
|
152
|
-
/>
|
|
153
|
-
<mat-autocomplete #autoHour="matAutocomplete">
|
|
154
|
-
<mat-option
|
|
155
|
-
*ngFor="let hour of filteredHours$ | async"
|
|
156
|
-
[value]="hour"
|
|
157
|
-
>
|
|
158
|
-
{{ hour }}
|
|
159
|
-
</mat-option>
|
|
160
|
-
</mat-autocomplete>
|
|
161
|
-
<mat-error class="text-[12px]" *ngIf="formControl.invalid && formControl.touched">
|
|
162
|
-
{{ field.validation?.messages?.['required'] || 'This field is required' }}
|
|
163
|
-
</mat-error>
|
|
164
|
-
<mat-hint>{{to.description || 'Time in 24 hour format'}}</mat-hint>
|
|
165
|
-
</mat-form-field>
|
|
166
|
-
<span> : </span>
|
|
167
|
-
<mat-form-field appearance="outline" class="w-25">
|
|
168
|
-
<mat-label>Minute</mat-label>
|
|
169
|
-
<input
|
|
170
|
-
type="text"
|
|
171
|
-
matInput
|
|
172
|
-
[readonly]="to.readonly || to.disabled"
|
|
173
|
-
[required]="to.required || false"
|
|
174
|
-
[disabled]="to.disabled || false"
|
|
175
|
-
[formControl]="minuteCtrl"
|
|
176
|
-
[matAutocomplete]="autoMinute"
|
|
177
|
-
/>
|
|
178
|
-
<mat-autocomplete #autoMinute="matAutocomplete">
|
|
179
|
-
<mat-option
|
|
180
|
-
*ngFor="let minute of filteredMinutes$ | async"
|
|
181
|
-
[value]="minute"
|
|
182
|
-
>
|
|
183
|
-
{{ minute }}
|
|
184
|
-
</mat-option>
|
|
185
|
-
</mat-autocomplete>
|
|
186
|
-
<mat-error class="text-[12px]" *ngIf="formControl.invalid && formControl.touched">
|
|
187
|
-
{{ field.validation?.messages?.['required'] || 'This field is required' }}
|
|
188
|
-
</mat-error>
|
|
189
|
-
</mat-form-field>
|
|
190
|
-
</div>
|
|
191
|
-
|
|
192
|
-
</div>
|
|
193
|
-
`,
|
|
194
|
-
}]
|
|
195
|
-
}] });
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mb3JtYXQudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZm9ybS9zcmMvbGliL3R5cGVzL2RhdGUtZm9ybWF0LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQXFFbEQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFNBQVM7SUFuRXZEOztRQXdFRSxVQUFLLEdBQWEsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNwRCxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FDOUIsQ0FBQztRQUNGLFlBQU8sR0FBYSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ3RELENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcs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fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXUtZm9ybWx5LWZpZWxkLXRpbWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgRm9ybWx5TW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC00XCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy0yNVwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+SG91cjwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJ0by5yZWFkb25seSB8fCB0by5kaXNhYmxlZFwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwidG8ucmVxdWlyZWQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRvLmRpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJob3VyQ3RybFwiXG4gICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9Ib3VyXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvSG91cj1cIm1hdEF1dG9jb21wbGV0ZVwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGhvdXIgb2YgZmlsdGVyZWRIb3VycyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJob3VyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgaG91ciB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgICAgICA8bWF0LWVycm9yIGNsYXNzPVwidGV4dC1bMTJweF1cIiAqbmdJZj1cImZvcm1Db250cm9sLmludmFsaWQgJiYgZm9ybUNvbnRyb2wudG91Y2hlZFwiPlxuICAgICAgICAgICAge3sgZmllbGQudmFsaWRhdGlvbj8ubWVzc2FnZXM/LlsncmVxdWlyZWQnXSB8fCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcgfX1cbiAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICA8bWF0LWhpbnQ+e3t0by5kZXNjcmlwdGlvbiB8fCAnVGltZSBpbiAyNCBob3VyIGZvcm1hdCd9fTwvbWF0LWhpbnQ+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxzcGFuPiA6IDwvc3Bhbj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LTI1XCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5NaW51dGU8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICBbcmVhZG9ubHldPVwidG8ucmVhZG9ubHkgfHwgdG8uZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRvLnJlcXVpcmVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0by5kaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwibWludXRlQ3RybFwiXG4gICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9NaW51dGVcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG9NaW51dGU9XCJtYXRBdXRvY29tcGxldGVcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBtaW51dGUgb2YgZmlsdGVyZWRNaW51dGVzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIm1pbnV0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IG1pbnV0ZSB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgICAgICA8bWF0LWVycm9yIGNsYXNzPVwidGV4dC1bMTJweF1cIiAqbmdJZj1cImZvcm1Db250cm9sLmludmFsaWQgJiYgZm9ybUNvbnRyb2wudG91Y2hlZFwiPlxuICAgICAgICAgICAge3sgZmllbGQudmFsaWRhdGlvbj8ubWVzc2FnZXM/LlsncmVxdWlyZWQnXSB8fCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcgfX1cbiAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkVGltZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkVHlwZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGdldCBjb250cm9sKCk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG4gIGhvdXJzOiBzdHJpbmdbXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDI0IH0sIChfLCBpKSA9PlxuICAgIGkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpXG4gICk7XG4gIG1pbnV0ZXM6IHN0cmluZ1tdID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogNjAgfSwgKF8sIGkpID0+XG4gICAgaS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJylcbiAgKTtcblxuICBob3VyQ3RybCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIG1pbnV0ZUN0cmwgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gIGZpbHRlcmVkSG91cnMkITogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIGZpbHRlcmVkTWludXRlcyQhOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBtb2RlbFRpbWUgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xuICAgIGlmIChtb2RlbFRpbWUgJiYgbW9kZWxUaW1lLmluY2x1ZGVzKCc6JykpIHtcbiAgICAgIGNvbnN0IFtoLCBtXSA9IG1vZGVsVGltZS5zcGxpdCgnOicpO1xuICAgICAgdGhpcy5ob3VyQ3RybC5zZXRWYWx1ZShoKTtcbiAgICAgIHRoaXMubWludXRlQ3RybC5zZXRWYWx1ZShtKTtcbiAgICB9XG5cbiAgICB0aGlzLmZpbHRlcmVkSG91cnMkID0gdGhpcy5ob3VyQ3RybC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmhvdXJDdHJsLnZhbHVlIHx8ICcnKSxcbiAgICAgIG1hcCgodmFsdWU6IGFueSkgPT4gdGhpcy5fZmlsdGVyKHRoaXMuaG91cnMsIHZhbHVlKSlcbiAgICApO1xuXG4gICAgdGhpcy5maWx0ZXJlZE1pbnV0ZXMkID0gdGhpcy5taW51dGVDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMubWludXRlQ3RybC52YWx1ZSB8fCAnJyksXG4gICAgICBtYXAoKHZhbHVlOiBhbnkpID0+IHRoaXMuX2ZpbHRlcih0aGlzLm1pbnV0ZXMsIHZhbHVlKSlcbiAgICApO1xuXG4gICAgdGhpcy5ob3VyQ3RybC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaG91cnMuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgIHRoaXMuaG91ckN0cmwuc2V0RXJyb3JzKHsgaW52YWxpZEhvdXI6IHRydWUgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhvdXJDdHJsLnNldEVycm9ycyhudWxsKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlTW9kZWwoKTtcbiAgICB9KTtcblxuICAgIHRoaXMubWludXRlQ3RybC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAoIXRoaXMubWludXRlcy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5taW51dGVDdHJsLnNldEVycm9ycyh7IGludmFsaWRNaW51dGU6IHRydWUgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1pbnV0ZUN0cmwuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVNb2RlbCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVNb2RlbCgpIHtcbiAgICBjb25zdCBoID0gdGhpcy5ob3VyQ3RybC52YWx1ZSBhcyBzdHJpbmc7XG4gICAgY29uc3QgbSA9IHRoaXMubWludXRlQ3RybC52YWx1ZSBhcyBzdHJpbmc7XG5cbiAgICBpZiAodGhpcy5ob3Vycy5pbmNsdWRlcyhoKSAmJiB0aGlzLm1pbnV0ZXMuaW5jbHVkZXMobSkpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoYCR7aH06JHttfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKG51bGwpOyAvLyBQcmV2ZW50IHNhdmluZyBpbnZhbGlkIGlucHV0XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyKG9wdGlvbnM6IHN0cmluZ1tdLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gKHZhbHVlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBvcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PlxuICAgICAgb3B0aW9uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { MatExpansionModule } from '@angular/material/expansion';
|
|
4
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
5
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
-
import { FieldType, FormlyModule } from '@ngx-formly/core';
|
|
7
|
-
import { FormlyMaterialModule } from '@ngx-formly/material';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/material/expansion";
|
|
10
|
-
import * as i2 from "@ngx-formly/core";
|
|
11
|
-
export class FormlyFieldExpansionPanelComponent extends FieldType {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this.field = {};
|
|
15
|
-
}
|
|
16
|
-
get expanded() {
|
|
17
|
-
const conditionKey = this.field?.props?.collapseConditionKey;
|
|
18
|
-
const conditionValue = this.field?.props?.collapseConditionValue;
|
|
19
|
-
if (conditionKey && conditionValue !== undefined) {
|
|
20
|
-
const currentValue = this.formControl?.value?.[conditionKey];
|
|
21
|
-
return currentValue !== conditionValue;
|
|
22
|
-
}
|
|
23
|
-
return this.field?.props?.expanded || false;
|
|
24
|
-
}
|
|
25
|
-
set expanded(value) {
|
|
26
|
-
if (this.field?.props) {
|
|
27
|
-
this.field.props.expanded = value;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
ngOnInit() {
|
|
31
|
-
this.formControl.valueChanges.subscribe(() => {
|
|
32
|
-
this.expanded = this.expanded;
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
isValid(field) {
|
|
36
|
-
if (field.key) {
|
|
37
|
-
return field?.formControl?.valid || true;
|
|
38
|
-
}
|
|
39
|
-
return field.fieldGroup ? field.fieldGroup.every((fieldItem) => this.isValid(fieldItem)) : true;
|
|
40
|
-
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormlyFieldExpansionPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FormlyFieldExpansionPanelComponent, isStandalone: true, selector: "mu-formly-field-expansion-panel", usesInheritance: true, ngImport: i0, template: `<mat-accordion class="example-headers-align" multi>
|
|
43
|
-
<mat-expansion-panel [expanded]="field?.props?.expanded || false">
|
|
44
|
-
<mat-expansion-panel-header [class]="[field?.props?.backgroundColor]">
|
|
45
|
-
<mat-panel-title [class]="[field?.props?.color]"> {{field?.props?.label}} </mat-panel-title>
|
|
46
|
-
<mat-panel-description [class]="[field?.props?.color]">
|
|
47
|
-
{{field?.props?.description ?? ''}}
|
|
48
|
-
</mat-panel-description>
|
|
49
|
-
</mat-expansion-panel-header>
|
|
50
|
-
@for(fieldItem of field?.fieldGroup; track fieldItem){
|
|
51
|
-
<formly-field [field]="fieldItem"></formly-field>
|
|
52
|
-
}
|
|
53
|
-
</mat-expansion-panel>
|
|
54
|
-
</mat-accordion>`, isInline: true, dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i1.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i1.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i1.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i1.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i1.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: FormlyMaterialModule }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i2.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: CommonModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
55
|
-
}
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormlyFieldExpansionPanelComponent, decorators: [{
|
|
57
|
-
type: Component,
|
|
58
|
-
args: [{
|
|
59
|
-
selector: 'mu-formly-field-expansion-panel',
|
|
60
|
-
standalone: true,
|
|
61
|
-
encapsulation: ViewEncapsulation.None,
|
|
62
|
-
imports: [
|
|
63
|
-
MatFormFieldModule,
|
|
64
|
-
MatExpansionModule,
|
|
65
|
-
MatIconModule,
|
|
66
|
-
FormlyMaterialModule,
|
|
67
|
-
FormlyModule,
|
|
68
|
-
CommonModule
|
|
69
|
-
],
|
|
70
|
-
template: `<mat-accordion class="example-headers-align" multi>
|
|
71
|
-
<mat-expansion-panel [expanded]="field?.props?.expanded || false">
|
|
72
|
-
<mat-expansion-panel-header [class]="[field?.props?.backgroundColor]">
|
|
73
|
-
<mat-panel-title [class]="[field?.props?.color]"> {{field?.props?.label}} </mat-panel-title>
|
|
74
|
-
<mat-panel-description [class]="[field?.props?.color]">
|
|
75
|
-
{{field?.props?.description ?? ''}}
|
|
76
|
-
</mat-panel-description>
|
|
77
|
-
</mat-expansion-panel-header>
|
|
78
|
-
@for(fieldItem of field?.fieldGroup; track fieldItem){
|
|
79
|
-
<formly-field [field]="fieldItem"></formly-field>
|
|
80
|
-
}
|
|
81
|
-
</mat-expansion-panel>
|
|
82
|
-
</mat-accordion>`
|
|
83
|
-
}]
|
|
84
|
-
}] });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mb3JtL3NyYy9saWIvdHlwZXMvZXhwYW5zaW9uLXBhbmVsLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsU0FBUyxFQUFnRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQTZCNUQsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLFNBQVM7SUEzQmpFOztRQTRCYSxVQUFLLEdBQVEsRUFBRSxDQUFDO0tBK0IxQjtJQTdCQyxJQUFJLFFBQVE7UUFDVixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsQ0FBQztRQUM3RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQztRQUNqRSxJQUFJLFlBQVksSUFBSSxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3RCxPQUFPLFlBQVksS0FBSyxjQUFjLENBQUM7UUFDekMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBd0I7UUFDOUIsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztRQUMzQyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEcsQ0FBQzsrR0EvQlEsa0NBQWtDO21HQUFsQyxrQ0FBa0Msa0hBZmpDOzs7Ozs7Ozs7Ozs7cUJBWU8sMkRBbkJiLGtCQUFrQiw4QkFDbEIsa0JBQWtCLHd0QkFDbEIsYUFBYSw4QkFDYixvQkFBb0IsOEJBQ3BCLFlBQVksd0hBQ1osWUFBWTs7NEZBaUJQLGtDQUFrQztrQkEzQjlDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlDQUFpQztvQkFDM0MsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxPQUFPLEVBQUU7d0JBQ0wsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixZQUFZO3dCQUNaLFlBQVk7cUJBQ2Y7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7cUJBWU87aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRFeHBhbnNpb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQge01hdEZvcm1GaWVsZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1seUZpZWxkLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5RmllbGRQcm9wcywgRm9ybWx5Rm9ybSwgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGb3JtbHlNYXRlcmlhbE1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtdS1mb3JtbHktZmllbGQtZXhwYW5zaW9uLXBhbmVsJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgRm9ybWx5TWF0ZXJpYWxNb2R1bGUsXG4gICAgICAgIEZvcm1seU1vZHVsZSxcbiAgICAgICAgQ29tbW9uTW9kdWxlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZTogYDxtYXQtYWNjb3JkaW9uIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXJzLWFsaWduXCIgbXVsdGk+XG4gICAgPG1hdC1leHBhbnNpb24tcGFuZWwgW2V4cGFuZGVkXT1cImZpZWxkPy5wcm9wcz8uZXhwYW5kZWQgfHwgZmFsc2VcIj5cbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciBbY2xhc3NdPVwiW2ZpZWxkPy5wcm9wcz8uYmFja2dyb3VuZENvbG9yXVwiPlxuICAgICAgICA8bWF0LXBhbmVsLXRpdGxlIFtjbGFzc109XCJbZmllbGQ/LnByb3BzPy5jb2xvcl1cIj4ge3tmaWVsZD8ucHJvcHM/LmxhYmVsfX0gPC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24gW2NsYXNzXT1cIltmaWVsZD8ucHJvcHM/LmNvbG9yXVwiPlxuICAgICAgICAgIHt7ZmllbGQ/LnByb3BzPy5kZXNjcmlwdGlvbiA/PyAnJ319XG4gICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxuICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgIEBmb3IoZmllbGRJdGVtIG9mIGZpZWxkPy5maWVsZEdyb3VwOyB0cmFjayBmaWVsZEl0ZW0pe1xuICAgICAgICAgIDxmb3JtbHktZmllbGQgW2ZpZWxkXT1cImZpZWxkSXRlbVwiPjwvZm9ybWx5LWZpZWxkPlxuICAgICAgfVxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgICA8L21hdC1hY2NvcmRpb24+YFxufSlcblxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkRXhwYW5zaW9uUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGUgaW1wbGVtZW50cyBPbkluaXR7XG4gICAgb3ZlcnJpZGUgZmllbGQgOiBhbnk9IHt9O1xuXG4gICAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgY29uc3QgY29uZGl0aW9uS2V5ID0gdGhpcy5maWVsZD8ucHJvcHM/LmNvbGxhcHNlQ29uZGl0aW9uS2V5O1xuICAgICAgY29uc3QgY29uZGl0aW9uVmFsdWUgPSB0aGlzLmZpZWxkPy5wcm9wcz8uY29sbGFwc2VDb25kaXRpb25WYWx1ZTsgIFxuICAgICAgaWYgKGNvbmRpdGlvbktleSAmJiBjb25kaXRpb25WYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2w/LnZhbHVlPy5bY29uZGl0aW9uS2V5XTtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZSAhPT0gY29uZGl0aW9uVmFsdWU7IFxuICAgICAgfSAgXG4gICAgICByZXR1cm4gdGhpcy5maWVsZD8ucHJvcHM/LmV4cGFuZGVkIHx8IGZhbHNlO1xuICAgIH1cbiAgIFxuICAgIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgaWYgKHRoaXMuZmllbGQ/LnByb3BzKSB7XG4gICAgICAgIHRoaXMuZmllbGQucHJvcHMuZXhwYW5kZWQgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHsgXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gdGhpcy5leHBhbmRlZDsgXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpc1ZhbGlkKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZyk6IGJvb2xlYW4ge1xuICAgICAgaWYgKGZpZWxkLmtleSkge1xuICAgICAgICByZXR1cm4gZmllbGQ/LmZvcm1Db250cm9sPy52YWxpZCB8fCB0cnVlO1xuICAgICAgfVxuICBcbiAgICAgIHJldHVybiBmaWVsZC5maWVsZEdyb3VwID8gZmllbGQuZmllbGRHcm91cC5ldmVyeSgoZmllbGRJdGVtKSA9PiB0aGlzLmlzVmFsaWQoZmllbGRJdGVtKSkgOiB0cnVlO1xuICAgIH1cbiAgfSJdfQ==
|