@mediusinc/mng-commons 4.0.1-rc.0 → 4.1.0-rc.0
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/esm2022/lib/components/action/action.component.mjs +4 -4
- package/esm2022/lib/components/action/editor/action-editor.component.mjs +3 -3
- package/esm2022/lib/components/action/editor/injector-context/action-editor-injector-context.component.mjs +3 -3
- package/esm2022/lib/components/action/localization/data-language-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/action/route/action-route.component.mjs +3 -3
- package/esm2022/lib/components/action/table/action-table.component.mjs +3 -3
- package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +162 -161
- package/esm2022/lib/components/form/date-range/date-range.component.mjs +31 -39
- package/esm2022/lib/components/form/dropdown/dropdown.component.mjs +94 -105
- package/esm2022/lib/components/form/editor/form-editor.component.mjs +3 -3
- package/esm2022/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.mjs +3 -3
- package/esm2022/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +4 -4
- package/esm2022/lib/components/form/formly/fields/formly-field-custom/formly-custom-field-base.model.mjs +3 -3
- package/esm2022/lib/components/form/formly/fields/formly-field-custom/formly-field-custom.component.mjs +3 -3
- package/esm2022/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +3 -3
- package/esm2022/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +8 -6
- package/esm2022/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +3 -3
- package/esm2022/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +3 -3
- package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +3 -3
- package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +3 -3
- package/esm2022/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
- package/esm2022/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +3 -3
- package/esm2022/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +8 -82
- package/esm2022/lib/components/layout/breadcrumb.component.mjs +3 -3
- package/esm2022/lib/components/layout/footer.component.mjs +3 -3
- package/esm2022/lib/components/layout/main-layout.component.mjs +3 -3
- package/esm2022/lib/components/layout/menu-item.component.mjs +4 -4
- package/esm2022/lib/components/layout/menu.component.mjs +3 -3
- package/esm2022/lib/components/layout/services/main-layout.component.service.mjs +3 -3
- package/esm2022/lib/components/layout/topbar-user.component.mjs +3 -3
- package/esm2022/lib/components/layout/topbar.component.mjs +3 -3
- package/esm2022/lib/components/layout/version.component.mjs +3 -3
- package/esm2022/lib/components/layoutV2/breadcrumb.component.mjs +3 -3
- package/esm2022/lib/components/layoutV2/footer.component.mjs +15 -5
- package/esm2022/lib/components/layoutV2/main-layout.component.mjs +3 -3
- package/esm2022/lib/components/layoutV2/menu-item.component.mjs +4 -4
- package/esm2022/lib/components/layoutV2/menu.component.mjs +3 -3
- package/esm2022/lib/components/layoutV2/services/main-layout.component.service.mjs +3 -3
- package/esm2022/lib/components/layoutV2/services/menu.service.mjs +3 -3
- package/esm2022/lib/components/layoutV2/sidebar.component.mjs +5 -6
- package/esm2022/lib/components/layoutV2/topbar-user.component.mjs +3 -3
- package/esm2022/lib/components/layoutV2/topbar.component.mjs +3 -3
- package/esm2022/lib/components/layoutV2/version.component.mjs +3 -3
- package/esm2022/lib/components/notification/notification-wrapper.component.mjs +3 -3
- package/esm2022/lib/components/pages/error/error.page.component.mjs +3 -3
- package/esm2022/lib/components/pages/not-found/not-found.page.component.mjs +4 -4
- package/esm2022/lib/components/table/column-filter-full/column-filter-full.component.mjs +8 -6
- package/esm2022/lib/components/table/column-value/column-value.component.mjs +8 -5
- package/esm2022/lib/components/table/table-column-filter-class/table-column-filter-class.pipe.mjs +3 -3
- package/esm2022/lib/components/table/table.component.mjs +3 -3
- package/esm2022/lib/components/tableview/route/tableview-route.abstract.component.mjs +3 -3
- package/esm2022/lib/components/tableview/route/tableview-route.component.mjs +3 -3
- package/esm2022/lib/components/tableview/tableview.component.mjs +4 -8
- package/esm2022/lib/descriptors/action/action-link.descriptor.mjs +1 -2
- package/esm2022/lib/descriptors/editor/field-base.descriptor.mjs +2 -10
- package/esm2022/lib/descriptors/editor/field-lookup.descriptor.mjs +8 -1
- package/esm2022/lib/descriptors/editor/field.descriptor.mjs +9 -1
- package/esm2022/lib/descriptors/filter/filter.descriptor.mjs +8 -1
- package/esm2022/lib/descriptors/table/column.descriptor.mjs +9 -3
- package/esm2022/lib/descriptors/types/index.mjs +2 -1
- package/esm2022/lib/descriptors/types/trim.type.mjs +2 -0
- package/esm2022/lib/directives/component.directive.mjs +3 -3
- package/esm2022/lib/directives/dialog-keydown-handler.directive.mjs +3 -3
- package/esm2022/lib/directives/index.mjs +2 -1
- package/esm2022/lib/directives/input-trim.directive.mjs +55 -0
- package/esm2022/lib/directives/template.directive.mjs +3 -3
- package/esm2022/lib/models/layout-config.model.mjs +1 -1
- package/esm2022/lib/pipes/boolean.pipe.mjs +3 -3
- package/esm2022/lib/pipes/class-map.pipe.mjs +3 -3
- package/esm2022/lib/pipes/enum.pipe.mjs +3 -3
- package/esm2022/lib/pipes/enumerate-async.pipe.mjs +3 -3
- package/esm2022/lib/pipes/enumerate.pipe.mjs +3 -3
- package/esm2022/lib/pipes/getter.pipe.mjs +3 -3
- package/esm2022/lib/pipes/i18n-property.pipe.mjs +3 -3
- package/esm2022/lib/pipes/json-path.pipe.mjs +3 -3
- package/esm2022/lib/pipes/locale-default-row-class.pipe.mjs +3 -3
- package/esm2022/lib/pipes/parametrize.pipe.mjs +3 -3
- package/esm2022/lib/pipes/template.pipe.mjs +3 -3
- package/esm2022/lib/provide-commons.mjs +3 -2
- package/esm2022/lib/security/authorization.service.mjs +3 -3
- package/esm2022/lib/services/action/component-action-executor.service.mjs +3 -3
- package/esm2022/lib/services/action/root-action-executor.service.mjs +3 -3
- package/esm2022/lib/services/commons-init.service.mjs +7 -6
- package/esm2022/lib/services/commons.service.mjs +3 -3
- package/esm2022/lib/services/internal/commons-init.provider.mjs +3 -3
- package/esm2022/lib/services/mng-localstorage-config.service.mjs +3 -3
- package/esm2022/lib/services/navigation.service.mjs +3 -3
- package/esm2022/lib/services/router.service.mjs +3 -3
- package/esm2022/lib/services/version.service.mjs +3 -3
- package/esm2022/lib/services/view/view-container.service.mjs +3 -3
- package/esm2022/lib/utils/editor-formly.util.mjs +40 -10
- package/fesm2022/mediusinc-mng-commons.mjs +7899 -7879
- package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
- package/lib/components/form/autocomplete/autocomplete.component.d.ts +24 -22
- package/lib/components/form/date-range/date-range.component.d.ts +12 -15
- package/lib/components/form/dropdown/dropdown.component.d.ts +28 -34
- package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +0 -1
- package/lib/components/layoutV2/footer.component.d.ts +5 -1
- package/lib/components/tableview/tableview.component.d.ts +4 -5
- package/lib/descriptors/editor/field-base.descriptor.d.ts +1 -5
- package/lib/descriptors/editor/field-lookup.descriptor.d.ts +4 -1
- package/lib/descriptors/editor/field.descriptor.d.ts +4 -1
- package/lib/descriptors/filter/filter.descriptor.d.ts +4 -1
- package/lib/descriptors/table/column.descriptor.d.ts +3 -1
- package/lib/descriptors/types/index.d.ts +1 -0
- package/lib/descriptors/types/trim.type.d.ts +1 -0
- package/lib/directives/index.d.ts +1 -0
- package/lib/directives/input-trim.directive.d.ts +14 -0
- package/lib/models/layout-config.model.d.ts +1 -0
- package/lib/services/commons-init.service.d.ts +3 -2
- package/lib/services/internal/commons-init.provider.d.ts +2 -1
- package/lib/utils/editor-formly.util.d.ts +1 -0
- package/package.json +8 -8
- package/scss/v2/layout/mng/_mng_layout_footer.scss +6 -0
- package/scss/v2/layout/mng/_mng_layout_topbar.scss +1 -1
- package/scss/v2/theme/theme-base/mng/_mng_theme_datatable.scss +0 -8
- package/scss/v2/theme/theme-base/mng/_mng_theme_dropdown.scss +10 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { AsyncPipe } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Injector,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, EventEmitter, Injector, Output, computed, forwardRef, inject, input, signal, viewChild } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
4
|
import { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
|
|
4
5
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
5
6
|
import { Dropdown, DropdownModule } from 'primeng/dropdown';
|
|
6
7
|
import { MultiSelectModule } from 'primeng/multiselect';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
8
|
+
import { of, switchMap } from 'rxjs';
|
|
9
|
+
import { map } from 'rxjs/operators';
|
|
9
10
|
import { MediusQueryParamBuilder } from '../../../api/models';
|
|
10
11
|
import { toObservable } from '../../../helpers/coercion';
|
|
11
12
|
import { MngInternalError } from '../../../models';
|
|
@@ -13,86 +14,110 @@ import { MngLoggerService } from '../../../services';
|
|
|
13
14
|
import { ErrorUtil } from '../../../utils';
|
|
14
15
|
import { MngFormlyFieldWrapperComponent } from '../formly/wrappers';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "
|
|
17
|
-
import * as i2 from "
|
|
18
|
-
import * as i3 from "
|
|
19
|
-
import * as i4 from "
|
|
20
|
-
import * as i5 from "@angular/forms";
|
|
17
|
+
import * as i1 from "primeng/dropdown";
|
|
18
|
+
import * as i2 from "primeng/multiselect";
|
|
19
|
+
import * as i3 from "@ngx-translate/core";
|
|
20
|
+
import * as i4 from "@angular/forms";
|
|
21
21
|
export const MNG_DROPDOWN_VALUE_ACCESSOR = {
|
|
22
22
|
provide: NG_VALUE_ACCESSOR,
|
|
23
23
|
useExisting: forwardRef(() => MngDropdownComponent),
|
|
24
24
|
multi: true
|
|
25
25
|
};
|
|
26
26
|
export class MngDropdownComponent {
|
|
27
|
-
constructor(
|
|
28
|
-
this.injector = injector;
|
|
29
|
-
this.translate = translate;
|
|
30
|
-
this.formlyWrapper = formlyWrapper;
|
|
27
|
+
constructor() {
|
|
31
28
|
this.logger = inject(MngLoggerService).create('MngDropdownComponent');
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
37
|
-
this.
|
|
38
|
-
this
|
|
29
|
+
this.injector = inject(Injector);
|
|
30
|
+
this.destroyRef = inject(DestroyRef);
|
|
31
|
+
this.translate = inject(TranslateService);
|
|
32
|
+
this.formlyWrapper = inject(MngFormlyFieldWrapperComponent, { optional: true });
|
|
33
|
+
this.dropdownFormControl = new FormControl();
|
|
34
|
+
this.dataProvider = input();
|
|
35
|
+
this.optionsTrackProperty = input();
|
|
36
|
+
this.optionsLabelPropertyInit = input(undefined, { alias: 'optionsLabelProperty' });
|
|
37
|
+
this.optionsLabelTranslate = input(false);
|
|
38
|
+
this.optionsValuePropertyInit = input(undefined, { alias: 'optionsValueProperty' });
|
|
39
|
+
this.optionsDisabledProperty = input();
|
|
40
|
+
this.multiselect = input(false);
|
|
41
|
+
this.placeholder = input();
|
|
42
|
+
this.showClear = input(false);
|
|
43
|
+
this.selectFirstItem = input(false);
|
|
44
|
+
this.className = input();
|
|
45
|
+
this.dropdownClassName = input();
|
|
46
|
+
this.changeValueOnBlur = input(false);
|
|
47
|
+
this.loading = signal(false);
|
|
39
48
|
this.valueChangeEventEmitter = new EventEmitter();
|
|
40
|
-
this.
|
|
49
|
+
this.primeDropdown = viewChild(Dropdown);
|
|
41
50
|
this.dataProviderService = null;
|
|
42
51
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
43
52
|
this.onTouchedFn = () => { };
|
|
44
|
-
this.
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
47
|
-
|
|
48
|
-
ngOnInit() {
|
|
49
|
-
this.optionsLabelProperty = this.optionsLabelPropertyInit;
|
|
50
|
-
this.optionsValueProperty = this.optionsValuePropertyInit;
|
|
51
|
-
this.dropdownFormControl.valueChanges.subscribe(v => {
|
|
52
|
-
if (!this.changeValueOnBlur) {
|
|
53
|
-
this.propagateValueChange(v);
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
if (this.dataProvider) {
|
|
57
|
-
this.loadingSubject.next(true);
|
|
58
|
-
this.dataProviderService = this.dataProvider.serviceType ? this.injector.get(this.dataProvider.serviceType) : null;
|
|
59
|
-
const queryParamBuilder = MediusQueryParamBuilder.create();
|
|
60
|
-
if (this.optionsLabelTranslate) {
|
|
53
|
+
this.items = signal([]);
|
|
54
|
+
this.firstTimeSettingItems = true;
|
|
55
|
+
this.optionsLabelProperty = computed(() => {
|
|
56
|
+
if (this.optionsLabelTranslate()) {
|
|
61
57
|
// setup translation properties
|
|
62
|
-
if (this.optionsLabelPropertyInit) {
|
|
63
|
-
|
|
58
|
+
if (this.optionsLabelPropertyInit()) {
|
|
59
|
+
return `${this.optionsLabelPropertyInit()}_i18n`;
|
|
64
60
|
}
|
|
65
|
-
else if (!this.
|
|
66
|
-
|
|
67
|
-
this.optionsValueProperty = 'value';
|
|
61
|
+
else if (!this.optionsLabelPropertyInit() && !this.optionsValuePropertyInit()) {
|
|
62
|
+
return 'title_i18n';
|
|
68
63
|
}
|
|
69
64
|
else {
|
|
70
|
-
throw new MngInternalError(`Invalid use with value (${this.
|
|
65
|
+
throw new MngInternalError(`Invalid use with value (${this.optionsValuePropertyInit()}) and label (${this.optionsLabelPropertyInit()}) property setup.`, {
|
|
71
66
|
name: 'MngDropdownComponentError'
|
|
72
67
|
});
|
|
73
68
|
}
|
|
74
69
|
}
|
|
75
|
-
|
|
70
|
+
return this.optionsLabelPropertyInit();
|
|
71
|
+
});
|
|
72
|
+
this.optionsValueProperty = computed(() => {
|
|
73
|
+
if (this.optionsLabelTranslate()) {
|
|
74
|
+
// setup translation properties
|
|
75
|
+
if (!this.optionsLabelPropertyInit() && !this.optionsValuePropertyInit()) {
|
|
76
|
+
return 'value';
|
|
77
|
+
}
|
|
78
|
+
else if (!this.optionsLabelPropertyInit()) {
|
|
79
|
+
throw new MngInternalError(`Invalid use with value (${this.optionsValuePropertyInit()}) and label (${this.optionsLabelPropertyInit()}) property setup.`, {
|
|
80
|
+
name: 'MngDropdownComponentError'
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return this.optionsValuePropertyInit();
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
ngOnInit() {
|
|
88
|
+
this.dropdownFormControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(v => {
|
|
89
|
+
if (!this.changeValueOnBlur()) {
|
|
90
|
+
this.propagateValueChange(v);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
const dataProvider = this.dataProvider();
|
|
94
|
+
if (dataProvider) {
|
|
95
|
+
this.loading.set(true);
|
|
96
|
+
this.dataProviderService = dataProvider.serviceType ? this.injector.get(dataProvider.serviceType) : null;
|
|
97
|
+
const queryParamBuilder = MediusQueryParamBuilder.create();
|
|
98
|
+
toObservable(dataProvider.lookup(queryParamBuilder.build(), this.dataProviderService))
|
|
76
99
|
.pipe(switchMap(items => {
|
|
77
|
-
if (this.optionsLabelTranslate) {
|
|
78
|
-
const translationKeys = items.map(item => (typeof item === 'object' && this.optionsLabelPropertyInit
|
|
100
|
+
if (this.optionsLabelTranslate()) {
|
|
101
|
+
const translationKeys = items.map(item => (typeof item === 'object' && this.optionsLabelPropertyInit()
|
|
102
|
+
? item[this.optionsLabelPropertyInit()]
|
|
103
|
+
: item));
|
|
79
104
|
if (translationKeys.length === 0) {
|
|
80
105
|
return of([]);
|
|
81
106
|
}
|
|
82
107
|
return this.translate.stream(translationKeys).pipe(map(translations => items.map(item => {
|
|
83
|
-
if (typeof item === 'object' && this.optionsLabelPropertyInit) {
|
|
84
|
-
const label = item[this.optionsLabelPropertyInit];
|
|
108
|
+
if (typeof item === 'object' && this.optionsLabelPropertyInit()) {
|
|
109
|
+
const label = item[this.optionsLabelPropertyInit()];
|
|
85
110
|
const translation = translations[label];
|
|
86
111
|
if (translation) {
|
|
87
|
-
return { ...item, [this.optionsLabelProperty]: translation };
|
|
112
|
+
return { ...item, [this.optionsLabelProperty()]: translation };
|
|
88
113
|
}
|
|
89
114
|
return { ...item };
|
|
90
115
|
}
|
|
91
116
|
else {
|
|
92
117
|
const translation = translations[item];
|
|
93
118
|
return {
|
|
94
|
-
[this.optionsLabelProperty]: translation ?? item,
|
|
95
|
-
[this.optionsValueProperty]: item
|
|
119
|
+
[this.optionsLabelProperty()]: translation ?? item,
|
|
120
|
+
[this.optionsValueProperty()]: item
|
|
96
121
|
};
|
|
97
122
|
}
|
|
98
123
|
})));
|
|
@@ -100,11 +125,17 @@ export class MngDropdownComponent {
|
|
|
100
125
|
else {
|
|
101
126
|
return of(items);
|
|
102
127
|
}
|
|
103
|
-
}))
|
|
128
|
+
}), takeUntilDestroyed(this.destroyRef))
|
|
104
129
|
.subscribe({
|
|
105
130
|
next: res => {
|
|
106
|
-
this.
|
|
107
|
-
this.
|
|
131
|
+
this.items.set(res);
|
|
132
|
+
this.loading.set(false);
|
|
133
|
+
if (this.firstTimeSettingItems && this.selectFirstItem() && !this.dropdownFormControl?.value) {
|
|
134
|
+
const optionsValueProperty = this.optionsValueProperty();
|
|
135
|
+
const value = optionsValueProperty ? res[0][optionsValueProperty] : res[0];
|
|
136
|
+
this.dropdownFormControl?.setValue(value);
|
|
137
|
+
this.firstTimeSettingItems = false;
|
|
138
|
+
}
|
|
108
139
|
},
|
|
109
140
|
error: err => {
|
|
110
141
|
const mngError = ErrorUtil.fromSubscribeError(err, 'MngDropdownComponentError', {
|
|
@@ -113,20 +144,11 @@ export class MngDropdownComponent {
|
|
|
113
144
|
this.logger.log(mngError, ErrorUtil.getErrorLogLevel(mngError));
|
|
114
145
|
}
|
|
115
146
|
});
|
|
116
|
-
if (this.selectFirstItem && !this.dropdownFormControl?.value) {
|
|
117
|
-
this.items$.pipe(first()).subscribe(res => {
|
|
118
|
-
const value = this.optionsValueProperty ? res[0][this.optionsValueProperty] : res[0];
|
|
119
|
-
this.dropdownFormControl?.setValue(value);
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
147
|
}
|
|
123
148
|
else {
|
|
124
149
|
this.logger.debug(`WARNING: Data provider should be provided for MngDropdownComponent.`);
|
|
125
150
|
}
|
|
126
151
|
}
|
|
127
|
-
ngOnDestroy() {
|
|
128
|
-
this.itemsSubscription?.unsubscribe();
|
|
129
|
-
}
|
|
130
152
|
registerOnChange(fn) {
|
|
131
153
|
this.onChangeFn = fn;
|
|
132
154
|
}
|
|
@@ -145,20 +167,20 @@ export class MngDropdownComponent {
|
|
|
145
167
|
// this check is required because angular in some cases writes null value
|
|
146
168
|
// before value accessor is initialized
|
|
147
169
|
// if form control value is of primitive type (ex: enums) then write value is not called (we think)
|
|
148
|
-
if (!this.optionsValuePropertyInit && obj === null && !this.isValueAccessorInitialized()) {
|
|
170
|
+
if (!this.optionsValuePropertyInit() && obj === null && !this.isValueAccessorInitialized()) {
|
|
149
171
|
return;
|
|
150
172
|
}
|
|
151
173
|
this.dropdownFormControl.setValue(obj, { emitEvent: false });
|
|
152
174
|
}
|
|
153
175
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
154
176
|
onDropdownBlur(event) {
|
|
155
|
-
if (this.changeValueOnBlur) {
|
|
177
|
+
if (this.changeValueOnBlur()) {
|
|
156
178
|
this.propagateValueChange(this.dropdownFormControl.value);
|
|
157
179
|
}
|
|
158
180
|
}
|
|
159
181
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
160
182
|
onPanelHide(event) {
|
|
161
|
-
if (this.changeValueOnBlur) {
|
|
183
|
+
if (this.changeValueOnBlur()) {
|
|
162
184
|
this.propagateValueChange(this.dropdownFormControl.value);
|
|
163
185
|
}
|
|
164
186
|
}
|
|
@@ -179,47 +201,14 @@ export class MngDropdownComponent {
|
|
|
179
201
|
isValueAccessorInitialized() {
|
|
180
202
|
return typeof this.onChangeFn !== 'undefined';
|
|
181
203
|
}
|
|
182
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
183
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.
|
|
204
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MngDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
205
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: MngDropdownComponent, isStandalone: true, selector: "mng-dropdown", inputs: { dataProvider: { classPropertyName: "dataProvider", publicName: "dataProvider", isSignal: true, isRequired: false, transformFunction: null }, optionsTrackProperty: { classPropertyName: "optionsTrackProperty", publicName: "optionsTrackProperty", isSignal: true, isRequired: false, transformFunction: null }, optionsLabelPropertyInit: { classPropertyName: "optionsLabelPropertyInit", publicName: "optionsLabelProperty", isSignal: true, isRequired: false, transformFunction: null }, optionsLabelTranslate: { classPropertyName: "optionsLabelTranslate", publicName: "optionsLabelTranslate", isSignal: true, isRequired: false, transformFunction: null }, optionsValuePropertyInit: { classPropertyName: "optionsValuePropertyInit", publicName: "optionsValueProperty", isSignal: true, isRequired: false, transformFunction: null }, optionsDisabledProperty: { classPropertyName: "optionsDisabledProperty", publicName: "optionsDisabledProperty", isSignal: true, isRequired: false, transformFunction: null }, multiselect: { classPropertyName: "multiselect", publicName: "multiselect", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, selectFirstItem: { classPropertyName: "selectFirstItem", publicName: "selectFirstItem", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, dropdownClassName: { classPropertyName: "dropdownClassName", publicName: "dropdownClassName", isSignal: true, isRequired: false, transformFunction: null }, changeValueOnBlur: { classPropertyName: "changeValueOnBlur", publicName: "changeValueOnBlur", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChangeEventEmitter: "valueChange" }, providers: [MNG_DROPDOWN_VALUE_ACCESSOR], viewQueries: [{ propertyName: "primeDropdown", first: true, predicate: Dropdown, descendants: true, isSignal: true }], ngImport: i0, template: "@if (!multiselect()) {\n <p-dropdown\n [formControl]=\"dropdownFormControl\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [showClear]=\"showClear()\"\n [autoDisplayFirst]=\"false\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n (onBlur)=\"onDropdownBlur($event)\"\n [dropdownIcon]=\"loading() ? 'pi pi-spinner pi-spin' : 'pi pi-chevron-down'\"\n appendTo=\"body\">\n </p-dropdown>\n} @else {\n <p-multiSelect\n [maxSelectedLabels]=\"1\"\n [selectedItemsLabel]=\"'mngDropdown.multiselectOverMaxDisplayLimit' | translate\"\n [formControl]=\"dropdownFormControl\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [filter]=\"true\"\n [showToggleAll]=\"false\"\n (onPanelHide)=\"onPanelHide($event)\"\n appendTo=\"body\">\n </p-multiSelect>\n}\n", dependencies: [{ kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i1.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i2.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
184
206
|
}
|
|
185
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
207
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MngDropdownComponent, decorators: [{
|
|
186
208
|
type: Component,
|
|
187
|
-
args: [{ standalone: true, selector: 'mng-dropdown', providers: [MNG_DROPDOWN_VALUE_ACCESSOR], imports: [DropdownModule, MultiSelectModule, TranslateModule, AsyncPipe, ReactiveFormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!multiselect) {\n <p-dropdown\n [formControl]=\"dropdownFormControl\"\n [placeholder]=\"placeholder\"\n [dataKey]=\"optionsTrackProperty\"\n [optionLabel]=\"optionsLabelProperty\"\n [optionValue]=\"optionsValueProperty\"\n [optionDisabled]=\"optionsDisabledProperty\"\n [options]=\"(
|
|
188
|
-
}],
|
|
189
|
-
type: Optional
|
|
190
|
-
}] }], propDecorators: { dataProvider: [{
|
|
191
|
-
type: Input
|
|
192
|
-
}], optionsTrackProperty: [{
|
|
193
|
-
type: Input
|
|
194
|
-
}], optionsLabelPropertyInit: [{
|
|
195
|
-
type: Input,
|
|
196
|
-
args: ['optionsLabelProperty']
|
|
197
|
-
}], optionsLabelTranslate: [{
|
|
198
|
-
type: Input
|
|
199
|
-
}], optionsValuePropertyInit: [{
|
|
200
|
-
type: Input,
|
|
201
|
-
args: ['optionsValueProperty']
|
|
202
|
-
}], optionsDisabledProperty: [{
|
|
203
|
-
type: Input
|
|
204
|
-
}], multiselect: [{
|
|
205
|
-
type: Input
|
|
206
|
-
}], placeholder: [{
|
|
207
|
-
type: Input
|
|
208
|
-
}], showClear: [{
|
|
209
|
-
type: Input
|
|
210
|
-
}], selectFirstItem: [{
|
|
211
|
-
type: Input
|
|
212
|
-
}], className: [{
|
|
213
|
-
type: Input
|
|
214
|
-
}], dropdownClassName: [{
|
|
215
|
-
type: Input
|
|
216
|
-
}], changeValueOnBlur: [{
|
|
217
|
-
type: Input
|
|
218
|
-
}], valueChangeEventEmitter: [{
|
|
209
|
+
args: [{ standalone: true, selector: 'mng-dropdown', providers: [MNG_DROPDOWN_VALUE_ACCESSOR], imports: [DropdownModule, MultiSelectModule, TranslateModule, AsyncPipe, ReactiveFormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!multiselect()) {\n <p-dropdown\n [formControl]=\"dropdownFormControl\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [showClear]=\"showClear()\"\n [autoDisplayFirst]=\"false\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n (onBlur)=\"onDropdownBlur($event)\"\n [dropdownIcon]=\"loading() ? 'pi pi-spinner pi-spin' : 'pi pi-chevron-down'\"\n appendTo=\"body\">\n </p-dropdown>\n} @else {\n <p-multiSelect\n [maxSelectedLabels]=\"1\"\n [selectedItemsLabel]=\"'mngDropdown.multiselectOverMaxDisplayLimit' | translate\"\n [formControl]=\"dropdownFormControl\"\n [placeholder]=\"placeholder()\"\n [dataKey]=\"optionsTrackProperty()\"\n [optionLabel]=\"optionsLabelProperty()\"\n [optionValue]=\"optionsValueProperty()\"\n [optionDisabled]=\"optionsDisabledProperty()\"\n [options]=\"items()\"\n [styleClass]=\"className()\"\n [panelStyleClass]=\"dropdownClassName()\"\n [filter]=\"true\"\n [showToggleAll]=\"false\"\n (onPanelHide)=\"onPanelHide($event)\"\n appendTo=\"body\">\n </p-multiSelect>\n}\n" }]
|
|
210
|
+
}], propDecorators: { valueChangeEventEmitter: [{
|
|
219
211
|
type: Output,
|
|
220
212
|
args: ['valueChange']
|
|
221
|
-
}], primeDropdown: [{
|
|
222
|
-
type: ViewChild,
|
|
223
|
-
args: [Dropdown]
|
|
224
213
|
}] } });
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFFWixRQUFRLEVBQ1IsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RyxPQUFPLEVBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQWEsYUFBYSxFQUF5QixFQUFFLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9B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QUMsMkJBQTJCLENBQUMseUVBMEI3QixRQUFRLGdEQ3BFdkIsbTdDQW9DQSwyQ0RPYyxjQUFjLHluQ0FBRSxpQkFBaUIsa3lDQUFFLGVBQWUsdUZBQUUsU0FBUyw2Q0FBRSxtQkFBbUI7OzJGQUduRixvQkFBb0I7a0JBUmhDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGNBQWMsYUFFYixDQUFDLDJCQUEyQixDQUFDLFdBQy9CLENBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLENBQUMsbUJBQzVFLHVCQUF1QixDQUFDLE1BQU07OzBCQTBDMUMsUUFBUTt5Q0FyQ0csWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ2dDLHdCQUF3QjtzQkFBN0QsS0FBSzt1QkFBQyxzQkFBc0I7Z0JBQ2IscUJBQXFCO3NCQUFwQyxLQUFLO2dCQUNnQyx3QkFBd0I7c0JBQTdELEtBQUs7dUJBQUMsc0JBQXNCO2dCQUNiLHVCQUF1QjtzQkFBdEMsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUNVLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFLd0IsdUJBQXVCO3NCQUFwRCxNQUFNO3VCQUFDLGFBQWE7Z0JBRU8sYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgRXhpc3RpbmdQcm92aWRlcixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtEcm9wZG93biwgRHJvcGRvd25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xuaW1wb3J0IHtNdWx0aVNlbGVjdE1vZHVsZX0gZnJvbSAncHJpbWVuZy9tdWx0aXNlbGVjdCc7XG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgb2YsIHN3aXRjaE1hcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0LCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtQnVpbGRlcn0gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscyc7XG5pbXBvcnQge0lMb29rdXBEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7dG9PYnNlcnZhYmxlfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2NvZXJjaW9uJztcbmltcG9ydCB7TW5nSW50ZXJuYWxFcnJvcn0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7TW5nTG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtFcnJvclV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7TW5nRm9ybWx5RmllbGRXcmFwcGVyQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtbHkvd3JhcHBlcnMnO1xuXG5leHBvcnQgY29uc3QgTU5HX0RST1BET1dOX1ZBTFVFX0FDQ0VTU09SOiBFeGlzdGluZ1Byb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1uZ0Ryb3Bkb3duQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy1kcm9wZG93bicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtNTkdfRFJPUERPV05fVkFMVUVfQUNDRVNTT1JdLFxuICAgIGltcG9ydHM6IFtEcm9wZG93bk1vZHVsZSwgTXVsdGlTZWxlY3RNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgQXN5bmNQaXBlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBpbmplY3QoTW5nTG9nZ2VyU2VydmljZSkuY3JlYXRlKCdNbmdEcm9wZG93bkNvbXBvbmVudCcpO1xuXG4gICAgQElucHV0KCkgcHVibGljIGRhdGFQcm92aWRlcj86IElMb29rdXBEYXRhUHJvdmlkZXI8YW55LCBhbnk+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvcHRpb25zVHJhY2tQcm9wZXJ0eT86IHN0cmluZztcbiAgICBASW5wdXQoJ29wdGlvbnNMYWJlbFByb3BlcnR5JykgcHVibGljIG9wdGlvbnNMYWJlbFByb3BlcnR5SW5pdD86IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uc0xhYmVsVHJhbnNsYXRlID0gZmFsc2U7XG4gICAgQElucHV0KCdvcHRpb25zVmFsdWVQcm9wZXJ0eScpIHB1YmxpYyBvcHRpb25zVmFsdWVQcm9wZXJ0eUluaXQ/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIG9wdGlvbnNEaXNhYmxlZFByb3BlcnR5Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtdWx0aXNlbGVjdCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd0NsZWFyID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0Rmlyc3RJdGVtID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgZHJvcGRvd25DbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGNoYW5nZVZhbHVlT25CbHVyID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGxvYWRpbmdTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gICAgcHVibGljICRsb2FkaW5nOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5sb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIEBPdXRwdXQoJ3ZhbHVlQ2hhbmdlJykgcHVibGljIHZhbHVlQ2hhbmdlRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZChEcm9wZG93bikgcHVibGljIHByaW1lRHJvcGRvd24/OiBEcm9wZG93bjtcblxuICAgIHB1YmxpYyBvcHRpb25zTGFiZWxQcm9wZXJ0eT86IHN0cmluZztcbiAgICBwdWJsaWMgb3B0aW9uc1ZhbHVlUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBvcHRpb25zU3ViamVjdDogU3ViamVjdDxBcnJheTxhbnk+PiA9IG5ldyBSZXBsYXlTdWJqZWN0PEFycmF5PGFueT4+KDEpO1xuICAgIHByaXZhdGUgZGF0YVByb3ZpZGVyU2VydmljZTogYW55ID0gbnVsbDtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgcHJpdmF0ZSBvbkNoYW5nZUZuOiBhbnk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHByaXZhdGUgb25Ub3VjaGVkRm46IGFueSA9ICgpID0+IHt9O1xuXG4gICAgcHVibGljIGRyb3Bkb3duRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgcHVibGljIGl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiA9IHRoaXMub3B0aW9uc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHJpdmF0ZSBpdGVtc1N1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZm9ybWx5V3JhcHBlcjogTW5nRm9ybWx5RmllbGRXcmFwcGVyQ29tcG9uZW50XG4gICAgKSB7XG4gICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3B0aW9uc0xhYmVsUHJvcGVydHkgPSB0aGlzLm9wdGlvbnNMYWJlbFByb3BlcnR5SW5pdDtcbiAgICAgICAgdGhpcy5vcHRpb25zVmFsdWVQcm9wZXJ0eSA9IHRoaXMub3B0aW9uc1ZhbHVlUHJvcGVydHlJbml0O1xuXG4gICAgICAgIHRoaXMuZHJvcGRvd25Gb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNoYW5nZVZhbHVlT25CbHVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVWYWx1ZUNoYW5nZSh2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmRhdGFQcm92aWRlclNlcnZpY2UgPSB0aGlzLmRhdGFQcm92aWRlci5zZXJ2aWNlVHlwZSA/IHRoaXMuaW5qZWN0b3IuZ2V0PGFueT4odGhpcy5kYXRhUHJvdmlkZXIuc2VydmljZVR5cGUpIDogbnVsbDtcblxuICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbUJ1aWxkZXIgPSBNZWRpdXNRdWVyeVBhcmFtQnVpbGRlci5jcmVhdGUoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9uc0xhYmVsVHJhbnNsYXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gc2V0dXAgdHJhbnNsYXRpb24gcHJvcGVydGllc1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnNMYWJlbFByb3BlcnR5SW5pdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNMYWJlbFByb3BlcnR5ID0gYCR7dGhpcy5vcHRpb25zTGFiZWxQcm9wZXJ0eUluaXR9X2kxOG5gO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMub3B0aW9uc0xhYmVsUHJvcGVydHkgJiYgIXRoaXMub3B0aW9uc1ZhbHVlUHJvcGVydHlJbml0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc0xhYmVsUHJvcGVydHkgPSAndGl0bGVfaTE4bic7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc1ZhbHVlUHJvcGVydHkgPSAndmFsdWUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBNbmdJbnRlcm5hbEVycm9yKGBJbnZhbGlkIHVzZSB3aXRoIHZhbHVlICgke3RoaXMub3B0aW9uc0xhYmVsUHJvcGVydHlJbml0fSkgYW5kIGxhYmVsICgke3RoaXMub3B0aW9uc0xhYmVsUHJvcGVydHlJbml0fSkgcHJvcGVydHkgc2V0dXAuYCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ01uZ0Ryb3Bkb3duQ29tcG9uZW50RXJyb3InXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pdGVtc1N1YnNjcmlwdGlvbiA9IHRvT2JzZXJ2YWJsZSh0aGlzLmRhdGFQcm92aWRlci5sb29rdXAocXVlcnlQYXJhbUJ1aWxkZXIuYnVpbGQoKSwgdGhpcy5kYXRhUHJvdmlkZXJTZXJ2aWNlKSlcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKGl0ZW1zID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnNMYWJlbFRyYW5zbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uS2V5czogc3RyaW5nW10gPSBpdGVtcy5tYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0gPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgdGhpcy5vcHRpb25zTGFiZWxQcm9wZXJ0eUluaXQgPyAoaXRlbVt0aGlzLm9wdGlvbnNMYWJlbFByb3BlcnR5SW5pdCBhcyBrZXlvZiBvYmplY3RdIGFzIHN0cmluZykgOiBpdGVtKSBhcyBzdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRyYW5zbGF0aW9uS2V5cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuc3RyZWFtKHRyYW5zbGF0aW9uS2V5cykucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKHRyYW5zbGF0aW9ucyA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgdGhpcy5vcHRpb25zTGFiZWxQcm9wZXJ0eUluaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBpdGVtW3RoaXMub3B0aW9uc0xhYmVsUHJvcGVydHlJbml0IGFzIGtleW9mIG9iamVjdF0gYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdHJhbnNsYXRpb25zW2xhYmVsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRyYW5zbGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gey4uLml0ZW0sIFt0aGlzLm9wdGlvbnNMYWJlbFByb3BlcnR5IV06IHRyYW5zbGF0aW9ufTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gey4uLml0ZW19O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb25zW2l0ZW1dO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoaXMub3B0aW9uc0xhYmVsUHJvcGVydHkhXTogdHJhbnNsYXRpb24gPz8gaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGlzLm9wdGlvbnNWYWx1ZVByb3BlcnR5IV06IGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNTdWJqZWN0Lm5leHQocmVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbW5nRXJyb3IgPSBFcnJvclV0aWwuZnJvbVN1YnNjcmliZUVycm9yKGVyciwgJ01uZ0Ryb3Bkb3duQ29tcG9uZW50RXJyb3InLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbTogcXVlcnlQYXJhbUJ1aWxkZXIuYnVpbGQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2cobW5nRXJyb3IsIEVycm9yVXRpbC5nZXRFcnJvckxvZ0xldmVsKG1uZ0Vycm9yKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0Rmlyc3RJdGVtICYmICF0aGlzLmRyb3Bkb3duRm9ybUNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLm9wdGlvbnNWYWx1ZVByb3BlcnR5ID8gcmVzWzBdW3RoaXMub3B0aW9uc1ZhbHVlUHJvcGVydHldIDogcmVzWzBdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3Bkb3duRm9ybUNvbnRyb2w/LnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBXQVJOSU5HOiBEYXRhIHByb3ZpZGVyIHNob3VsZCBiZSBwcm92aWRlZCBmb3IgTW5nRHJvcGRvd25Db21wb25lbnQuYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5pdGVtc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUZuID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkZvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzIGNoZWNrIGlzIHJlcXVpcmVkIGJlY2F1c2UgYW5ndWxhciBpbiBzb21lIGNhc2VzIHdyaXRlcyBudWxsIHZhbHVlXG4gICAgICAgIC8vIGJlZm9yZSB2YWx1ZSBhY2Nlc3NvciBpcyBpbml0aWFsaXplZFxuICAgICAgICAvLyBpZiBmb3JtIGNvbnRyb2wgdmFsdWUgaXMgb2YgcHJpbWl0aXZlIHR5cGUgKGV4OiBlbnVtcykgdGhlbiB3cml0ZSB2YWx1ZSBpcyBub3QgY2FsbGVkICh3ZSB0aGluaylcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnNWYWx1ZVByb3BlcnR5SW5pdCAmJiBvYmogPT09IG51bGwgJiYgIXRoaXMuaXNWYWx1ZUFjY2Vzc29ySW5pdGlhbGl6ZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZHJvcGRvd25Gb3JtQ29udHJvbC5zZXRWYWx1ZShvYmosIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIG9uRHJvcGRvd25CbHVyKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuY2hhbmdlVmFsdWVPbkJsdXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlVmFsdWVDaGFuZ2UodGhpcy5kcm9wZG93bkZvcm1Db250cm9sLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBvblBhbmVsSGlkZShldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmNoYW5nZVZhbHVlT25CbHVyKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BhZ2F0ZVZhbHVlQ2hhbmdlKHRoaXMuZHJvcGRvd25Gb3JtQ29udHJvbC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHByb3BhZ2F0ZVZhbHVlQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsdWVBY2Nlc3NvckluaXRpYWxpemVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybWx5V3JhcHBlcj8uZm9ybUNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4odmFsdWUpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlRXZlbnRFbWl0dGVyLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnRzIGV4ZWN1dGlvbnMgZm9yIHdyaXRpbmcgYW5kIG91dHB1dHRpbmcgdmFsdWUgd2hpY2ggaXMgc29tZXRpbWVzIGNvbW1pdHRlZCBhcyBudWxsIGluIGNtcCBpbml0aWFsaXphdGlvbiBzdGFnZS5cbiAgICAgKiBJbiBkcm9wZG93biAoZnJvbSBhbmcuIDE1IGFuZCBzd2l0Y2ggdG8gc3RhbmRhbG9uZSBjbXApIG51bGwgdmFsdWUgd2FzIGFsd2F5cyBjb21taXR0ZWQgdG8gZHJvcGRvd24gZXZlbiBpZiBkZWZhdWx0IHZhbHVlIHdhcyBzZXQgKHVzaW5nIG5nTW9kZWwgb3IgZm9ybUNvbnRyb2wpIHdoaWNoIGlzIGluY29ycmVjdC5cbiAgICAgKiBHaXRodWIgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE0OTg4XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGlzVmFsdWVBY2Nlc3NvckluaXRpYWxpemVkKCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMub25DaGFuZ2VGbiAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgfVxufVxuIiwiQGlmICghbXVsdGlzZWxlY3QpIHtcbiAgICA8cC1kcm9wZG93blxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZHJvcGRvd25Gb3JtQ29udHJvbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtkYXRhS2V5XT1cIm9wdGlvbnNUcmFja1Byb3BlcnR5XCJcbiAgICAgICAgW29wdGlvbkxhYmVsXT1cIm9wdGlvbnNMYWJlbFByb3BlcnR5XCJcbiAgICAgICAgW29wdGlvblZhbHVlXT1cIm9wdGlvbnNWYWx1ZVByb3BlcnR5XCJcbiAgICAgICAgW29wdGlvbkRpc2FibGVkXT1cIm9wdGlvbnNEaXNhYmxlZFByb3BlcnR5XCJcbiAgICAgICAgW29wdGlvbnNdPVwiKGl0ZW1zJCB8IGFzeW5jKSA/PyB1bmRlZmluZWRcIlxuICAgICAgICBbc2hvd0NsZWFyXT1cInNob3dDbGVhclwiXG4gICAgICAgIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCJcbiAgICAgICAgW3N0eWxlQ2xhc3NdPVwiY2xhc3NOYW1lXCJcbiAgICAgICAgW3BhbmVsU3R5bGVDbGFzc109XCJkcm9wZG93bkNsYXNzTmFtZVwiXG4gICAgICAgIChvbkJsdXIpPVwib25Ecm9wZG93bkJsdXIoJGV2ZW50KVwiXG4gICAgICAgIFtkcm9wZG93bkljb25dPVwiKCRsb2FkaW5nIHwgYXN5bmMpID8/IGZhbHNlID8gJ3BpIHBpLXNwaW5uZXIgcGktc3BpbicgOiAncGkgcGktY2hldnJvbi1kb3duJ1wiXG4gICAgICAgIGFwcGVuZFRvPVwiYm9keVwiPlxuICAgIDwvcC1kcm9wZG93bj5cbn0gQGVsc2Uge1xuICAgIDxwLW11bHRpU2VsZWN0XG4gICAgICAgIFttYXhTZWxlY3RlZExhYmVsc109XCIxXCJcbiAgICAgICAgW3NlbGVjdGVkSXRlbXNMYWJlbF09XCInbW5nRHJvcGRvd24ubXVsdGlzZWxlY3RPdmVyTWF4RGlzcGxheUxpbWl0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJkcm9wZG93bkZvcm1Db250cm9sXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2RhdGFLZXldPVwib3B0aW9uc1RyYWNrUHJvcGVydHlcIlxuICAgICAgICBbb3B0aW9uTGFiZWxdPVwib3B0aW9uc0xhYmVsUHJvcGVydHlcIlxuICAgICAgICBbb3B0aW9uVmFsdWVdPVwib3B0aW9uc1ZhbHVlUHJvcGVydHlcIlxuICAgICAgICBbb3B0aW9uRGlzYWJsZWRdPVwib3B0aW9uc0Rpc2FibGVkUHJvcGVydHlcIlxuICAgICAgICBbb3B0aW9uc109XCIoaXRlbXMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgICAgW3N0eWxlQ2xhc3NdPVwiY2xhc3NOYW1lXCJcbiAgICAgICAgW3BhbmVsU3R5bGVDbGFzc109XCJkcm9wZG93bkNsYXNzTmFtZVwiXG4gICAgICAgIFtmaWx0ZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaG93VG9nZ2xlQWxsXT1cImZhbHNlXCJcbiAgICAgICAgKG9uUGFuZWxIaWRlKT1cIm9uUGFuZWxIaWRlKCRldmVudClcIlxuICAgICAgICBhcHBlbmRUbz1cImJvZHlcIj5cbiAgICA8L3AtbXVsdGlTZWxlY3Q+XG59XG4iXX0=
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBRVosUUFBUSxFQUVSLE1BQU0sRUFDTixRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQXVCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpHLE9BQU8sRUFBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsUUFBUSxFQUFFLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxFQUFFLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FB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QUFwQixvQkFBb0Isd2tFQUpsQixDQUFDLDJCQUEyQixDQUFDLHlFQWdDUCxRQUFRLGdFQzVFN0MsNDVDQW9DQSwyQ0RTYyxjQUFjLHluQ0FBRSxpQkFBaUIsa3lDQUFFLGVBQWUsMkZBQWEsbUJBQW1COzsyRkFHbkYsb0JBQW9CO2tCQVJoQyxTQUFTO2lDQUNNLElBQUksWUFDTixjQUFjLGFBRWIsQ0FBQywyQkFBMkIsQ0FBQyxXQUMvQixDQUFDLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixDQUFDLG1CQUM1RSx1QkFBdUIsQ0FBQyxNQUFNOzhCQTRCakIsdUJBQXVCO3NCQUFwRCxNQUFNO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEV4aXN0aW5nUHJvdmlkZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBjb21wdXRlZCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBzaWduYWwsXG4gICAgdmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0Ryb3Bkb3duLCBEcm9wZG93bk1vZHVsZX0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQge011bHRpU2VsZWN0TW9kdWxlfSBmcm9tICdwcmltZW5nL211bHRpc2VsZWN0JztcbmltcG9ydCB7b2YsIHN3aXRjaE1hcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge01lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7SUxvb2t1cERhdGFQcm92aWRlcn0gZnJvbSAnLi4vLi4vLi4vZGF0YS1wcm92aWRlcnMnO1xuaW1wb3J0IHt0b09ic2VydmFibGV9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvY29lcmNpb24nO1xuaW1wb3J0IHtNbmdJbnRlcm5hbEVycm9yfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtNbmdMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0Vycm9yVXRpbH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHtNbmdGb3JtbHlGaWVsZFdyYXBwZXJDb21wb25lbnR9IGZyb20gJy4uL2Zvcm1seS93cmFwcGVycyc7XG5cbmV4cG9ydCBjb25zdCBNTkdfRFJPUERPV05fVkFMVUVfQUNDRVNTT1I6IEV4aXN0aW5nUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTW5nRHJvcGRvd25Db21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWRyb3Bkb3duJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW01OR19EUk9QRE9XTl9WQUxVRV9BQ0NFU1NPUl0sXG4gICAgaW1wb3J0czogW0Ryb3Bkb3duTW9kdWxlLCBNdWx0aVNlbGVjdE1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBBc3luY1BpcGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0Ryb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBpbmplY3QoTW5nTG9nZ2VyU2VydmljZSkuY3JlYXRlKCdNbmdEcm9wZG93bkNvbXBvbmVudCcpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybWx5V3JhcHBlciA9IGluamVjdChNbmdGb3JtbHlGaWVsZFdyYXBwZXJDb21wb25lbnQsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGRyb3Bkb3duRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG5cbiAgICBwdWJsaWMgZGF0YVByb3ZpZGVyID0gaW5wdXQ8SUxvb2t1cERhdGFQcm92aWRlcjxhbnksIGFueT4+KCk7XG4gICAgcHVibGljIG9wdGlvbnNUcmFja1Byb3BlcnR5ID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIHB1YmxpYyBvcHRpb25zTGFiZWxQcm9wZXJ0eUluaXQgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwge2FsaWFzOiAnb3B0aW9uc0xhYmVsUHJvcGVydHknfSk7XG4gICAgcHVibGljIG9wdGlvbnNMYWJlbFRyYW5zbGF0ZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwdWJsaWMgb3B0aW9uc1ZhbHVlUHJvcGVydHlJbml0ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHthbGlhczogJ29wdGlvbnNWYWx1ZVByb3BlcnR5J30pO1xuICAgIHB1YmxpYyBvcHRpb25zRGlzYWJsZWRQcm9wZXJ0eSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBwdWJsaWMgbXVsdGlzZWxlY3QgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gICAgcHVibGljIHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIHB1YmxpYyBzaG93Q2xlYXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gICAgcHVibGljIHNlbGVjdEZpcnN0SXRlbSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwdWJsaWMgY2xhc3NOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIHB1YmxpYyBkcm9wZG93bkNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBwdWJsaWMgY2hhbmdlVmFsdWVPbkJsdXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBwdWJsaWMgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBAT3V0cHV0KCd2YWx1ZUNoYW5nZScpIHB1YmxpYyB2YWx1ZUNoYW5nZUV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBwcmltZURyb3Bkb3duID0gdmlld0NoaWxkKERyb3Bkb3duKTtcblxuICAgIHByaXZhdGUgZGF0YVByb3ZpZGVyU2VydmljZTogYW55ID0gbnVsbDtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgcHJpdmF0ZSBvbkNoYW5nZUZuOiBhbnk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHByaXZhdGUgb25Ub3VjaGVkRm46IGFueSA9ICgpID0+IHt9O1xuXG4gICAgcHVibGljIGl0ZW1zID0gc2lnbmFsPEFycmF5PGFueT4+KFtdKTtcbiAgICBwcml2YXRlIGZpcnN0VGltZVNldHRpbmdJdGVtcyA9IHRydWU7XG5cbiAgICBwdWJsaWMgb3B0aW9uc0xhYmVsUHJvcGVydHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnNMYWJlbFRyYW5zbGF0ZSgpKSB7XG4gICAgICAgICAgICAvLyBzZXR1cCB0cmFuc2xhdGlvbiBwcm9wZXJ0aWVzXG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zTGFiZWxQcm9wZXJ0eUluaXQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLm9wdGlvbnNMYWJlbFByb3BlcnR5SW5pdCgpfV9pMThuYDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMub3B0aW9uc0xhYmVsUHJvcGVydHlJbml0KCkgJiYgIXRoaXMub3B0aW9uc1ZhbHVlUHJvcGVydHlJbml0KCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RpdGxlX2kxOG4nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTW5nSW50ZXJuYWxFcnJvcihgSW52YWxpZCB1c2Ugd2l0aCB2YWx1ZSAoJHt0aGlzLm9wdGlvbnNWYWx1ZVByb3BlcnR5SW5pdCgpfSkgYW5kIGxhYmVsICgke3RoaXMub3B0aW9uc0xhYmVsUHJvcGVydHlJbml0KCl9KSBwcm9wZXJ0eSBzZXR1cC5gLCB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdNbmdEcm9wZG93bkNvbXBvbmVudEVycm9yJ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc0xhYmVsUHJvcGVydHlJbml0KCk7XG4gICAgfSk7XG4gICAgcHVibGljIG9wdGlvbnNWYWx1ZVByb3BlcnR5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zTGFiZWxUcmFuc2xhdGUoKSkge1xuICAgICAgICAgICAgLy8gc2V0dXAgdHJhbnNsYXRpb24gcHJvcGVydGllc1xuICAgICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnNMYWJlbFByb3BlcnR5SW5pdCgpICYmICF0aGlzLm9wdGlvbnNWYWx1ZVByb3BlcnR5SW5pdCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICd2YWx1ZSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLm9wdGlvbnNMYWJlbFByb3BlcnR5SW5pdCgpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0ludGVybmFsRXJyb3IoYEludmFsaWQgdXNlIHdpdGggdmFsdWUgKCR7dGhpcy5vcHRpb25zVmFsdWVQcm9wZXJ0eUluaXQoKX0pIGFuZCBsYWJlbCAoJHt0aGlzLm9wdGlvbnNMYWJlbFByb3BlcnR5SW5pdCgpfSkgcHJvcGVydHkgc2V0dXAuYCwge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnTW5nRHJvcGRvd25Db21wb25lbnRFcnJvcidcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNWYWx1ZVByb3BlcnR5SW5pdCgpO1xuICAgIH0pO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJvcGRvd25Gb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNoYW5nZVZhbHVlT25CbHVyKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BhZ2F0ZVZhbHVlQ2hhbmdlKHYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBkYXRhUHJvdmlkZXIgPSB0aGlzLmRhdGFQcm92aWRlcigpO1xuICAgICAgICBpZiAoZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXJTZXJ2aWNlID0gZGF0YVByb3ZpZGVyLnNlcnZpY2VUeXBlID8gdGhpcy5pbmplY3Rvci5nZXQ8YW55PihkYXRhUHJvdmlkZXIuc2VydmljZVR5cGUpIDogbnVsbDtcblxuICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbUJ1aWxkZXIgPSBNZWRpdXNRdWVyeVBhcmFtQnVpbGRlci5jcmVhdGUoKTtcblxuICAgICAgICAgICAgdG9PYnNlcnZhYmxlKGRhdGFQcm92aWRlci5sb29rdXAocXVlcnlQYXJhbUJ1aWxkZXIuYnVpbGQoKSwgdGhpcy5kYXRhUHJvdmlkZXJTZXJ2aWNlKSlcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKGl0ZW1zID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnNMYWJlbFRyYW5zbGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25LZXlzOiBzdHJpbmdbXSA9IGl0ZW1zLm1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiB0aGlzLm9wdGlvbnNMYWJlbFByb3BlcnR5SW5pdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoaXRlbVt0aGlzLm9wdGlvbnNMYWJlbFByb3BlcnR5SW5pdCgpIGFzIGtleW9mIG9iamVjdF0gYXMgc3RyaW5nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbSkgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0cmFuc2xhdGlvbktleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLnN0cmVhbSh0cmFuc2xhdGlvbktleXMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcCh0cmFuc2xhdGlvbnMgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIHRoaXMub3B0aW9uc0xhYmVsUHJvcGVydHlJbml0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBpdGVtW3RoaXMub3B0aW9uc0xhYmVsUHJvcGVydHlJbml0KCkgYXMga2V5b2Ygb2JqZWN0XSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0cmFuc2xhdGlvbnNbbGFiZWxdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHJhbnNsYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7Li4uaXRlbSwgW3RoaXMub3B0aW9uc0xhYmVsUHJvcGVydHkoKSFdOiB0cmFuc2xhdGlvbn07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsuLi5pdGVtfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbiA9IHRyYW5zbGF0aW9uc1tpdGVtXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGlzLm9wdGlvbnNMYWJlbFByb3BlcnR5KCkhXTogdHJhbnNsYXRpb24gPz8gaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGlzLm9wdGlvbnNWYWx1ZVByb3BlcnR5KCkhXTogaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoaXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnNldChyZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpcnN0VGltZVNldHRpbmdJdGVtcyAmJiB0aGlzLnNlbGVjdEZpcnN0SXRlbSgpICYmICF0aGlzLmRyb3Bkb3duRm9ybUNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uc1ZhbHVlUHJvcGVydHkgPSB0aGlzLm9wdGlvbnNWYWx1ZVByb3BlcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb25zVmFsdWVQcm9wZXJ0eSA/IHJlc1swXVtvcHRpb25zVmFsdWVQcm9wZXJ0eV0gOiByZXNbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bkZvcm1Db250cm9sPy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maXJzdFRpbWVTZXR0aW5nSXRlbXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtbmdFcnJvciA9IEVycm9yVXRpbC5mcm9tU3Vic2NyaWJlRXJyb3IoZXJyLCAnTW5nRHJvcGRvd25Db21wb25lbnRFcnJvcicsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtOiBxdWVyeVBhcmFtQnVpbGRlci5idWlsZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyhtbmdFcnJvciwgRXJyb3JVdGlsLmdldEVycm9yTG9nTGV2ZWwobW5nRXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFdBUk5JTkc6IERhdGEgcHJvdmlkZXIgc2hvdWxkIGJlIHByb3ZpZGVkIGZvciBNbmdEcm9wZG93bkNvbXBvbmVudC5gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Gb3JtQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duRm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMgY2hlY2sgaXMgcmVxdWlyZWQgYmVjYXVzZSBhbmd1bGFyIGluIHNvbWUgY2FzZXMgd3JpdGVzIG51bGwgdmFsdWVcbiAgICAgICAgLy8gYmVmb3JlIHZhbHVlIGFjY2Vzc29yIGlzIGluaXRpYWxpemVkXG4gICAgICAgIC8vIGlmIGZvcm0gY29udHJvbCB2YWx1ZSBpcyBvZiBwcmltaXRpdmUgdHlwZSAoZXg6IGVudW1zKSB0aGVuIHdyaXRlIHZhbHVlIGlzIG5vdCBjYWxsZWQgKHdlIHRoaW5rKVxuICAgICAgICBpZiAoIXRoaXMub3B0aW9uc1ZhbHVlUHJvcGVydHlJbml0KCkgJiYgb2JqID09PSBudWxsICYmICF0aGlzLmlzVmFsdWVBY2Nlc3NvckluaXRpYWxpemVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyb3Bkb3duRm9ybUNvbnRyb2wuc2V0VmFsdWUob2JqLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBvbkRyb3Bkb3duQmx1cihldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmNoYW5nZVZhbHVlT25CbHVyKCkpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlVmFsdWVDaGFuZ2UodGhpcy5kcm9wZG93bkZvcm1Db250cm9sLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBvblBhbmVsSGlkZShldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmNoYW5nZVZhbHVlT25CbHVyKCkpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlVmFsdWVDaGFuZ2UodGhpcy5kcm9wZG93bkZvcm1Db250cm9sLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcHJvcGFnYXRlVmFsdWVDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWx1ZUFjY2Vzc29ySW5pdGlhbGl6ZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mb3JtbHlXcmFwcGVyPy5mb3JtQ29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xuXG4gICAgICAgIHRoaXMub25DaGFuZ2VGbih2YWx1ZSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VFdmVudEVtaXR0ZXIubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJldmVudHMgZXhlY3V0aW9ucyBmb3Igd3JpdGluZyBhbmQgb3V0cHV0dGluZyB2YWx1ZSB3aGljaCBpcyBzb21ldGltZXMgY29tbWl0dGVkIGFzIG51bGwgaW4gY21wIGluaXRpYWxpemF0aW9uIHN0YWdlLlxuICAgICAqIEluIGRyb3Bkb3duIChmcm9tIGFuZy4gMTUgYW5kIHN3aXRjaCB0byBzdGFuZGFsb25lIGNtcCkgbnVsbCB2YWx1ZSB3YXMgYWx3YXlzIGNvbW1pdHRlZCB0byBkcm9wZG93biBldmVuIGlmIGRlZmF1bHQgdmFsdWUgd2FzIHNldCAodXNpbmcgbmdNb2RlbCBvciBmb3JtQ29udHJvbCkgd2hpY2ggaXMgaW5jb3JyZWN0LlxuICAgICAqIEdpdGh1YiBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTQ5ODhcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgaXNWYWx1ZUFjY2Vzc29ySW5pdGlhbGl6ZWQoKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5vbkNoYW5nZUZuICE9PSAndW5kZWZpbmVkJztcbiAgICB9XG59XG4iLCJAaWYgKCFtdWx0aXNlbGVjdCgpKSB7XG4gICAgPHAtZHJvcGRvd25cbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImRyb3Bkb3duRm9ybUNvbnRyb2xcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXG4gICAgICAgIFtkYXRhS2V5XT1cIm9wdGlvbnNUcmFja1Byb3BlcnR5KClcIlxuICAgICAgICBbb3B0aW9uTGFiZWxdPVwib3B0aW9uc0xhYmVsUHJvcGVydHkoKVwiXG4gICAgICAgIFtvcHRpb25WYWx1ZV09XCJvcHRpb25zVmFsdWVQcm9wZXJ0eSgpXCJcbiAgICAgICAgW29wdGlvbkRpc2FibGVkXT1cIm9wdGlvbnNEaXNhYmxlZFByb3BlcnR5KClcIlxuICAgICAgICBbb3B0aW9uc109XCJpdGVtcygpXCJcbiAgICAgICAgW3Nob3dDbGVhcl09XCJzaG93Q2xlYXIoKVwiXG4gICAgICAgIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCJcbiAgICAgICAgW3N0eWxlQ2xhc3NdPVwiY2xhc3NOYW1lKClcIlxuICAgICAgICBbcGFuZWxTdHlsZUNsYXNzXT1cImRyb3Bkb3duQ2xhc3NOYW1lKClcIlxuICAgICAgICAob25CbHVyKT1cIm9uRHJvcGRvd25CbHVyKCRldmVudClcIlxuICAgICAgICBbZHJvcGRvd25JY29uXT1cImxvYWRpbmcoKSA/ICdwaSBwaS1zcGlubmVyIHBpLXNwaW4nIDogJ3BpIHBpLWNoZXZyb24tZG93bidcIlxuICAgICAgICBhcHBlbmRUbz1cImJvZHlcIj5cbiAgICA8L3AtZHJvcGRvd24+XG59IEBlbHNlIHtcbiAgICA8cC1tdWx0aVNlbGVjdFxuICAgICAgICBbbWF4U2VsZWN0ZWRMYWJlbHNdPVwiMVwiXG4gICAgICAgIFtzZWxlY3RlZEl0ZW1zTGFiZWxdPVwiJ21uZ0Ryb3Bkb3duLm11bHRpc2VsZWN0T3Zlck1heERpc3BsYXlMaW1pdCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZHJvcGRvd25Gb3JtQ29udHJvbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcbiAgICAgICAgW2RhdGFLZXldPVwib3B0aW9uc1RyYWNrUHJvcGVydHkoKVwiXG4gICAgICAgIFtvcHRpb25MYWJlbF09XCJvcHRpb25zTGFiZWxQcm9wZXJ0eSgpXCJcbiAgICAgICAgW29wdGlvblZhbHVlXT1cIm9wdGlvbnNWYWx1ZVByb3BlcnR5KClcIlxuICAgICAgICBbb3B0aW9uRGlzYWJsZWRdPVwib3B0aW9uc0Rpc2FibGVkUHJvcGVydHkoKVwiXG4gICAgICAgIFtvcHRpb25zXT1cIml0ZW1zKClcIlxuICAgICAgICBbc3R5bGVDbGFzc109XCJjbGFzc05hbWUoKVwiXG4gICAgICAgIFtwYW5lbFN0eWxlQ2xhc3NdPVwiZHJvcGRvd25DbGFzc05hbWUoKVwiXG4gICAgICAgIFtmaWx0ZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaG93VG9nZ2xlQWxsXT1cImZhbHNlXCJcbiAgICAgICAgKG9uUGFuZWxIaWRlKT1cIm9uUGFuZWxIaWRlKCRldmVudClcIlxuICAgICAgICBhcHBlbmRUbz1cImJvZHlcIj5cbiAgICA8L3AtbXVsdGlTZWxlY3Q+XG59XG4iXX0=
|
|
@@ -254,10 +254,10 @@ export class MngFormEditorComponent {
|
|
|
254
254
|
}
|
|
255
255
|
this.updateFormState();
|
|
256
256
|
}
|
|
257
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
258
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
257
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MngFormEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
258
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: MngFormEditorComponent, isStandalone: true, selector: "mng-form-editor", inputs: { descriptor: "descriptor", submitLoading: "submitLoading", item: "item", isFormDisabled: "isFormDisabled" }, outputs: { formSubmitEventEmitter: "formSubmit" }, queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], viewQueries: [{ propertyName: "submitButtonElementRef", first: true, predicate: ["submitButton"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formFields\" [options]=\"formOptions\" [model]=\"formModel\"></formly-form>\n <button\n #submitButton\n pButton\n type=\"submit\"\n class=\"hidden\"\n [disabled]=\"form.disabled\"\n [loading]=\"(submitLoading$ | async) ?? false\"\n loadingIcon=\"pi pi-spin pi-spinner\"></button>\n</form>\n<p-messages [value]=\"formMessages\" [enableService]=\"false\"></p-messages>\n", dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
259
259
|
}
|
|
260
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MngFormEditorComponent, decorators: [{
|
|
261
261
|
type: Component,
|
|
262
262
|
args: [{ standalone: true, selector: 'mng-form-editor', imports: [FormlyModule, ReactiveFormsModule, MessagesModule, AsyncPipe, ButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formFields\" [options]=\"formOptions\" [model]=\"formModel\"></formly-form>\n <button\n #submitButton\n pButton\n type=\"submit\"\n class=\"hidden\"\n [disabled]=\"form.disabled\"\n [loading]=\"(submitLoading$ | async) ?? false\"\n loadingIcon=\"pi pi-spin pi-spinner\"></button>\n</form>\n<p-messages [value]=\"formMessages\" [enableService]=\"false\"></p-messages>\n" }]
|
|
263
263
|
}], propDecorators: { descriptor: [{
|
|
@@ -51,10 +51,10 @@ export class MngFormlyFieldActionComponent extends FieldType {
|
|
|
51
51
|
this.actionMessage = res.message;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
55
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MngFormlyFieldActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: MngFormlyFieldActionComponent, isStandalone: true, selector: "mng-formly-field-action", usesInheritance: true, ngImport: i0, template: "<div class=\"flex\">\n <button\n type=\"button\"\n pButton\n pRipple\n [icon]=\"$any(descriptor.button.icon)\"\n [label]=\"$any(descriptor.button.label === null ? null : descriptor.button.label ?? props!.label) | translate\"\n [pTooltip]=\"$any(descriptor.button.tooltip) | translate\"\n [disabled]=\"formControl.disabled\"\n (click)=\"onClick()\"\n [class]=\"buttonClass + (actionMessage ? ' mr-2' : '')\"></button>\n @if (actionMessage) {\n <p-message [text]=\"actionMessage.content\" [severity]=\"actionMessage.severity ?? 'success'\"></p-message>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i2.Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: MessageModule }, { kind: "component", type: i5.UIMessage, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
56
56
|
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MngFormlyFieldActionComponent, decorators: [{
|
|
58
58
|
type: Component,
|
|
59
59
|
args: [{ standalone: true, selector: 'mng-formly-field-action', imports: [ButtonModule, RippleModule, TranslateModule, TooltipModule, JsonPipe, MessageModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex\">\n <button\n type=\"button\"\n pButton\n pRipple\n [icon]=\"$any(descriptor.button.icon)\"\n [label]=\"$any(descriptor.button.label === null ? null : descriptor.button.label ?? props!.label) | translate\"\n [pTooltip]=\"$any(descriptor.button.tooltip) | translate\"\n [disabled]=\"formControl.disabled\"\n (click)=\"onClick()\"\n [class]=\"buttonClass + (actionMessage ? ' mr-2' : '')\"></button>\n @if (actionMessage) {\n <p-message [text]=\"actionMessage.content\" [severity]=\"actionMessage.severity ?? 'success'\"></p-message>\n }\n</div>\n" }]
|
|
60
60
|
}] });
|
|
@@ -44,11 +44,11 @@ export class MngFormlyFieldAutocompleteComponent extends FieldType {
|
|
|
44
44
|
eventSubtype: MngFormFieldEventComponentSubtype.ON_DESTROY
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MngFormlyFieldAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: MngFormlyFieldAutocompleteComponent, isStandalone: true, selector: "mng-formly-field-autocomplete", usesInheritance: true, ngImport: i0, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"aFormControl\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [className]=\"descriptor.inputClassName\"\n [showClear]=\"!props.required\"\n [selectFirst]=\"descriptor.autocompleteSelectFirst ?? false\"\n [autoClear]=\"descriptor.autocompleteAutoClear ?? false\"\n [openOnFocus]=\"descriptor.autocompleteAutoClear ?? true\"\n [inlineSearch]=\"descriptor.autocompleteInlineSearch ?? false\">\n</mng-autocomplete>\n", dependencies: [{ kind: "component", type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "optionsTrackProperty", "optionsValueProperty", "optionsLabelProperty", "optionsLabelTranslate", "inlineSearch", "openOnFocus", "multiselect", "placeholder", "className", "dropdownClassName", "showClear", "autoClear", "selectFirst", "searchTrim"], outputs: ["valueChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i2.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MngFormlyFieldAutocompleteComponent, decorators: [{
|
|
51
51
|
type: Component,
|
|
52
52
|
args: [{ standalone: true, selector: 'mng-formly-field-autocomplete', imports: [MngAutocompleteComponent, ReactiveFormsModule, FormlyModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"aFormControl\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [className]=\"descriptor.inputClassName\"\n [showClear]=\"!props.required\"\n [selectFirst]=\"descriptor.autocompleteSelectFirst ?? false\"\n [autoClear]=\"descriptor.autocompleteAutoClear ?? false\"\n [openOnFocus]=\"descriptor.autocompleteAutoClear ?? true\"\n [inlineSearch]=\"descriptor.autocompleteInlineSearch ?? false\">\n</mng-autocomplete>\n" }]
|
|
53
53
|
}] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC1hdXRvY29tcGxldGUvZm9ybWx5LWZpZWxkLWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC1hdXRvY29tcGxldGUvZm9ybWx5LWZpZWxkLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLHVCQUF1QixFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFjLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQWUsb0JBQW9CLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3pDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxpQ0FBaUMsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7O0FBVTdGLE1BQU0sT0FBTyxtQ0FBMkMsU0FBUSxTQUErQjtJQVAvRjs7UUFXWSxrQkFBYSxHQUFtQixFQUFFLENBQUM7S0F3QzlDO0lBdENVLFFBQVE7UUFDWCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUEwQixDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUEwQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUVqQyx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLEVBQUUsbUNBQW1DLEVBQUUsSUFBSSxFQUFFO1lBQy9HLFlBQVksRUFBRSxpQ0FBaUMsQ0FBQyxPQUFPO1NBQzFELENBQUMsQ0FBQztRQUVILE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9ILElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxtQ0FBbUMsRUFBRSxJQUFJLEVBQUU7Z0JBQ3hHLEtBQUssRUFBRSxDQUFDO2FBQ1gsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDOUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixFQUFFLG1DQUFtQyxFQUFFLElBQUksRUFBRTtZQUMvRyxZQUFZLEVBQUUsaUNBQWlDLENBQUMsWUFBWTtTQUMvRCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNkLGtEQUFrRDtRQUVsRCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXpELHVCQUF1QjtRQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBa0IsRUFBRSxtQ0FBbUMsRUFBRSxJQUFJLEVBQUU7WUFDaEgsWUFBWSxFQUFFLGlDQUFpQyxDQUFDLFVBQVU7U0FDN0QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0EzQ1EsbUNBQW1DO2tHQUFuQyxtQ0FBbUMsZ0hDbkJoRCxvdEJBZUEsNENEQ2Msd0JBQXdCLHVXQUFFLG1CQUFtQix5VEFBRSxZQUFZOzsyRkFHNUQsbUNBQW1DO2tCQVAvQyxTQUFTO2lDQUNNLElBQUksWUFDTiwrQkFBK0IsV0FFaEMsQ0FBQyx3QkFBd0IsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLENBQUMsbUJBQ3JELHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtGaWVsZFR5cGUsIEZvcm1seU1vZHVsZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbiwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtGaWVsZExvb2t1cERlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2Rlc2NyaXB0b3JzL2VkaXRvcic7XG5pbXBvcnQge01uZ0F1dG9jb21wbGV0ZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHtNbmdGb3JtRmllbGRFdmVudENvbXBvbmVudFN1YnR5cGUsIE1uZ0Zvcm1GaWVsZEV2ZW50VHlwZUVudW19IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge01uZ0Zvcm1seUZpZWxkQ29uZmlnfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm1seS1maWVsZC1hdXRvY29tcGxldGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtbHktZmllbGQtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbTW5nQXV0b2NvbXBsZXRlQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtbHlNb2R1bGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0Zvcm1seUZpZWxkQXV0b2NvbXBsZXRlQ29tcG9uZW50PFQsIEVUPiBleHRlbmRzIEZpZWxkVHlwZTxNbmdGb3JtbHlGaWVsZENvbmZpZz4gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGFGb3JtQ29udHJvbCE6IEZvcm1Db250cm9sO1xuICAgIHB1YmxpYyBkZXNjcmlwdG9yITogRmllbGRMb29rdXBEZXNjcmlwdG9yPFQsIEVUPjtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5hRm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sO1xuICAgICAgICB0aGlzLmRlc2NyaXB0b3IgPSB0aGlzLnByb3BzLmRlc2NyaXB0b3IgYXMgRmllbGRMb29rdXBEZXNjcmlwdG9yPFQsIEVUPjtcbiAgICAgICAgdGhpcy5wcm9wcy5maWVsZENvbXBvbmVudCA9IHRoaXM7XG5cbiAgICAgICAgLy8gZW1pdCBsaWZlY3ljbGUgZXZlbnRcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yLm5leHRFdmVudChNbmdGb3JtRmllbGRFdmVudFR5cGVFbnVtLkNvbXBvbmVudExpZmVjeWNsZSwgTW5nRm9ybWx5RmllbGRBdXRvY29tcGxldGVDb21wb25lbnQsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogTW5nRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0lOSVRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5hRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuYUZvcm1Db250cm9sLnZhbHVlKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdG9yLm5leHRFdmVudChNbmdGb3JtRmllbGRFdmVudFR5cGVFbnVtLlZhbHVlQ2hhbmdlLCBNbmdGb3JtbHlGaWVsZEF1dG9jb21wbGV0ZUNvbXBvbmVudCwgdGhpcywge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHNbJ29uVmFsdWVDaGFuZ2UnXSkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbJ29uVmFsdWVDaGFuZ2UnXSh0aGlzLmZpZWxkLCB2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yLm5leHRFdmVudChNbmdGb3JtRmllbGRFdmVudFR5cGVFbnVtLkNvbXBvbmVudExpZmVjeWNsZSwgTW5nRm9ybWx5RmllbGRBdXRvY29tcGxldGVDb21wb25lbnQsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogTW5nRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX1ZJRVdfSU5JVFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIHdhcm5pbmc6IGZvcm1seSBjYWxscyBvbiBkZXN0cm95IGJlZm9yZSBvbiBpbml0XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2godmFsdWUgPT4gdmFsdWUudW5zdWJzY3JpYmUoKSk7XG5cbiAgICAgICAgLy8gZW1pdCBsaWZlY3ljbGUgZXZlbnRcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yPy5uZXh0RXZlbnQoTW5nRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIE1uZ0Zvcm1seUZpZWxkQXV0b2NvbXBsZXRlQ29tcG9uZW50LCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IE1uZ0Zvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9ERVNUUk9ZXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxtbmctYXV0b2NvbXBsZXRlXG4gICAgW2lkXT1cIiRhbnkoa2V5KVwiXG4gICAgW2Zvcm1Db250cm9sXT1cImFGb3JtQ29udHJvbFwiXG4gICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxuICAgIFtkYXRhUHJvdmlkZXJdPVwiZGVzY3JpcHRvci5kYXRhUHJvdmlkZXJcIlxuICAgIFtvcHRpb25zVHJhY2tQcm9wZXJ0eV09XCJkZXNjcmlwdG9yLm9wdGlvbnNUcmFja1Byb3BlcnR5XCJcbiAgICBbb3B0aW9uc0xhYmVsUHJvcGVydHldPVwiZGVzY3JpcHRvci5vcHRpb25zTGFiZWxQcm9wZXJ0eVwiXG4gICAgW29wdGlvbnNWYWx1ZVByb3BlcnR5XT1cImRlc2NyaXB0b3Iub3B0aW9uc1ZhbHVlUHJvcGVydHlcIlxuICAgIFtjbGFzc05hbWVdPVwiZGVzY3JpcHRvci5pbnB1dENsYXNzTmFtZVwiXG4gICAgW3Nob3dDbGVhcl09XCIhcHJvcHMucmVxdWlyZWRcIlxuICAgIFtzZWxlY3RGaXJzdF09XCJkZXNjcmlwdG9yLmF1dG9jb21wbGV0ZVNlbGVjdEZpcnN0ID8/IGZhbHNlXCJcbiAgICBbYXV0b0NsZWFyXT1cImRlc2NyaXB0b3IuYXV0b2NvbXBsZXRlQXV0b0NsZWFyID8/IGZhbHNlXCJcbiAgICBbb3Blbk9uRm9jdXNdPVwiZGVzY3JpcHRvci5hdXRvY29tcGxldGVBdXRvQ2xlYXIgPz8gdHJ1ZVwiXG4gICAgW2lubGluZVNlYXJjaF09XCJkZXNjcmlwdG9yLmF1dG9jb21wbGV0ZUlubGluZVNlYXJjaCA/PyBmYWxzZVwiPlxuPC9tbmctYXV0b2NvbXBsZXRlPlxuIl19
|
|
@@ -30,10 +30,10 @@ export class AMngFormlyCustomFieldComponent extends FieldType {
|
|
|
30
30
|
get formState() {
|
|
31
31
|
return this._formState;
|
|
32
32
|
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
34
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: AMngFormlyCustomFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
34
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: AMngFormlyCustomFieldComponent, inputs: { field: "field", _model: ["model", "_model"], _form: ["form", "_form"], _options: ["options", "_options"], _key: ["key", "_key"], _formControl: ["formControl", "_formControl"], _props: ["props", "_props"], _showError: ["showError", "_showError"], _id: ["id", "_id"], _formState: ["formState", "_formState"] }, usesInheritance: true, ngImport: i0 }); }
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: AMngFormlyCustomFieldComponent, decorators: [{
|
|
37
37
|
type: Directive
|
|
38
38
|
}], propDecorators: { field: [{
|
|
39
39
|
type: Input,
|