@mediusinc/mng-commons 5.0.1 → 5.1.0-rc.1
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 +7 -6
- package/core/descriptors/model.descriptor.d.ts +1 -1
- package/core/error/error-helpers.d.ts +18 -1
- package/core/helpers/coercion.d.ts +1 -0
- package/core/i18n/i18n-type.d.ts +0 -9
- package/core/index.d.ts +0 -1
- package/core/services/commons-configuration.service.d.ts +12 -0
- package/esm2022/core/components/notification/notification-wrapper.component.mjs +5 -6
- package/esm2022/core/components/pages/error/error.page.component.mjs +4 -4
- package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +4 -4
- package/esm2022/core/descriptors/model.descriptor.mjs +1 -1
- package/esm2022/core/directives/component.directive.mjs +3 -3
- package/esm2022/core/directives/template.directive.mjs +3 -3
- package/esm2022/core/error/error-helpers.mjs +20 -1
- package/esm2022/core/helpers/coercion.mjs +4 -1
- package/esm2022/core/i18n/i18n-type.mjs +1 -34
- package/esm2022/core/index.mjs +1 -2
- package/esm2022/core/pipes/boolean.pipe.mjs +3 -3
- package/esm2022/core/pipes/class-map.pipe.mjs +3 -3
- package/esm2022/core/pipes/enum.pipe.mjs +5 -5
- package/esm2022/core/pipes/enumerate-async.pipe.mjs +3 -3
- package/esm2022/core/pipes/enumerate.pipe.mjs +3 -3
- package/esm2022/core/pipes/getter.pipe.mjs +3 -3
- package/esm2022/core/pipes/i18n-property.pipe.mjs +3 -3
- package/esm2022/core/pipes/json-path.pipe.mjs +3 -3
- package/esm2022/core/pipes/parametrize.pipe.mjs +3 -3
- package/esm2022/core/pipes/template.pipe.mjs +3 -3
- package/esm2022/core/security/permission.service.mjs +3 -3
- package/esm2022/core/services/commons-configuration.service.mjs +16 -1
- package/esm2022/core/services/commons-init.service.mjs +3 -3
- package/esm2022/core/services/commons-router.service.mjs +3 -3
- package/esm2022/core/services/commons.service.mjs +3 -3
- package/esm2022/core/services/local-storage-config.service.mjs +3 -3
- package/esm2022/form/components/autocomplete/autocomplete.component.mjs +4 -4
- package/esm2022/form/components/date-range/date-range.component.mjs +4 -4
- package/esm2022/form/components/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/form/directives/input-trim.directive.mjs +14 -19
- package/esm2022/model/descriptors/model.descriptor.mjs +1 -1
- package/esm2022/model/helpers/i18n.mjs +7 -10
- package/esm2022/table/api/descriptors/table.descriptor.mjs +2 -2
- package/esm2022/table/api/models/table.model.mjs +1 -1
- package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +4 -4
- package/esm2022/table/components/column-value/column-value.component.mjs +43 -53
- package/esm2022/table/components/table/table.component.mjs +300 -365
- package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +3 -3
- package/esm2022/table/pipes/table-column-filter-class.pipe.mjs +3 -3
- package/esm2022/table/services/data-list.service.mjs +3 -3
- package/esm2022/tableview/action/components/action/action.component.mjs +5 -5
- package/esm2022/tableview/action/components/editor/action-editor.component.mjs +6 -7
- package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +5 -4
- package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +3 -3
- package/esm2022/tableview/action/components/route/action-route.component.mjs +3 -3
- package/esm2022/tableview/action/components/table/action-table.component.mjs +43 -92
- package/esm2022/tableview/action/services/component-action-executor.service.mjs +3 -3
- package/esm2022/tableview/action/services/data-provider-executor.service.mjs +3 -3
- package/esm2022/tableview/action/services/navigation.service.mjs +3 -3
- package/esm2022/tableview/action/services/root-action-executor.service.mjs +3 -3
- package/esm2022/tableview/action/services/view-container.service.mjs +3 -3
- package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +4 -1
- package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +6 -14
- package/esm2022/tableview/api/editor/models/field-action-context.model.mjs +1 -1
- package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +1 -1
- package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +5 -5
- package/esm2022/tableview/api/editor/models/formly-field.model.mjs +1 -1
- package/esm2022/tableview/api/editor/models/formly-options.model.mjs +2 -0
- package/esm2022/tableview/api/index.mjs +2 -2
- package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +25 -20
- package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +7 -8
- package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +10 -12
- package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +7 -7
- package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +51 -10
- package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +10 -11
- package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +8 -8
- package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +8 -7
- package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +7 -8
- package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +19 -33
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +16 -18
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +21 -26
- package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +7 -6
- package/esm2022/tableview/editor/components/formly/fields/formly-field-type.abstract.component.mjs +23 -0
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +3 -3
- package/esm2022/tableview/editor/helpers/editor-formly.mjs +14 -2
- package/esm2022/tableview/editor/helpers/editor-validators.mjs +25 -0
- package/esm2022/tableview/editor/helpers/formly-config.mjs +7 -5
- package/esm2022/tableview/editor/services/form-editor.service.mjs +3 -3
- package/esm2022/tableview/index.mjs +2 -1
- package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +3 -3
- package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +4 -4
- package/fesm2022/mediusinc-mng-commons-core.mjs +164 -205
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form.mjs +23 -27
- package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-model.mjs +7 -10
- package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table.mjs +357 -431
- package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +13 -39
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +305 -280
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/form/directives/input-trim.directive.d.ts +5 -8
- package/model/descriptors/model.descriptor.d.ts +3 -3
- package/model/helpers/i18n.d.ts +1 -3
- package/package.json +15 -15
- package/table/api/models/table.model.d.ts +1 -1
- package/table/components/column-value/column-value.component.d.ts +11 -17
- package/table/components/table/table.component.d.ts +43 -47
- package/tableview/action/components/editor/action-editor.component.d.ts +1 -2
- package/tableview/action/components/table/action-table.component.d.ts +26 -29
- package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +3 -3
- package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +3 -3
- package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +2 -1
- package/tableview/api/editor/descriptors/field.descriptor.d.ts +13 -9
- package/tableview/api/editor/models/field-action-context.model.d.ts +4 -4
- package/tableview/api/editor/models/form-editor.interface.d.ts +24 -14
- package/tableview/api/editor/models/formly-custom-field.model.d.ts +22 -19
- package/tableview/api/editor/models/formly-field.model.d.ts +20 -0
- package/tableview/api/editor/models/formly-options.model.d.ts +15 -0
- package/tableview/api/index.d.ts +1 -1
- package/tableview/editor/components/editor/form-editor.component.d.ts +9 -17
- package/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.d.ts +3 -4
- package/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +3 -7
- package/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.d.ts +3 -4
- package/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.d.ts +6 -4
- package/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +3 -6
- package/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +3 -4
- package/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.d.ts +4 -6
- package/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.d.ts +5 -6
- package/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +6 -10
- package/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +4 -7
- package/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +7 -12
- package/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +2 -3
- package/tableview/editor/components/formly/fields/formly-field-type.abstract.component.d.ts +12 -0
- package/tableview/editor/helpers/editor-validators.d.ts +7 -0
- package/tableview/index.d.ts +1 -0
- package/version-info.json +5 -5
- package/core/directives/dialog-keydown-handler.directive.d.ts +0 -12
- package/esm2022/core/directives/dialog-keydown-handler.directive.mjs +0 -49
- package/esm2022/tableview/api/editor/helpers/field-validators.mjs +0 -23
- package/tableview/api/editor/helpers/field-validators.d.ts +0 -7
|
@@ -41,7 +41,6 @@ export * from './editor/descriptors/field-validation.descriptor';
|
|
|
41
41
|
// editor helpers
|
|
42
42
|
export * from './editor/helpers/class-attribute-converter';
|
|
43
43
|
export * from './editor/helpers/editor-descriptor-helpers';
|
|
44
|
-
export * from './editor/helpers/field-validators';
|
|
45
44
|
// editor models
|
|
46
45
|
export * from './editor/models/class-tableview-attribute.model';
|
|
47
46
|
export * from './editor/models/editor.model';
|
|
@@ -53,6 +52,7 @@ export * from './editor/models/form-editor.event';
|
|
|
53
52
|
export * from './editor/models/form-editor.interface';
|
|
54
53
|
export * from './editor/models/formly-custom-field.model';
|
|
55
54
|
export * from './editor/models/formly-field.model';
|
|
55
|
+
export * from './editor/models/formly-options.model';
|
|
56
56
|
export * from './editor/models/radio.model';
|
|
57
57
|
// tableview data providers
|
|
58
58
|
export * from './tableview/data-providers/tableview.data-provider';
|
|
@@ -71,4 +71,4 @@ export * from './tableview/helpers/tableview-input-builder';
|
|
|
71
71
|
export * from './tableview/models/class-tableview-attribute.model';
|
|
72
72
|
export * from './tableview/models/tableview-input.model';
|
|
73
73
|
export * from './tableview/models/tableview-route.model';
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBcUI7QUFDckIsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxxREFBcUQsQ0FBQztBQUVwRSxpQkFBaUI7QUFDakIsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCx5QkFBeUI7QUFDekIsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsZ0RBQWdELENBQUM7QUFFL0QsZUFBZTtBQUNmLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDJEQUEyRCxDQUFDO0FBRTFFLGtCQUFrQjtBQUNsQixjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsa0RBQWtELENBQUM7QUFFakUsd0JBQXdCO0FBQ3hCLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxzREFBc0QsQ0FBQztBQUVyRSxxQkFBcUI7QUFDckIsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsa0RBQWtELENBQUM7QUFFakUsaUJBQWlCO0FBQ2pCLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUUzRCxnQkFBZ0I7QUFDaEIsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsMkJBQTJCO0FBQzNCLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyw0REFBNEQsQ0FBQztBQUUzRSx3QkFBd0I7QUFDeEIsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHNEQUFzRCxDQUFDO0FBRXJFLG9CQUFvQjtBQUNwQixjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw2Q0FBNkMsQ0FBQztBQUU1RCxtQkFBbUI7QUFDbkIsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBhY3Rpb24gZGVzY3JpcHRvcnNcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi1jb25maXJtYXRpb24uZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi9kZXNjcmlwdG9ycy9hY3Rpb24tZGVzY3JpcHRvci5mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi1lZGl0b3IuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi9kZXNjcmlwdG9ycy9hY3Rpb24tZWRpdG9yLWRlc2NyaXB0b3IuZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi9kZXNjcmlwdG9ycy9hY3Rpb24tbGluay5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi1saW5rLWRlc2NyaXB0b3IuZmFjdG9yeSc7XG5cbi8vIGFjdGlvbiBoZWxwZXJzXG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi9oZWxwZXJzL2RhdGEtcHJvdmlkZXItZXhlY3V0b3JzJztcblxuLy8gYWN0aW9uIG1vZGVsIGV4ZWN1dGlvblxuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24tY29udGV4dC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi9tb2RlbHMvZXhlY3V0aW9uL2FjdGlvbi1jb250ZXh0LXZhbGlkYXRpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24tZXhlY3V0aW9uLWVycm9yLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL21vZGVscy9leGVjdXRpb24vYWN0aW9uLWluc3RhbmNlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL21vZGVscy9leGVjdXRpb24vYWN0aW9uLWluc3RhbmNlLXN0YXRlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL21vZGVscy9leGVjdXRpb24vdmlldy1jb250YWluZXIubW9kZWwnO1xuXG4vLyBhY3Rpb24gbW9kZWxcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL21vZGVscy9hY3Rpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi9tb2RlbHMvYWN0aW9uLWNvbXBvbmVudC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi9tb2RlbHMvYWN0aW9uLWRlc2NyaXB0b3IudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24vbW9kZWxzL2FjdGlvbi1lZGl0b3IubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24vbW9kZWxzL2FjdGlvbi1lcnJvci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi9tb2RlbHMvdGFibGV2aWV3LWFjdGlvbi1kZWZhdWx0LWNhdGVnb3JpZXMubW9kZWwnO1xuXG4vLyBhY3Rpb24gc2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL3NlcnZpY2VzL3Rva2Vucy9kYXRhLWxhbmd1YWdlLWRyb3Bkb3duLnRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL3NlcnZpY2VzL2RhdGEtcHJvdmlkZXItZXhlY3V0b3Iuc2VydmljZSc7XG5cbi8vIGVkaXRvciBkYXRhIHByb3ZpZGVyc1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3IvZGF0YS1wcm92aWRlcnMvZWRpdG9yLmRhdGEtcHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3IvZGF0YS1wcm92aWRlcnMvZWRpdG9yLWRhdGEtcHJvdmlkZXIuZmFjdG9yeSc7XG5cbi8vIGVkaXRvciBkZXNjcmlwdG9yc1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3IvZGVzY3JpcHRvcnMvZWRpdG9yLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3IvZGVzY3JpcHRvcnMvZWRpdG9yLWRlc2NyaXB0b3IuZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci9kZXNjcmlwdG9ycy9maWVsZC5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yL2Rlc2NyaXB0b3JzL2ZpZWxkLWFjdGlvbi5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yL2Rlc2NyaXB0b3JzL2ZpZWxkLWJhc2UuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci9kZXNjcmlwdG9ycy9maWVsZC1ncm91cC5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yL2Rlc2NyaXB0b3JzL2ZpZWxkLWxvb2t1cC5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yL2Rlc2NyaXB0b3JzL2ZpZWxkLW1hbnkuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci9kZXNjcmlwdG9ycy9maWVsZC12YWxpZGF0aW9uLmRlc2NyaXB0b3InO1xuXG4vLyBlZGl0b3IgaGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3IvaGVscGVycy9jbGFzcy1hdHRyaWJ1dGUtY29udmVydGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yL2hlbHBlcnMvZWRpdG9yLWRlc2NyaXB0b3ItaGVscGVycyc7XG5cbi8vIGVkaXRvciBtb2RlbHNcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yL21vZGVscy9jbGFzcy10YWJsZXZpZXctYXR0cmlidXRlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yL21vZGVscy9lZGl0b3IubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3IvbW9kZWxzL2VkaXRvci1maWVsZHMubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3IvbW9kZWxzL2ZpZWxkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yL21vZGVscy9maWVsZC1hY3Rpb24tY29udGV4dC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci9tb2RlbHMvZmllbGQtdmFsaWRhdGlvbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci9tb2RlbHMvZm9ybS1lZGl0b3IuZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3IvbW9kZWxzL2Zvcm0tZWRpdG9yLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci9tb2RlbHMvZm9ybWx5LWN1c3RvbS1maWVsZC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci9tb2RlbHMvZm9ybWx5LWZpZWxkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yL21vZGVscy9mb3JtbHktb3B0aW9ucy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci9tb2RlbHMvcmFkaW8ubW9kZWwnO1xuXG4vLyB0YWJsZXZpZXcgZGF0YSBwcm92aWRlcnNcbmV4cG9ydCAqIGZyb20gJy4vdGFibGV2aWV3L2RhdGEtcHJvdmlkZXJzL3RhYmxldmlldy5kYXRhLXByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGV2aWV3L2RhdGEtcHJvdmlkZXJzL3RhYmxldmlldy1kYXRhLXByb3ZpZGVyLmZhY3RvcnknO1xuXG4vLyB0YWJsZXZpZXcgZGVzY3JpcHRvcnNcbmV4cG9ydCAqIGZyb20gJy4vdGFibGV2aWV3L2Rlc2NyaXB0b3JzL3RhYmxldmlldy5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGV2aWV3L2Rlc2NyaXB0b3JzL3RhYmxldmlldy1kZXNjcmlwdG9yLmZhY3RvcnknO1xuXG4vLyB0YWJsZXZpZXcgaGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZXZpZXcvaGVscGVycy9jbGFzcy1hdHRyaWJ1dGUtY29udmVydGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGV2aWV3L2hlbHBlcnMvZmlsZXMtZXhwb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGV2aWV3L2hlbHBlcnMvdGFibGV2aWV3LWNyZWF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxldmlldy9oZWxwZXJzL3RhYmxldmlldy1kZWZhdWx0LWFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZXZpZXcvaGVscGVycy90YWJsZXZpZXctZGVzY3JpcHRvci1oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGV2aWV3L2hlbHBlcnMvdGFibGV2aWV3LWlucHV0LWJ1aWxkZXInO1xuXG4vLyB0YWJsZXZpZXcgbW9kZWxzXG5leHBvcnQgKiBmcm9tICcuL3RhYmxldmlldy9tb2RlbHMvY2xhc3MtdGFibGV2aWV3LWF0dHJpYnV0ZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxldmlldy9tb2RlbHMvdGFibGV2aWV3LWlucHV0Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGV2aWV3L21vZGVscy90YWJsZXZpZXctcm91dGUubW9kZWwnO1xuIl19
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { AsyncPipe } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, DestroyRef, effect, inject, input, output, signal, viewChild } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, effect, inject, input, output, signal, untracked, viewChild } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { FormArray, FormGroup, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';
|
|
5
5
|
import { FormlyConfig, FormlyModule } from '@ngx-formly/core';
|
|
6
6
|
import { TranslateService } from '@ngx-translate/core';
|
|
7
7
|
import { ButtonModule } from 'primeng/button';
|
|
8
8
|
import { MessagesModule } from 'primeng/messages';
|
|
9
|
-
import { debounceTime, distinctUntilChanged } from 'rxjs';
|
|
9
|
+
import { BehaviorSubject, debounceTime, distinctUntilChanged } from 'rxjs';
|
|
10
10
|
import { CommonsService, LoggerService, objectDeepCopy } from '@mediusinc/mng-commons/core';
|
|
11
11
|
import { FormEventTypeEnum, FormFieldEventComponentSubtype, TableviewEditorTypeEnum } from '@mediusinc/mng-commons/tableview/api';
|
|
12
12
|
import { createFormlyConfigFromDescriptor } from '../../helpers/editor-formly';
|
|
@@ -56,11 +56,13 @@ export class FormEditorComponent {
|
|
|
56
56
|
this.submitButtonElementRef = viewChild('submitButton');
|
|
57
57
|
// formly specifics
|
|
58
58
|
this._form = new UntypedFormGroup({});
|
|
59
|
+
this._formlyStateDisabledSubject = new BehaviorSubject(false);
|
|
59
60
|
this._formlyOptions = {
|
|
60
61
|
formState: {
|
|
61
62
|
add: false,
|
|
62
63
|
edit: false,
|
|
63
|
-
disabled: false
|
|
64
|
+
disabled: false,
|
|
65
|
+
disabled$: this._formlyStateDisabledSubject.asObservable().pipe(distinctUntilChanged())
|
|
64
66
|
}
|
|
65
67
|
};
|
|
66
68
|
this._formlyFields = []; // initialized in ngOnInit, should not be changed after
|
|
@@ -78,6 +80,9 @@ export class FormEditorComponent {
|
|
|
78
80
|
{ allowSignalWrites: true });
|
|
79
81
|
effect(() => {
|
|
80
82
|
this._formlyOptions.formState.disabled = this.isFormDisabled() || this._formlyOptions.formState.descriptor?.disabled === true || this._formlyOptions.formState.details;
|
|
83
|
+
untracked(() => {
|
|
84
|
+
this._formlyStateDisabledSubject.next(this._formlyOptions.formState.disabled);
|
|
85
|
+
});
|
|
81
86
|
});
|
|
82
87
|
}
|
|
83
88
|
ngOnInit() {
|
|
@@ -188,7 +193,7 @@ export class FormEditorComponent {
|
|
|
188
193
|
if (opts?.markAsPristine !== false) {
|
|
189
194
|
// mark form as pristine, should be done in next event hook to allow formly to initialize first
|
|
190
195
|
setTimeout(() => {
|
|
191
|
-
this._form.markAsPristine();
|
|
196
|
+
this._form.markAsPristine({ onlySelf: opts?.onlySelf });
|
|
192
197
|
});
|
|
193
198
|
}
|
|
194
199
|
}
|
|
@@ -198,13 +203,13 @@ export class FormEditorComponent {
|
|
|
198
203
|
getFieldUnsafe(key) {
|
|
199
204
|
return this.findFormField(this._form, key.split('.'));
|
|
200
205
|
}
|
|
201
|
-
setFieldValue(key, value) {
|
|
202
|
-
return this.setFieldValueUnsafe(key, value);
|
|
206
|
+
setFieldValue(key, value, opts) {
|
|
207
|
+
return this.setFieldValueUnsafe(key, value, opts);
|
|
203
208
|
}
|
|
204
|
-
setFieldValueUnsafe(key, value) {
|
|
209
|
+
setFieldValueUnsafe(key, value, opts) {
|
|
205
210
|
const control = this.getFieldUnsafe(key);
|
|
206
211
|
if (control) {
|
|
207
|
-
control.setValue(value);
|
|
212
|
+
control.setValue(value, opts);
|
|
208
213
|
return true;
|
|
209
214
|
}
|
|
210
215
|
else {
|
|
@@ -212,13 +217,13 @@ export class FormEditorComponent {
|
|
|
212
217
|
return false;
|
|
213
218
|
}
|
|
214
219
|
}
|
|
215
|
-
patchFieldValue(key, value) {
|
|
216
|
-
return this.patchFieldValueUnsafe(key, value);
|
|
220
|
+
patchFieldValue(key, value, opts) {
|
|
221
|
+
return this.patchFieldValueUnsafe(key, value, opts);
|
|
217
222
|
}
|
|
218
|
-
patchFieldValueUnsafe(key, value) {
|
|
223
|
+
patchFieldValueUnsafe(key, value, opts) {
|
|
219
224
|
const control = this.getFieldUnsafe(key);
|
|
220
225
|
if (control) {
|
|
221
|
-
control.patchValue(value);
|
|
226
|
+
control.patchValue(value, opts);
|
|
222
227
|
return true;
|
|
223
228
|
}
|
|
224
229
|
else {
|
|
@@ -226,13 +231,13 @@ export class FormEditorComponent {
|
|
|
226
231
|
return false;
|
|
227
232
|
}
|
|
228
233
|
}
|
|
229
|
-
resetFieldValue(key, value) {
|
|
230
|
-
return this.resetFieldValueUnsafe(key, value);
|
|
234
|
+
resetFieldValue(key, value, opts) {
|
|
235
|
+
return this.resetFieldValueUnsafe(key, value, opts);
|
|
231
236
|
}
|
|
232
|
-
resetFieldValueUnsafe(key, value) {
|
|
237
|
+
resetFieldValueUnsafe(key, value, opts) {
|
|
233
238
|
const control = this.getFieldUnsafe(key);
|
|
234
239
|
if (control) {
|
|
235
|
-
control.reset(value);
|
|
240
|
+
control.reset(value, opts);
|
|
236
241
|
return true;
|
|
237
242
|
}
|
|
238
243
|
else {
|
|
@@ -300,11 +305,11 @@ export class FormEditorComponent {
|
|
|
300
305
|
}
|
|
301
306
|
return false;
|
|
302
307
|
}
|
|
303
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
304
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
308
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FormEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
309
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.5", type: FormEditorComponent, isStandalone: true, selector: "mng-form-editor", inputs: { descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, submitLoading: { classPropertyName: "submitLoading", publicName: "submitLoading", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, isFormDisabled: { classPropertyName: "isFormDisabled", publicName: "isFormDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formSubmit: "formSubmit" }, providers: [provideFormComponent()], viewQueries: [{ propertyName: "submitButtonElementRef", first: true, predicate: ["submitButton"], descendants: true, isSignal: true }], ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formlyFields\" [options]=\"formlyOptions\" [model]=\"formlyInitialItem\"></formly-form>\n <button #submitButton pButton type=\"submit\" class=\"hidden\" [disabled]=\"form.disabled\" [loading]=\"submitLoading()\" 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", "onClose"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
305
310
|
}
|
|
306
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
311
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FormEditorComponent, decorators: [{
|
|
307
312
|
type: Component,
|
|
308
313
|
args: [{ standalone: true, selector: 'mng-form-editor', imports: [FormlyModule, ReactiveFormsModule, MessagesModule, AsyncPipe, ButtonModule], providers: [provideFormComponent()], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formlyFields\" [options]=\"formlyOptions\" [model]=\"formlyInitialItem\"></formly-form>\n <button #submitButton pButton type=\"submit\" class=\"hidden\" [disabled]=\"form.disabled\" [loading]=\"submitLoading()\" loadingIcon=\"pi pi-spin pi-spinner\"></button>\n</form>\n<p-messages [value]=\"formMessages()\" [enableService]=\"false\"></p-messages>\n" }]
|
|
309
314
|
}], ctorParameters: () => [] });
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZm9ybS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZm9ybS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5SixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQWtCLFNBQVMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RyxPQUFPLEVBQUMsWUFBWSxFQUF3QyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFeEQsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDMUYsT0FBTyxFQUtILGlCQUFpQixFQUNqQiw4QkFBOEIsRUFFOUIs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Q0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzhHQTFVUSxtQkFBbUI7a0dBQW5CLG1CQUFtQiwrb0JBSGpCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxrS0MxQ3ZDLDRjQUtBLDJDRG9DYyxZQUFZLDZLQUFFLG1CQUFtQixvYkFBRSxjQUFjLDJSQUFhLFlBQVk7OzJGQUkzRSxtQkFBbUI7a0JBUi9CLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlCQUFpQixXQUVsQixDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxhQUMxRSxDQUFDLG9CQUFvQixFQUFFLENBQUMsbUJBQ2xCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7Rm9ybWx5Q29uZmlnLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybU9wdGlvbnMsIEZvcm1seU1vZHVsZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNZXNzYWdlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHtNZXNzYWdlc01vZHVsZX0gZnJvbSAncHJpbWVuZy9tZXNzYWdlcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlLCBMb2dnZXJTZXJ2aWNlLCBvYmplY3REZWVwQ29weX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7XG4gICAgQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnLFxuICAgIEVkaXRvckRlc2NyaXB0b3JJbnN0LFxuICAgIEZvcm1FZGl0b3JSZXNldEZvcm1Nb2RlbE9wdHMsXG4gICAgRm9ybUVkaXRvclN1Ym1pdEV2ZW50LFxuICAgIEZvcm1FdmVudFR5cGVFbnVtLFxuICAgIEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZSxcbiAgICBJRm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge2NyZWF0ZUZvcm1seUNvbmZpZ0Zyb21EZXNjcmlwdG9yfSBmcm9tICcuLi8uLi9oZWxwZXJzL2VkaXRvci1mb3JtbHknO1xuaW1wb3J0IHtnZXRGb3JtRWRpdG9ySW5mb01lc3NhZ2UsIGdldEZvcm1FZGl0b3JXYXJuaW5nTWVzc2FnZX0gZnJvbSAnLi4vLi4vaGVscGVycy9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHtGb3JtRWRpdG9yU2VydmljZSwgcHJvdmlkZUZvcm1Db21wb25lbnR9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tZWRpdG9yLnNlcnZpY2UnO1xuXG50eXBlIENvbW1vbnNGb3JtbHlGb3JtT3B0aW9uczxJdGVtPiA9IEZvcm1seUZvcm1PcHRpb25zICYge1xuICAgIGZvcm1TdGF0ZT86IHtcbiAgICAgICAgZGVzY3JpcHRvcj86IEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+O1xuICAgICAgICBhZGQ6IGJvb2xlYW47XG4gICAgICAgIGVkaXQ6IGJvb2xlYW47XG4gICAgICAgIGRpc2FibGVkOiBib29sZWFuO1xuICAgIH07XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm0tZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtGb3JtbHlNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1lc3NhZ2VzTW9kdWxlLCBBc3luY1BpcGUsIEJ1dHRvbk1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbcHJvdmlkZUZvcm1Db21wb25lbnQoKV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVkaXRvckNvbXBvbmVudDxJdGVtID0gYW55LCBQYXJlbnRJdGVtID0gYW55PiBpbXBsZW1lbnRzIElGb3JtRWRpdG9yQ29tcG9uZW50PEl0ZW0sIFBhcmVudEl0ZW0+LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtbHlDb25maWcgPSBpbmplY3QoRm9ybWx5Q29uZmlnKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zID0gaW5qZWN0KENvbW1vbnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdChMb2dnZXJTZXJ2aWNlKS5jcmVhdGUoJ0Zvcm1FZGl0b3JDb21wb25lbnQnKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtU2VydmljZSA9IGluamVjdChGb3JtRWRpdG9yU2VydmljZTxJdGVtLCBQYXJlbnRJdGVtPik7XG5cbiAgICBwdWJsaWMgZGVzY3JpcHRvciA9IGlucHV0LnJlcXVpcmVkPEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+PigpO1xuICAgIHB1YmxpYyBzdWJtaXRMb2FkaW5nID0gaW5wdXQoZmFsc2UpO1xuICAgIHB1YmxpYyBpdGVtID0gaW5wdXQ8SXRlbSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICBwdWJsaWMgaXNGb3JtRGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG5cbiAgICAvLyBldmVudCBvdXRwdXRzXG4gICAgcHVibGljIGZvcm1TdWJtaXQgPSBvdXRwdXQ8Rm9ybUVkaXRvclN1Ym1pdEV2ZW50PEl0ZW0+PigpO1xuXG4gICAgLy8gY29udGVudCBhbmQgdmlldyBxdWVyaWVzXG4gICAgcHVibGljIHN1Ym1pdEJ1dHRvbkVsZW1lbnRSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZiB8IHVuZGVmaW5lZD4oJ3N1Ym1pdEJ1dHRvbicpO1xuXG4gICAgLy8gZm9ybWx5IHNwZWNpZmljc1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9ybWx5T3B0aW9uczogQ29tbW9uc0Zvcm1seUZvcm1PcHRpb25zPEl0ZW0+ID0ge1xuICAgICAgICBmb3JtU3RhdGU6IHtcbiAgICAgICAgICAgIGFkZDogZmFsc2UsXG4gICAgICAgICAgICBlZGl0OiBmYWxzZSxcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZVxuICAgICAgICB9XG4gICAgfTtcbiAgICBwcml2YXRlIF9mb3JtbHlGaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTsgLy8gaW5pdGlhbGl6ZWQgaW4gbmdPbkluaXQsIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhZnRlclxuICAgIHByaXZhdGUgX2Zvcm1seUluaXRpYWxJdGVtID0ge307IC8vIGluaXRpYWxpemVkIGluIG5nT25Jbml0LCBzaG91bGQgbm90IGJlIGNoYW5nZWQgYWZ0ZXJcbiAgICBwcml2YXRlIGluaXRpYWxJdGVtSW5wdXQ6IEl0ZW0gfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgZm9ybU1lc3NhZ2VzID0gc2lnbmFsPE1lc3NhZ2VbXT4oW10pO1xuXG4gICAgZ2V0IHBhcmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVNlcnZpY2UucGFyZW50O1xuICAgIH1cblxuICAgIGdldCBmb3JtKCk6IEZvcm1Hcm91cDx7W0sgaW4ga2V5b2YgSXRlbV06IEFic3RyYWN0Q29udHJvbDxJdGVtW0tdPn0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm07XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1VbnNhZmUoKTogVW50eXBlZEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtO1xuICAgIH1cblxuICAgIGdldCBmb3JtbHlPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWx5T3B0aW9ucztcbiAgICB9XG5cbiAgICBnZXQgZm9ybWx5RmllbGRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWx5RmllbGRzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9ubHkgdXNlZCBmb3IgZm9ybSBpbml0aWFsaXphdGlvbi4gRnVydGhlciBjaGFuZ2VzIHNob3VsZCBiZSBkb25lIHVzaW5nIHtyZXNldEZvcm1Nb2RlbH0uXG4gICAgICovXG4gICAgZ2V0IGZvcm1seUluaXRpYWxJdGVtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWx5SW5pdGlhbEl0ZW07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuaW5pdCh0aGlzKTtcblxuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbSgpO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtICE9PSB0aGlzLmluaXRpYWxJdGVtSW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbmV3IGl0ZW0gaXMgZGlmZmVyZW50IGZyb20gdGhlIG9uZSB0aGUgZm9ybSB3YXMgaW5pdGlhbGl6ZWQgd2l0aC4gTXVzdCB0cmlnZ2VyIHJlc2V0IG9mIGZvcm0gbW9kZWwuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRGb3JtTW9kZWwoaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIHJlc2V0TW9kZWwgdXNlcyBzaWduYWwgbGlrZSBjb25jZXB0XG4gICAgICAgICAgICB7YWxsb3dTaWduYWxXcml0ZXM6IHRydWV9XG4gICAgICAgICk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlLmRpc2FibGVkID0gdGhpcy5pc0Zvcm1EaXNhYmxlZCgpIHx8IHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlLmRlc2NyaXB0b3I/LmRpc2FibGVkID09PSB0cnVlIHx8IHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlLmRldGFpbHM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gaW5pdCBmb3JtIHN0YXRlXG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IoKS50YWJsZXZpZXdFZGl0b3JUeXBlID09PSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5BZGQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlLmFkZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kZXNjcmlwdG9yKCkudGFibGV2aWV3RWRpdG9yVHlwZSA9PT0gVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uRWRpdCkge1xuICAgICAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGUuZWRpdCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kZXNjcmlwdG9yKCkudGFibGV2aWV3RWRpdG9yVHlwZSA9PT0gVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uRGV0YWlscykge1xuICAgICAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGUuZGV0YWlscyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGUuZGVzY3JpcHRvciA9IHRoaXMuZGVzY3JpcHRvcigpO1xuXG4gICAgICAgIC8vIGluaXQgZmllbGRzIGZvciBmb3JtbHlcbiAgICAgICAgdGhpcy5fZm9ybWx5RmllbGRzID0gY3JlYXRlRm9ybWx5Q29uZmlnRnJvbURlc2NyaXB0b3IodGhpcy5kZXNjcmlwdG9yKCksIHRoaXMuZm9ybWx5Q29uZmlnLCB0aGlzKTtcblxuICAgICAgICAvLyBpbnQgZm9ybSBtb2RlbCAob25seSBpbml0aWFsLCBubyBmdXJ0aGVyIGNoYW5nZXMgdG8gZm9ybU1vZGVsIHNob3VsZCBiZSBhbGxvd2VkISlcbiAgICAgICAgdGhpcy5pbml0aWFsSXRlbUlucHV0ID0gdGhpcy5pdGVtKCk7XG4gICAgICAgIHRoaXMuX2Zvcm1seUluaXRpYWxJdGVtID0gdGhpcy5nZXRGb3JtTW9kZWxGcm9tSXRlbSh0aGlzLml0ZW0oKSk7XG5cbiAgICAgICAgLy8gaGFuZGxlIGxvY2FsaXphdGlvbnMgZWRpdC9hZGQgbWVzc2FnZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IoKS5pc0xvY2FsaXplZCAmJlxuICAgICAgICAgICAgKHRoaXMuZGVzY3JpcHRvcigpLnRhYmxldmlld0VkaXRvclR5cGUgPT09IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkFkZCB8fCB0aGlzLmRlc2NyaXB0b3IoKS50YWJsZXZpZXdFZGl0b3JUeXBlID09PSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5FZGl0KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybU1lc3NhZ2VzLnNldChbXG4gICAgICAgICAgICAgICAgLi4udGhpcy5mb3JtTWVzc2FnZXMoKSxcbiAgICAgICAgICAgICAgICBnZXRGb3JtRWRpdG9ySW5mb01lc3NhZ2UodGhpcy50cmFuc2xhdGVTZXJ2aWNlLCAnbW5nRWRpdG9yLmxvY2FsaXphdGlvbnMuYWRkSW5EZWZhdWx0TGFuZ3VhZ2VUaXRsZScsICdtbmdFZGl0b3IubG9jYWxpemF0aW9ucy5hZGRJbkRlZmF1bHRMYW5ndWFnZURlc2NyaXB0aW9uJywge1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TGFuZ3VhZ2U6IHRoaXMuY29tbW9ucy5nZXREZWZhdWx0TG9jYWxlKClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlbWl0IGxpZmVjeWNsZSBldmVudFxuICAgICAgICB0aGlzLmRlc2NyaXB0b3IoKS5uZXh0RXZlbnQoRm9ybUV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCB0aGlzIGFzIElGb3JtRWRpdG9yQ29tcG9uZW50PGFueT4sIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0lOSVRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZm9ybS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSwgZGVib3VuY2VUaW1lKDI1MCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh2ID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvcigpLm5leHRFdmVudChGb3JtRXZlbnRUeXBlRW51bS5WYWx1ZUNoYW5nZSwgdGhpcyBhcyBJRm9ybUVkaXRvckNvbXBvbmVudDxhbnk+LCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgICAgICAgICAgZm9ybVZhbHVlOiAoKSA9PiB0aGlzLmdldEZvcm1WYWx1ZSgpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gbWFyayBmb3JtIGFzIHByaXN0aW5lLCBzaG91bGQgYmUgZG9uZSBpbiBuZXh0IGV2ZW50IGhvb2sgdG8gYWxsb3cgZm9ybWx5IHRvIGluaXRpYWxpemUgZmlyc3RcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gZW1pdCBsaWZlY3ljbGUgZXZlbnRcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yKCkubmV4dEV2ZW50KEZvcm1FdmVudFR5cGVFbnVtLkNvbXBvbmVudExpZmVjeWNsZSwgdGhpcyBhcyBJRm9ybUVkaXRvckNvbXBvbmVudDxhbnk+LCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9ERVNUUk9ZXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdWJtaXQoKSB7XG4gICAgICAgIHRoaXMuc3VibWl0QnV0dG9uRWxlbWVudFJlZigpPy5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHB1YmxpYyBvblN1Ym1pdChldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGUuc3VibWl0dGVkT24gPSBEYXRlLm5vdygpO1xuICAgICAgICB0aGlzLmZvcm1NZXNzYWdlcy5zZXQoW10pO1xuXG4gICAgICAgIGNvbnN0IGZvcm1TdWJtaXRJdGVtID0gdGhpcy5nZXRGb3JtVmFsdWUoKTtcbiAgICAgICAgaWYgKHRoaXMuX2Zvcm0udmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KHtcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZvcm1JdGVtOiBmb3JtU3VibWl0SXRlbVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IoKS5uZXh0RXZlbnQoRm9ybUV2ZW50VHlwZUVudW0uU3VibWl0LCB0aGlzIGFzIElGb3JtRWRpdG9yQ29tcG9uZW50PGFueT4sIHtcbiAgICAgICAgICAgICAgICBzdWJtaXRWYWxpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdWJtaXRWYWx1ZTogZm9ybVN1Ym1pdEl0ZW1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZmluZCBhbmQgbWFyayBpbnZhbGlkIHRhYnNcbiAgICAgICAgICAgIGNvbnN0IGZvcm1GaWVsZHMgPSB0aGlzLl9mb3JtbHlGaWVsZHM7XG4gICAgICAgICAgICBpZiAoZm9ybUZpZWxkc1swXS50eXBlID09PSAndGFicycgJiYgZm9ybUZpZWxkc1swXS5maWVsZEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0YWIgb2YgZm9ybUZpZWxkc1swXS5maWVsZEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlWyd0YWJfJyArICh0YWIuaWQgPyB0YWIuaWQgOiAodGFiLnByb3BzIGFzIENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZykucHJvcHMubGFiZWwpICsgJ19pbnZhbGlkJ10gPSB0aGlzLmlzQW55RmllbGRJbnZhbGlkKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiLmZpZWxkR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGV2ZW50OiBGb3JtRWRpdG9yU3VibWl0RXZlbnQ8SXRlbT4gPSB7c3VjY2VzczogZmFsc2UsIGZvcm1JdGVtOiBmb3JtU3VibWl0SXRlbX07XG4gICAgICAgICAgICBldmVudC5zdWNjZXNzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZvcm1NZXNzYWdlcygpLnB1c2goZ2V0Rm9ybUVkaXRvcldhcm5pbmdNZXNzYWdlKHRoaXMudHJhbnNsYXRlU2VydmljZSwgJ21uZ0VkaXRvci5pbnZhbGlkRm9ybVRvYXN0VGl0bGUnLCAnbW5nRWRpdG9yLmludmFsaWRGb3JtVG9hc3RNZXNzYWdlJykpO1xuXG4gICAgICAgICAgICB0aGlzLmZvcm1TdWJtaXQuZW1pdChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IoKS5uZXh0RXZlbnQoRm9ybUV2ZW50VHlwZUVudW0uU3VibWl0LCB0aGlzIGFzIElGb3JtRWRpdG9yQ29tcG9uZW50PGFueT4sIHtcbiAgICAgICAgICAgICAgICBzdWJtaXRWYWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc3VibWl0VmFsdWU6IGZvcm1TdWJtaXRJdGVtXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtVmFsdWUoKTogSXRlbSB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IG9iamVjdERlZXBDb3B5KHRoaXMuX2Zvcm0uZ2V0UmF3VmFsdWUoKSwge21hcEdldHRlcnNUb1Byb3BlcnRpZXM6IHRydWV9KTtcblxuICAgICAgICB0aGlzLmRlc2NyaXB0b3IoKS5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQgJiYgZmllbGQuc2V0dGVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BsaXRQYXRoID0gZmllbGQucHJvcGVydHkuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBsZXQgZmllbGRWYWx1ZSA9IGZvcm1WYWx1ZTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwbGl0UGF0aC5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFN1YlBhdGggPSBzcGxpdFBhdGhbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZmllbGRWYWx1ZVtjdXJyZW50U3ViUGF0aF0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFZhbHVlW2N1cnJlbnRTdWJQYXRoXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZmllbGRWYWx1ZSA9IGZpZWxkVmFsdWVbY3VycmVudFN1YlBhdGhdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWVsZFZhbHVlW3NwbGl0UGF0aFtzcGxpdFBhdGgubGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgICAgIGZpZWxkLnNldHRlcihmb3JtVmFsdWUsIGZpZWxkVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZm9ybVZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldEZvcm1Nb2RlbChpdGVtPzogSXRlbSwgb3B0cz86IEZvcm1FZGl0b3JSZXNldEZvcm1Nb2RlbE9wdHMpIHtcbiAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5yZXNldE1vZGVsPy4odGhpcy5nZXRGb3JtTW9kZWxGcm9tSXRlbShpdGVtKSk7XG5cbiAgICAgICAgaWYgKG9wdHM/Lm1hcmtBc1ByaXN0aW5lICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgLy8gbWFyayBmb3JtIGFzIHByaXN0aW5lLCBzaG91bGQgYmUgZG9uZSBpbiBuZXh0IGV2ZW50IGhvb2sgdG8gYWxsb3cgZm9ybWx5IHRvIGluaXRpYWxpemUgZmlyc3RcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpZWxkKGtleToga2V5b2YgSXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRGaWVsZFVuc2FmZShrZXkgYXMgc3RyaW5nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmllbGRVbnNhZmUoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZEZvcm1GaWVsZCh0aGlzLl9mb3JtLCBrZXkuc3BsaXQoJy4nKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZpZWxkVmFsdWU8UHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBJdGVtPihrZXk6IFByb3BlcnR5LCB2YWx1ZTogSXRlbVtQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0RmllbGRWYWx1ZVVuc2FmZShrZXkgYXMgc3RyaW5nLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZpZWxkVmFsdWVVbnNhZmUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0RmllbGRVbnNhZmUoa2V5KTtcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBWYWx1ZSB3YXMgbm90IHNldCwgYmVjYXVzZSBmaWVsZCAke2tleX0gd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBwYXRjaEZpZWxkVmFsdWU8UHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBJdGVtPihrZXk6IFByb3BlcnR5LCB2YWx1ZTogSXRlbVtQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF0Y2hGaWVsZFZhbHVlVW5zYWZlKGtleSBhcyBzdHJpbmcsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGF0Y2hGaWVsZFZhbHVlVW5zYWZlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldEZpZWxkVW5zYWZlKGtleSk7XG4gICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBWYWx1ZSB3YXMgbm90IHNldCwgYmVjYXVzZSBmaWVsZCAke2tleX0gd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZXNldEZpZWxkVmFsdWU8UHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBJdGVtPihrZXk6IFByb3BlcnR5LCB2YWx1ZT86IEl0ZW1bUHJvcGVydHldKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc2V0RmllbGRWYWx1ZVVuc2FmZShrZXkgYXMgc3RyaW5nLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0RmllbGRWYWx1ZVVuc2FmZShrZXk6IHN0cmluZywgdmFsdWU/OiBhbnkpIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0RmllbGRVbnNhZmUoa2V5KTtcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnRyb2wucmVzZXQodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBWYWx1ZSB3YXMgbm90IHNldCwgYmVjYXVzZSBmaWVsZCAke2tleX0gd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybU1vZGVsRnJvbUl0ZW0oaXRlbTogSXRlbSB8IHVuZGVmaW5lZCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGZvcm1Nb2RlbCA9IChvYmplY3REZWVwQ29weShpdGVtLCB7bWFwR2V0dGVyc1RvUHJvcGVydGllczogdHJ1ZX0pIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pID8/IHt9O1xuXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB0aGlzLmRlc2NyaXB0b3IoKTtcbiAgICAgICAgZGVzY3JpcHRvci5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuZ2V0dGVyICYmIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGxpdFBhdGggPSBmaWVsZC5wcm9wZXJ0eS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50T2JqZWN0ID0gZm9ybU1vZGVsO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdFBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFN1YlBhdGggPSBzcGxpdFBhdGhbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChpID09PSBzcGxpdFBhdGgubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE9iamVjdFtjdXJyZW50U3ViUGF0aF0gPSBmaWVsZC5nZXR0ZXIoaXRlbT8uW2ZpZWxkLnByb3BlcnR5IGFzIGtleW9mIG9iamVjdF0sIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50T2JqZWN0W2N1cnJlbnRTdWJQYXRoXSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50T2JqZWN0W2N1cnJlbnRTdWJQYXRoXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50T2JqZWN0ID0gY3VycmVudE9iamVjdFtjdXJyZW50U3ViUGF0aF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kRm9ybUZpZWxkKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwga2V5UGF0aDogc3RyaW5nW10pOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHtcbiAgICAgICAgaWYgKGtleVBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gY29udHJvbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5UGF0aC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBjb250cm9sLmdldChrZXlQYXRoWzBdKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbmV4dENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsO1xuICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgbmV4dENvbnRyb2wgPSBjb250cm9sLmdldChrZXlQYXRoWzBdKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSAra2V5UGF0aFswXTtcbiAgICAgICAgICAgIGlmICghaXNOYU4oaWR4KSkge1xuICAgICAgICAgICAgICAgIG5leHRDb250cm9sID0gY29udHJvbC5hdChpZHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5maW5kRm9ybUZpZWxkKG5leHRDb250cm9sISwga2V5UGF0aC5zbGljZSgxKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0FueUZpZWxkSW52YWxpZChmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXSk6IGJvb2xlYW4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgICAgICAgbGV0IGZpZWxkSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQuZmllbGRHcm91cCkpIHtcbiAgICAgICAgICAgICAgICBmaWVsZEludmFsaWQgPSB0aGlzLmlzQW55RmllbGRJbnZhbGlkKGZpZWxkLmZpZWxkR3JvdXApO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmllbGQudHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBmaWVsZEludmFsaWQgPSAhZmllbGQuZm9ybUNvbnRyb2w/LnZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpZWxkSW52YWxpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoJGV2ZW50KVwiPlxuICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCJmb3JtbHlGaWVsZHNcIiBbb3B0aW9uc109XCJmb3JtbHlPcHRpb25zXCIgW21vZGVsXT1cImZvcm1seUluaXRpYWxJdGVtXCI+PC9mb3JtbHktZm9ybT5cbiAgICA8YnV0dG9uICNzdWJtaXRCdXR0b24gcEJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJoaWRkZW5cIiBbZGlzYWJsZWRdPVwiZm9ybS5kaXNhYmxlZFwiIFtsb2FkaW5nXT1cInN1Ym1pdExvYWRpbmcoKVwiIGxvYWRpbmdJY29uPVwicGkgcGktc3BpbiBwaS1zcGlubmVyXCI+PC9idXR0b24+XG48L2Zvcm0+XG48cC1tZXNzYWdlcyBbdmFsdWVdPVwiZm9ybU1lc3NhZ2VzKClcIiBbZW5hYmxlU2VydmljZV09XCJmYWxzZVwiPjwvcC1tZXNzYWdlcz5cbiJdfQ==
|
|
315
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZm9ybS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZm9ybS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekssT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFrQixTQUFTLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUcsT0FBTyxFQUFDLFlBQVksRUFBcUIsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV6RSxPQUFPLEVBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRixPQUFPLEVBU0gsaUJBQWlC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QUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU8saUJBQWlCLENBQUMsU0FBOEIsRUFBRTtRQUN0RCxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVELENBQUM7aUJBQU0sSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQzNDLFlBQVksR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO1lBQzdDLENBQUM7WUFDRCxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNmLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs4R0EvVVEsbUJBQW1CO2tHQUFuQixtQkFBbUIsK29CQUhqQixDQUFDLG9CQUFvQixFQUFFLENBQUMsa0tDckN2Qyw0Y0FLQSwyQ0QrQmMsWUFBWSw2S0FBRSxtQkFBbUIsb2JBQUUsY0FBYywyUkFBYSxZQUFZOzsyRkFJM0UsbUJBQW1CO2tCQVIvQixTQUFTO2lDQUNNLElBQUksWUFDTixpQkFBaUIsV0FFbEIsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsYUFDMUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLG1CQUNsQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQsIHZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7Rm9ybWx5Q29uZmlnLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5TW9kdWxlfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01lc3NhZ2V9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7QnV0dG9uTW9kdWxlfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQge01lc3NhZ2VzTW9kdWxlfSBmcm9tICdwcmltZW5nL21lc3NhZ2VzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtDb21tb25zU2VydmljZSwgTG9nZ2VyU2VydmljZSwgb2JqZWN0RGVlcENvcHl9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge1xuICAgIENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZyxcbiAgICBDb21tb25zRm9ybWx5Rm9ybU9wdGlvbnMsXG4gICAgRWRpdG9yRGVzY3JpcHRvckluc3QsXG4gICAgRm9ybUVkaXRvclBhdGNoRmllbGRWYWx1ZU9wdHMsXG4gICAgRm9ybUVkaXRvclJlc2V0RmllbGRWYWx1ZU9wdHMsXG4gICAgRm9ybUVkaXRvclJlc2V0Rm9ybU1vZGVsT3B0cyxcbiAgICBGb3JtRWRpdG9yU2V0RmllbGRWYWx1ZU9wdHMsXG4gICAgRm9ybUVkaXRvclN1Ym1pdEV2ZW50LFxuICAgIEZvcm1FdmVudFR5cGVFbnVtLFxuICAgIEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZSxcbiAgICBJRm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge2NyZWF0ZUZvcm1seUNvbmZpZ0Zyb21EZXNjcmlwdG9yfSBmcm9tICcuLi8uLi9oZWxwZXJzL2VkaXRvci1mb3JtbHknO1xuaW1wb3J0IHtnZXRGb3JtRWRpdG9ySW5mb01lc3NhZ2UsIGdldEZvcm1FZGl0b3JXYXJuaW5nTWVzc2FnZX0gZnJvbSAnLi4vLi4vaGVscGVycy9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHtGb3JtRWRpdG9yU2VydmljZSwgcHJvdmlkZUZvcm1Db21wb25lbnR9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tZWRpdG9yLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm0tZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtGb3JtbHlNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1lc3NhZ2VzTW9kdWxlLCBBc3luY1BpcGUsIEJ1dHRvbk1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbcHJvdmlkZUZvcm1Db21wb25lbnQoKV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVkaXRvckNvbXBvbmVudDxJdGVtID0gYW55LCBQYXJlbnRJdGVtID0gYW55PiBpbXBsZW1lbnRzIElGb3JtRWRpdG9yQ29tcG9uZW50PEl0ZW0sIFBhcmVudEl0ZW0+LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtbHlDb25maWcgPSBpbmplY3QoRm9ybWx5Q29uZmlnKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zID0gaW5qZWN0KENvbW1vbnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdChMb2dnZXJTZXJ2aWNlKS5jcmVhdGUoJ0Zvcm1FZGl0b3JDb21wb25lbnQnKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtU2VydmljZSA9IGluamVjdChGb3JtRWRpdG9yU2VydmljZTxJdGVtLCBQYXJlbnRJdGVtPik7XG5cbiAgICBwdWJsaWMgZGVzY3JpcHRvciA9IGlucHV0LnJlcXVpcmVkPEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+PigpO1xuICAgIHB1YmxpYyBzdWJtaXRMb2FkaW5nID0gaW5wdXQoZmFsc2UpO1xuICAgIHB1YmxpYyBpdGVtID0gaW5wdXQ8SXRlbSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICBwdWJsaWMgaXNGb3JtRGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG5cbiAgICAvLyBldmVudCBvdXRwdXRzXG4gICAgcHVibGljIGZvcm1TdWJtaXQgPSBvdXRwdXQ8Rm9ybUVkaXRvclN1Ym1pdEV2ZW50PEl0ZW0+PigpO1xuXG4gICAgLy8gY29udGVudCBhbmQgdmlldyBxdWVyaWVzXG4gICAgcHVibGljIHN1Ym1pdEJ1dHRvbkVsZW1lbnRSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZiB8IHVuZGVmaW5lZD4oJ3N1Ym1pdEJ1dHRvbicpO1xuXG4gICAgLy8gZm9ybWx5IHNwZWNpZmljc1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9ybWx5U3RhdGVEaXNhYmxlZFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtbHlPcHRpb25zOiBDb21tb25zRm9ybWx5Rm9ybU9wdGlvbnM8SXRlbT4gPSB7XG4gICAgICAgIGZvcm1TdGF0ZToge1xuICAgICAgICAgICAgYWRkOiBmYWxzZSxcbiAgICAgICAgICAgIGVkaXQ6IGZhbHNlLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGlzYWJsZWQkOiB0aGlzLl9mb3JtbHlTdGF0ZURpc2FibGVkU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAgIH1cbiAgICB9O1xuICAgIHByaXZhdGUgX2Zvcm1seUZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdOyAvLyBpbml0aWFsaXplZCBpbiBuZ09uSW5pdCwgc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFmdGVyXG4gICAgcHJpdmF0ZSBfZm9ybWx5SW5pdGlhbEl0ZW0gPSB7fTsgLy8gaW5pdGlhbGl6ZWQgaW4gbmdPbkluaXQsIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhZnRlclxuICAgIHByaXZhdGUgaW5pdGlhbEl0ZW1JbnB1dDogSXRlbSB8IHVuZGVmaW5lZDtcblxuICAgIHB1YmxpYyBmb3JtTWVzc2FnZXMgPSBzaWduYWw8TWVzc2FnZVtdPihbXSk7XG5cbiAgICBnZXQgcGFyZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtU2VydmljZS5wYXJlbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm0oKTogRm9ybUdyb3VwPHtbSyBpbiBrZXlvZiBJdGVtXTogQWJzdHJhY3RDb250cm9sPEl0ZW1bS10+fT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybVVuc2FmZSgpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm07XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1seU9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtbHlPcHRpb25zO1xuICAgIH1cblxuICAgIGdldCBmb3JtbHlGaWVsZHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtbHlGaWVsZHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT25seSB1c2VkIGZvciBmb3JtIGluaXRpYWxpemF0aW9uLiBGdXJ0aGVyIGNoYW5nZXMgc2hvdWxkIGJlIGRvbmUgdXNpbmcge3Jlc2V0Rm9ybU1vZGVsfS5cbiAgICAgKi9cbiAgICBnZXQgZm9ybWx5SW5pdGlhbEl0ZW0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtbHlJbml0aWFsSXRlbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5pbml0KHRoaXMpO1xuXG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtKCk7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0gIT09IHRoaXMuaW5pdGlhbEl0ZW1JbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBuZXcgaXRlbSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIHRoZSBmb3JtIHdhcyBpbml0aWFsaXplZCB3aXRoLiBNdXN0IHRyaWdnZXIgcmVzZXQgb2YgZm9ybSBtb2RlbC5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldEZvcm1Nb2RlbChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gcmVzZXRNb2RlbCB1c2VzIHNpZ25hbCBsaWtlIGNvbmNlcHRcbiAgICAgICAgICAgIHthbGxvd1NpZ25hbFdyaXRlczogdHJ1ZX1cbiAgICAgICAgKTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGUuZGlzYWJsZWQgPSB0aGlzLmlzRm9ybURpc2FibGVkKCkgfHwgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGUuZGVzY3JpcHRvcj8uZGlzYWJsZWQgPT09IHRydWUgfHwgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGUuZGV0YWlscztcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZm9ybWx5U3RhdGVEaXNhYmxlZFN1YmplY3QubmV4dCh0aGlzLl9mb3JtbHlPcHRpb25zLmZvcm1TdGF0ZS5kaXNhYmxlZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBpbml0IGZvcm0gc3RhdGVcbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvcigpLnRhYmxldmlld0VkaXRvclR5cGUgPT09IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkFkZCkge1xuICAgICAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGUuYWRkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRlc2NyaXB0b3IoKS50YWJsZXZpZXdFZGl0b3JUeXBlID09PSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5FZGl0KSB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtbHlPcHRpb25zLmZvcm1TdGF0ZS5lZGl0ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRlc2NyaXB0b3IoKS50YWJsZXZpZXdFZGl0b3JUeXBlID09PSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5EZXRhaWxzKSB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtbHlPcHRpb25zLmZvcm1TdGF0ZS5kZXRhaWxzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mb3JtbHlPcHRpb25zLmZvcm1TdGF0ZS5kZXNjcmlwdG9yID0gdGhpcy5kZXNjcmlwdG9yKCk7XG5cbiAgICAgICAgLy8gaW5pdCBmaWVsZHMgZm9yIGZvcm1seVxuICAgICAgICB0aGlzLl9mb3JtbHlGaWVsZHMgPSBjcmVhdGVGb3JtbHlDb25maWdGcm9tRGVzY3JpcHRvcih0aGlzLmRlc2NyaXB0b3IoKSwgdGhpcy5mb3JtbHlDb25maWcsIHRoaXMpO1xuXG4gICAgICAgIC8vIGludCBmb3JtIG1vZGVsIChvbmx5IGluaXRpYWwsIG5vIGZ1cnRoZXIgY2hhbmdlcyB0byBmb3JtTW9kZWwgc2hvdWxkIGJlIGFsbG93ZWQhKVxuICAgICAgICB0aGlzLmluaXRpYWxJdGVtSW5wdXQgPSB0aGlzLml0ZW0oKTtcbiAgICAgICAgdGhpcy5fZm9ybWx5SW5pdGlhbEl0ZW0gPSB0aGlzLmdldEZvcm1Nb2RlbEZyb21JdGVtKHRoaXMuaXRlbSgpKTtcblxuICAgICAgICAvLyBoYW5kbGUgbG9jYWxpemF0aW9ucyBlZGl0L2FkZCBtZXNzYWdlXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvcigpLmlzTG9jYWxpemVkICYmXG4gICAgICAgICAgICAodGhpcy5kZXNjcmlwdG9yKCkudGFibGV2aWV3RWRpdG9yVHlwZSA9PT0gVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uQWRkIHx8IHRoaXMuZGVzY3JpcHRvcigpLnRhYmxldmlld0VkaXRvclR5cGUgPT09IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkVkaXQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5mb3JtTWVzc2FnZXMuc2V0KFtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmZvcm1NZXNzYWdlcygpLFxuICAgICAgICAgICAgICAgIGdldEZvcm1FZGl0b3JJbmZvTWVzc2FnZSh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UsICdtbmdFZGl0b3IubG9jYWxpemF0aW9ucy5hZGRJbkRlZmF1bHRMYW5ndWFnZVRpdGxlJywgJ21uZ0VkaXRvci5sb2NhbGl6YXRpb25zLmFkZEluRGVmYXVsdExhbmd1YWdlRGVzY3JpcHRpb24nLCB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMYW5ndWFnZTogdGhpcy5jb21tb25zLmdldERlZmF1bHRMb2NhbGUoKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvcigpLm5leHRFdmVudChGb3JtRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIHRoaXMgYXMgSUZvcm1FZGl0b3JDb21wb25lbnQ8YW55Piwge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBGb3JtRmllbGRFdmVudENvbXBvbmVudFN1YnR5cGUuT05fSU5JVFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLCBkZWJvdW5jZVRpbWUoMjUwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdG9yKCkubmV4dEV2ZW50KEZvcm1FdmVudFR5cGVFbnVtLlZhbHVlQ2hhbmdlLCB0aGlzIGFzIElGb3JtRWRpdG9yQ29tcG9uZW50PGFueT4sIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgICAgICAgICBmb3JtVmFsdWU6ICgpID0+IHRoaXMuZ2V0Rm9ybVZhbHVlKClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBtYXJrIGZvcm0gYXMgcHJpc3RpbmUsIHNob3VsZCBiZSBkb25lIGluIG5leHQgZXZlbnQgaG9vayB0byBhbGxvdyBmb3JtbHkgdG8gaW5pdGlhbGl6ZSBmaXJzdFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBlbWl0IGxpZmVjeWNsZSBldmVudFxuICAgICAgICB0aGlzLmRlc2NyaXB0b3IoKS5uZXh0RXZlbnQoRm9ybUV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCB0aGlzIGFzIElGb3JtRWRpdG9yQ29tcG9uZW50PGFueT4sIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0RFU1RST1lcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN1Ym1pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXRCdXR0b25FbGVtZW50UmVmKCk/Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHVibGljIG9uU3VibWl0KGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLl9mb3JtbHlPcHRpb25zLmZvcm1TdGF0ZS5zdWJtaXR0ZWRPbiA9IERhdGUubm93KCk7XG4gICAgICAgIHRoaXMuZm9ybU1lc3NhZ2VzLnNldChbXSk7XG5cbiAgICAgICAgY29uc3QgZm9ybVN1Ym1pdEl0ZW0gPSB0aGlzLmdldEZvcm1WYWx1ZSgpO1xuICAgICAgICBpZiAodGhpcy5fZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtU3VibWl0LmVtaXQoe1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgZm9ybUl0ZW06IGZvcm1TdWJtaXRJdGVtXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvcigpLm5leHRFdmVudChGb3JtRXZlbnRUeXBlRW51bS5TdWJtaXQsIHRoaXMgYXMgSUZvcm1FZGl0b3JDb21wb25lbnQ8YW55Piwge1xuICAgICAgICAgICAgICAgIHN1Ym1pdFZhbGlkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN1Ym1pdFZhbHVlOiBmb3JtU3VibWl0SXRlbVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBmaW5kIGFuZCBtYXJrIGludmFsaWQgdGFic1xuICAgICAgICAgICAgY29uc3QgZm9ybUZpZWxkcyA9IHRoaXMuX2Zvcm1seUZpZWxkcztcbiAgICAgICAgICAgIGlmIChmb3JtRmllbGRzWzBdLnR5cGUgPT09ICd0YWJzJyAmJiBmb3JtRmllbGRzWzBdLmZpZWxkR3JvdXApIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRhYiBvZiBmb3JtRmllbGRzWzBdLmZpZWxkR3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGVbJ3RhYl8nICsgKHRhYi5pZCA/IHRhYi5pZCA6ICh0YWIucHJvcHMgYXMgQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnKS5wcm9wcy5sYWJlbCkgKyAnX2ludmFsaWQnXSA9IHRoaXMuaXNBbnlGaWVsZEludmFsaWQoXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWIuZmllbGRHcm91cFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZXZlbnQ6IEZvcm1FZGl0b3JTdWJtaXRFdmVudDxJdGVtPiA9IHtzdWNjZXNzOiBmYWxzZSwgZm9ybUl0ZW06IGZvcm1TdWJtaXRJdGVtfTtcbiAgICAgICAgICAgIGV2ZW50LnN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZm9ybU1lc3NhZ2VzKCkucHVzaChnZXRGb3JtRWRpdG9yV2FybmluZ01lc3NhZ2UodGhpcy50cmFuc2xhdGVTZXJ2aWNlLCAnbW5nRWRpdG9yLmludmFsaWRGb3JtVG9hc3RUaXRsZScsICdtbmdFZGl0b3IuaW52YWxpZEZvcm1Ub2FzdE1lc3NhZ2UnKSk7XG5cbiAgICAgICAgICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvcigpLm5leHRFdmVudChGb3JtRXZlbnRUeXBlRW51bS5TdWJtaXQsIHRoaXMgYXMgSUZvcm1FZGl0b3JDb21wb25lbnQ8YW55Piwge1xuICAgICAgICAgICAgICAgIHN1Ym1pdFZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBzdWJtaXRWYWx1ZTogZm9ybVN1Ym1pdEl0ZW1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZvcm1WYWx1ZSgpOiBJdGVtIHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gb2JqZWN0RGVlcENvcHkodGhpcy5fZm9ybS5nZXRSYXdWYWx1ZSgpLCB7bWFwR2V0dGVyc1RvUHJvcGVydGllczogdHJ1ZX0pO1xuXG4gICAgICAgIHRoaXMuZGVzY3JpcHRvcigpLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGlmIChmaWVsZCAmJiBmaWVsZC5zZXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGxpdFBhdGggPSBmaWVsZC5wcm9wZXJ0eS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGxldCBmaWVsZFZhbHVlID0gZm9ybVZhbHVlO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQYXRoLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U3ViUGF0aCA9IHNwbGl0UGF0aFtpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmaWVsZFZhbHVlW2N1cnJlbnRTdWJQYXRoXSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVmFsdWVbY3VycmVudFN1YlBhdGhdID0ge307XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBmaWVsZFZhbHVlID0gZmllbGRWYWx1ZVtjdXJyZW50U3ViUGF0aF07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZmllbGRWYWx1ZSA9IGZpZWxkVmFsdWVbc3BsaXRQYXRoW3NwbGl0UGF0aC5sZW5ndGggLSAxXV07XG4gICAgICAgICAgICAgICAgZmllbGQuc2V0dGVyKGZvcm1WYWx1ZSwgZmllbGRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmb3JtVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0Rm9ybU1vZGVsKGl0ZW0/OiBJdGVtLCBvcHRzPzogRm9ybUVkaXRvclJlc2V0Rm9ybU1vZGVsT3B0cykge1xuICAgICAgICB0aGlzLl9mb3JtbHlPcHRpb25zLnJlc2V0TW9kZWw/Lih0aGlzLmdldEZvcm1Nb2RlbEZyb21JdGVtKGl0ZW0pKTtcblxuICAgICAgICBpZiAob3B0cz8ubWFya0FzUHJpc3RpbmUgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAvLyBtYXJrIGZvcm0gYXMgcHJpc3RpbmUsIHNob3VsZCBiZSBkb25lIGluIG5leHQgZXZlbnQgaG9vayB0byBhbGxvdyBmb3JtbHkgdG8gaW5pdGlhbGl6ZSBmaXJzdFxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZm9ybS5tYXJrQXNQcmlzdGluZSh7b25seVNlbGY6IG9wdHM/Lm9ubHlTZWxmfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaWVsZChrZXk6IGtleW9mIEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmllbGRVbnNhZmUoa2V5IGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpZWxkVW5zYWZlKGtleTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRGb3JtRmllbGQodGhpcy5fZm9ybSwga2V5LnNwbGl0KCcuJykpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRGaWVsZFZhbHVlPFByb3BlcnR5IGV4dGVuZHMga2V5b2YgSXRlbT4oa2V5OiBQcm9wZXJ0eSwgdmFsdWU6IEl0ZW1bUHJvcGVydHldLCBvcHRzPzogRm9ybUVkaXRvclNldEZpZWxkVmFsdWVPcHRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldEZpZWxkVmFsdWVVbnNhZmUoa2V5IGFzIHN0cmluZywgdmFsdWUsIG9wdHMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRGaWVsZFZhbHVlVW5zYWZlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCBvcHRzPzogRm9ybUVkaXRvclNldEZpZWxkVmFsdWVPcHRzKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldEZpZWxkVW5zYWZlKGtleSk7XG4gICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHZhbHVlLCBvcHRzKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybihgVmFsdWUgd2FzIG5vdCBzZXQsIGJlY2F1c2UgZmllbGQgJHtrZXl9IHdhcyBub3QgZm91bmQuYCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcGF0Y2hGaWVsZFZhbHVlPFByb3BlcnR5IGV4dGVuZHMga2V5b2YgSXRlbT4oa2V5OiBQcm9wZXJ0eSwgdmFsdWU6IEl0ZW1bUHJvcGVydHldLCBvcHRzPzogRm9ybUVkaXRvclBhdGNoRmllbGRWYWx1ZU9wdHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF0Y2hGaWVsZFZhbHVlVW5zYWZlKGtleSBhcyBzdHJpbmcsIHZhbHVlLCBvcHRzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGF0Y2hGaWVsZFZhbHVlVW5zYWZlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCBvcHRzPzogRm9ybUVkaXRvclBhdGNoRmllbGRWYWx1ZU9wdHMpIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0RmllbGRVbnNhZmUoa2V5KTtcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSwgb3B0cyk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYFZhbHVlIHdhcyBub3Qgc2V0LCBiZWNhdXNlIGZpZWxkICR7a2V5fSB3YXMgbm90IGZvdW5kLmApO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0RmllbGRWYWx1ZTxQcm9wZXJ0eSBleHRlbmRzIGtleW9mIEl0ZW0+KGtleTogUHJvcGVydHksIHZhbHVlPzogSXRlbVtQcm9wZXJ0eV0sIG9wdHM/OiBGb3JtRWRpdG9yUmVzZXRGaWVsZFZhbHVlT3B0cykge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNldEZpZWxkVmFsdWVVbnNhZmUoa2V5IGFzIHN0cmluZywgdmFsdWUsIG9wdHMpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldEZpZWxkVmFsdWVVbnNhZmUoa2V5OiBzdHJpbmcsIHZhbHVlPzogYW55LCBvcHRzPzogRm9ybUVkaXRvclJlc2V0RmllbGRWYWx1ZU9wdHMpIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0RmllbGRVbnNhZmUoa2V5KTtcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnRyb2wucmVzZXQodmFsdWUsIG9wdHMpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBWYWx1ZSB3YXMgbm90IHNldCwgYmVjYXVzZSBmaWVsZCAke2tleX0gd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybU1vZGVsRnJvbUl0ZW0oaXRlbTogSXRlbSB8IHVuZGVmaW5lZCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGZvcm1Nb2RlbCA9IChvYmplY3REZWVwQ29weShpdGVtLCB7bWFwR2V0dGVyc1RvUHJvcGVydGllczogdHJ1ZX0pIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pID8/IHt9O1xuXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB0aGlzLmRlc2NyaXB0b3IoKTtcbiAgICAgICAgZGVzY3JpcHRvci5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuZ2V0dGVyICYmIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGxpdFBhdGggPSBmaWVsZC5wcm9wZXJ0eS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50T2JqZWN0ID0gZm9ybU1vZGVsO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdFBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFN1YlBhdGggPSBzcGxpdFBhdGhbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChpID09PSBzcGxpdFBhdGgubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE9iamVjdFtjdXJyZW50U3ViUGF0aF0gPSBmaWVsZC5nZXR0ZXIoaXRlbT8uW2ZpZWxkLnByb3BlcnR5IGFzIGtleW9mIG9iamVjdF0sIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50T2JqZWN0W2N1cnJlbnRTdWJQYXRoXSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50T2JqZWN0W2N1cnJlbnRTdWJQYXRoXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50T2JqZWN0ID0gY3VycmVudE9iamVjdFtjdXJyZW50U3ViUGF0aF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kRm9ybUZpZWxkKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwga2V5UGF0aDogc3RyaW5nW10pOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHtcbiAgICAgICAgaWYgKGtleVBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gY29udHJvbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5UGF0aC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBjb250cm9sLmdldChrZXlQYXRoWzBdKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbmV4dENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsO1xuICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgbmV4dENvbnRyb2wgPSBjb250cm9sLmdldChrZXlQYXRoWzBdKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSAra2V5UGF0aFswXTtcbiAgICAgICAgICAgIGlmICghaXNOYU4oaWR4KSkge1xuICAgICAgICAgICAgICAgIG5leHRDb250cm9sID0gY29udHJvbC5hdChpZHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5maW5kRm9ybUZpZWxkKG5leHRDb250cm9sISwga2V5UGF0aC5zbGljZSgxKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0FueUZpZWxkSW52YWxpZChmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXSk6IGJvb2xlYW4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgICAgICAgbGV0IGZpZWxkSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQuZmllbGRHcm91cCkpIHtcbiAgICAgICAgICAgICAgICBmaWVsZEludmFsaWQgPSB0aGlzLmlzQW55RmllbGRJbnZhbGlkKGZpZWxkLmZpZWxkR3JvdXApO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmllbGQudHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBmaWVsZEludmFsaWQgPSAhZmllbGQuZm9ybUNvbnRyb2w/LnZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpZWxkSW52YWxpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoJGV2ZW50KVwiPlxuICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCJmb3JtbHlGaWVsZHNcIiBbb3B0aW9uc109XCJmb3JtbHlPcHRpb25zXCIgW21vZGVsXT1cImZvcm1seUluaXRpYWxJdGVtXCI+PC9mb3JtbHktZm9ybT5cbiAgICA8YnV0dG9uICNzdWJtaXRCdXR0b24gcEJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJoaWRkZW5cIiBbZGlzYWJsZWRdPVwiZm9ybS5kaXNhYmxlZFwiIFtsb2FkaW5nXT1cInN1Ym1pdExvYWRpbmcoKVwiIGxvYWRpbmdJY29uPVwicGkgcGktc3BpbiBwaS1zcGlubmVyXCI+PC9idXR0b24+XG48L2Zvcm0+XG48cC1tZXNzYWdlcyBbdmFsdWVdPVwiZm9ybU1lc3NhZ2VzKClcIiBbZW5hYmxlU2VydmljZV09XCJmYWxzZVwiPjwvcC1tZXNzYWdlcz5cbiJdfQ==
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
import { JsonPipe } from '@angular/common';
|
|
2
2
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
-
import { FieldType } from '@ngx-formly/core';
|
|
4
3
|
import { TranslateModule } from '@ngx-translate/core';
|
|
5
4
|
import { ButtonModule } from 'primeng/button';
|
|
6
5
|
import { MessageModule } from 'primeng/message';
|
|
7
6
|
import { RippleModule } from 'primeng/ripple';
|
|
8
7
|
import { TooltipModule } from 'primeng/tooltip';
|
|
9
8
|
import { isObservable } from 'rxjs';
|
|
9
|
+
import { ACommonsFormlyFieldType } from '../formly-field-type.abstract.component';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
import * as i1 from "primeng/button";
|
|
12
12
|
import * as i2 from "primeng/ripple";
|
|
13
13
|
import * as i3 from "@ngx-translate/core";
|
|
14
14
|
import * as i4 from "primeng/tooltip";
|
|
15
15
|
import * as i5 from "primeng/message";
|
|
16
|
-
export class FormlyFieldActionComponent extends
|
|
16
|
+
export class FormlyFieldActionComponent extends ACommonsFormlyFieldType {
|
|
17
17
|
constructor() {
|
|
18
18
|
super(...arguments);
|
|
19
19
|
this.buttonClass = 'p-button-primary';
|
|
20
20
|
}
|
|
21
21
|
ngOnInit() {
|
|
22
|
-
|
|
23
|
-
this.props.fieldComponent = this;
|
|
22
|
+
super.ngOnInit();
|
|
24
23
|
this.buttonClass = this.descriptor.button.styleClass.build();
|
|
25
24
|
}
|
|
26
25
|
ngOnDestroy() {
|
|
@@ -55,11 +54,11 @@ export class FormlyFieldActionComponent extends FieldType {
|
|
|
55
54
|
this.actionMessage = res.message;
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
59
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FormlyFieldActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: FormlyFieldActionComponent, 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", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { 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 }); }
|
|
60
59
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FormlyFieldActionComponent, decorators: [{
|
|
62
61
|
type: Component,
|
|
63
62
|
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" }]
|
|
64
63
|
}] });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2VkaXRvci9jb21wb25lbnRzL2Zvcm1seS9maWVsZHMvZm9ybWx5LWZpZWxkLWFjdGlvbi9mb3JtbHktZmllbGQtYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtYWN0aW9uL2Zvcm1seS1maWVsZC1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBR3BGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFlLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUloRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7OztBQVNoRixNQUFNLE9BQU8sMEJBQXdDLFNBQVEsdUJBQThFO0lBUDNJOztRQVFXLGdCQUFXLEdBQUcsa0JBQWtCLENBQUM7S0ErQzNDO0lBekNZLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUUvQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUF3RDtZQUN4RixNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQWdDO2dCQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQThFO2dCQUN6RixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ3BCO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0UsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLEdBQXNCO1FBQ3hDLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDOzhHQS9DUSwwQkFBMEI7a0dBQTFCLDBCQUEwQiwwR0N0QnZDLHFvQkFlQSwyQ0RJYyxZQUFZLDRPQUFFLFlBQVksNkZBQUUsZUFBZSwyRkFBRSxhQUFhLHFYQUFZLGFBQWE7OzJGQUdwRiwwQkFBMEI7a0JBUHRDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLHlCQUF5QixXQUUxQixDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLG1CQUM3RSx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtKc29uUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7TWVzc2FnZU1vZHVsZX0gZnJvbSAncHJpbWVuZy9tZXNzYWdlJztcbmltcG9ydCB7UmlwcGxlTW9kdWxlfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbiwgaXNPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtGaWVsZEFjdGlvbkRlc2NyaXB0b3IsIEZpZWxkQWN0aW9uUmVzdWx0LCBGaWVsZEFjdGlvblJlc3VsdE1lc3NhZ2UsIElGb3JtRWRpdG9yQ29tcG9uZW50fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge0FDb21tb25zRm9ybWx5RmllbGRUeXBlfSBmcm9tICcuLi9mb3JtbHktZmllbGQtdHlwZS5hYnN0cmFjdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm1seS1maWVsZC1hY3Rpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtbHktZmllbGQtYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbQnV0dG9uTW9kdWxlLCBSaXBwbGVNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgVG9vbHRpcE1vZHVsZSwgSnNvblBpcGUsIE1lc3NhZ2VNb2R1bGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkQWN0aW9uQ29tcG9uZW50PEVkaXRvck1vZGVsPiBleHRlbmRzIEFDb21tb25zRm9ybWx5RmllbGRUeXBlPHZvaWQsIEVkaXRvck1vZGVsLCBGaWVsZEFjdGlvbkRlc2NyaXB0b3I8RWRpdG9yTW9kZWw+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgYnV0dG9uQ2xhc3MgPSAncC1idXR0b24tcHJpbWFyeSc7XG5cbiAgICBwdWJsaWMgYWN0aW9uTWVzc2FnZT86IEZpZWxkQWN0aW9uUmVzdWx0TWVzc2FnZTtcblxuICAgIHByaXZhdGUgcmVzdWx0U3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgdGhpcy5idXR0b25DbGFzcyA9IHRoaXMuZGVzY3JpcHRvci5idXR0b24uc3R5bGVDbGFzcy5idWlsZCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnJlc3VsdFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLmFjdGlvbk1lc3NhZ2UgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5kZXNjcmlwdG9yLnJ1bkZ1bmN0aW9uPy4oe1xuICAgICAgICAgICAgZGVzY3JpcHRvcjogdGhpcy5kZXNjcmlwdG9yLFxuICAgICAgICAgICAgZm9ybUVkaXRvckNvbXBvbmVudDogdGhpcy5wcm9wcy5mb3JtRWRpdG9yQ29tcG9uZW50IGFzIElGb3JtRWRpdG9yQ29tcG9uZW50PEVkaXRvck1vZGVsPixcbiAgICAgICAgICAgIGZvcm1seToge1xuICAgICAgICAgICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsLFxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sOiB0aGlzLmZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sPHZvaWQ+LFxuICAgICAgICAgICAgICAgIGZvcm06IHRoaXMuZm9ybSBhcyBGb3JtR3JvdXA8e1tLIGluIGtleW9mIEVkaXRvck1vZGVsXTogQWJzdHJhY3RDb250cm9sPEVkaXRvck1vZGVsW0tdPn0+LFxuICAgICAgICAgICAgICAgIGZvcm1TdGF0ZTogdGhpcy5mb3JtU3RhdGUsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIHByb3BzOiB0aGlzLnByb3BzXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIGlmIChpc09ic2VydmFibGUocmVzdWx0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0U3Vic2NyaXB0aW9uID0gcmVzdWx0LnN1YnNjcmliZShyZXMgPT4gdGhpcy5wcm9jZXNzUmVzdWx0KHJlcykpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NSZXN1bHQocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1Jlc3VsdChyZXM6IEZpZWxkQWN0aW9uUmVzdWx0KSB7XG4gICAgICAgIGlmIChyZXMubWVzc2FnZSkge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25NZXNzYWdlID0gcmVzLm1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHBCdXR0b25cbiAgICAgICAgcFJpcHBsZVxuICAgICAgICBbaWNvbl09XCIkYW55KGRlc2NyaXB0b3IuYnV0dG9uLmljb24pXCJcbiAgICAgICAgW2xhYmVsXT1cIiRhbnkoZGVzY3JpcHRvci5idXR0b24ubGFiZWwgPT09IG51bGwgPyBudWxsIDogZGVzY3JpcHRvci5idXR0b24ubGFiZWwgPz8gcHJvcHMhLmxhYmVsKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtwVG9vbHRpcF09XCIkYW55KGRlc2NyaXB0b3IuYnV0dG9uLnRvb2x0aXApIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1Db250cm9sLmRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAgIFtjbGFzc109XCJidXR0b25DbGFzcyArIChhY3Rpb25NZXNzYWdlID8gJyBtci0yJyA6ICcnKVwiPjwvYnV0dG9uPlxuICAgIEBpZiAoYWN0aW9uTWVzc2FnZSkge1xuICAgICAgICA8cC1tZXNzYWdlIFt0ZXh0XT1cImFjdGlvbk1lc3NhZ2UuY29udGVudFwiIFtzZXZlcml0eV09XCJhY3Rpb25NZXNzYWdlLnNldmVyaXR5ID8/ICdzdWNjZXNzJ1wiPjwvcC1tZXNzYWdlPlxuICAgIH1cbjwvZGl2PlxuIl19
|
|
@@ -1,29 +1,27 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, DestroyRef, inject } from '@angular/core';
|
|
2
2
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
3
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import {
|
|
4
|
+
import { FormlyModule } from '@ngx-formly/core';
|
|
5
5
|
import { distinctUntilChanged } from 'rxjs';
|
|
6
6
|
import { startWith } from 'rxjs/operators';
|
|
7
7
|
import { AutocompleteComponent } from '@mediusinc/mng-commons/form';
|
|
8
8
|
import { FormFieldEventComponentSubtype, FormFieldEventTypeEnum } from '@mediusinc/mng-commons/tableview/api';
|
|
9
|
+
import { ACommonsFormlyFieldType } from '../formly-field-type.abstract.component';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "@angular/forms";
|
|
11
12
|
import * as i2 from "@ngx-formly/core";
|
|
12
|
-
export class FormlyFieldAutocompleteComponent extends
|
|
13
|
+
export class FormlyFieldAutocompleteComponent extends ACommonsFormlyFieldType {
|
|
13
14
|
constructor() {
|
|
14
15
|
super(...arguments);
|
|
15
16
|
this.destroyRef = inject(DestroyRef);
|
|
16
|
-
this.subscriptions = [];
|
|
17
17
|
}
|
|
18
18
|
ngOnInit() {
|
|
19
|
-
|
|
20
|
-
this.descriptor = this.props.descriptor;
|
|
21
|
-
this.props.fieldComponent = this;
|
|
19
|
+
super.ngOnInit();
|
|
22
20
|
// emit lifecycle event
|
|
23
21
|
this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, this, {
|
|
24
22
|
eventSubtype: FormFieldEventComponentSubtype.ON_INIT
|
|
25
23
|
});
|
|
26
|
-
this.
|
|
24
|
+
this.formControl.valueChanges.pipe(startWith(this.formControl.value), distinctUntilChanged(), takeUntilDestroyed(this.destroyRef)).subscribe(v => {
|
|
27
25
|
this.descriptor.nextEvent(FormFieldEventTypeEnum.ValueChange, this, {
|
|
28
26
|
value: v
|
|
29
27
|
});
|
|
@@ -41,11 +39,11 @@ export class FormlyFieldAutocompleteComponent extends FieldType {
|
|
|
41
39
|
eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY
|
|
42
40
|
});
|
|
43
41
|
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FormlyFieldAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: FormlyFieldAutocompleteComponent, isStandalone: true, selector: "mng-formly-field-autocomplete", usesInheritance: true, ngImport: i0, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"$any(formControl)\"\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: AutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "optionsTrackProperty", "optionsValueProperty", "optionsLabelProperty", "optionsLabelTranslate", "inlineSearch", "openOnFocus", "multiselect", "placeholder", "className", "dropdownClassName", "showClear", "autoClear", "selectFirst", "searchTrim", "disabled"], outputs: ["valueChange", "blur"] }, { 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 }); }
|
|
46
44
|
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FormlyFieldAutocompleteComponent, decorators: [{
|
|
48
46
|
type: Component,
|
|
49
|
-
args: [{ standalone: true, selector: 'mng-formly-field-autocomplete', imports: [AutocompleteComponent, ReactiveFormsModule, FormlyModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"
|
|
47
|
+
args: [{ standalone: true, selector: 'mng-formly-field-autocomplete', imports: [AutocompleteComponent, ReactiveFormsModule, FormlyModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"$any(formControl)\"\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" }]
|
|
50
48
|
}] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2VkaXRvci9jb21wb25lbnRzL2Zvcm1seS9maWVsZHMvZm9ybWx5LWZpZWxkLWF1dG9jb21wbGV0ZS9mb3JtbHktZmllbGQtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtYXV0b2NvbXBsZXRlL2Zvcm1seS1maWVsZC1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUF3Qiw4QkFBOEIsRUFBRSxzQkFBc0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRW5JLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOzs7O0FBU2hGLE1BQU0sT0FBTyxnQ0FBd0MsU0FBUSx1QkFBNEQ7SUFQekg7O1FBUXFCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0ErQnBEO0lBN0JtQixRQUFRO1FBQ3BCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQix1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxFQUFFO1lBQ3ZFLFlBQVksRUFBRSw4QkFBOEIsQ0FBQyxPQUFPO1NBQ3ZELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3SSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUNoRSxLQUFLLEVBQUUsQ0FBQzthQUNYLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRTtZQUN2RSxZQUFZLEVBQUUsOEJBQThCLENBQUMsWUFBWTtTQUM1RCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNkLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7WUFDeEUsWUFBWSxFQUFFLDhCQUE4QixDQUFDLFVBQVU7U0FDMUQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0EvQlEsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsZ0hDcEI3Qyx5dEJBZUEsNENERWMscUJBQXFCLDJYQUFFLG1CQUFtQix5VEFBRSxZQUFZOzsyRkFHekQsZ0NBQWdDO2tCQVA1QyxTQUFTO2lDQUNNLElBQUksWUFDTiwrQkFBK0IsV0FFaEMsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLENBQUMsbUJBQ2xELHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0Zvcm1seU1vZHVsZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7QXV0b2NvbXBsZXRlQ29tcG9uZW50fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0nO1xuaW1wb3J0IHtGaWVsZExvb2t1cERlc2NyaXB0b3IsIEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZSwgRm9ybUZpZWxkRXZlbnRUeXBlRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuaW1wb3J0IHtBQ29tbW9uc0Zvcm1seUZpZWxkVHlwZX0gZnJvbSAnLi4vZm9ybWx5LWZpZWxkLXR5cGUuYWJzdHJhY3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy1mb3JtbHktZmllbGQtYXV0b2NvbXBsZXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LWZpZWxkLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW0F1dG9jb21wbGV0ZUNvbXBvbmVudCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybWx5TW9kdWxlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlGaWVsZEF1dG9jb21wbGV0ZUNvbXBvbmVudDxULCBFVD4gZXh0ZW5kcyBBQ29tbW9uc0Zvcm1seUZpZWxkVHlwZTxULCBFVCwgRmllbGRMb29rdXBEZXNjcmlwdG9yPFQsIEVUPj4gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0lOSVRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtQ29udHJvbC52YWx1ZSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUodiA9PiB7XG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IubmV4dEV2ZW50KEZvcm1GaWVsZEV2ZW50VHlwZUVudW0uVmFsdWVDaGFuZ2UsIHRoaXMsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdlxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMucHJvcHMub25WYWx1ZUNoYW5nZT8uKHRoaXMuZmllbGQsIHYpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmRlc2NyaXB0b3IubmV4dEV2ZW50KEZvcm1GaWVsZEV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9WSUVXX0lOSVRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBlbWl0IGxpZmVjeWNsZSBldmVudFxuICAgICAgICB0aGlzLmRlc2NyaXB0b3I/Lm5leHRFdmVudChGb3JtRmllbGRFdmVudFR5cGVFbnVtLkNvbXBvbmVudExpZmVjeWNsZSwgdGhpcywge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBGb3JtRmllbGRFdmVudENvbXBvbmVudFN1YnR5cGUuT05fREVTVFJPWVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bW5nLWF1dG9jb21wbGV0ZVxuICAgIFtpZF09XCIkYW55KGtleSlcIlxuICAgIFtmb3JtQ29udHJvbF09XCIkYW55KGZvcm1Db250cm9sKVwiXG4gICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxuICAgIFtkYXRhUHJvdmlkZXJdPVwiZGVzY3JpcHRvci5kYXRhUHJvdmlkZXJcIlxuICAgIFtvcHRpb25zVHJhY2tQcm9wZXJ0eV09XCJkZXNjcmlwdG9yLm9wdGlvbnNUcmFja1Byb3BlcnR5XCJcbiAgICBbb3B0aW9uc0xhYmVsUHJvcGVydHldPVwiZGVzY3JpcHRvci5vcHRpb25zTGFiZWxQcm9wZXJ0eVwiXG4gICAgW29wdGlvbnNWYWx1ZVByb3BlcnR5XT1cImRlc2NyaXB0b3Iub3B0aW9uc1ZhbHVlUHJvcGVydHlcIlxuICAgIFtjbGFzc05hbWVdPVwiZGVzY3JpcHRvci5pbnB1dENsYXNzTmFtZVwiXG4gICAgW3Nob3dDbGVhcl09XCIhcHJvcHMucmVxdWlyZWRcIlxuICAgIFtzZWxlY3RGaXJzdF09XCJkZXNjcmlwdG9yLmF1dG9jb21wbGV0ZVNlbGVjdEZpcnN0ID8/IGZhbHNlXCJcbiAgICBbYXV0b0NsZWFyXT1cImRlc2NyaXB0b3IuYXV0b2NvbXBsZXRlQXV0b0NsZWFyID8/IGZhbHNlXCJcbiAgICBbb3Blbk9uRm9jdXNdPVwiZGVzY3JpcHRvci5hdXRvY29tcGxldGVBdXRvQ2xlYXIgPz8gdHJ1ZVwiXG4gICAgW2lubGluZVNlYXJjaF09XCJkZXNjcmlwdG9yLmF1dG9jb21wbGV0ZUlubGluZVNlYXJjaCA/PyBmYWxzZVwiPlxuPC9tbmctYXV0b2NvbXBsZXRlPlxuIl19
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
-
import { FieldType } from '@ngx-formly/core';
|
|
3
2
|
import { ComponentDirective } from '@mediusinc/mng-commons/core';
|
|
3
|
+
import { ACommonsFormlyFieldType } from '../formly-field-type.abstract.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export class FormlyFieldCustomComponent extends
|
|
5
|
+
export class FormlyFieldCustomComponent extends ACommonsFormlyFieldType {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
8
|
this.inputs = {};
|
|
9
9
|
}
|
|
10
10
|
ngOnInit() {
|
|
11
|
-
|
|
11
|
+
super.ngOnInit();
|
|
12
12
|
this.inputs = {
|
|
13
13
|
field: this.field,
|
|
14
14
|
model: this.model,
|
|
@@ -23,10 +23,10 @@ export class FormlyFieldCustomComponent extends FieldType {
|
|
|
23
23
|
...this.descriptor.customComponentInputs
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FormlyFieldCustomComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: FormlyFieldCustomComponent, isStandalone: true, selector: "mng-formly-field-custom", usesInheritance: true, ngImport: i0, template: ` <ng-container [mngComponent]="descriptor.customComponentType!" [inputs]="inputs"></ng-container> `, isInline: true, dependencies: [{ kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FormlyFieldCustomComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
31
|
args: [{
|
|
32
32
|
standalone: true,
|
|
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
36
36
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
37
37
|
}]
|
|
38
38
|
}] });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWN1c3RvbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2VkaXRvci9jb21wb25lbnRzL2Zvcm1seS9maWVsZHMvZm9ybWx5LWZpZWxkLWN1c3RvbS9mb3JtbHktZmllbGQtY3VzdG9tLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRy9ELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOztBQVNoRixNQUFNLE9BQU8sMEJBQStCLFNBQVEsdUJBQTBEO0lBUDlHOztRQVFXLFdBQU0sR0FBd0IsRUFBRSxDQUFDO0tBbUIzQztJQWpCWSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDVixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQjtTQUMzQyxDQUFDO0lBQ04sQ0FBQzs4R0FuQlEsMEJBQTBCO2tHQUExQiwwQkFBMEIsMEdBSnpCLG9HQUFvRyw0REFDcEcsa0JBQWtCOzsyRkFHbkIsMEJBQTBCO2tCQVB0QyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsb0dBQW9HO29CQUM5RyxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0NvbXBvbmVudERpcmVjdGl2ZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7RmllbGRJbnB1dERlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7QUNvbW1vbnNGb3JtbHlGaWVsZFR5cGV9IGZyb20gJy4uL2Zvcm1seS1maWVsZC10eXBlLmFic3RyYWN0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctZm9ybWx5LWZpZWxkLWN1c3RvbScsXG4gICAgdGVtcGxhdGU6IGAgPG5nLWNvbnRhaW5lciBbbW5nQ29tcG9uZW50XT1cImRlc2NyaXB0b3IuY3VzdG9tQ29tcG9uZW50VHlwZSFcIiBbaW5wdXRzXT1cImlucHV0c1wiPjwvbmctY29udGFpbmVyPiBgLFxuICAgIGltcG9ydHM6IFtDb21wb25lbnREaXJlY3RpdmVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkQ3VzdG9tQ29tcG9uZW50PEVUPiBleHRlbmRzIEFDb21tb25zRm9ybWx5RmllbGRUeXBlPGFueSwgRVQsIEZpZWxkSW5wdXREZXNjcmlwdG9yPEVUPj4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyBpbnB1dHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIHRoaXMuaW5wdXRzID0ge1xuICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmllbGQsXG4gICAgICAgICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgICAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICBmb3JtQ29udHJvbDogdGhpcy5mb3JtQ29udHJvbCxcbiAgICAgICAgICAgIHByb3BzOiB0aGlzLnByb3BzLFxuICAgICAgICAgICAgc2hvd0Vycm9yOiB0aGlzLnNob3dFcnJvcixcbiAgICAgICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICAgICAgZm9ybVN0YXRlOiB0aGlzLmZvcm1TdGF0ZSxcbiAgICAgICAgICAgIC4uLnRoaXMuZGVzY3JpcHRvci5jdXN0b21Db21wb25lbnRJbnB1dHNcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|