@mediusinc/mng-commons 0.0.1-rc.2
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/README.md +19 -0
- package/esm2020/lib/api/models/builders/query-param.builder.mjs +49 -0
- package/esm2020/lib/api/models/filter-match-type.model.mjs +24 -0
- package/esm2020/lib/api/models/filter-param.model.mjs +46 -0
- package/esm2020/lib/api/models/index.mjs +9 -0
- package/esm2020/lib/api/models/mappers.mjs +17 -0
- package/esm2020/lib/api/models/query-mode.model.mjs +19 -0
- package/esm2020/lib/api/models/query-param.model.mjs +69 -0
- package/esm2020/lib/api/models/query-result.model.mjs +45 -0
- package/esm2020/lib/api/models/serialization.model.mjs +2 -0
- package/esm2020/lib/api/services/abstract-crud-api.service.mjs +72 -0
- package/esm2020/lib/api/services/index.mjs +2 -0
- package/esm2020/lib/api/utils/index.mjs +3 -0
- package/esm2020/lib/api/utils/medius-rest.util.mjs +70 -0
- package/esm2020/lib/api/utils/object-serializer.util.mjs +226 -0
- package/esm2020/lib/components/action/action.component.mjs +63 -0
- package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +148 -0
- package/esm2020/lib/components/action/index.mjs +4 -0
- package/esm2020/lib/components/action/route/action-route.component.mjs +144 -0
- package/esm2020/lib/components/form/editor/form-editor.component.mjs +140 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +58 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +51 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +16 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +26 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +94 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +124 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +17 -0
- package/esm2020/lib/components/form/formly/fields/index.mjs +8 -0
- package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +17 -0
- package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +16 -0
- package/esm2020/lib/components/form/formly/wrappers/index.mjs +3 -0
- package/esm2020/lib/components/form/index.mjs +2 -0
- package/esm2020/lib/components/layout/app.breadcrumb.component.mjs +27 -0
- package/esm2020/lib/components/layout/app.footer.component.mjs +35 -0
- package/esm2020/lib/components/layout/app.main.component.mjs +25 -0
- package/esm2020/lib/components/layout/app.main.component.service.mjs +133 -0
- package/esm2020/lib/components/layout/app.menu.component.mjs +38 -0
- package/esm2020/lib/components/layout/app.menuitem.component.mjs +243 -0
- package/esm2020/lib/components/layout/app.topbar.component.mjs +135 -0
- package/esm2020/lib/components/layout/index.mjs +7 -0
- package/esm2020/lib/components/tableview/index.mjs +4 -0
- package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +31 -0
- package/esm2020/lib/components/tableview/table/table.component.mjs +173 -0
- package/esm2020/lib/components/tableview/tableview.component.mjs +82 -0
- package/esm2020/lib/components/tableview/tableview.component.service.mjs +18 -0
- package/esm2020/lib/config/formly.config.mjs +165 -0
- package/esm2020/lib/config/index.mjs +2 -0
- package/esm2020/lib/directives/index.mjs +2 -0
- package/esm2020/lib/directives/template.directive.mjs +25 -0
- package/esm2020/lib/mng-commons.module.mjs +338 -0
- package/esm2020/lib/models/action/action.model.mjs +58 -0
- package/esm2020/lib/models/action/index.mjs +2 -0
- package/esm2020/lib/models/config/index.mjs +2 -0
- package/esm2020/lib/models/config/mng-config.model.mjs +3 -0
- package/esm2020/lib/models/descriptors/action-descriptor.model.mjs +283 -0
- package/esm2020/lib/models/descriptors/editor-descriptor.model.mjs +647 -0
- package/esm2020/lib/models/descriptors/index.mjs +6 -0
- package/esm2020/lib/models/descriptors/model-descriptor.model.mjs +34 -0
- package/esm2020/lib/models/descriptors/table-descriptor.model.mjs +123 -0
- package/esm2020/lib/models/descriptors/tableview-descriptor.model.mjs +124 -0
- package/esm2020/lib/models/events/editor-event.model.mjs +14 -0
- package/esm2020/lib/models/events/index.mjs +3 -0
- package/esm2020/lib/models/events/table-event.model.mjs +16 -0
- package/esm2020/lib/models/interfaces/confirmation-service.model.mjs +2 -0
- package/esm2020/lib/models/interfaces/index.mjs +2 -0
- package/esm2020/lib/models/providers/data-provider.model.mjs +86 -0
- package/esm2020/lib/models/providers/index.mjs +2 -0
- package/esm2020/lib/models/types/index.mjs +3 -0
- package/esm2020/lib/models/types/type.decorator.mjs +8 -0
- package/esm2020/lib/models/types/type.model.mjs +2 -0
- package/esm2020/lib/models/validators/field.validator.mjs +21 -0
- package/esm2020/lib/models/validators/index.mjs +2 -0
- package/esm2020/lib/pipes/index.mjs +2 -0
- package/esm2020/lib/pipes/property-path.pipe.mjs +36 -0
- package/esm2020/lib/services/action.service.mjs +239 -0
- package/esm2020/lib/services/breadcrumb.service.mjs +21 -0
- package/esm2020/lib/services/configuration.service.mjs +77 -0
- package/esm2020/lib/services/index.mjs +7 -0
- package/esm2020/lib/services/menu.service.mjs +26 -0
- package/esm2020/lib/services/navigation.service.mjs +49 -0
- package/esm2020/lib/services/providers/config-service.provider.mjs +12 -0
- package/esm2020/lib/services/providers/formly-config.provider.mjs +31 -0
- package/esm2020/lib/services/providers/index.mjs +3 -0
- package/esm2020/lib/services/settings.service.mjs +40 -0
- package/esm2020/lib/utils/editor-formly.util.mjs +165 -0
- package/esm2020/lib/utils/i18n.util.mjs +75 -0
- package/esm2020/lib/utils/index.mjs +5 -0
- package/esm2020/lib/utils/model.util.mjs +38 -0
- package/esm2020/lib/utils/type.util.mjs +43 -0
- package/esm2020/mediusinc-mng-commons.mjs +5 -0
- package/esm2020/public-api.mjs +33 -0
- package/fesm2015/mediusinc-mng-commons.mjs +5056 -0
- package/fesm2015/mediusinc-mng-commons.mjs.map +1 -0
- package/fesm2020/mediusinc-mng-commons.mjs +5012 -0
- package/fesm2020/mediusinc-mng-commons.mjs.map +1 -0
- package/lib/api/models/builders/query-param.builder.d.ts +11 -0
- package/lib/api/models/filter-match-type.model.d.ts +21 -0
- package/lib/api/models/filter-param.model.d.ts +23 -0
- package/lib/api/models/index.d.ts +8 -0
- package/lib/api/models/mappers.d.ts +6 -0
- package/lib/api/models/query-mode.model.d.ts +16 -0
- package/lib/api/models/query-param.model.d.ts +31 -0
- package/lib/api/models/query-result.model.d.ts +36 -0
- package/lib/api/models/serialization.model.d.ts +8 -0
- package/lib/api/services/abstract-crud-api.service.d.ts +23 -0
- package/lib/api/services/index.d.ts +1 -0
- package/lib/api/utils/index.d.ts +2 -0
- package/lib/api/utils/medius-rest.util.d.ts +6 -0
- package/lib/api/utils/object-serializer.util.d.ts +30 -0
- package/lib/components/action/action.component.d.ts +36 -0
- package/lib/components/action/dialog/action-dialog.component.d.ts +48 -0
- package/lib/components/action/index.d.ts +3 -0
- package/lib/components/action/route/action-route.component.d.ts +32 -0
- package/lib/components/form/editor/form-editor.component.d.ts +37 -0
- package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +21 -0
- package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +19 -0
- package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +6 -0
- package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +12 -0
- package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +17 -0
- package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +36 -0
- package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +6 -0
- package/lib/components/form/formly/fields/index.d.ts +7 -0
- package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +8 -0
- package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +8 -0
- package/lib/components/form/formly/wrappers/index.d.ts +2 -0
- package/lib/components/form/index.d.ts +1 -0
- package/lib/components/layout/app.breadcrumb.component.d.ts +16 -0
- package/lib/components/layout/app.footer.component.d.ts +8 -0
- package/lib/components/layout/app.main.component.d.ts +12 -0
- package/lib/components/layout/app.main.component.service.d.ts +40 -0
- package/lib/components/layout/app.menu.component.d.ts +14 -0
- package/lib/components/layout/app.menuitem.component.d.ts +31 -0
- package/lib/components/layout/app.topbar.component.d.ts +16 -0
- package/lib/components/layout/index.d.ts +6 -0
- package/lib/components/tableview/index.d.ts +3 -0
- package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +15 -0
- package/lib/components/tableview/table/table.component.d.ts +47 -0
- package/lib/components/tableview/tableview.component.d.ts +36 -0
- package/lib/components/tableview/tableview.component.service.d.ts +11 -0
- package/lib/config/formly.config.d.ts +8 -0
- package/lib/config/index.d.ts +1 -0
- package/lib/directives/index.d.ts +1 -0
- package/lib/directives/template.directive.d.ts +11 -0
- package/lib/mng-commons.module.d.ts +74 -0
- package/lib/models/action/action.model.d.ts +53 -0
- package/lib/models/action/index.d.ts +1 -0
- package/lib/models/config/index.d.ts +1 -0
- package/lib/models/config/mng-config.model.d.ts +19 -0
- package/lib/models/descriptors/action-descriptor.model.d.ts +124 -0
- package/lib/models/descriptors/editor-descriptor.model.d.ts +248 -0
- package/lib/models/descriptors/index.d.ts +5 -0
- package/lib/models/descriptors/model-descriptor.model.d.ts +15 -0
- package/lib/models/descriptors/table-descriptor.model.d.ts +45 -0
- package/lib/models/descriptors/tableview-descriptor.model.d.ts +38 -0
- package/lib/models/events/editor-event.model.d.ts +11 -0
- package/lib/models/events/index.d.ts +2 -0
- package/lib/models/events/table-event.model.d.ts +17 -0
- package/lib/models/interfaces/confirmation-service.model.d.ts +6 -0
- package/lib/models/interfaces/index.d.ts +1 -0
- package/lib/models/providers/data-provider.model.d.ts +62 -0
- package/lib/models/providers/index.d.ts +1 -0
- package/lib/models/types/index.d.ts +2 -0
- package/lib/models/types/type.decorator.d.ts +2 -0
- package/lib/models/types/type.model.d.ts +10 -0
- package/lib/models/validators/field.validator.d.ts +18 -0
- package/lib/models/validators/index.d.ts +1 -0
- package/lib/pipes/index.d.ts +1 -0
- package/lib/pipes/property-path.pipe.d.ts +7 -0
- package/lib/services/action.service.d.ts +92 -0
- package/lib/services/breadcrumb.service.d.ts +9 -0
- package/lib/services/configuration.service.d.ts +35 -0
- package/lib/services/index.d.ts +6 -0
- package/lib/services/menu.service.d.ts +11 -0
- package/lib/services/navigation.service.d.ts +14 -0
- package/lib/services/providers/config-service.provider.d.ts +5 -0
- package/lib/services/providers/formly-config.provider.d.ts +4 -0
- package/lib/services/providers/index.d.ts +2 -0
- package/lib/services/settings.service.d.ts +18 -0
- package/lib/utils/editor-formly.util.d.ts +9 -0
- package/lib/utils/i18n.util.d.ts +14 -0
- package/lib/utils/index.d.ts +4 -0
- package/lib/utils/model.util.d.ts +5 -0
- package/lib/utils/type.util.d.ts +15 -0
- package/mediusinc-mng-commons-0.0.1-rc.2.tgz +0 -0
- package/mediusinc-mng-commons.d.ts +5 -0
- package/package.json +38 -0
- package/public-api.d.ts +22 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { FormlyFieldWrapperComponent, FormlyTableWrapperComponent } from '../components/form/formly/wrappers';
|
|
2
|
+
import { FormlyFieldAutocompleteComponent, FormlyFieldDropdownComponent, FormlyFieldFieldsetComponent, FormlyFieldInputComponent, FormlyFieldTableDialogFormComponent, FormlyFieldTableDialogMultiselectComponent, FormlyFieldTabsComponent } from '../components/form/formly/fields';
|
|
3
|
+
export const formlyWrappersConfig = [
|
|
4
|
+
{ name: 'field', component: FormlyFieldWrapperComponent },
|
|
5
|
+
{ name: 'field-table', component: FormlyTableWrapperComponent }
|
|
6
|
+
];
|
|
7
|
+
export const formlyTypesConfig = [
|
|
8
|
+
{
|
|
9
|
+
name: 'input',
|
|
10
|
+
component: FormlyFieldInputComponent,
|
|
11
|
+
wrappers: ['field'],
|
|
12
|
+
},
|
|
13
|
+
{ name: 'string', extends: 'input' },
|
|
14
|
+
{
|
|
15
|
+
name: 'number',
|
|
16
|
+
extends: 'input',
|
|
17
|
+
defaultOptions: {
|
|
18
|
+
templateOptions: {
|
|
19
|
+
type: 'number',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'integer',
|
|
25
|
+
extends: 'input',
|
|
26
|
+
defaultOptions: {
|
|
27
|
+
templateOptions: {
|
|
28
|
+
type: 'number',
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'textarea',
|
|
34
|
+
extends: 'input',
|
|
35
|
+
defaultOptions: {
|
|
36
|
+
templateOptions: {
|
|
37
|
+
type: 'textarea',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'switch',
|
|
43
|
+
component: FormlyFieldInputComponent,
|
|
44
|
+
defaultOptions: {
|
|
45
|
+
templateOptions: {
|
|
46
|
+
type: 'switch',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'radio',
|
|
52
|
+
extends: 'input',
|
|
53
|
+
defaultOptions: {
|
|
54
|
+
templateOptions: {
|
|
55
|
+
type: 'radio',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'datepicker',
|
|
61
|
+
extends: 'input',
|
|
62
|
+
defaultOptions: {
|
|
63
|
+
templateOptions: {
|
|
64
|
+
type: 'datepicker',
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'dropdown',
|
|
70
|
+
component: FormlyFieldDropdownComponent,
|
|
71
|
+
wrappers: ['field'],
|
|
72
|
+
},
|
|
73
|
+
{ name: 'enum', extends: 'dropdown' },
|
|
74
|
+
{
|
|
75
|
+
name: 'autocomplete',
|
|
76
|
+
component: FormlyFieldAutocompleteComponent,
|
|
77
|
+
wrappers: ['field']
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: 'table-dialog-multiselect',
|
|
81
|
+
component: FormlyFieldTableDialogMultiselectComponent,
|
|
82
|
+
wrappers: ['field-table']
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'table-dialog-form',
|
|
86
|
+
component: FormlyFieldTableDialogFormComponent,
|
|
87
|
+
wrappers: ['field-table']
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: 'tabs',
|
|
91
|
+
component: FormlyFieldTabsComponent,
|
|
92
|
+
wrappers: []
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: 'fieldset',
|
|
96
|
+
component: FormlyFieldFieldsetComponent,
|
|
97
|
+
wrappers: []
|
|
98
|
+
}
|
|
99
|
+
];
|
|
100
|
+
// function getRequiredValidationMessage(translate: TranslateService): (error: any, field: FormlyFieldConfig) => Observable<string> {
|
|
101
|
+
// return (error: any, field: FormlyFieldConfig) =>
|
|
102
|
+
// translate.get(field.templateOptions.label).pipe(mergeMap(value =>
|
|
103
|
+
// translate.get('formValidation.required', {field: value})
|
|
104
|
+
// ));
|
|
105
|
+
// }
|
|
106
|
+
function getRequiredValidationMessage(translate) {
|
|
107
|
+
return (error, field) => {
|
|
108
|
+
const fieldName = translate.instant(field.templateOptions?.label ?? '');
|
|
109
|
+
return translate.instant('mngEditor.validation.required', { fieldName: fieldName });
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// function getMinValueValidatonMessage(translate: TranslateService): (error: any, field: FormlyFieldConfig) => Observable<string> | undefined {
|
|
113
|
+
// return (error: any, field: FormlyFieldConfig) => {
|
|
114
|
+
// if (field.templateOptions.min !== undefined) {
|
|
115
|
+
// if (field.formControl.value < field.templateOptions.min) {
|
|
116
|
+
// return translate.get(field.templateOptions.label).pipe(mergeMap(value =>
|
|
117
|
+
// translate.get('formValidation.minValue', {field: value, min: field.templateOptions.min})
|
|
118
|
+
// ));
|
|
119
|
+
// }
|
|
120
|
+
// }
|
|
121
|
+
//
|
|
122
|
+
// return undefined;
|
|
123
|
+
// };
|
|
124
|
+
// }
|
|
125
|
+
function getMinValidatonMessage(translate) {
|
|
126
|
+
return (error, field) => {
|
|
127
|
+
const fieldName = translate.instant(field.templateOptions?.label ?? '');
|
|
128
|
+
return translate.instant('mngEditor.validation.min', { fieldName: fieldName, min: fieldName.templateOptions?.min });
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
// function getMaxValueValidatonMessage(translate: TranslateService): (error: any, field: FormlyFieldConfig) => Observable<string> | undefined {
|
|
132
|
+
// return (error: any, field: FormlyFieldConfig) => {
|
|
133
|
+
// if (field.templateOptions?.max) {
|
|
134
|
+
// if (field.formControl.value > field.templateOptions?.max) {
|
|
135
|
+
// return translate.get(field.templateOptions?.label).pipe(mergeMap(value =>
|
|
136
|
+
// translate.get('formValidation.maxValue', {field: value, max: field.templateOptions?.max})
|
|
137
|
+
// ));
|
|
138
|
+
// }
|
|
139
|
+
// }
|
|
140
|
+
//
|
|
141
|
+
// return undefined;
|
|
142
|
+
// };
|
|
143
|
+
// }
|
|
144
|
+
function getMaxValidatonMessage(translate) {
|
|
145
|
+
return (error, field) => {
|
|
146
|
+
const fieldName = translate.instant(field.templateOptions?.label ?? '');
|
|
147
|
+
return translate.instant('mngEditor.validation.max', { fieldName: fieldName, min: fieldName.templateOptions?.max });
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
// TODO: remove
|
|
151
|
+
// function serviceCostAllOrNoneFieldsRequiredValidatorMessage(translate: TranslateService): (error: any, field: FormlyFieldConfig) => Observable<string> {
|
|
152
|
+
// return(error: any, field: FormlyFieldConfig) =>
|
|
153
|
+
// translate.get('ServiceChannelDto.name').pipe(mergeMap(value =>
|
|
154
|
+
// translate.get('formValidation.serviceForm.allOrNothing', {serviceCost: value})
|
|
155
|
+
// ));
|
|
156
|
+
// }
|
|
157
|
+
export const getFormlyValidationMessages = (translate) => {
|
|
158
|
+
return [
|
|
159
|
+
{ name: 'required', message: getRequiredValidationMessage(translate) },
|
|
160
|
+
{ name: 'min', message: getMinValidatonMessage(translate) },
|
|
161
|
+
{ name: 'max', message: getMaxValidatonMessage(translate) },
|
|
162
|
+
// { name: 'serviceCostAllOrNoneFieldsRequired', message: serviceCostAllOrNoneFieldsRequiredValidatorMessage(translate)}
|
|
163
|
+
];
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29uZmlnL2Zvcm1seS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLDJCQUEyQixFQUFFLDJCQUEyQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDNUcsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLHlCQUF5QixFQUN6QixtQ0FBbUMsRUFDbkMsMENBQTBDLEVBQzFDLHdCQUF3QixFQUMzQixNQUFNLGtDQUFrQyxDQUFDO0FBSTFDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2hDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsMkJBQTJCLEVBQUU7SUFDekQsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRTtDQUNsRSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQVU7SUFDcEM7UUFDSSxJQUFJLEVBQUUsT0FBTztRQUNiLFNBQVMsRUFBRSx5QkFBeUI7UUFDcEMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO0tBQ3RCO0lBQ0QsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUU7SUFDcEM7UUFDSSxJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLGNBQWMsRUFBRTtZQUNaLGVBQWUsRUFBRTtnQkFDYixJQUFJLEVBQUUsUUFBUTthQUNqQjtTQUNKO0tBQ0o7SUFDRDtRQUNJLElBQUksRUFBRSxTQUFTO1FBQ2YsT0FBTyxFQUFFLE9BQU87UUFDaEIsY0FBYyxFQUFFO1lBQ1osZUFBZSxFQUFFO2dCQUNiLElBQUksRUFBRSxRQUFRO2FBQ2pCO1NBQ0o7S0FDSjtJQUNEO1FBQ0ksSUFBSSxF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REFBeUQ7QUFDekQsNENBQTRDO0FBQzVDLDBFQUEwRTtBQUMxRSw0RkFBNEY7QUFDNUYsZ0hBQWdIO0FBQ2hILHNCQUFzQjtBQUN0QixnQkFBZ0I7QUFDaEIsWUFBWTtBQUNaLEVBQUU7QUFDRiw0QkFBNEI7QUFDNUIsU0FBUztBQUNULElBQUk7QUFDSixTQUFTLHNCQUFzQixDQUFDLFNBQTJCO0lBQ3ZELE9BQU8sQ0FBQyxLQUFVLEVBQUUsS0FBd0IsRUFBRSxFQUFFO1FBQzVDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEUsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLDBCQUEwQixFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3hILENBQUMsQ0FBQTtBQUNMLENBQUM7QUFFRCxlQUFlO0FBQ2YsMkpBQTJKO0FBQzNKLHNEQUFzRDtBQUN0RCx5RUFBeUU7QUFDekUsNkZBQTZGO0FBQzdGLGNBQWM7QUFDZCxJQUFJO0FBRUosTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxTQUEyQixFQUFTLEVBQUU7SUFDOUUsT0FBTztRQUNILEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLENBQUMsU0FBUyxDQUFDLEVBQUM7UUFDckUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsRUFBQztRQUMxRCxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxFQUFDO1FBQzFELHdIQUF3SDtLQUMzSCxDQUFDO0FBQ04sQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGb3JtbHlGaWVsZFdyYXBwZXJDb21wb25lbnQsIEZvcm1seVRhYmxlV3JhcHBlckNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9mb3JtL2Zvcm1seS93cmFwcGVycyc7XG5pbXBvcnQge1xuICAgIEZvcm1seUZpZWxkQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIEZvcm1seUZpZWxkRHJvcGRvd25Db21wb25lbnQsXG4gICAgRm9ybWx5RmllbGRGaWVsZHNldENvbXBvbmVudCxcbiAgICBGb3JtbHlGaWVsZElucHV0Q29tcG9uZW50LFxuICAgIEZvcm1seUZpZWxkVGFibGVEaWFsb2dGb3JtQ29tcG9uZW50LFxuICAgIEZvcm1seUZpZWxkVGFibGVEaWFsb2dNdWx0aXNlbGVjdENvbXBvbmVudCxcbiAgICBGb3JtbHlGaWVsZFRhYnNDb21wb25lbnRcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9mb3JtL2Zvcm1seS9maWVsZHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Rm9ybWx5RmllbGRDb25maWd9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5leHBvcnQgY29uc3QgZm9ybWx5V3JhcHBlcnNDb25maWcgPSBbXG4gICAgeyBuYW1lOiAnZmllbGQnLCBjb21wb25lbnQ6IEZvcm1seUZpZWxkV3JhcHBlckNvbXBvbmVudCB9LFxuICAgIHsgbmFtZTogJ2ZpZWxkLXRhYmxlJywgY29tcG9uZW50OiBGb3JtbHlUYWJsZVdyYXBwZXJDb21wb25lbnQgfVxuXTtcblxuZXhwb3J0IGNvbnN0IGZvcm1seVR5cGVzQ29uZmlnOiBhbnlbXSA9IFtcbiAgICB7XG4gICAgICAgIG5hbWU6ICdpbnB1dCcsXG4gICAgICAgIGNvbXBvbmVudDogRm9ybWx5RmllbGRJbnB1dENvbXBvbmVudCxcbiAgICAgICAgd3JhcHBlcnM6IFsnZmllbGQnXSxcbiAgICB9LFxuICAgIHsgbmFtZTogJ3N0cmluZycsIGV4dGVuZHM6ICdpbnB1dCcgfSxcbiAgICB7XG4gICAgICAgIG5hbWU6ICdudW1iZXInLFxuICAgICAgICBleHRlbmRzOiAnaW5wdXQnLFxuICAgICAgICBkZWZhdWx0T3B0aW9uczoge1xuICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiAnaW50ZWdlcicsXG4gICAgICAgIGV4dGVuZHM6ICdpbnB1dCcsXG4gICAgICAgIGRlZmF1bHRPcHRpb25zOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICAgIG5hbWU6ICd0ZXh0YXJlYScsXG4gICAgICAgIGV4dGVuZHM6ICdpbnB1dCcsXG4gICAgICAgIGRlZmF1bHRPcHRpb25zOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogJ3N3aXRjaCcsXG4gICAgICAgIGNvbXBvbmVudDogRm9ybWx5RmllbGRJbnB1dENvbXBvbmVudCxcbiAgICAgICAgZGVmYXVsdE9wdGlvbnM6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogJ3JhZGlvJyxcbiAgICAgICAgZXh0ZW5kczogJ2lucHV0JyxcbiAgICAgICAgZGVmYXVsdE9wdGlvbnM6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyYWRpbycsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiAnZGF0ZXBpY2tlcicsXG4gICAgICAgIGV4dGVuZHM6ICdpbnB1dCcsXG4gICAgICAgIGRlZmF1bHRPcHRpb25zOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnZGF0ZXBpY2tlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiAnZHJvcGRvd24nLFxuICAgICAgICBjb21wb25lbnQ6IEZvcm1seUZpZWxkRHJvcGRvd25Db21wb25lbnQsXG4gICAgICAgIHdyYXBwZXJzOiBbJ2ZpZWxkJ10sXG4gICAgfSxcbiAgICB7IG5hbWU6ICdlbnVtJywgZXh0ZW5kczogJ2Ryb3Bkb3duJyB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogJ2F1dG9jb21wbGV0ZScsXG4gICAgICAgIGNvbXBvbmVudDogRm9ybWx5RmllbGRBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgICAgIHdyYXBwZXJzOiBbJ2ZpZWxkJ11cbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogJ3RhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdCcsXG4gICAgICAgIGNvbXBvbmVudDogRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50LFxuICAgICAgICB3cmFwcGVyczogWydmaWVsZC10YWJsZSddXG4gICAgfSxcbiAgICB7XG4gICAgICAgIG5hbWU6ICd0YWJsZS1kaWFsb2ctZm9ybScsXG4gICAgICAgIGNvbXBvbmVudDogRm9ybWx5RmllbGRUYWJsZURpYWxvZ0Zvcm1Db21wb25lbnQsXG4gICAgICAgIHdyYXBwZXJzOiBbJ2ZpZWxkLXRhYmxlJ11cbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogJ3RhYnMnLFxuICAgICAgICBjb21wb25lbnQ6IEZvcm1seUZpZWxkVGFic0NvbXBvbmVudCxcbiAgICAgICAgd3JhcHBlcnM6IFtdXG4gICAgfSxcbiAgICB7XG4gICAgICAgIG5hbWU6ICdmaWVsZHNldCcsXG4gICAgICAgIGNvbXBvbmVudDogRm9ybWx5RmllbGRGaWVsZHNldENvbXBvbmVudCxcbiAgICAgICAgd3JhcHBlcnM6IFtdXG4gICAgfVxuXTtcblxuLy8gZnVuY3Rpb24gZ2V0UmVxdWlyZWRWYWxpZGF0aW9uTWVzc2FnZSh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpOiAoZXJyb3I6IGFueSwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuLy8gICAgIHJldHVybiAoZXJyb3I6IGFueSwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PlxuLy8gICAgICAgICB0cmFuc2xhdGUuZ2V0KGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5sYWJlbCkucGlwZShtZXJnZU1hcCh2YWx1ZSA9PlxuLy8gICAgICAgICAgICAgdHJhbnNsYXRlLmdldCgnZm9ybVZhbGlkYXRpb24ucmVxdWlyZWQnLCB7ZmllbGQ6IHZhbHVlfSlcbi8vICAgICAgICAgKSk7XG4vLyB9XG5mdW5jdGlvbiBnZXRSZXF1aXJlZFZhbGlkYXRpb25NZXNzYWdlKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IChlcnJvcjogYW55LCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHN0cmluZyB7XG4gICAgcmV0dXJuIChlcnJvcjogYW55LCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gdHJhbnNsYXRlLmluc3RhbnQoZmllbGQudGVtcGxhdGVPcHRpb25zPy5sYWJlbCA/PyAnJyk7XG4gICAgICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnbW5nRWRpdG9yLnZhbGlkYXRpb24ucmVxdWlyZWQnLCB7IGZpZWxkTmFtZTogZmllbGROYW1lIH0pO1xuICAgIH1cbn1cblxuLy8gZnVuY3Rpb24gZ2V0TWluVmFsdWVWYWxpZGF0b25NZXNzYWdlKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IChlcnJvcjogYW55LCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IE9ic2VydmFibGU8c3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4vLyAgICAgcmV0dXJuIChlcnJvcjogYW55LCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbi8vICAgICAgICAgaWYgKGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5taW4gIT09IHVuZGVmaW5lZCkge1xuLy8gICAgICAgICAgICAgaWYgKGZpZWxkLmZvcm1Db250cm9sLnZhbHVlIDwgZmllbGQudGVtcGxhdGVPcHRpb25zLm1pbikge1xuLy8gICAgICAgICAgICAgICAgIHJldHVybiB0cmFuc2xhdGUuZ2V0KGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5sYWJlbCkucGlwZShtZXJnZU1hcCh2YWx1ZSA9PlxuLy8gICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGUuZ2V0KCdmb3JtVmFsaWRhdGlvbi5taW5WYWx1ZScsIHtmaWVsZDogdmFsdWUsIG1pbjogZmllbGQudGVtcGxhdGVPcHRpb25zLm1pbn0pXG4vLyAgICAgICAgICAgICAgICAgKSk7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cbi8vXG4vLyAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4vLyAgICAgfTtcbi8vIH1cbmZ1bmN0aW9uIGdldE1pblZhbGlkYXRvbk1lc3NhZ2UodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKTogKGVycm9yOiBhbnksIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4gc3RyaW5nIHtcbiAgICByZXR1cm4gKGVycm9yOiBhbnksIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSB0cmFuc2xhdGUuaW5zdGFudChmaWVsZC50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsID8/ICcnKTtcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdtbmdFZGl0b3IudmFsaWRhdGlvbi5taW4nLCB7IGZpZWxkTmFtZTogZmllbGROYW1lLCBtaW46IGZpZWxkTmFtZS50ZW1wbGF0ZU9wdGlvbnM/Lm1pbiB9KTtcbiAgICB9XG59XG5cbi8vIGZ1bmN0aW9uIGdldE1heFZhbHVlVmFsaWRhdG9uTWVzc2FnZSh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpOiAoZXJyb3I6IGFueSwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBPYnNlcnZhYmxlPHN0cmluZz4gfCB1bmRlZmluZWQge1xuLy8gICAgIHJldHVybiAoZXJyb3I6IGFueSwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4vLyAgICAgICAgIGlmIChmaWVsZC50ZW1wbGF0ZU9wdGlvbnM/Lm1heCkge1xuLy8gICAgICAgICAgICAgaWYgKGZpZWxkLmZvcm1Db250cm9sLnZhbHVlID4gZmllbGQudGVtcGxhdGVPcHRpb25zPy5tYXgpIHtcbi8vICAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNsYXRlLmdldChmaWVsZC50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsKS5waXBlKG1lcmdlTWFwKHZhbHVlID0+XG4vLyAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZS5nZXQoJ2Zvcm1WYWxpZGF0aW9uLm1heFZhbHVlJywge2ZpZWxkOiB2YWx1ZSwgbWF4OiBmaWVsZC50ZW1wbGF0ZU9wdGlvbnM/Lm1heH0pXG4vLyAgICAgICAgICAgICAgICAgKSk7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cbi8vXG4vLyAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4vLyAgICAgfTtcbi8vIH1cbmZ1bmN0aW9uIGdldE1heFZhbGlkYXRvbk1lc3NhZ2UodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKTogKGVycm9yOiBhbnksIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4gc3RyaW5nIHtcbiAgICByZXR1cm4gKGVycm9yOiBhbnksIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSB0cmFuc2xhdGUuaW5zdGFudChmaWVsZC50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsID8/ICcnKTtcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdtbmdFZGl0b3IudmFsaWRhdGlvbi5tYXgnLCB7IGZpZWxkTmFtZTogZmllbGROYW1lLCBtaW46IGZpZWxkTmFtZS50ZW1wbGF0ZU9wdGlvbnM/Lm1heCB9KTtcbiAgICB9XG59XG5cbi8vIFRPRE86IHJlbW92ZVxuLy8gZnVuY3Rpb24gc2VydmljZUNvc3RBbGxPck5vbmVGaWVsZHNSZXF1aXJlZFZhbGlkYXRvck1lc3NhZ2UodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKTogKGVycm9yOiBhbnksIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4gT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbi8vICAgICByZXR1cm4oZXJyb3I6IGFueSwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PlxuLy8gICAgICAgICB0cmFuc2xhdGUuZ2V0KCdTZXJ2aWNlQ2hhbm5lbER0by5uYW1lJykucGlwZShtZXJnZU1hcCh2YWx1ZSA9PlxuLy8gICAgICAgICAgICAgdHJhbnNsYXRlLmdldCgnZm9ybVZhbGlkYXRpb24uc2VydmljZUZvcm0uYWxsT3JOb3RoaW5nJywge3NlcnZpY2VDb3N0OiB2YWx1ZX0pXG4vLyAgICAgICAgICkpO1xuLy8gfVxuXG5leHBvcnQgY29uc3QgZ2V0Rm9ybWx5VmFsaWRhdGlvbk1lc3NhZ2VzID0gKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IGFueVtdID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAgICB7IG5hbWU6ICdyZXF1aXJlZCcsIG1lc3NhZ2U6IGdldFJlcXVpcmVkVmFsaWRhdGlvbk1lc3NhZ2UodHJhbnNsYXRlKX0sXG4gICAgICAgIHsgbmFtZTogJ21pbicsIG1lc3NhZ2U6IGdldE1pblZhbGlkYXRvbk1lc3NhZ2UodHJhbnNsYXRlKX0sXG4gICAgICAgIHsgbmFtZTogJ21heCcsIG1lc3NhZ2U6IGdldE1heFZhbGlkYXRvbk1lc3NhZ2UodHJhbnNsYXRlKX0sXG4gICAgICAgIC8vIHsgbmFtZTogJ3NlcnZpY2VDb3N0QWxsT3JOb25lRmllbGRzUmVxdWlyZWQnLCBtZXNzYWdlOiBzZXJ2aWNlQ29zdEFsbE9yTm9uZUZpZWxkc1JlcXVpcmVkVmFsaWRhdG9yTWVzc2FnZSh0cmFuc2xhdGUpfVxuICAgIF07XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './formly.config';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL2NvbmZpZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb3JtbHkuY29uZmlnJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './template.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGVtcGxhdGUuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TemplateDirective {
|
|
4
|
+
constructor(template) {
|
|
5
|
+
this.template = template;
|
|
6
|
+
}
|
|
7
|
+
getType() {
|
|
8
|
+
return this.name;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
TemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
12
|
+
TemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: TemplateDirective, selector: "[mngTemplate]", inputs: { type: "type", name: ["mngTemplate", "name"] }, ngImport: i0 });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TemplateDirective, decorators: [{
|
|
14
|
+
type: Directive,
|
|
15
|
+
args: [{
|
|
16
|
+
selector: '[mngTemplate]',
|
|
17
|
+
host: {}
|
|
18
|
+
}]
|
|
19
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { type: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], name: [{
|
|
22
|
+
type: Input,
|
|
23
|
+
args: ['mngTemplate']
|
|
24
|
+
}] } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi9kaXJlY3RpdmVzL3RlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBYyxNQUFNLGVBQWUsQ0FBQzs7QUFNNUQsTUFBTSxPQUFPLGlCQUFpQjtJQUsxQixZQUFtQixRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUFHLENBQUM7SUFFakQsT0FBTztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDOzs4R0FUUSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO29CQUN6QixJQUFJLEVBQUUsRUFBRTtpQkFDWDtrR0FHWSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ2dCLElBQUk7c0JBQXpCLEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1ttbmdUZW1wbGF0ZV0nLFxuICAgIGhvc3Q6IHt9XG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRGlyZWN0aXZlIHtcblxuICAgIEBJbnB1dCgpIHR5cGUhOiBzdHJpbmc7XG4gICAgQElucHV0KCdtbmdUZW1wbGF0ZScpIG5hbWUhOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG5cbiAgICBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hbWU7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { RouterModule } from '@angular/router';
|
|
5
|
+
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
|
6
|
+
import { FORMLY_CONFIG, FormlyModule } from '@ngx-formly/core';
|
|
7
|
+
import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
8
|
+
// primeng modules
|
|
9
|
+
import { ConfirmationService, MessageService } from 'primeng/api';
|
|
10
|
+
import { AutoCompleteModule } from 'primeng/autocomplete';
|
|
11
|
+
import { BreadcrumbModule } from 'primeng/breadcrumb';
|
|
12
|
+
import { ButtonModule } from 'primeng/button';
|
|
13
|
+
import { CardModule } from 'primeng/card';
|
|
14
|
+
import { CheckboxModule } from 'primeng/checkbox';
|
|
15
|
+
import { ChipModule } from 'primeng/chip';
|
|
16
|
+
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
17
|
+
import { ConfirmPopupModule } from 'primeng/confirmpopup';
|
|
18
|
+
import { DialogModule } from 'primeng/dialog';
|
|
19
|
+
import { DialogService, DynamicDialogModule } from 'primeng/dynamicdialog';
|
|
20
|
+
import { DropdownModule } from 'primeng/dropdown';
|
|
21
|
+
import { InputNumberModule } from 'primeng/inputnumber';
|
|
22
|
+
import { InputMaskModule } from 'primeng/inputmask';
|
|
23
|
+
import { InputSwitchModule } from 'primeng/inputswitch';
|
|
24
|
+
import { InputTextModule } from 'primeng/inputtext';
|
|
25
|
+
import { InputTextareaModule } from 'primeng/inputtextarea';
|
|
26
|
+
import { PaginatorModule } from 'primeng/paginator';
|
|
27
|
+
import { RadioButtonModule } from 'primeng/radiobutton';
|
|
28
|
+
import { RippleModule } from 'primeng/ripple';
|
|
29
|
+
import { SelectButtonModule } from 'primeng/selectbutton';
|
|
30
|
+
import { TableModule } from 'primeng/table';
|
|
31
|
+
import { TagModule } from 'primeng/tag';
|
|
32
|
+
import { ToastModule } from 'primeng/toast';
|
|
33
|
+
import { ToggleButtonModule } from 'primeng/togglebutton';
|
|
34
|
+
import { ToolbarModule } from 'primeng/toolbar';
|
|
35
|
+
import { TooltipModule } from 'primeng/tooltip';
|
|
36
|
+
import { MessagesModule } from 'primeng/messages';
|
|
37
|
+
import { ProgressSpinnerModule } from 'primeng/progressspinner';
|
|
38
|
+
import { TabViewModule } from 'primeng/tabview';
|
|
39
|
+
import { FieldsetModule } from 'primeng/fieldset';
|
|
40
|
+
import { CalendarModule } from 'primeng/calendar';
|
|
41
|
+
// directives
|
|
42
|
+
import { TemplateDirective } from './directives/template.directive';
|
|
43
|
+
// pipes
|
|
44
|
+
import { PropertyPathPipe } from './pipes/property-path.pipe';
|
|
45
|
+
// layout components
|
|
46
|
+
import { AppBreadcrumbComponent, AppFooterComponent, AppMainComponent, AppMenuComponent, AppMenuitemComponent, AppTopbarComponent } from './components/layout';
|
|
47
|
+
// formly components
|
|
48
|
+
import { FormlyFieldWrapperComponent, FormlyTableWrapperComponent } from './components/form/formly/wrappers';
|
|
49
|
+
import { FormlyFieldAutocompleteComponent, FormlyFieldDropdownComponent, FormlyFieldFieldsetComponent, FormlyFieldInputComponent, FormlyFieldTableDialogFormComponent, FormlyFieldTableDialogMultiselectComponent, FormlyFieldTabsComponent } from './components/form/formly/fields';
|
|
50
|
+
// table components
|
|
51
|
+
import { TableComponent, TableviewComponent } from './components/tableview';
|
|
52
|
+
// editor components
|
|
53
|
+
import { FormEditorComponent } from './components/form';
|
|
54
|
+
import { ActionComponent, ActionDialogComponent, ActionRouteComponent } from './components/action';
|
|
55
|
+
// services
|
|
56
|
+
import { ObjectSerializer } from './api/utils';
|
|
57
|
+
import { ActionService, AppBreadcrumbService, AppSettingsService, ConfigurationService, MenuService, NavigationService } from './services';
|
|
58
|
+
import { configJsonAppInitializerProvider, configurationServiceProvider, formlyConfigProvider } from './services/providers';
|
|
59
|
+
// component services
|
|
60
|
+
import { TableviewComponentService } from './components/tableview/tableview.component.service';
|
|
61
|
+
import { AppMainComponentService } from './components/layout/app.main.component.service';
|
|
62
|
+
// module config
|
|
63
|
+
import { MNG_MODULE_CONFIG_IT } from './models/config';
|
|
64
|
+
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
65
|
+
import * as i0 from "@angular/core";
|
|
66
|
+
import * as i1 from "@ngx-translate/core";
|
|
67
|
+
import * as i2 from "@ngx-formly/core";
|
|
68
|
+
// primeng modules
|
|
69
|
+
export const primeNgModules = [
|
|
70
|
+
AutoCompleteModule,
|
|
71
|
+
BreadcrumbModule,
|
|
72
|
+
ButtonModule,
|
|
73
|
+
CalendarModule,
|
|
74
|
+
CardModule,
|
|
75
|
+
CheckboxModule,
|
|
76
|
+
ChipModule,
|
|
77
|
+
ConfirmDialogModule,
|
|
78
|
+
ConfirmPopupModule,
|
|
79
|
+
DialogModule,
|
|
80
|
+
DynamicDialogModule,
|
|
81
|
+
DropdownModule,
|
|
82
|
+
InputNumberModule,
|
|
83
|
+
InputMaskModule,
|
|
84
|
+
InputSwitchModule,
|
|
85
|
+
InputTextModule,
|
|
86
|
+
InputTextareaModule,
|
|
87
|
+
PaginatorModule,
|
|
88
|
+
RadioButtonModule,
|
|
89
|
+
RippleModule,
|
|
90
|
+
SelectButtonModule,
|
|
91
|
+
TableModule,
|
|
92
|
+
TagModule,
|
|
93
|
+
ToastModule,
|
|
94
|
+
ToggleButtonModule,
|
|
95
|
+
ToolbarModule,
|
|
96
|
+
TooltipModule,
|
|
97
|
+
MessagesModule,
|
|
98
|
+
ProgressSpinnerModule,
|
|
99
|
+
TabViewModule,
|
|
100
|
+
FieldsetModule
|
|
101
|
+
];
|
|
102
|
+
const declarations = [
|
|
103
|
+
// directives
|
|
104
|
+
TemplateDirective,
|
|
105
|
+
// pipes
|
|
106
|
+
PropertyPathPipe,
|
|
107
|
+
// layout components
|
|
108
|
+
AppBreadcrumbComponent,
|
|
109
|
+
AppFooterComponent,
|
|
110
|
+
AppMainComponent,
|
|
111
|
+
AppMenuComponent,
|
|
112
|
+
AppMenuitemComponent,
|
|
113
|
+
AppTopbarComponent,
|
|
114
|
+
// formly wrappers
|
|
115
|
+
FormlyFieldWrapperComponent,
|
|
116
|
+
FormlyTableWrapperComponent,
|
|
117
|
+
// formly fields
|
|
118
|
+
FormlyFieldInputComponent,
|
|
119
|
+
FormlyFieldDropdownComponent,
|
|
120
|
+
FormlyFieldAutocompleteComponent,
|
|
121
|
+
FormlyFieldTableDialogMultiselectComponent,
|
|
122
|
+
FormlyFieldTableDialogFormComponent,
|
|
123
|
+
FormlyFieldTabsComponent,
|
|
124
|
+
FormlyFieldFieldsetComponent,
|
|
125
|
+
// table components
|
|
126
|
+
TableComponent,
|
|
127
|
+
TableviewComponent,
|
|
128
|
+
// editor components
|
|
129
|
+
FormEditorComponent,
|
|
130
|
+
ActionComponent,
|
|
131
|
+
ActionDialogComponent,
|
|
132
|
+
ActionRouteComponent
|
|
133
|
+
];
|
|
134
|
+
export function HttpLoaderFactory(http) {
|
|
135
|
+
return new TranslateHttpLoader(http);
|
|
136
|
+
}
|
|
137
|
+
export class MngCommonsModule {
|
|
138
|
+
static forRoot(config) {
|
|
139
|
+
return {
|
|
140
|
+
ngModule: MngCommonsModule,
|
|
141
|
+
providers: [
|
|
142
|
+
// primeng services
|
|
143
|
+
DialogService,
|
|
144
|
+
MessageService,
|
|
145
|
+
ConfirmationService,
|
|
146
|
+
ActionService,
|
|
147
|
+
NavigationService,
|
|
148
|
+
AppSettingsService,
|
|
149
|
+
AppBreadcrumbService,
|
|
150
|
+
MenuService,
|
|
151
|
+
// component service
|
|
152
|
+
AppMainComponentService,
|
|
153
|
+
TableviewComponentService,
|
|
154
|
+
{
|
|
155
|
+
provide: MNG_MODULE_CONFIG_IT,
|
|
156
|
+
useValue: config
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
provide: ObjectSerializer,
|
|
160
|
+
useFactory: () => ObjectSerializer.get()
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
provide: ConfigurationService,
|
|
164
|
+
useFactory: configurationServiceProvider,
|
|
165
|
+
deps: [HttpClient, MNG_MODULE_CONFIG_IT]
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
provide: APP_INITIALIZER,
|
|
169
|
+
useFactory: configJsonAppInitializerProvider,
|
|
170
|
+
deps: [ConfigurationService, MNG_MODULE_CONFIG_IT],
|
|
171
|
+
multi: true
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
provide: FORMLY_CONFIG,
|
|
175
|
+
multi: true,
|
|
176
|
+
useFactory: formlyConfigProvider,
|
|
177
|
+
deps: [TranslateService, MNG_MODULE_CONFIG_IT]
|
|
178
|
+
}
|
|
179
|
+
]
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
MngCommonsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngCommonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
184
|
+
MngCommonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngCommonsModule, declarations: [
|
|
185
|
+
// directives
|
|
186
|
+
TemplateDirective,
|
|
187
|
+
// pipes
|
|
188
|
+
PropertyPathPipe,
|
|
189
|
+
// layout components
|
|
190
|
+
AppBreadcrumbComponent,
|
|
191
|
+
AppFooterComponent,
|
|
192
|
+
AppMainComponent,
|
|
193
|
+
AppMenuComponent,
|
|
194
|
+
AppMenuitemComponent,
|
|
195
|
+
AppTopbarComponent,
|
|
196
|
+
// formly wrappers
|
|
197
|
+
FormlyFieldWrapperComponent,
|
|
198
|
+
FormlyTableWrapperComponent,
|
|
199
|
+
// formly fields
|
|
200
|
+
FormlyFieldInputComponent,
|
|
201
|
+
FormlyFieldDropdownComponent,
|
|
202
|
+
FormlyFieldAutocompleteComponent,
|
|
203
|
+
FormlyFieldTableDialogMultiselectComponent,
|
|
204
|
+
FormlyFieldTableDialogFormComponent,
|
|
205
|
+
FormlyFieldTabsComponent,
|
|
206
|
+
FormlyFieldFieldsetComponent,
|
|
207
|
+
// table components
|
|
208
|
+
TableComponent,
|
|
209
|
+
TableviewComponent,
|
|
210
|
+
// editor components
|
|
211
|
+
FormEditorComponent,
|
|
212
|
+
ActionComponent,
|
|
213
|
+
ActionDialogComponent,
|
|
214
|
+
ActionRouteComponent], imports: [
|
|
215
|
+
// angular modules
|
|
216
|
+
CommonModule,
|
|
217
|
+
RouterModule,
|
|
218
|
+
HttpClientModule,
|
|
219
|
+
ReactiveFormsModule, i1.TranslateModule, i2.FormlyModule, AutoCompleteModule,
|
|
220
|
+
BreadcrumbModule,
|
|
221
|
+
ButtonModule,
|
|
222
|
+
CalendarModule,
|
|
223
|
+
CardModule,
|
|
224
|
+
CheckboxModule,
|
|
225
|
+
ChipModule,
|
|
226
|
+
ConfirmDialogModule,
|
|
227
|
+
ConfirmPopupModule,
|
|
228
|
+
DialogModule,
|
|
229
|
+
DynamicDialogModule,
|
|
230
|
+
DropdownModule,
|
|
231
|
+
InputNumberModule,
|
|
232
|
+
InputMaskModule,
|
|
233
|
+
InputSwitchModule,
|
|
234
|
+
InputTextModule,
|
|
235
|
+
InputTextareaModule,
|
|
236
|
+
PaginatorModule,
|
|
237
|
+
RadioButtonModule,
|
|
238
|
+
RippleModule,
|
|
239
|
+
SelectButtonModule,
|
|
240
|
+
TableModule,
|
|
241
|
+
TagModule,
|
|
242
|
+
ToastModule,
|
|
243
|
+
ToggleButtonModule,
|
|
244
|
+
ToolbarModule,
|
|
245
|
+
TooltipModule,
|
|
246
|
+
MessagesModule,
|
|
247
|
+
ProgressSpinnerModule,
|
|
248
|
+
TabViewModule,
|
|
249
|
+
FieldsetModule], exports: [
|
|
250
|
+
// directives
|
|
251
|
+
TemplateDirective,
|
|
252
|
+
// pipes
|
|
253
|
+
PropertyPathPipe,
|
|
254
|
+
// layout components
|
|
255
|
+
AppBreadcrumbComponent,
|
|
256
|
+
AppFooterComponent,
|
|
257
|
+
AppMainComponent,
|
|
258
|
+
AppMenuComponent,
|
|
259
|
+
AppMenuitemComponent,
|
|
260
|
+
AppTopbarComponent,
|
|
261
|
+
// formly wrappers
|
|
262
|
+
FormlyFieldWrapperComponent,
|
|
263
|
+
FormlyTableWrapperComponent,
|
|
264
|
+
// formly fields
|
|
265
|
+
FormlyFieldInputComponent,
|
|
266
|
+
FormlyFieldDropdownComponent,
|
|
267
|
+
FormlyFieldAutocompleteComponent,
|
|
268
|
+
FormlyFieldTableDialogMultiselectComponent,
|
|
269
|
+
FormlyFieldTableDialogFormComponent,
|
|
270
|
+
FormlyFieldTabsComponent,
|
|
271
|
+
FormlyFieldFieldsetComponent,
|
|
272
|
+
// table components
|
|
273
|
+
TableComponent,
|
|
274
|
+
TableviewComponent,
|
|
275
|
+
// editor components
|
|
276
|
+
FormEditorComponent,
|
|
277
|
+
ActionComponent,
|
|
278
|
+
ActionDialogComponent,
|
|
279
|
+
ActionRouteComponent] });
|
|
280
|
+
MngCommonsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngCommonsModule, imports: [[
|
|
281
|
+
// angular modules
|
|
282
|
+
CommonModule,
|
|
283
|
+
RouterModule,
|
|
284
|
+
HttpClientModule,
|
|
285
|
+
ReactiveFormsModule,
|
|
286
|
+
// other modules
|
|
287
|
+
TranslateModule.forRoot({
|
|
288
|
+
defaultLanguage: 'en',
|
|
289
|
+
loader: {
|
|
290
|
+
provide: TranslateLoader,
|
|
291
|
+
useFactory: HttpLoaderFactory,
|
|
292
|
+
deps: [HttpClient]
|
|
293
|
+
}
|
|
294
|
+
}),
|
|
295
|
+
FormlyModule.forChild(),
|
|
296
|
+
...primeNgModules
|
|
297
|
+
]] });
|
|
298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngCommonsModule, decorators: [{
|
|
299
|
+
type: NgModule,
|
|
300
|
+
args: [{
|
|
301
|
+
imports: [
|
|
302
|
+
// angular modules
|
|
303
|
+
CommonModule,
|
|
304
|
+
RouterModule,
|
|
305
|
+
HttpClientModule,
|
|
306
|
+
ReactiveFormsModule,
|
|
307
|
+
// other modules
|
|
308
|
+
TranslateModule.forRoot({
|
|
309
|
+
defaultLanguage: 'en',
|
|
310
|
+
loader: {
|
|
311
|
+
provide: TranslateLoader,
|
|
312
|
+
useFactory: HttpLoaderFactory,
|
|
313
|
+
deps: [HttpClient]
|
|
314
|
+
}
|
|
315
|
+
}),
|
|
316
|
+
FormlyModule.forChild(),
|
|
317
|
+
...primeNgModules
|
|
318
|
+
],
|
|
319
|
+
declarations: [
|
|
320
|
+
...declarations
|
|
321
|
+
],
|
|
322
|
+
// providers: [
|
|
323
|
+
// DialogService,
|
|
324
|
+
// MessageService,
|
|
325
|
+
// ConfirmationService,
|
|
326
|
+
//
|
|
327
|
+
// ActionService,
|
|
328
|
+
// NavigationService,
|
|
329
|
+
// AppSettingsService,
|
|
330
|
+
// AppBreadcrumbService,
|
|
331
|
+
// MenuService
|
|
332
|
+
// ],
|
|
333
|
+
exports: [
|
|
334
|
+
...declarations
|
|
335
|
+
]
|
|
336
|
+
}]
|
|
337
|
+
}] });
|
|
338
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW5nLWNvbW1vbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi9tbmctY29tbW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWxFLE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RixrQkFBa0I7QUFDbEIsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMs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LENBQUM7NEJBQ3BCLGVBQWUsRUFBRSxJQUFJOzRCQUNyQixNQUFNLEVBQUU7Z0NBQ0osT0FBTyxFQUFFLGVBQWU7Z0NBQ3hCLFVBQVUsRUFBRSxpQkFBaUI7Z0NBQzdCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQzs2QkFDckI7eUJBQ0osQ0FBQzt3QkFDRixZQUFZLENBQUMsUUFBUSxFQUFFO3dCQUN2QixHQUFHLGNBQWM7cUJBQ3BCO29CQUNELFlBQVksRUFBRTt3QkFDVixHQUFHLFlBQVk7cUJBQ2xCO29CQUNELGVBQWU7b0JBQ2YscUJBQXFCO29CQUNyQixzQkFBc0I7b0JBQ3RCLDJCQUEyQjtvQkFDM0IsRUFBRTtvQkFDRixxQkFBcUI7b0JBQ3JCLHlCQUF5QjtvQkFDekIsMEJBQTBCO29CQUMxQiw0QkFBNEI7b0JBQzVCLGtCQUFrQjtvQkFDbEIsS0FBSztvQkFDTCxPQUFPLEVBQUU7d0JBQ0wsR0FBRyxZQUFZO3FCQUNsQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QVBQX0lOSVRJQUxJWkVSLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBDbGllbnRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHtGT1JNTFlfQ09ORklHLCBGb3JtbHlNb2R1bGV9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVMb2FkZXIsIFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbi8vIHByaW1lbmcgbW9kdWxlc1xuaW1wb3J0IHtDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtBdXRvQ29tcGxldGVNb2R1bGV9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7QnJlYWRjcnVtYk1vZHVsZX0gZnJvbSAncHJpbWVuZy9icmVhZGNydW1iJztcbmltcG9ydCB7QnV0dG9uTW9kdWxlfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQge0NhcmRNb2R1bGV9IGZyb20gJ3ByaW1lbmcvY2FyZCc7XG5pbXBvcnQge0NoZWNrYm94TW9kdWxlfSBmcm9tICdwcmltZW5nL2NoZWNrYm94JztcbmltcG9ydCB7Q2hpcE1vZHVsZX0gZnJvbSAncHJpbWVuZy9jaGlwJztcbmltcG9ydCB7Q29uZmlybURpYWxvZ01vZHVsZX0gZnJvbSAncHJpbWVuZy9jb25maXJtZGlhbG9nJztcbmltcG9ydCB7Q29uZmlybVBvcHVwTW9kdWxlfSBmcm9tICdwcmltZW5nL2NvbmZpcm1wb3B1cCc7XG5pbXBvcnQge0RpYWxvZ01vZHVsZX0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlLCBEeW5hbWljRGlhbG9nTW9kdWxlfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHtEcm9wZG93bk1vZHVsZX0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQge0lucHV0TnVtYmVyTW9kdWxlfSBmcm9tICdwcmltZW5nL2lucHV0bnVtYmVyJztcbmltcG9ydCB7SW5wdXRNYXNrTW9kdWxlfSBmcm9tICdwcmltZW5nL2lucHV0bWFzayc7XG5pbXBvcnQge0lucHV0U3dpdGNoTW9kdWxlfSBmcm9tICdwcmltZW5nL2lucHV0c3dpdGNoJztcbmltcG9ydCB7SW5wdXRUZXh0TW9kdWxlfSBmcm9tICdwcmltZW5nL2lucHV0dGV4dCc7XG5pbXBvcnQge0lucHV0VGV4dGFyZWFNb2R1bGV9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0YXJlYSc7XG5pbXBvcnQge1BhZ2luYXRvck1vZHVsZX0gZnJvbSAncHJpbWVuZy9wYWdpbmF0b3InO1xuaW1wb3J0IHtSYWRpb0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9yYWRpb2J1dHRvbic7XG5pbXBvcnQge1JpcHBsZU1vZHVsZX0gZnJvbSAncHJpbWVuZy9yaXBwbGUnO1xuaW1wb3J0IHtTZWxlY3RCdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvc2VsZWN0YnV0dG9uJztcbmltcG9ydCB7VGFibGVNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHtUYWdNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdGFnJztcbmltcG9ydCB7VG9hc3RNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xuaW1wb3J0IHtUb2dnbGVCdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9nZ2xlYnV0dG9uJztcbmltcG9ydCB7VG9vbGJhck1vZHVsZX0gZnJvbSAncHJpbWVuZy90b29sYmFyJztcbmltcG9ydCB7VG9vbHRpcE1vZHVsZX0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcbmltcG9ydCB7TWVzc2FnZXNNb2R1bGV9IGZyb20gJ3ByaW1lbmcvbWVzc2FnZXMnO1xuaW1wb3J0IHtQcm9ncmVzc1NwaW5uZXJNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcHJvZ3Jlc3NzcGlubmVyJztcbmltcG9ydCB7VGFiVmlld01vZHVsZX0gZnJvbSAncHJpbWVuZy90YWJ2aWV3JztcbmltcG9ydCB7RmllbGRzZXRNb2R1bGV9IGZyb20gJ3ByaW1lbmcvZmllbGRzZXQnO1xuaW1wb3J0IHtDYWxlbmRhck1vZHVsZX0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XG5cbi8vIGRpcmVjdGl2ZXNcbmltcG9ydCB7VGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4vZGlyZWN0aXZlcy90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHtQcm9wZXJ0eVBhdGhQaXBlfSBmcm9tICcuL3BpcGVzL3Byb3BlcnR5LXBhdGgucGlwZSc7XG5cbi8vIGxheW91dCBjb21wb25lbnRzXG5pbXBvcnQge0FwcEJyZWFkY3J1bWJDb21wb25lbnQsIEFwcEZvb3RlckNvbXBvbmVudCwgQXBwTWFpbkNvbXBvbmVudCwgQXBwTWVudUNvbXBvbmVudCwgQXBwTWVudWl0ZW1Db21wb25lbnQsIEFwcFRvcGJhckNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dCc7XG5cbi8vIGZvcm1seSBjb21wb25lbnRzXG5pbXBvcnQge0Zvcm1seUZpZWxkV3JhcHBlckNvbXBvbmVudCwgRm9ybWx5VGFibGVXcmFwcGVyQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvd3JhcHBlcnMnO1xuaW1wb3J0IHtGb3JtbHlGaWVsZEF1dG9jb21wbGV0ZUNvbXBvbmVudCwgRm9ybWx5RmllbGREcm9wZG93bkNvbXBvbmVudCwgRm9ybWx5RmllbGRGaWVsZHNldENvbXBvbmVudCwgRm9ybWx5RmllbGRJbnB1dENvbXBvbmVudCwgRm9ybWx5RmllbGRUYWJsZURpYWxvZ0Zvcm1Db21wb25lbnQsIEZvcm1seUZpZWxkVGFibGVEaWFsb2dNdWx0aXNlbGVjdENvbXBvbmVudCwgRm9ybWx5RmllbGRUYWJzQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzJztcblxuLy8gdGFibGUgY29tcG9uZW50c1xuaW1wb3J0IHtUYWJsZUNvbXBvbmVudCwgVGFibGV2aWV3Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGV2aWV3JztcblxuLy8gZWRpdG9yIGNvbXBvbmVudHNcbmltcG9ydCB7Rm9ybUVkaXRvckNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHtBY3Rpb25Db21wb25lbnQsIEFjdGlvbkRpYWxvZ0NvbXBvbmVudCwgQWN0aW9uUm91dGVDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpb24nO1xuXG4vLyBzZXJ2aWNlc1xuaW1wb3J0IHtPYmplY3RTZXJpYWxpemVyfSBmcm9tICcuL2FwaS91dGlscyc7XG5pbXBvcnQge0FjdGlvblNlcnZpY2UsIEFwcEJyZWFkY3J1bWJTZXJ2aWNlLCBBcHBTZXR0aW5nc1NlcnZpY2UsIENvbmZpZ3VyYXRpb25TZXJ2aWNlLCBNZW51U2VydmljZSwgTmF2aWdhdGlvblNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHtjb25maWdKc29uQXBwSW5pdGlhbGl6ZXJQcm92aWRlciwgY29uZmlndXJhdGlvblNlcnZpY2VQcm92aWRlciwgZm9ybWx5Q29uZmlnUHJvdmlkZXJ9IGZyb20gJy4vc2VydmljZXMvcHJvdmlkZXJzJztcblxuLy8gY29tcG9uZW50IHNlcnZpY2VzXG5pbXBvcnQge1RhYmxldmlld0NvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGV2aWV3LmNvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwTWFpbkNvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4vY29tcG9uZW50cy9sYXlvdXQvYXBwLm1haW4uY29tcG9uZW50LnNlcnZpY2UnO1xuXG4vLyBtb2R1bGUgY29uZmlnXG5pbXBvcnQge01OR19NT0RVTEVfQ09ORklHX0lULCBNbmdNb2R1bGVDb25maWd9IGZyb20gJy4vbW9kZWxzL2NvbmZpZyc7XG5pbXBvcnQge1RyYW5zbGF0ZUh0dHBMb2FkZXJ9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2h0dHAtbG9hZGVyJztcblxuLy8gcHJpbWVuZyBtb2R1bGVzXG5leHBvcnQgY29uc3QgcHJpbWVOZ01vZHVsZXMgPSBbXG4gICAgQXV0b0NvbXBsZXRlTW9kdWxlLFxuICAgIEJyZWFkY3J1bWJNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIENhbGVuZGFyTW9kdWxlLFxuICAgIENhcmRNb2R1bGUsXG4gICAgQ2hlY2tib3hNb2R1bGUsXG4gICAgQ2hpcE1vZHVsZSxcbiAgICBDb25maXJtRGlhbG9nTW9kdWxlLFxuICAgIENvbmZpcm1Qb3B1cE1vZHVsZSxcbiAgICBEaWFsb2dNb2R1bGUsXG4gICAgRHluYW1pY0RpYWxvZ01vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBJbnB1dE51bWJlck1vZHVsZSxcbiAgICBJbnB1dE1hc2tNb2R1bGUsXG4gICAgSW5wdXRTd2l0Y2hNb2R1bGUsXG4gICAgSW5wdXRUZXh0TW9kdWxlLFxuICAgIElucHV0VGV4dGFyZWFNb2R1bGUsXG4gICAgUGFnaW5hdG9yTW9kdWxlLFxuICAgIFJhZGlvQnV0dG9uTW9kdWxlLFxuICAgIFJpcHBsZU1vZHVsZSxcbiAgICBTZWxlY3RCdXR0b25Nb2R1bGUsXG4gICAgVGFibGVNb2R1bGUsXG4gICAgVGFnTW9kdWxlLFxuICAgIFRvYXN0TW9kdWxlLFxuICAgIFRvZ2dsZUJ1dHRvbk1vZHVsZSxcbiAgICBUb29sYmFyTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgTWVzc2FnZXNNb2R1bGUsXG4gICAgUHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIFRhYlZpZXdNb2R1bGUsXG4gICAgRmllbGRzZXRNb2R1bGVcbl07XG5cbmNvbnN0IGRlY2xhcmF0aW9ucyA9IFtcbiAgICAvLyBkaXJlY3RpdmVzXG4gICAgVGVtcGxhdGVEaXJlY3RpdmUsXG5cbiAgICAvLyBwaXBlc1xuICAgIFByb3BlcnR5UGF0aFBpcGUsXG5cbiAgICAvLyBsYXlvdXQgY29tcG9uZW50c1xuICAgIEFwcEJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgQXBwRm9vdGVyQ29tcG9uZW50LFxuICAgIEFwcE1haW5Db21wb25lbnQsXG4gICAgQXBwTWVudUNvbXBvbmVudCxcbiAgICBBcHBNZW51aXRlbUNvbXBvbmVudCxcbiAgICBBcHBUb3BiYXJDb21wb25lbnQsXG5cbiAgICAvLyBmb3JtbHkgd3JhcHBlcnNcbiAgICBGb3JtbHlGaWVsZFdyYXBwZXJDb21wb25lbnQsXG4gICAgRm9ybWx5VGFibGVXcmFwcGVyQ29tcG9uZW50LFxuXG4gICAgLy8gZm9ybWx5IGZpZWxkc1xuICAgIEZvcm1seUZpZWxkSW5wdXRDb21wb25lbnQsXG4gICAgRm9ybWx5RmllbGREcm9wZG93bkNvbXBvbmVudCxcbiAgICBGb3JtbHlGaWVsZEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBGb3JtbHlGaWVsZFRhYmxlRGlhbG9nTXVsdGlzZWxlY3RDb21wb25lbnQsXG4gICAgRm9ybWx5RmllbGRUYWJsZURpYWxvZ0Zvcm1Db21wb25lbnQsXG4gICAgRm9ybWx5RmllbGRUYWJzQ29tcG9uZW50LFxuICAgIEZvcm1seUZpZWxkRmllbGRzZXRDb21wb25lbnQsXG5cbiAgICAvLyB0YWJsZSBjb21wb25lbnRzXG4gICAgVGFibGVDb21wb25lbnQsXG4gICAgVGFibGV2aWV3Q29tcG9uZW50LFxuXG4gICAgLy8gZWRpdG9yIGNvbXBvbmVudHNcbiAgICBGb3JtRWRpdG9yQ29tcG9uZW50LFxuICAgIEFjdGlvbkNvbXBvbmVudCxcbiAgICBBY3Rpb25EaWFsb2dDb21wb25lbnQsXG4gICAgQWN0aW9uUm91dGVDb21wb25lbnRcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBIdHRwTG9hZGVyRmFjdG9yeShodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2xhdGVIdHRwTG9hZGVyKGh0dHApO1xufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy8gYW5ndWxhciBtb2R1bGVzXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuXG4gICAgICAgIC8vIG90aGVyIG1vZHVsZXNcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgICAgICAgZGVmYXVsdExhbmd1YWdlOiAnZW4nLFxuICAgICAgICAgICAgbG9hZGVyOiB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogVHJhbnNsYXRlTG9hZGVyLFxuICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IEh0dHBMb2FkZXJGYWN0b3J5LFxuICAgICAgICAgICAgICAgIGRlcHM6IFtIdHRwQ2xpZW50XVxuICAgICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgRm9ybWx5TW9kdWxlLmZvckNoaWxkKCksXG4gICAgICAgIC4uLnByaW1lTmdNb2R1bGVzXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgLi4uZGVjbGFyYXRpb25zXG4gICAgXSxcbiAgICAvLyBwcm92aWRlcnM6IFtcbiAgICAvLyAgICAgRGlhbG9nU2VydmljZSxcbiAgICAvLyAgICAgTWVzc2FnZVNlcnZpY2UsXG4gICAgLy8gICAgIENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgLy9cbiAgICAvLyAgICAgQWN0aW9uU2VydmljZSxcbiAgICAvLyAgICAgTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgLy8gICAgIEFwcFNldHRpbmdzU2VydmljZSxcbiAgICAvLyAgICAgQXBwQnJlYWRjcnVtYlNlcnZpY2UsXG4gICAgLy8gICAgIE1lbnVTZXJ2aWNlXG4gICAgLy8gXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIC4uLmRlY2xhcmF0aW9uc1xuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTW5nQ29tbW9uc01vZHVsZSB7XG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBNbmdNb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE1uZ0NvbW1vbnNNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBNbmdDb21tb25zTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgLy8gcHJpbWVuZyBzZXJ2aWNlc1xuICAgICAgICAgICAgICAgIERpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQ29uZmlybWF0aW9uU2VydmljZSxcblxuICAgICAgICAgICAgICAgIEFjdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQXBwU2V0dGluZ3NTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEFwcEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIE1lbnVTZXJ2aWNlLFxuXG4gICAgICAgICAgICAgICAgLy8gY29tcG9uZW50IHNlcnZpY2VcbiAgICAgICAgICAgICAgICBBcHBNYWluQ29tcG9uZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICBUYWJsZXZpZXdDb21wb25lbnRTZXJ2aWNlLFxuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBNTkdfTU9EVUxFX0NPTkZJR19JVCxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBPYmplY3RTZXJpYWxpemVyLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiBPYmplY3RTZXJpYWxpemVyLmdldCgpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBjb25maWd1cmF0aW9uU2VydmljZVByb3ZpZGVyLFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbSHR0cENsaWVudCwgTU5HX01PRFVMRV9DT05GSUdfSVRdXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogY29uZmlnSnNvbkFwcEluaXRpYWxpemVyUHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtDb25maWd1cmF0aW9uU2VydmljZSwgTU5HX01PRFVMRV9DT05GSUdfSVRdLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBGT1JNTFlfQ09ORklHLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogZm9ybWx5Q29uZmlnUHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtUcmFuc2xhdGVTZXJ2aWNlLCBNTkdfTU9EVUxFX0NPTkZJR19JVF1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|