@mediusinc/mng-commons 5.0.0-rc.0 → 5.0.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/core/data-list/data-list-params-helpers.d.ts +82 -0
- package/core/descriptors/action.descriptor.d.ts +3 -3
- package/core/descriptors/column.descriptor.d.ts +1 -1
- package/core/descriptors/editor.descriptor.d.ts +6 -6
- package/core/descriptors/enum.descriptor.d.ts +6 -0
- package/core/descriptors/filter.descriptor.d.ts +1 -1
- package/core/descriptors/model.descriptor.d.ts +1 -1
- package/core/descriptors/table.descriptor.d.ts +6 -6
- package/core/descriptors/tableview.descriptor.d.ts +10 -10
- package/core/enum/enum-helpers.d.ts +49 -0
- package/core/error/error-helpers.d.ts +114 -0
- package/core/helpers/date.d.ts +14 -0
- package/core/helpers/object.d.ts +27 -0
- package/core/helpers/route.d.ts +35 -0
- package/core/helpers/string.d.ts +7 -0
- package/core/helpers/templates.d.ts +3 -0
- package/core/i18n/i18n-common.d.ts +6 -0
- package/core/i18n/i18n-error.d.ts +4 -0
- package/core/i18n/i18n-type.d.ts +20 -0
- package/core/index.d.ts +15 -9
- package/{model → core}/pipes/enum.pipe.d.ts +2 -2
- package/core/pipes/enumerate.pipe.d.ts +3 -3
- package/{model → core}/pipes/i18n-property.pipe.d.ts +2 -2
- package/core/pipes/template.pipe.d.ts +0 -2
- package/core/router/route-builder.d.ts +2 -4
- package/core/router/routes-builder.d.ts +5 -6
- package/core/security/permission-helpers.d.ts +3 -0
- package/core/security/permissions.model.d.ts +2 -2
- package/esm2022/core/components/notification/notification-wrapper.component.mjs +4 -4
- package/esm2022/core/components/pages/error/error.page.component.mjs +3 -3
- package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +3 -3
- package/esm2022/core/data-list/data-list-params-helpers.mjs +415 -0
- package/esm2022/core/data-list/filter-match.model.mjs +1 -1
- package/esm2022/core/data-providers/base.data-provider.mjs +1 -1
- package/esm2022/core/descriptors/action.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/column.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/editor.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/enum.descriptor.mjs +2 -0
- package/esm2022/core/descriptors/filter.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/model.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/table.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/tableview.descriptor.mjs +1 -1
- package/esm2022/core/directives/component.directive.mjs +4 -4
- package/esm2022/core/directives/dialog-keydown-handler.directive.mjs +4 -4
- package/esm2022/core/directives/template.directive.mjs +3 -3
- package/esm2022/core/enum/enum-helpers.mjs +81 -0
- package/esm2022/core/error/error-handler.mjs +3 -3
- package/esm2022/core/error/error-helpers.mjs +247 -0
- package/esm2022/core/helpers/coercion.mjs +1 -1
- package/esm2022/core/helpers/date.mjs +119 -0
- package/esm2022/core/helpers/object.mjs +145 -0
- package/esm2022/core/helpers/route.mjs +58 -0
- package/esm2022/core/helpers/string.mjs +57 -0
- package/esm2022/core/helpers/templates.mjs +4 -0
- package/esm2022/core/i18n/i18n-common.mjs +24 -0
- package/esm2022/core/i18n/i18n-error.mjs +27 -0
- package/esm2022/core/i18n/i18n-type.mjs +79 -0
- package/esm2022/core/index.mjs +17 -11
- package/esm2022/core/log/log-publisher-console.service.mjs +3 -3
- package/esm2022/core/log/logger.service.mjs +3 -3
- package/esm2022/core/pipes/boolean.pipe.mjs +4 -4
- package/esm2022/core/pipes/class-map.pipe.mjs +4 -4
- package/esm2022/core/pipes/enum.pipe.mjs +27 -0
- package/esm2022/core/pipes/enumerate-async.pipe.mjs +8 -8
- package/esm2022/core/pipes/enumerate.pipe.mjs +10 -10
- package/esm2022/core/pipes/getter.pipe.mjs +4 -4
- package/esm2022/core/pipes/i18n-property.pipe.mjs +19 -0
- package/esm2022/core/pipes/json-path.pipe.mjs +6 -6
- package/esm2022/core/pipes/parametrize.pipe.mjs +6 -6
- package/esm2022/core/pipes/template.pipe.mjs +7 -8
- package/esm2022/core/provide.mjs +1 -21
- package/esm2022/core/reflect/type-enum-metadata.mjs +1 -1
- package/esm2022/core/registry/type-registry.mjs +1 -1
- package/esm2022/core/router/route-builder.mjs +8 -24
- package/esm2022/core/router/routes-builder.mjs +17 -16
- package/esm2022/core/security/permission-helpers.mjs +14 -0
- package/esm2022/core/security/permission.guard.mjs +1 -1
- package/esm2022/core/security/permission.service.mjs +6 -6
- package/esm2022/core/security/permissions.model.mjs +1 -1
- package/esm2022/core/services/commons-configuration.service.mjs +6 -6
- package/esm2022/core/services/commons-init.service.mjs +4 -4
- package/esm2022/core/services/commons-router.service.mjs +4 -4
- package/esm2022/core/services/commons.service.mjs +4 -4
- package/esm2022/core/services/local-storage-config.service.mjs +4 -4
- package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +9 -10
- package/esm2022/filter/descriptors/filter.descriptor.mjs +1 -1
- package/esm2022/form/api/data-providers/lookup.data-provider.mjs +1 -1
- package/esm2022/form/api/descriptors/button-style.builder.mjs +1 -1
- package/esm2022/form/components/autocomplete/autocomplete.component.mjs +7 -7
- package/esm2022/form/components/date-range/date-range.component.mjs +4 -4
- package/esm2022/form/components/dropdown/dropdown.component.mjs +7 -7
- package/esm2022/form/directives/input-trim.directive.mjs +4 -4
- package/esm2022/model/descriptors/enum.descriptor.mjs +1 -1
- package/esm2022/model/descriptors/model.descriptor.mjs +4 -4
- package/esm2022/model/helpers/i18n.mjs +45 -0
- package/esm2022/model/helpers/model.mjs +71 -0
- package/esm2022/model/index.mjs +4 -7
- package/esm2022/table/api/data-providers/table.data-provider.mjs +1 -1
- package/esm2022/table/api/descriptors/column.descriptor.mjs +1 -1
- package/esm2022/table/api/descriptors/table.descriptor.mjs +36 -8
- package/esm2022/table/api/helpers/class-attribute-converter.mjs +1 -1
- package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +9 -9
- package/esm2022/table/components/column-value/column-value.component.mjs +12 -14
- package/esm2022/table/components/table/table.component.mjs +20 -37
- package/esm2022/table/helpers/notification.mjs +4 -4
- package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +4 -4
- package/esm2022/table/pipes/table-column-filter-class.pipe.mjs +4 -4
- package/esm2022/table/services/data-list.service.mjs +3 -3
- package/esm2022/tableview/action/components/action/action.component.mjs +9 -9
- package/esm2022/tableview/action/components/editor/action-editor.component.mjs +4 -4
- package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +6 -6
- package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +3 -3
- package/esm2022/tableview/action/components/route/action-route.component.mjs +4 -4
- package/esm2022/tableview/action/components/table/action-table.component.mjs +12 -24
- package/esm2022/tableview/action/helpers/i18n.mjs +82 -0
- package/esm2022/tableview/action/helpers/notification.mjs +8 -8
- package/esm2022/tableview/action/helpers/styles.mjs +1 -1
- package/esm2022/tableview/action/models/execution/action-context.model.mjs +1 -1
- package/esm2022/tableview/action/models/execution/action-instance.model.mjs +1 -1
- package/esm2022/tableview/action/services/action-error-mapper.service.mjs +1 -1
- package/esm2022/tableview/action/services/action-executor.service.mjs +9 -8
- 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 +4 -4
- package/esm2022/tableview/action/services/providers/provide-view-container.mjs +1 -1
- 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/action/descriptors/action-confirmation.descriptor.mjs +1 -1
- package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +1 -1
- package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +1 -1
- package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +1 -1
- package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +4 -4
- package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +3 -3
- package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +8 -8
- package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +4 -4
- package/esm2022/tableview/api/editor/helpers/class-attribute-converter.mjs +1 -1
- package/esm2022/tableview/api/editor/helpers/field-validators.mjs +1 -1
- package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
- package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +3 -3
- package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +1 -1
- package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +4 -4
- package/esm2022/tableview/api/tableview/helpers/class-attribute-converter.mjs +1 -1
- package/esm2022/tableview/api/tableview/helpers/files-export.mjs +1 -1
- package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +4 -4
- package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +1 -1
- package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +9 -9
- package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +7 -7
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +9 -9
- package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +4 -4
- package/esm2022/tableview/editor/helpers/editor-formly.mjs +335 -0
- package/esm2022/tableview/editor/helpers/formly-config.mjs +1 -1
- package/esm2022/tableview/editor/services/formly-config.provider.mjs +1 -1
- package/esm2022/tableview/index.mjs +3 -5
- package/esm2022/tableview/provide.mjs +2 -1
- package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +3 -3
- package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +10 -19
- package/esm2022/tableview/tableview/router/tableview-route-builder.mjs +1 -1
- package/fesm2022/mediusinc-mng-commons-core.mjs +1367 -1389
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-filter.mjs +8 -9
- package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form.mjs +17 -17
- package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-model.mjs +99 -148
- package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs +35 -7
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table.mjs +48 -65
- package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +19 -19
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +507 -572
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/filter/descriptors/filter.descriptor.d.ts +2 -2
- package/model/descriptors/model.descriptor.d.ts +2 -2
- package/model/helpers/i18n.d.ts +10 -0
- package/model/helpers/model.d.ts +5 -0
- package/model/index.d.ts +2 -4
- package/package.json +7 -7
- package/table/api/descriptors/table.descriptor.d.ts +10 -0
- package/table/components/column-value/column-value.component.d.ts +3 -4
- package/table/components/table/table.component.d.ts +13 -13
- package/tableview/action/components/table/action-table.component.d.ts +6 -6
- package/tableview/action/helpers/i18n.d.ts +22 -0
- package/tableview/action/models/execution/action-instance-state.model.d.ts +21 -21
- package/tableview/action/services/action-executor.service.d.ts +1 -1
- package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +1 -1
- package/tableview/api/action/descriptors/action.descriptor.d.ts +3 -3
- package/tableview/api/action/models/action.type.d.ts +2 -2
- package/tableview/api/action/models/execution/action-instance-state.model.d.ts +21 -21
- package/tableview/api/editor/descriptors/editor.descriptor.d.ts +2 -2
- package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +2 -2
- package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +5 -5
- package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +4 -4
- package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +4 -4
- package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +4 -4
- package/tableview/api/editor/descriptors/field.descriptor.d.ts +2 -2
- package/tableview/api/editor/models/editor-fields.model.d.ts +3 -3
- package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +2 -2
- package/tableview/editor/helpers/editor-formly.d.ts +10 -0
- package/tableview/index.d.ts +2 -2
- package/tableview/tableview/components/tableview/tableview.component.d.ts +5 -5
- package/core/data-list/data-list-params.util.d.ts +0 -84
- package/core/enum/enum.util.d.ts +0 -51
- package/core/error/error.util.d.ts +0 -116
- package/core/security/permission.util.d.ts +0 -5
- package/core/utils/date.util.d.ts +0 -20
- package/core/utils/i18n.util.d.ts +0 -36
- package/core/utils/object.util.d.ts +0 -31
- package/core/utils/route.util.d.ts +0 -37
- package/core/utils/string.util.d.ts +0 -9
- package/esm2022/core/data-list/data-list-params.util.mjs +0 -417
- package/esm2022/core/enum/enum.util.mjs +0 -83
- package/esm2022/core/error/error.util.mjs +0 -249
- package/esm2022/core/security/permission.util.mjs +0 -16
- package/esm2022/core/utils/date.util.mjs +0 -136
- package/esm2022/core/utils/i18n.util.mjs +0 -137
- package/esm2022/core/utils/object.util.mjs +0 -147
- package/esm2022/core/utils/route.util.mjs +0 -60
- package/esm2022/core/utils/string.util.mjs +0 -59
- package/esm2022/model/pipes/enum.pipe.mjs +0 -26
- package/esm2022/model/pipes/i18n-property.pipe.mjs +0 -19
- package/esm2022/model/utils/i18n.util.mjs +0 -51
- package/esm2022/model/utils/model.util.mjs +0 -73
- package/esm2022/tableview/action/utils/i18n.util.mjs +0 -126
- package/esm2022/tableview/editor/utils/editor-formly.util.mjs +0 -337
- package/model/utils/i18n.util.d.ts +0 -15
- package/model/utils/model.util.d.ts +0 -8
- package/tableview/action/utils/i18n.util.d.ts +0 -48
- package/tableview/editor/utils/editor-formly.util.d.ts +0 -12
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { toastMessage } from '@mediusinc/mng-commons/core';
|
|
2
|
-
import {
|
|
2
|
+
import { getI18nForModel } from '@mediusinc/mng-commons/model';
|
|
3
3
|
export function tableNotificationError(translate, table, error, messageService) {
|
|
4
4
|
const params = {};
|
|
5
5
|
if (error?.message) {
|
|
@@ -8,8 +8,8 @@ export function tableNotificationError(translate, table, error, messageService)
|
|
|
8
8
|
else {
|
|
9
9
|
params.errorMessage = '.';
|
|
10
10
|
}
|
|
11
|
-
const tableErrorTitle =
|
|
12
|
-
const tableErrorMessage =
|
|
11
|
+
const tableErrorTitle = getI18nForModel(translate, table.model, 'table.error.title', undefined, undefined, 'general.error', params) ?? undefined;
|
|
12
|
+
const tableErrorMessage = getI18nForModel(translate, table.model, 'table.error.message', undefined, undefined, 'general.errorMessage', params) ?? undefined;
|
|
13
13
|
return toastMessage(messageService, tableErrorTitle, tableErrorMessage, 'error', 'pi-exclamation-triangle');
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGFibGUvc3JjL2hlbHBlcnMvbm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFHN0QsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFNBQTJCLEVBQUUsS0FBK0IsRUFBRSxLQUFVLEVBQUUsY0FBOEI7SUFDM0ksTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO0lBQ3ZCLElBQUksS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxZQUFZLEdBQUcsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0MsQ0FBQztTQUFNLENBQUM7UUFDSixNQUFNLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztJQUM5QixDQUFDO0lBQ0QsTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUNqSixNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUM1SixPQUFPLFlBQVksQ0FBQyxjQUFjLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0FBQ2hILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNZXNzYWdlLCBNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge3RvYXN0TWVzc2FnZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7Z2V0STE4bkZvck1vZGVsfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcbmltcG9ydCB7VGFibGVEZXNjcmlwdG9ySW5zdH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZS9hcGknO1xuXG5leHBvcnQgZnVuY3Rpb24gdGFibGVOb3RpZmljYXRpb25FcnJvcih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHRhYmxlOiBUYWJsZURlc2NyaXB0b3JJbnN0PGFueT4sIGVycm9yOiBhbnksIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSk6IE1lc3NhZ2Uge1xuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge307XG4gICAgaWYgKGVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgIHBhcmFtcy5lcnJvck1lc3NhZ2UgPSBgOiAke2Vycm9yLm1lc3NhZ2V9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgICBwYXJhbXMuZXJyb3JNZXNzYWdlID0gJy4nO1xuICAgIH1cbiAgICBjb25zdCB0YWJsZUVycm9yVGl0bGUgPSBnZXRJMThuRm9yTW9kZWwodHJhbnNsYXRlLCB0YWJsZS5tb2RlbCwgJ3RhYmxlLmVycm9yLnRpdGxlJywgdW5kZWZpbmVkLCB1bmRlZmluZWQsICdnZW5lcmFsLmVycm9yJywgcGFyYW1zKSA/PyB1bmRlZmluZWQ7XG4gICAgY29uc3QgdGFibGVFcnJvck1lc3NhZ2UgPSBnZXRJMThuRm9yTW9kZWwodHJhbnNsYXRlLCB0YWJsZS5tb2RlbCwgJ3RhYmxlLmVycm9yLm1lc3NhZ2UnLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgJ2dlbmVyYWwuZXJyb3JNZXNzYWdlJywgcGFyYW1zKSA/PyB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRvYXN0TWVzc2FnZShtZXNzYWdlU2VydmljZSwgdGFibGVFcnJvclRpdGxlLCB0YWJsZUVycm9yTWVzc2FnZSwgJ2Vycm9yJywgJ3BpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyk7XG59XG4iXX0=
|
|
@@ -13,10 +13,10 @@ export class LocaleDefaultRowClassPipe {
|
|
|
13
13
|
}
|
|
14
14
|
return value ?? '';
|
|
15
15
|
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
17
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: LocaleDefaultRowClassPipe, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
17
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: LocaleDefaultRowClassPipe, isStandalone: true, name: "mngLocaleDefaultRowClass" }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: LocaleDefaultRowClassPipe, decorators: [{
|
|
20
20
|
type: Pipe,
|
|
21
21
|
args: [{
|
|
22
22
|
standalone: true,
|
|
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
24
24
|
pure: true
|
|
25
25
|
}]
|
|
26
26
|
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWRlZmF1bHQtcm93LWNsYXNzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90YWJsZS9zcmMvcGlwZXMvbG9jYWxlLWRlZmF1bHQtcm93LWNsYXNzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7QUFRM0QsTUFBTSxPQUFPLHlCQUF5QjtJQUNsQyxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUUxQyxTQUFTLENBQUMsS0FBVyxFQUFFLFVBQW1DLEVBQUUsSUFBUTtRQUNoRSxJQUFJLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUMxQixJQUFLLElBQVksQ0FBQyxVQUFVLENBQUMsMEJBQTJCLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUNsSCxPQUFPLEtBQUssR0FBRyxpQ0FBaUMsQ0FBQztZQUNyRCxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzhHQVZRLHlCQUF5Qjs0R0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUxyQyxJQUFJO21CQUFDO29CQUNGLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsMEJBQTBCO29CQUNoQyxJQUFJLEVBQUUsSUFBSTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0b3IsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtUYWJsZURlc2NyaXB0b3JJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxlL2FwaSc7XG5cbkBQaXBlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIG5hbWU6ICdtbmdMb2NhbGVEZWZhdWx0Um93Q2xhc3MnLFxuICAgIHB1cmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTG9jYWxlRGVmYXVsdFJvd0NsYXNzUGlwZTxUPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gICAgdHJhbnNmb3JtKHZhbHVlPzogYW55LCBkZXNjcmlwdG9yPzogVGFibGVEZXNjcmlwdG9ySW5zdDxUPiwgaXRlbT86IFQpOiBzdHJpbmcge1xuICAgICAgICBpZiAoZGVzY3JpcHRvcj8uaXNMb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgIGlmICgoaXRlbSBhcyBhbnkpW2Rlc2NyaXB0b3IubG9jYWxpemF0aW9uTG9jYWxlUHJvcGVydHkhXSA9PT0gdGhpcy5pbmplY3Rvci5nZXQoQ29tbW9uc1NlcnZpY2UpLmRlZmF1bHREYXRhTGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgKyAnIGFsbC10cmFuc2xhdGlvbnMtZGVmYXVsdC12YWx1ZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlID8/ICcnO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -11,10 +11,10 @@ export class TableColumnFilterClassPipe {
|
|
|
11
11
|
return strValue;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
15
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: TableColumnFilterClassPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
15
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: TableColumnFilterClassPipe, isStandalone: true, name: "mngTableColumnFilterClass" }); }
|
|
16
16
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: TableColumnFilterClassPipe, decorators: [{
|
|
18
18
|
type: Pipe,
|
|
19
19
|
args: [{
|
|
20
20
|
standalone: true,
|
|
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
22
22
|
name: 'mngTableColumnFilterClass'
|
|
23
23
|
}]
|
|
24
24
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci1jbGFzcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGFibGUvc3JjL3BpcGVzL3RhYmxlLWNvbHVtbi1maWx0ZXItY2xhc3MucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQW1CLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDOztBQU8vRSxNQUFNLE9BQU8sMEJBQTBCO0lBQ25DLFNBQVMsQ0FBQyxLQUFjLEVBQUUsTUFBOEMsRUFBRSxTQUFrQjtRQUN4RixNQUFNLFFBQVEsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3hELElBQUksU0FBUyxJQUFJLE1BQU0sRUFBRSxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEQsT0FBTyxHQUFHLFFBQVEsc0JBQXNCLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUM5RixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUM7SUFDTCxDQUFDOzhHQVJRLDBCQUEwQjs0R0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUx0QyxJQUFJO21CQUFDO29CQUNGLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsSUFBSTtvQkFDVixJQUFJLEVBQUUsMkJBQTJCO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7RmlsdGVyRGVzY3JpcHRvciwgRmlsdGVyVHlwZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZmlsdGVyJztcblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHVyZTogdHJ1ZSxcbiAgICBuYW1lOiAnbW5nVGFibGVDb2x1bW5GaWx0ZXJDbGFzcydcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5GaWx0ZXJDbGFzc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odmFsdWU6IHVua25vd24sIGZpbHRlcjogRmlsdGVyRGVzY3JpcHRvcjxhbnksIGFueT4gfCB1bmRlZmluZWQsIGlzRW5hYmxlZDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHN0clZhbHVlID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogJyc7XG4gICAgICAgIGlmIChpc0VuYWJsZWQgJiYgZmlsdGVyPy5maWx0ZXJUeXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtzdHJWYWx1ZX0gbW5nLWNvbHVtbi1maWx0ZXItJHtGaWx0ZXJUeXBlRW51bVtmaWx0ZXIuZmlsdGVyVHlwZV0udG9Mb3dlckNhc2UoKX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHN0clZhbHVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -14,10 +14,10 @@ export class DataListService {
|
|
|
14
14
|
this.count = signal(0);
|
|
15
15
|
this.loading = signal(true);
|
|
16
16
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
18
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: DataListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
18
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: DataListService }); }
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: DataListService, decorators: [{
|
|
21
21
|
type: Injectable
|
|
22
22
|
}] });
|
|
23
23
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90YWJsZS9zcmMvc2VydmljZXMvZGF0YS1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBa0IsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUtqRSxNQUFNLE9BQU8sZUFBZTtJQUQ1QjtRQUVJLGFBQWE7UUFDTixhQUFRLEdBQXNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRCxlQUFVLEdBQW1ELE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RSx1QkFBa0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0MsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLFdBQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsdUJBQWtCLEdBQTZCLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqRSxPQUFPO1FBQ0EsU0FBSSxHQUEyQixNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixZQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2pDOzhHQWJZLGVBQWU7a0hBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgV3JpdGFibGVTaWduYWwsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7RmlsdGVyTWV0YWRhdGEsIFNvcnRNZXRhfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhTGlzdFNlcnZpY2U8SXRlbT4ge1xuICAgIC8vIHBhZ2luYXRpb25cbiAgICBwdWJsaWMgc29ydE1ldGE6IFdyaXRhYmxlU2lnbmFsPFNvcnRNZXRhW10gfCBudWxsPiA9IHNpZ25hbChudWxsKTtcbiAgICBwdWJsaWMgZmlsdGVyTWV0YTogV3JpdGFibGVTaWduYWw8UmVjb3JkPHN0cmluZywgRmlsdGVyTWV0YWRhdGE+PiA9IHNpZ25hbCh7fSk7XG4gICAgcHVibGljIHJvd3NQZXJQYWdlT3B0aW9ucyA9IHNpZ25hbChbMjUsIDUwLCAxMDBdKTtcbiAgICBwdWJsaWMgcm93cyA9IHNpZ25hbCh0aGlzLnJvd3NQZXJQYWdlT3B0aW9ucygpWzBdKTtcbiAgICBwdWJsaWMgb2Zmc2V0ID0gc2lnbmFsKDApO1xuICAgIHB1YmxpYyBnbG9iYWxGaWx0ZXJGaWVsZHM6IFdyaXRhYmxlU2lnbmFsPHN0cmluZ1tdPiA9IHNpZ25hbChbXSk7XG5cbiAgICAvLyBkYXRhXG4gICAgcHVibGljIGRhdGE6IFdyaXRhYmxlU2lnbmFsPEl0ZW1bXT4gPSBzaWduYWwoW10pO1xuICAgIHB1YmxpYyBjb3VudCA9IHNpZ25hbCgwKTtcbiAgICBwdWJsaWMgbG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbn1cbiJdfQ==
|
|
@@ -10,10 +10,10 @@ import { TooltipModule } from 'primeng/tooltip';
|
|
|
10
10
|
import { Observable, ReplaySubject, combineLatest, distinctUntilChanged, of } from 'rxjs';
|
|
11
11
|
import { ComponentDirective, ParametrizePipe, PermissionService, Permissions, boolean$Attribute, toObservable } from '@mediusinc/mng-commons/core';
|
|
12
12
|
import { ActionDescriptorInst, ActionLinkDescriptorInst, ActionTypeEnum } from '@mediusinc/mng-commons/tableview/api';
|
|
13
|
+
import { getI18nForActionAsync } from '../../helpers/i18n';
|
|
13
14
|
import { ActionInstanceStateEnum } from '../../models/execution/action-instance-state.model';
|
|
14
15
|
import { ActionExecutorService } from '../../services/action-executor.service';
|
|
15
16
|
import { provideActionExecutor } from '../../services/providers/provide-action-executor';
|
|
16
|
-
import { I18nUtils } from '../../utils/i18n.util';
|
|
17
17
|
import * as i0 from "@angular/core";
|
|
18
18
|
import * as i1 from "@angular/router";
|
|
19
19
|
import * as i2 from "@ngx-translate/core";
|
|
@@ -186,10 +186,10 @@ export class ActionComponent {
|
|
|
186
186
|
for (const subaction of this.action.subactions) {
|
|
187
187
|
const menuItem = {};
|
|
188
188
|
menuItem.icon = subaction.button.icon ?? undefined;
|
|
189
|
-
this.subactionSubscriptions.push(
|
|
189
|
+
this.subactionSubscriptions.push(getI18nForActionAsync(this.translate, subaction, 'title', subaction.button.label ?? undefined, this.item).subscribe({
|
|
190
190
|
next: res => (menuItem.label = res)
|
|
191
191
|
}));
|
|
192
|
-
this.subactionSubscriptions.push(
|
|
192
|
+
this.subactionSubscriptions.push(getI18nForActionAsync(this.translate, subaction, 'tooltip', this.action.button.tooltip, this.item).subscribe({
|
|
193
193
|
next: res => (menuItem.tooltip = res)
|
|
194
194
|
}));
|
|
195
195
|
const parameters = {
|
|
@@ -261,22 +261,22 @@ export class ActionComponent {
|
|
|
261
261
|
}
|
|
262
262
|
if (!this.hasNoTitle) {
|
|
263
263
|
this.labelSubscription?.unsubscribe();
|
|
264
|
-
this.labelSubscription =
|
|
264
|
+
this.labelSubscription = getI18nForActionAsync(this.translate, this.action, 'title', this.action.button.label ?? undefined, this.item).subscribe({
|
|
265
265
|
next: i18n => this.labelSubject.next(i18n)
|
|
266
266
|
});
|
|
267
267
|
}
|
|
268
268
|
this.tooltipSubscription?.unsubscribe();
|
|
269
269
|
if (this.action.button.tooltip) {
|
|
270
|
-
this.tooltipSubscription =
|
|
270
|
+
this.tooltipSubscription = getI18nForActionAsync(this.translate, this.action, 'tooltip', this.action.button.tooltip, this.item, undefined, undefined).subscribe({
|
|
271
271
|
next: i18n => this.tooltipSubject.next(i18n)
|
|
272
272
|
});
|
|
273
273
|
}
|
|
274
274
|
this.subactions = this.processSubactions();
|
|
275
275
|
}
|
|
276
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
277
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2
|
|
276
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ActionComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.TranslateService }, { token: i3.PermissionService }, { token: i4.ActionExecutorService }, { token: i5.ViewContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: ActionComponent, isStandalone: true, selector: "mng-action", inputs: { action: "action", item: "item", itemId: "itemId", actionData: "actionData", dataListParams: "dataListParams", dataProvider: "dataProvider", hostComponent: "hostComponent", routeInit: ["route", "routeInit"], inputDisabled: ["disabled", "inputDisabled", boolean$Attribute], inputLoading: ["loading", "inputLoading", boolean$Attribute], selectedItems: "selectedItems" }, outputs: { finishEventEmitter: "finish" }, host: { properties: { "class": "this.hostClass", "class.m-0": "this.isHostHidden" } }, providers: [provideActionExecutor()], viewQueries: [{ propertyName: "subactionsMenu", first: true, predicate: ["subactionsMenu"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (($isVisible | async) && ($isPermitted | async)) {\n @if (actionLink && actionLink.url !== '') {\n <a\n pButton\n pRipple\n [label]=\"($label | async) ?? ''\"\n [icon]=\"$any(action.button.icon)\"\n [iconPos]=\"action.button.iconPosition\"\n [href]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.url | mngParametrize: itemId : item : actionData)\"\n [target]=\"actionLink.target\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [pTooltip]=\"($tooltip | async) ?? undefined\"\n [tooltipPosition]=\"action.button.tooltipPosition ?? undefined\"\n [class]=\"buttonClass\"></a>\n } @else if (actionLink) {\n <a\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [iconPos]=\"action.button.iconPosition\"\n [label]=\"($label | async) ?? ''\"\n [target]=\"actionLink.target\"\n [replaceUrl]=\"actionLink.replaceUrl\"\n [routerLink]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.pathSegments | mngParametrize: itemId : item : actionData)\"\n [relativeTo]=\"route\"\n [queryParams]=\"actionLink.queryParams | mngParametrize: itemId : item : actionData\"\n [queryParamsHandling]=\"actionLink.queryParamsHandling\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [pTooltip]=\"($tooltip | async) ?? undefined\"\n [tooltipPosition]=\"action.button.tooltipPosition ?? undefined\"\n [class]=\"buttonClass\"></a>\n } @else if (action.component || action.componentFromDi) {\n <ng-container\n [mngComponent]=\"action.component\"\n [injectionToken]=\"action.componentFromDi\"\n [inputs]=\"{\n action: action,\n item: item,\n itemId: itemId,\n actionData: actionData,\n enabled: $isEnabled,\n loading: $loading\n }\"\n (instanceCreated)=\"onCustomActionCmpInst($event)\">\n </ng-container>\n } @else if (action.subactions.length > 0 && !action.subactionsAsMenu) {\n <p-splitButton\n [icon]=\"action.button.icon ?? undefined\"\n [iconPos]=\"action.button.iconPosition\"\n [label]=\"($label | async) ?? ''\"\n [pTooltip]=\"($tooltip | async) ?? undefined\"\n [tooltipPosition]=\"action.button.tooltipPosition ?? undefined\"\n [disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n (onClick)=\"triggerAction(action)\"\n [class]=\"buttonClass\"\n [model]=\"subactions\">\n </p-splitButton>\n } @else {\n <button\n pButton\n pRipple\n type=\"button\"\n [icon]=\"$any(action.button.icon)\"\n [iconPos]=\"action.button.iconPosition\"\n [label]=\"($label | async) ?? ''\"\n [pTooltip]=\"($tooltip | async) ?? undefined\"\n [tooltipPosition]=\"action.button.tooltipPosition ?? undefined\"\n [loading]=\"(($loading | async) ?? false) || ((inputLoading | async) ?? false)\"\n loadingIcon=\"pi pi-spin pi-spinner\"\n [disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n (click)=\"triggerAction(action, undefined, $event)\"\n [class]=\"buttonClass\"></button>\n <p-menu #subactionsMenu [model]=\"subactions\" [popup]=\"true\" appendTo=\"body\" styleClass=\"mng-action-menu\"></p-menu>\n }\n}\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i7.Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i8.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "pipe", type: ParametrizePipe, name: "mngParametrize" }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "nodeInjector"], outputs: ["instanceCreated"] }, { kind: "ngmodule", type: SplitButtonModule }, { kind: "component", type: i9.SplitButton, selector: "p-splitButton", inputs: ["model", "icon", "iconPos", "label", "style", "styleClass", "menuStyle", "menuStyleClass", "disabled", "tabindex", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions", "buttonProps", "menuButtonProps"], outputs: ["onClick", "onDropdownClick"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MenuModule }, { kind: "component", type: i10.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
278
278
|
}
|
|
279
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ActionComponent, decorators: [{
|
|
280
280
|
type: Component,
|
|
281
281
|
args: [{ standalone: true, selector: 'mng-action', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, ButtonModule, RippleModule, TooltipModule, ParametrizePipe, ComponentDirective, SplitButtonModule, MenuModule], providers: [provideActionExecutor()], template: "@if (($isVisible | async) && ($isPermitted | async)) {\n @if (actionLink && actionLink.url !== '') {\n <a\n pButton\n pRipple\n [label]=\"($label | async) ?? ''\"\n [icon]=\"$any(action.button.icon)\"\n [iconPos]=\"action.button.iconPosition\"\n [href]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.url | mngParametrize: itemId : item : actionData)\"\n [target]=\"actionLink.target\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [pTooltip]=\"($tooltip | async) ?? undefined\"\n [tooltipPosition]=\"action.button.tooltipPosition ?? undefined\"\n [class]=\"buttonClass\"></a>\n } @else if (actionLink) {\n <a\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [iconPos]=\"action.button.iconPosition\"\n [label]=\"($label | async) ?? ''\"\n [target]=\"actionLink.target\"\n [replaceUrl]=\"actionLink.replaceUrl\"\n [routerLink]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.pathSegments | mngParametrize: itemId : item : actionData)\"\n [relativeTo]=\"route\"\n [queryParams]=\"actionLink.queryParams | mngParametrize: itemId : item : actionData\"\n [queryParamsHandling]=\"actionLink.queryParamsHandling\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [pTooltip]=\"($tooltip | async) ?? undefined\"\n [tooltipPosition]=\"action.button.tooltipPosition ?? undefined\"\n [class]=\"buttonClass\"></a>\n } @else if (action.component || action.componentFromDi) {\n <ng-container\n [mngComponent]=\"action.component\"\n [injectionToken]=\"action.componentFromDi\"\n [inputs]=\"{\n action: action,\n item: item,\n itemId: itemId,\n actionData: actionData,\n enabled: $isEnabled,\n loading: $loading\n }\"\n (instanceCreated)=\"onCustomActionCmpInst($event)\">\n </ng-container>\n } @else if (action.subactions.length > 0 && !action.subactionsAsMenu) {\n <p-splitButton\n [icon]=\"action.button.icon ?? undefined\"\n [iconPos]=\"action.button.iconPosition\"\n [label]=\"($label | async) ?? ''\"\n [pTooltip]=\"($tooltip | async) ?? undefined\"\n [tooltipPosition]=\"action.button.tooltipPosition ?? undefined\"\n [disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n (onClick)=\"triggerAction(action)\"\n [class]=\"buttonClass\"\n [model]=\"subactions\">\n </p-splitButton>\n } @else {\n <button\n pButton\n pRipple\n type=\"button\"\n [icon]=\"$any(action.button.icon)\"\n [iconPos]=\"action.button.iconPosition\"\n [label]=\"($label | async) ?? ''\"\n [pTooltip]=\"($tooltip | async) ?? undefined\"\n [tooltipPosition]=\"action.button.tooltipPosition ?? undefined\"\n [loading]=\"(($loading | async) ?? false) || ((inputLoading | async) ?? false)\"\n loadingIcon=\"pi pi-spin pi-spinner\"\n [disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n (click)=\"triggerAction(action, undefined, $event)\"\n [class]=\"buttonClass\"></button>\n <p-menu #subactionsMenu [model]=\"subactions\" [popup]=\"true\" appendTo=\"body\" styleClass=\"mng-action-menu\"></p-menu>\n }\n}\n", styles: [":host{display:inline-block}\n"] }]
|
|
282
282
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.TranslateService }, { type: i3.PermissionService }, { type: i4.ActionExecutorService }, { type: i5.ViewContainer, decorators: [{
|
|
@@ -320,4 +320,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
320
320
|
type: ViewChild,
|
|
321
321
|
args: ['subactionsMenu']
|
|
322
322
|
}] } });
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvYWN0aW9uL2NvbXBvbmVudHMvYWN0aW9uL2FjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2FjdGlvbi9jb21wb25lbnRzL2FjdGlvbi9hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWdDLFFBQVEsRUFBRSxNQUFNLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3SyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLFVBQVUsRUFBRSxhQUFhLEVBQWdCLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFdEcsT0FBTyxFQUlILGtCQUFrQixFQUlsQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsWUFBWSxFQUNmLE1BQU0sNkJB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R3pILGVBQWU7a0JBVDNCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLGFBQ3hILENBQUMscUJBQXFCLEVBQUUsQ0FBQzs7MEJBOEQvQixRQUFRO3lDQTNEUyxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBQ00sWUFBWTtzQkFBckMsV0FBVzt1QkFBQyxXQUFXO2dCQUdRLE1BQU07c0JBQXJDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNQLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNpQixTQUFTO3NCQUEvQixLQUFLO3VCQUFDLE9BQU87Z0JBQ21ELGFBQWE7c0JBQTdFLEtBQUs7dUJBQUMsRUFBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBQztnQkFDUSxZQUFZO3NCQUEzRSxLQUFLO3VCQUFDLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUM7Z0JBQ3ZDLGFBQWE7c0JBQTVCLEtBQUs7Z0JBRW1CLGtCQUFrQjtzQkFBMUMsTUFBTTt1QkFBQyxRQUFRO2dCQUVvQixjQUFjO3NCQUFqRCxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01lbnVJdGVtfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHtNZW51LCBNZW51TW9kdWxlfSBmcm9tICdwcmltZW5nL21lbnUnO1xuaW1wb3J0IHtSaXBwbGVNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcmlwcGxlJztcbmltcG9ydCB7U3BsaXRCdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvc3BsaXRidXR0b24nO1xuaW1wb3J0IHtUb29sdGlwTW9kdWxlfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBvZn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgQVBlcm1pc3Npb25zLFxuICAgIEFjdGlvbkRhdGEsXG4gICAgQWN0aW9uUGFyYW1ldGVycyxcbiAgICBDb21wb25lbnREaXJlY3RpdmUsXG4gICAgRGF0YUxpc3RQYXJhbXMsXG4gICAgSURhdGFQcm92aWRlcixcbiAgICBJZFR5cGUsXG4gICAgUGFyYW1ldHJpemVQaXBlLFxuICAgIFBlcm1pc3Npb25TZXJ2aWNlLFxuICAgIFBlcm1pc3Npb25zLFxuICAgIGJvb2xlYW4kQXR0cmlidXRlLFxuICAgIHRvT2JzZXJ2YWJsZVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25Db250ZXh0VmFsaWRhdGlvbiwgQWN0aW9uRGVzY3JpcHRvckluc3QsIEFjdGlvbkxpbmtEZXNjcmlwdG9ySW5zdCwgQWN0aW9uVHlwZUVudW0sIElBY3Rpb25Db21wb25lbnQsIFRhYmxldmlld1JvdXRlRGF0YX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuaW1wb3J0IHtBY3Rpb25JbnN0YW5jZVN0YXRlRW51bX0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24taW5zdGFuY2Utc3RhdGUubW9kZWwnO1xuaW1wb3J0IHtBY3Rpb25JbnN0YW5jZX0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24taW5zdGFuY2UubW9kZWwnO1xuaW1wb3J0IHtBY3Rpb25FeGVjdXRvclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FjdGlvbi1leGVjdXRvci5zZXJ2aWNlJztcbmltcG9ydCB7cHJvdmlkZUFjdGlvbkV4ZWN1dG9yfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm92aWRlcnMvcHJvdmlkZS1hY3Rpb24tZXhlY3V0b3InO1xuaW1wb3J0IHtWaWV3Q29udGFpbmVyfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3LWNvbnRhaW5lci5zZXJ2aWNlJztcbmltcG9ydCB7STE4blV0aWxzfSBmcm9tICcuLi8uLi91dGlscy9pMThuLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWFjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgQnV0dG9uTW9kdWxlLCBSaXBwbGVNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIFBhcmFtZXRyaXplUGlwZSwgQ29tcG9uZW50RGlyZWN0aXZlLCBTcGxpdEJ1dHRvbk1vZHVsZSwgTWVudU1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbcHJvdmlkZUFjdGlvbkV4ZWN1dG9yKCldXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkNvbXBvbmVudDxJdGVtID0gYW55LCBTZXJ2aWNlID0gdW5kZWZpbmVkPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBob3N0Q2xhc3MgPSAnbW5nLWFjdGlvbi1idXR0b24nO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MubS0wJykgaXNIb3N0SGlkZGVuID0gZmFsc2U7XG5cbiAgICAvLyBtZXRhZGF0YSBhbmQgZWRpdG9yIG1vZGUgaW5wdXRcbiAgICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIGFjdGlvbiE6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0sIFNlcnZpY2U+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpdGVtPzogSXRlbTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbUlkPzogSWRUeXBlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25EYXRhPzogQWN0aW9uRGF0YTtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0YUxpc3RQYXJhbXM/OiBEYXRhTGlzdFBhcmFtcztcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0YVByb3ZpZGVyPzogSURhdGFQcm92aWRlcjxJdGVtLCBTZXJ2aWNlPjtcbiAgICBASW5wdXQoKSBwdWJsaWMgaG9zdENvbXBvbmVudD86IHVua25vd247XG4gICAgQElucHV0KCdyb3V0ZScpIHB1YmxpYyByb3V0ZUluaXQ/OiBBY3RpdmF0ZWRSb3V0ZTtcbiAgICBASW5wdXQoe2FsaWFzOiAnZGlzYWJsZWQnLCB0cmFuc2Zvcm06IGJvb2xlYW4kQXR0cmlidXRlfSkgcHVibGljIGlucHV0RGlzYWJsZWQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBvZihmYWxzZSk7XG4gICAgQElucHV0KHthbGlhczogJ2xvYWRpbmcnLCB0cmFuc2Zvcm06IGJvb2xlYW4kQXR0cmlidXRlfSkgcHVibGljIGlucHV0TG9hZGluZzogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG9mKGZhbHNlKTtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRJdGVtczogQXJyYXk8SXRlbT4gPSBbXTtcblxuICAgIEBPdXRwdXQoJ2ZpbmlzaCcpIHB1YmxpYyBmaW5pc2hFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGlvbkluc3RhbmNlPEl0ZW0sIFNlcnZpY2U+PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnc3ViYWN0aW9uc01lbnUnKSBwdWJsaWMgc3ViYWN0aW9uc01lbnU/OiBNZW51O1xuXG4gICAgcHJpdmF0ZSBsb2FkaW5nU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHB1YmxpYyAkbG9hZGluZzogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwcml2YXRlIGlzVmlzaWJsZVN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgICBwcml2YXRlIGlzVmlzaWJsZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgICBwdWJsaWMgJGlzVmlzaWJsZSA9IHRoaXMuaXNWaXNpYmxlU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIHByaXZhdGUgaXNQZXJtaXR0ZWRTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gICAgcHJpdmF0ZSBpc1Blcm1pdHRlZFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgICBwdWJsaWMgJGlzUGVybWl0dGVkID0gdGhpcy5pc1Blcm1pdHRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICBwcml2YXRlIGlzRW5hYmxlZFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgICBwcml2YXRlIGlzRW5hYmxlZFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgICBwdWJsaWMgJGlzRW5hYmxlZCA9IHRoaXMuaXNFbmFibGVkU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIHByaXZhdGUgbGFiZWxTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nIHwgbnVsbD4oMSk7XG4gICAgcHJpdmF0ZSBsYWJlbFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgICBwdWJsaWMgJGxhYmVsID0gdGhpcy5sYWJlbFN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICBwcml2YXRlIHRvb2x0aXBTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nIHwgbnVsbD4oMSk7XG4gICAgcHJpdmF0ZSB0b29sdGlwU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyAkdG9vbHRpcCA9IHRoaXMudG9vbHRpcFN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICAgIHB1YmxpYyBhY3Rpb25MaW5rPzogQWN0aW9uTGlua0Rlc2NyaXB0b3JJbnN0PEl0ZW0+O1xuICAgIHB1YmxpYyBoYXNOb1RpdGxlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBwdWJsaWMgcm91dGUhOiBBY3RpdmF0ZWRSb3V0ZTsgLy8gdmFsdWUgd2lsbCBiZSBkZXRlcm1pbmVkIGluIG5nT25Jbml0XG4gICAgcHJpdmF0ZSByb3V0ZVBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zO1xuXG4gICAgcHVibGljIGJ1dHRvbkNsYXNzID0gJ3AtYnV0dG9uLXByaW1hcnknO1xuICAgIHB1YmxpYyBzdWJhY3Rpb25zOiBNZW51SXRlbVtdID0gW107XG4gICAgcHJpdmF0ZSBzdWJhY3Rpb25TdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICAgIHB1YmxpYyBhY3Rpb25PclN1YmFjdGlvbkhhc1J1bkNvbmZpcm1hdGlvbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBpbnN0YW5jZT86IEFjdGlvbkluc3RhbmNlPEl0ZW0sIFNlcnZpY2U+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGVTZXJ2aWNlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXV0aG9yaXphdGlvbjogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWN0aW9uRXhlY3V0b3I6IEFjdGlvbkV4ZWN1dG9yU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyPEl0ZW0sIFNlcnZpY2U+IHwgbnVsbFxuICAgICkge1xuICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5yb3V0ZSA9IHRoaXMucm91dGVJbml0ID8/IHRoaXMucm91dGVTZXJ2aWNlO1xuXG4gICAgICAgIHRoaXMuaGFzTm9UaXRsZSA9IHRoaXMuYWN0aW9uLmJ1dHRvbi5sYWJlbCA9PT0gbnVsbDtcbiAgICAgICAgdGhpcy5pc0VuYWJsZWRTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmlzUGVybWl0dGVkU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmxhYmVsU3ViamVjdC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLnRvb2x0aXBTdWJqZWN0Lm5leHQobnVsbCk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVEYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhIGFzIFRhYmxldmlld1JvdXRlRGF0YTtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uIGluc3RhbmNlb2YgQWN0aW9uTGlua0Rlc2NyaXB0b3JJbnN0KSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbkxpbmsgPSB0aGlzLmFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGlvbi50YWJsZXZpZXdDYXRlZ29yeSAmJiByb3V0ZURhdGEudGFibGV2aWV3UGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIGlmIChyb3V0ZURhdGEudGFibGV2aWV3UGVybWlzc2lvbnNbdGhpcy5hY3Rpb24udGFibGV2aWV3Q2F0ZWdvcnldKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZVBlcm1pc3Npb25zID0gcm91dGVEYXRhLnRhYmxldmlld1Blcm1pc3Npb25zW3RoaXMuYWN0aW9uLnRhYmxldmlld0NhdGVnb3J5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb2Nlc3NTdWJzY3JpcHRpb25zKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uLmNsYXNzTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5ob3N0Q2xhc3MgPSB0aGlzLmFjdGlvbi5jbGFzc05hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaG9zdFZpc2liaWxpdHlTdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLiRpc1Zpc2libGUsIHRoaXMuJGlzUGVybWl0dGVkXSkuc3Vic2NyaWJlKChbaXNWaXNpYmxlLCBpc1Blcm1pdHRlZF0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNIb3N0SGlkZGVuID0gIWlzVmlzaWJsZSB8fCAhaXNQZXJtaXR0ZWQ7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChob3N0VmlzaWJpbGl0eVN1YnNjcmlwdGlvbik7XG5cbiAgICAgICAgdGhpcy5idXR0b25DbGFzcyA9IHRoaXMuYWN0aW9uLmJ1dHRvbi5zdHlsZUNsYXNzLmJ1aWxkKHRoaXMuaGFzTm9UaXRsZSk7XG5cbiAgICAgICAgLy8gSGVyZSB3ZSBjaGVjayBpZiBhbiBhY3Rpb24gb3IgYW55IHN1YmFjdGlvbiBoYXMgY29uZmlybWF0aW9uIGRpYWxvZ1xuICAgICAgICB0aGlzLmFjdGlvbk9yU3ViYWN0aW9uSGFzUnVuQ29uZmlybWF0aW9uID0gdGhpcy5hY3Rpb24uc3ViYWN0aW9ucy5zb21lKHN1YiA9PiBzdWIuaGFzUnVuQ29uZmlybWF0aW9uKSB8fCB0aGlzLmFjdGlvbi5oYXNSdW5Db25maXJtYXRpb247XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKGNoYW5nZXNbJ2l0ZW0nXT8uZmlyc3RDaGFuZ2UgPz8gdHJ1ZSkgfHxcbiAgICAgICAgICAgICEoY2hhbmdlc1snaXRlbUlkJ10/LmZpcnN0Q2hhbmdlID8/IHRydWUpIHx8XG4gICAgICAgICAgICAhKGNoYW5nZXNbJ2FjdGlvbkRhdGEnXT8uZmlyc3RDaGFuZ2UgPz8gdHJ1ZSkgfHxcbiAgICAgICAgICAgICh0aGlzLmFjdGlvbi5oYXNJdGVtc1NlbGVjdGlvbiAmJiAhKGNoYW5nZXNbJ3NlbGVjdGVkSXRlbXMnXT8uZmlyc3RDaGFuZ2UgPz8gdHJ1ZSkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aW9uRXhlY3V0b3Iub25BY3Rpb25EZXN0cm95KHRoaXMuaW5zdGFuY2UpO1xuICAgICAgICB0aGlzLmlzVmlzaWJsZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5pc1Blcm1pdHRlZFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5pc0VuYWJsZWRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMubGFiZWxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMudG9vbHRpcFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLnN1YmFjdGlvblN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyaWdnZXJBY3Rpb24oYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlPiwgcGFyYW1ldGVycz86IEFjdGlvblBhcmFtZXRlcnM8SXRlbT4sIGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgaWYgKGFjdGlvbi5zdWJhY3Rpb25zQXNNZW51KSB7XG4gICAgICAgICAgICB0aGlzLnN1YmFjdGlvbnNNZW51Py50b2dnbGUoZXZlbnQgPz8gbmV3IEV2ZW50KCd0cmlnZ2VyJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWN0aW9uRGF0YSA9IHRoaXMuYWN0aW9uRGF0YSA/IHRoaXMuYWN0aW9uRGF0YSA6IHt9O1xuXG4gICAgICAgIHBhcmFtZXRlcnMgPz89IHtcbiAgICAgICAgICAgIGl0ZW1JZDogdGhpcy5pdGVtSWQsXG4gICAgICAgICAgICBpdGVtOiB0aGlzLml0ZW0sXG4gICAgICAgICAgICBhY3Rpb25EYXRhOiBhY3Rpb25EYXRhLFxuICAgICAgICAgICAgZGF0YUxpc3RQYXJhbXM6IHRoaXMuZGF0YUxpc3RQYXJhbXMsXG4gICAgICAgICAgICByb3V0ZTogdGhpcy5yb3V0ZSxcbiAgICAgICAgICAgIHNvdXJjZUNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgICAgIGhvc3RDb21wb25lbnQ6IHRoaXMuaG9zdENvbXBvbmVudCxcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM6IHRoaXMuc2VsZWN0ZWRJdGVtc1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5hY3Rpb25FeGVjdXRvci50cmlnZ2VyQWN0aW9uPEl0ZW0sIFNlcnZpY2U+KGFjdGlvbiwgcGFyYW1ldGVycyk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IGluc3RhbmNlLmNvbnRleHQ7XG4gICAgICAgIGlmICghY29udGV4dCkge1xuICAgICAgICAgICAgLy8gbm8gY29udGV4dCBpcyBwcm92aWRlZCBpZiByb3V0aW5nIGlzIHRyaWdnZXJlZCBvciBlZGl0b3IgaXMgb3BlbmVkIHZpYSBkaWFsb2dcbiAgICAgICAgICAgIC8vIGl0IGlzIGluIGFub3RoZXIgY29tcG9uZW50IGp1cmlzZGljdGlvbiB0byBoYW5kbGUgY29udGV4dHNcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgaW5zdGFuY2UucmVzdWx0JC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5pc2hFdmVudEVtaXR0ZXIubmV4dChpbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3Rpb24uaGFzSXRlbXNTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lcj8ucmVsb2FkVGFibGUoe2RhdGE6IHtldmVudDogZXZlbnR9fSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIGluc3RhbmNlLmVycm9yJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5pc2hFdmVudEVtaXR0ZXIubmV4dChpbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2Uuc3RhdGUkLnN1YnNjcmliZShzID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHMpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5SdW5TdGFydDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLlJ1bkVuZDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5SdW5FcnJvcjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5OZXh0QWN0aW9uU3RhcnQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnN0YW5jZT8ubmV4dEFjdGlvbkluc3RhbmNlPy5hY3Rpb24udHlwZSA9PT0gQWN0aW9uVHlwZUVudW0uRGlyZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uTmV4dEFjdGlvbkVuZDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmluc3RhbmNlPy5uZXh0QWN0aW9uSW5zdGFuY2U/LmFjdGlvbi50eXBlID09PSBBY3Rpb25UeXBlRW51bS5EaXJlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRXJyb3JBY3Rpb25TdGFydDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmluc3RhbmNlPy5lcnJvckFjdGlvbkluc3RhbmNlPy5hY3Rpb24udHlwZSA9PT0gQWN0aW9uVHlwZUVudW0uRGlyZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRXJyb3JBY3Rpb25FbmQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnN0YW5jZT8uZXJyb3JBY3Rpb25JbnN0YW5jZT8uYWN0aW9uLnR5cGUgPT09IEFjdGlvblR5cGVFbnVtLkRpcmVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuYWN0aW9uRXhlY3V0b3IucnVuKGNvbnRleHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkN1c3RvbUFjdGlvbkNtcEluc3QoaW5zdGFuY2U6IElBY3Rpb25Db21wb25lbnQ8SXRlbT4pIHtcbiAgICAgICAgY29uc3QgY21wSW5zdFN1YnNjcmlwdGlvbiA9IGluc3RhbmNlLnRyaWdnZXJBY3Rpb25FdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHBhcmFtcyA9PiB0aGlzLnRyaWdnZXJBY3Rpb24odGhpcy5hY3Rpb24sIHBhcmFtcykpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChjbXBJbnN0U3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NTdWJhY3Rpb25zKCk6IE1lbnVJdGVtW10ge1xuICAgICAgICB0aGlzLnN1YmFjdGlvblN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuc3ViYWN0aW9uU3Vic2NyaXB0aW9ucyA9IFtdO1xuXG4gICAgICAgIGNvbnN0IG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHN1YmFjdGlvbiBvZiB0aGlzLmFjdGlvbi5zdWJhY3Rpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBtZW51SXRlbSA9IHt9IGFzIE1lbnVJdGVtO1xuXG4gICAgICAgICAgICBtZW51SXRlbS5pY29uID0gc3ViYWN0aW9uLmJ1dHRvbi5pY29uID8/IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuc3ViYWN0aW9uU3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIEkxOG5VdGlscy5BY3Rpb24uZ2V0QXN5bmModGhpcy50cmFuc2xhdGUsIHN1YmFjdGlvbiwgJ3RpdGxlJywgc3ViYWN0aW9uLmJ1dHRvbi5sYWJlbCA/PyB1bmRlZmluZWQsIHRoaXMuaXRlbSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogcmVzID0+IChtZW51SXRlbS5sYWJlbCA9IHJlcyEpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnN1YmFjdGlvblN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICBJMThuVXRpbHMuQWN0aW9uLmdldEFzeW5jKHRoaXMudHJhbnNsYXRlLCBzdWJhY3Rpb24sICd0b29sdGlwJywgdGhpcy5hY3Rpb24uYnV0dG9uLnRvb2x0aXAsIHRoaXMuaXRlbSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogcmVzID0+IChtZW51SXRlbS50b29sdGlwID0gcmVzISlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgcGFyYW1ldGVyczogQWN0aW9uUGFyYW1ldGVyczxJdGVtPiA9IHtcbiAgICAgICAgICAgICAgICBpdGVtSWQ6IHRoaXMuaXRlbUlkLFxuICAgICAgICAgICAgICAgIGl0ZW06IHRoaXMuaXRlbSxcbiAgICAgICAgICAgICAgICBhY3Rpb25EYXRhOiB0aGlzLmFjdGlvbkRhdGEsXG4gICAgICAgICAgICAgICAgc291cmNlQ29tcG9uZW50OiB0aGlzXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAoc3ViYWN0aW9uLmhhc0l0ZW1zU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVycy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5hY3Rpb25FeGVjdXRvci5wcmVwYXJlQWN0aW9uQ29udGV4dFZhbGlkYXRpb24oc3ViYWN0aW9uLCBwYXJhbWV0ZXJzLCB0aGlzLmRhdGFQcm92aWRlcik7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc3ViYWN0aW9uLmlzRW5hYmxlZEZ1bmN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJhY3Rpb25TdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIHRvT2JzZXJ2YWJsZShzdWJhY3Rpb24uaXNFbmFibGVkRnVuY3Rpb24oY29udGV4dCkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0OiByZXMgPT4gKG1lbnVJdGVtLmRpc2FibGVkID0gIXJlcylcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB2aXNpYmlsaXR5T2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8Ym9vbGVhbj5bXSA9IFtdO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBzdWJhY3Rpb24uaXNWaXNpYmxlRnVuY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5T2JzZXJ2YWJsZXMucHVzaCh0b09ic2VydmFibGUoc3ViYWN0aW9uLmlzVmlzaWJsZUZ1bmN0aW9uKGNvbnRleHQpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHN1YmFjdGlvbi5wZXJtaXNzaW9ucyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5T2JzZXJ2YWJsZXMucHVzaCh0aGlzLmF1dGhvcml6YXRpb24uaXNQZXJtaXR0ZWQoc3ViYWN0aW9uLnBlcm1pc3Npb25zLCB0aGlzLnJvdXRlLnNuYXBzaG90LCBjb250ZXh0IGFzIEFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJvdXRlRGF0YSA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YSBhcyBUYWJsZXZpZXdSb3V0ZURhdGE7XG4gICAgICAgICAgICBpZiAoc3ViYWN0aW9uLnRhYmxldmlld0NhdGVnb3J5ICYmIHJvdXRlRGF0YS50YWJsZXZpZXdQZXJtaXNzaW9ucyAmJiByb3V0ZURhdGEudGFibGV2aWV3UGVybWlzc2lvbnNbc3ViYWN0aW9uLnRhYmxldmlld0NhdGVnb3J5XSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlUGVybWlzc2lvbnMgPSByb3V0ZURhdGEudGFibGV2aWV3UGVybWlzc2lvbnNbc3ViYWN0aW9uLnRhYmxldmlld0NhdGVnb3J5XTtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5T2JzZXJ2YWJsZXMucHVzaCh0aGlzLmF1dGhvcml6YXRpb24uaXNQZXJtaXR0ZWQocm91dGVQZXJtaXNzaW9ucywgdGhpcy5yb3V0ZS5zbmFwc2hvdCwgY29udGV4dCBhcyBBY3Rpb25Db250ZXh0VmFsaWRhdGlvbjx1bmtub3duLCB1bmtub3duPikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnN1YmFjdGlvblN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KHZpc2liaWxpdHlPYnNlcnZhYmxlcykuc3Vic2NyaWJlKHZpc2liaWxpdGllcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtLnZpc2libGUgPSB2aXNpYmlsaXRpZXMuZXZlcnkodmFsdWUgPT4gdmFsdWUpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBtZW51SXRlbS5jb21tYW5kID0gKCkgPT4gdGhpcy50cmlnZ2VyQWN0aW9uKHN1YmFjdGlvbik7XG5cbiAgICAgICAgICAgIG1lbnVJdGVtcy5wdXNoKG1lbnVJdGVtKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWVudUl0ZW1zO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1N1YnNjcmlwdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnM6IEFjdGlvblBhcmFtZXRlcnM8SXRlbT4gPSB7XG4gICAgICAgICAgICBpdGVtSWQ6IHRoaXMuaXRlbUlkLFxuICAgICAgICAgICAgaXRlbTogdGhpcy5pdGVtLFxuICAgICAgICAgICAgYWN0aW9uRGF0YTogdGhpcy5hY3Rpb25EYXRhLFxuICAgICAgICAgICAgc291cmNlQ29tcG9uZW50OiB0aGlzXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uLmhhc0l0ZW1zU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5hY3Rpb25FeGVjdXRvci5wcmVwYXJlQWN0aW9uQ29udGV4dFZhbGlkYXRpb24odGhpcy5hY3Rpb24sIHBhcmFtZXRlcnMsIHRoaXMuZGF0YVByb3ZpZGVyKTtcblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWN0aW9uLmlzVmlzaWJsZUZ1bmN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLmlzVmlzaWJsZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlU3Vic2NyaXB0aW9uID0gdG9PYnNlcnZhYmxlKHRoaXMuYWN0aW9uLmlzVmlzaWJsZUZ1bmN0aW9uKGNvbnRleHQpKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB0aGlzLmlzVmlzaWJsZVN1YmplY3QubmV4dChyZXMpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWN0aW9uLnBlcm1pc3Npb25zICE9PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgdGhpcy5yb3V0ZVBlcm1pc3Npb25zICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5pc1Blcm1pdHRlZFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID1cbiAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbi5wZXJtaXNzaW9ucyAmJiB0aGlzLnJvdXRlUGVybWlzc2lvbnNcbiAgICAgICAgICAgICAgICAgICAgPyBQZXJtaXNzaW9ucy5BbGwub2YodGhpcy5yb3V0ZVBlcm1pc3Npb25zLCB0aGlzLmFjdGlvbi5wZXJtaXNzaW9ucylcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnJvdXRlUGVybWlzc2lvbnMgPz8gdGhpcy5hY3Rpb24ucGVybWlzc2lvbnMhO1xuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGVTdWJzY3JpcHRpb24gPSB0aGlzLmF1dGhvcml6YXRpb24uaXNQZXJtaXR0ZWQocGVybWlzc2lvbnMsIHRoaXMucm91dGUuc25hcHNob3QsIGNvbnRleHQgYXMgQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogcmVzID0+IHRoaXMuaXNQZXJtaXR0ZWRTdWJqZWN0Lm5leHQocmVzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjdGlvbi5pc0VuYWJsZWRGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5pc0VuYWJsZWRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmlzRW5hYmxlZFN1YnNjcmlwdGlvbiA9IHRvT2JzZXJ2YWJsZSh0aGlzLmFjdGlvbi5pc0VuYWJsZWRGdW5jdGlvbihjb250ZXh0KSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiByZXMgPT4gdGhpcy5pc0VuYWJsZWRTdWJqZWN0Lm5leHQocmVzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaGFzTm9UaXRsZSkge1xuICAgICAgICAgICAgdGhpcy5sYWJlbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMubGFiZWxTdWJzY3JpcHRpb24gPSBJMThuVXRpbHMuQWN0aW9uLmdldEFzeW5jKHRoaXMudHJhbnNsYXRlLCB0aGlzLmFjdGlvbiwgJ3RpdGxlJywgdGhpcy5hY3Rpb24uYnV0dG9uLmxhYmVsID8/IHVuZGVmaW5lZCwgdGhpcy5pdGVtKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IGkxOG4gPT4gdGhpcy5sYWJlbFN1YmplY3QubmV4dChpMThuKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRvb2x0aXBTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGlmICh0aGlzLmFjdGlvbi5idXR0b24udG9vbHRpcCkge1xuICAgICAgICAgICAgdGhpcy50b29sdGlwU3Vic2NyaXB0aW9uID0gSTE4blV0aWxzLkFjdGlvbi5nZXRBc3luYyh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5hY3Rpb24sICd0b29sdGlwJywgdGhpcy5hY3Rpb24uYnV0dG9uLnRvb2x0aXAsIHRoaXMuaXRlbSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogaTE4biA9PiB0aGlzLnRvb2x0aXBTdWJqZWN0Lm5leHQoaTE4bilcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdWJhY3Rpb25zID0gdGhpcy5wcm9jZXNzU3ViYWN0aW9ucygpO1xuICAgIH1cbn1cbiIsIkBpZiAoKCRpc1Zpc2libGUgfCBhc3luYykgJiYgKCRpc1Blcm1pdHRlZCB8IGFzeW5jKSkge1xuICAgIEBpZiAoYWN0aW9uTGluayAmJiBhY3Rpb25MaW5rLnVybCAhPT0gJycpIHtcbiAgICAgICAgPGFcbiAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgIFtsYWJlbF09XCIoJGxhYmVsIHwgYXN5bmMpID8/ICcnXCJcbiAgICAgICAgICAgIFtpY29uXT1cIiRhbnkoYWN0aW9uLmJ1dHRvbi5pY29uKVwiXG4gICAgICAgICAgICBbaWNvblBvc109XCJhY3Rpb24uYnV0dG9uLmljb25Qb3NpdGlvblwiXG4gICAgICAgICAgICBbaHJlZl09XCIoJGlzRW5hYmxlZCB8IGFzeW5jKSA9PT0gZmFsc2UgfHwgKChpbnB1dERpc2FibGVkIHwgYXN5bmMpID8/IGZhbHNlKSA/IG51bGwgOiAoYWN0aW9uTGluay51cmwgfCBtbmdQYXJhbWV0cml6ZTogaXRlbUlkIDogaXRlbSA6IGFjdGlvbkRhdGEpXCJcbiAgICAgICAgICAgIFt0YXJnZXRdPVwiYWN0aW9uTGluay50YXJnZXRcIlxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIigkaXNFbmFibGVkIHwgYXN5bmMpID09PSBmYWxzZSB8fCAoKGlucHV0RGlzYWJsZWQgfCBhc3luYykgPz8gZmFsc2UpXCJcbiAgICAgICAgICAgIFtwVG9vbHRpcF09XCIoJHRvb2x0aXAgfCBhc3luYykgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiYWN0aW9uLmJ1dHRvbi50b29sdGlwUG9zaXRpb24gPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJidXR0b25DbGFzc1wiPjwvYT5cbiAgICB9IEBlbHNlIGlmIChhY3Rpb25MaW5rKSB7XG4gICAgICAgIDxhXG4gICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICBbaWNvbl09XCIkYW55KGFjdGlvbi5idXR0b24uaWNvbilcIlxuICAgICAgICAgICAgW2ljb25Qb3NdPVwiYWN0aW9uLmJ1dHRvbi5pY29uUG9zaXRpb25cIlxuICAgICAgICAgICAgW2xhYmVsXT1cIigkbGFiZWwgfCBhc3luYykgPz8gJydcIlxuICAgICAgICAgICAgW3RhcmdldF09XCJhY3Rpb25MaW5rLnRhcmdldFwiXG4gICAgICAgICAgICBbcmVwbGFjZVVybF09XCJhY3Rpb25MaW5rLnJlcGxhY2VVcmxcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiKCRpc0VuYWJsZWQgfCBhc3luYykgPT09IGZhbHNlIHx8ICgoaW5wdXREaXNhYmxlZCB8IGFzeW5jKSA/PyBmYWxzZSkgPyBudWxsIDogKGFjdGlvbkxpbmsucGF0aFNlZ21lbnRzIHwgbW5nUGFyYW1ldHJpemU6IGl0ZW1JZCA6IGl0ZW0gOiBhY3Rpb25EYXRhKVwiXG4gICAgICAgICAgICBbcmVsYXRpdmVUb109XCJyb3V0ZVwiXG4gICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiYWN0aW9uTGluay5xdWVyeVBhcmFtcyB8IG1uZ1BhcmFtZXRyaXplOiBpdGVtSWQgOiBpdGVtIDogYWN0aW9uRGF0YVwiXG4gICAgICAgICAgICBbcXVlcnlQYXJhbXNIYW5kbGluZ109XCJhY3Rpb25MaW5rLnF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIigkaXNFbmFibGVkIHwgYXN5bmMpID09PSBmYWxzZSB8fCAoKGlucHV0RGlzYWJsZWQgfCBhc3luYykgPz8gZmFsc2UpXCJcbiAgICAgICAgICAgIFtwVG9vbHRpcF09XCIoJHRvb2x0aXAgfCBhc3luYykgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiYWN0aW9uLmJ1dHRvbi50b29sdGlwUG9zaXRpb24gPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJidXR0b25DbGFzc1wiPjwvYT5cbiAgICB9IEBlbHNlIGlmIChhY3Rpb24uY29tcG9uZW50IHx8IGFjdGlvbi5jb21wb25lbnRGcm9tRGkpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW21uZ0NvbXBvbmVudF09XCJhY3Rpb24uY29tcG9uZW50XCJcbiAgICAgICAgICAgIFtpbmplY3Rpb25Ub2tlbl09XCJhY3Rpb24uY29tcG9uZW50RnJvbURpXCJcbiAgICAgICAgICAgIFtpbnB1dHNdPVwie1xuICAgICAgICAgICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICAgICAgICAgIGl0ZW06IGl0ZW0sXG4gICAgICAgICAgICAgICAgaXRlbUlkOiBpdGVtSWQsXG4gICAgICAgICAgICAgICAgYWN0aW9uRGF0YTogYWN0aW9uRGF0YSxcbiAgICAgICAgICAgICAgICBlbmFibGVkOiAkaXNFbmFibGVkLFxuICAgICAgICAgICAgICAgIGxvYWRpbmc6ICRsb2FkaW5nXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIChpbnN0YW5jZUNyZWF0ZWQpPVwib25DdXN0b21BY3Rpb25DbXBJbnN0KCRldmVudClcIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSBpZiAoYWN0aW9uLnN1YmFjdGlvbnMubGVuZ3RoID4gMCAmJiAhYWN0aW9uLnN1YmFjdGlvbnNBc01lbnUpIHtcbiAgICAgICAgPHAtc3BsaXRCdXR0b25cbiAgICAgICAgICAgIFtpY29uXT1cImFjdGlvbi5idXR0b24uaWNvbiA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgICAgW2ljb25Qb3NdPVwiYWN0aW9uLmJ1dHRvbi5pY29uUG9zaXRpb25cIlxuICAgICAgICAgICAgW2xhYmVsXT1cIigkbGFiZWwgfCBhc3luYykgPz8gJydcIlxuICAgICAgICAgICAgW3BUb29sdGlwXT1cIigkdG9vbHRpcCB8IGFzeW5jKSA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJhY3Rpb24uYnV0dG9uLnRvb2x0aXBQb3NpdGlvbiA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIigkaXNFbmFibGVkIHwgYXN5bmMpID09PSBmYWxzZSB8fCAoKGlucHV0RGlzYWJsZWQgfCBhc3luYykgPz8gZmFsc2UpXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cInRyaWdnZXJBY3Rpb24oYWN0aW9uKVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiYnV0dG9uQ2xhc3NcIlxuICAgICAgICAgICAgW21vZGVsXT1cInN1YmFjdGlvbnNcIj5cbiAgICAgICAgPC9wLXNwbGl0QnV0dG9uPlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtpY29uXT1cIiRhbnkoYWN0aW9uLmJ1dHRvbi5pY29uKVwiXG4gICAgICAgICAgICBbaWNvblBvc109XCJhY3Rpb24uYnV0dG9uLmljb25Qb3NpdGlvblwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiKCRsYWJlbCB8IGFzeW5jKSA/PyAnJ1wiXG4gICAgICAgICAgICBbcFRvb2x0aXBdPVwiKCR0b29sdGlwIHwgYXN5bmMpID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImFjdGlvbi5idXR0b24udG9vbHRpcFBvc2l0aW9uID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbbG9hZGluZ109XCIoKCRsb2FkaW5nIHwgYXN5bmMpID8/IGZhbHNlKSB8fCAoKGlucHV0TG9hZGluZyB8IGFzeW5jKSA/PyBmYWxzZSlcIlxuICAgICAgICAgICAgbG9hZGluZ0ljb249XCJwaSBwaS1zcGluIHBpLXNwaW5uZXJcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIigkaXNFbmFibGVkIHwgYXN5bmMpID09PSBmYWxzZSB8fCAoKGlucHV0RGlzYWJsZWQgfCBhc3luYykgPz8gZmFsc2UpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0cmlnZ2VyQWN0aW9uKGFjdGlvbiwgdW5kZWZpbmVkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJidXR0b25DbGFzc1wiPjwvYnV0dG9uPlxuICAgICAgICA8cC1tZW51ICNzdWJhY3Rpb25zTWVudSBbbW9kZWxdPVwic3ViYWN0aW9uc1wiIFtwb3B1cF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgc3R5bGVDbGFzcz1cIm1uZy1hY3Rpb24tbWVudVwiPjwvcC1tZW51PlxuICAgIH1cbn1cbiJdfQ==
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvYWN0aW9uL2NvbXBvbmVudHMvYWN0aW9uL2FjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2FjdGlvbi9jb21wb25lbnRzL2FjdGlvbi9hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWdDLFFBQVEsRUFBRSxNQUFNLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3SyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLFVBQVUsRUFBRSxhQUFhLEVBQWdCLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFdEcsT0FBTyxFQUlILGtCQUFrQixFQUlsQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsWUFBWSxFQUNmLE1BQU0sNkJB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QUFjO3NCQUFqRCxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01lbnVJdGVtfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHtNZW51LCBNZW51TW9kdWxlfSBmcm9tICdwcmltZW5nL21lbnUnO1xuaW1wb3J0IHtSaXBwbGVNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcmlwcGxlJztcbmltcG9ydCB7U3BsaXRCdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvc3BsaXRidXR0b24nO1xuaW1wb3J0IHtUb29sdGlwTW9kdWxlfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBvZn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgQVBlcm1pc3Npb25zLFxuICAgIEFjdGlvbkRhdGEsXG4gICAgQWN0aW9uUGFyYW1ldGVycyxcbiAgICBDb21wb25lbnREaXJlY3RpdmUsXG4gICAgRGF0YUxpc3RQYXJhbXMsXG4gICAgSURhdGFQcm92aWRlcixcbiAgICBJZFR5cGUsXG4gICAgUGFyYW1ldHJpemVQaXBlLFxuICAgIFBlcm1pc3Npb25TZXJ2aWNlLFxuICAgIFBlcm1pc3Npb25zLFxuICAgIGJvb2xlYW4kQXR0cmlidXRlLFxuICAgIHRvT2JzZXJ2YWJsZVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25Db250ZXh0VmFsaWRhdGlvbiwgQWN0aW9uRGVzY3JpcHRvckluc3QsIEFjdGlvbkxpbmtEZXNjcmlwdG9ySW5zdCwgQWN0aW9uVHlwZUVudW0sIElBY3Rpb25Db21wb25lbnQsIFRhYmxldmlld1JvdXRlRGF0YX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuaW1wb3J0IHtnZXRJMThuRm9yQWN0aW9uQXN5bmN9IGZyb20gJy4uLy4uL2hlbHBlcnMvaTE4bic7XG5pbXBvcnQge0FjdGlvbkluc3RhbmNlU3RhdGVFbnVtfSBmcm9tICcuLi8uLi9tb2RlbHMvZXhlY3V0aW9uL2FjdGlvbi1pbnN0YW5jZS1zdGF0ZS5tb2RlbCc7XG5pbXBvcnQge0FjdGlvbkluc3RhbmNlfSBmcm9tICcuLi8uLi9tb2RlbHMvZXhlY3V0aW9uL2FjdGlvbi1pbnN0YW5jZS5tb2RlbCc7XG5pbXBvcnQge0FjdGlvbkV4ZWN1dG9yU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWN0aW9uLWV4ZWN1dG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtwcm92aWRlQWN0aW9uRXhlY3V0b3J9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb3ZpZGVycy9wcm92aWRlLWFjdGlvbi1leGVjdXRvcic7XG5pbXBvcnQge1ZpZXdDb250YWluZXJ9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZpZXctY29udGFpbmVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWFjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgQnV0dG9uTW9kdWxlLCBSaXBwbGVNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIFBhcmFtZXRyaXplUGlwZSwgQ29tcG9uZW50RGlyZWN0aXZlLCBTcGxpdEJ1dHRvbk1vZHVsZSwgTWVudU1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbcHJvdmlkZUFjdGlvbkV4ZWN1dG9yKCldXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkNvbXBvbmVudDxJdGVtID0gYW55LCBTZXJ2aWNlID0gdW5kZWZpbmVkPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBob3N0Q2xhc3MgPSAnbW5nLWFjdGlvbi1idXR0b24nO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MubS0wJykgaXNIb3N0SGlkZGVuID0gZmFsc2U7XG5cbiAgICAvLyBtZXRhZGF0YSBhbmQgZWRpdG9yIG1vZGUgaW5wdXRcbiAgICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIGFjdGlvbiE6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0sIFNlcnZpY2U+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpdGVtPzogSXRlbTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbUlkPzogSWRUeXBlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25EYXRhPzogQWN0aW9uRGF0YTtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0YUxpc3RQYXJhbXM/OiBEYXRhTGlzdFBhcmFtcztcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0YVByb3ZpZGVyPzogSURhdGFQcm92aWRlcjxJdGVtLCBTZXJ2aWNlPjtcbiAgICBASW5wdXQoKSBwdWJsaWMgaG9zdENvbXBvbmVudD86IHVua25vd247XG4gICAgQElucHV0KCdyb3V0ZScpIHB1YmxpYyByb3V0ZUluaXQ/OiBBY3RpdmF0ZWRSb3V0ZTtcbiAgICBASW5wdXQoe2FsaWFzOiAnZGlzYWJsZWQnLCB0cmFuc2Zvcm06IGJvb2xlYW4kQXR0cmlidXRlfSkgcHVibGljIGlucHV0RGlzYWJsZWQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBvZihmYWxzZSk7XG4gICAgQElucHV0KHthbGlhczogJ2xvYWRpbmcnLCB0cmFuc2Zvcm06IGJvb2xlYW4kQXR0cmlidXRlfSkgcHVibGljIGlucHV0TG9hZGluZzogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG9mKGZhbHNlKTtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRJdGVtczogQXJyYXk8SXRlbT4gPSBbXTtcblxuICAgIEBPdXRwdXQoJ2ZpbmlzaCcpIHB1YmxpYyBmaW5pc2hFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGlvbkluc3RhbmNlPEl0ZW0sIFNlcnZpY2U+PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnc3ViYWN0aW9uc01lbnUnKSBwdWJsaWMgc3ViYWN0aW9uc01lbnU/OiBNZW51O1xuXG4gICAgcHJpdmF0ZSBsb2FkaW5nU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHB1YmxpYyAkbG9hZGluZzogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwcml2YXRlIGlzVmlzaWJsZVN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgICBwcml2YXRlIGlzVmlzaWJsZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgICBwdWJsaWMgJGlzVmlzaWJsZSA9IHRoaXMuaXNWaXNpYmxlU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIHByaXZhdGUgaXNQZXJtaXR0ZWRTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gICAgcHJpdmF0ZSBpc1Blcm1pdHRlZFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgICBwdWJsaWMgJGlzUGVybWl0dGVkID0gdGhpcy5pc1Blcm1pdHRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICBwcml2YXRlIGlzRW5hYmxlZFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgICBwcml2YXRlIGlzRW5hYmxlZFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgICBwdWJsaWMgJGlzRW5hYmxlZCA9IHRoaXMuaXNFbmFibGVkU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIHByaXZhdGUgbGFiZWxTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nIHwgbnVsbD4oMSk7XG4gICAgcHJpdmF0ZSBsYWJlbFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgICBwdWJsaWMgJGxhYmVsID0gdGhpcy5sYWJlbFN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICBwcml2YXRlIHRvb2x0aXBTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nIHwgbnVsbD4oMSk7XG4gICAgcHJpdmF0ZSB0b29sdGlwU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyAkdG9vbHRpcCA9IHRoaXMudG9vbHRpcFN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICAgIHB1YmxpYyBhY3Rpb25MaW5rPzogQWN0aW9uTGlua0Rlc2NyaXB0b3JJbnN0PEl0ZW0+O1xuICAgIHB1YmxpYyBoYXNOb1RpdGxlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBwdWJsaWMgcm91dGUhOiBBY3RpdmF0ZWRSb3V0ZTsgLy8gdmFsdWUgd2lsbCBiZSBkZXRlcm1pbmVkIGluIG5nT25Jbml0XG4gICAgcHJpdmF0ZSByb3V0ZVBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zO1xuXG4gICAgcHVibGljIGJ1dHRvbkNsYXNzID0gJ3AtYnV0dG9uLXByaW1hcnknO1xuICAgIHB1YmxpYyBzdWJhY3Rpb25zOiBNZW51SXRlbVtdID0gW107XG4gICAgcHJpdmF0ZSBzdWJhY3Rpb25TdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICAgIHB1YmxpYyBhY3Rpb25PclN1YmFjdGlvbkhhc1J1bkNvbmZpcm1hdGlvbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBpbnN0YW5jZT86IEFjdGlvbkluc3RhbmNlPEl0ZW0sIFNlcnZpY2U+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGVTZXJ2aWNlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXV0aG9yaXphdGlvbjogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWN0aW9uRXhlY3V0b3I6IEFjdGlvbkV4ZWN1dG9yU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyPEl0ZW0sIFNlcnZpY2U+IHwgbnVsbFxuICAgICkge1xuICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5yb3V0ZSA9IHRoaXMucm91dGVJbml0ID8/IHRoaXMucm91dGVTZXJ2aWNlO1xuXG4gICAgICAgIHRoaXMuaGFzTm9UaXRsZSA9IHRoaXMuYWN0aW9uLmJ1dHRvbi5sYWJlbCA9PT0gbnVsbDtcbiAgICAgICAgdGhpcy5pc0VuYWJsZWRTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmlzUGVybWl0dGVkU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmxhYmVsU3ViamVjdC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLnRvb2x0aXBTdWJqZWN0Lm5leHQobnVsbCk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVEYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhIGFzIFRhYmxldmlld1JvdXRlRGF0YTtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uIGluc3RhbmNlb2YgQWN0aW9uTGlua0Rlc2NyaXB0b3JJbnN0KSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbkxpbmsgPSB0aGlzLmFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGlvbi50YWJsZXZpZXdDYXRlZ29yeSAmJiByb3V0ZURhdGEudGFibGV2aWV3UGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIGlmIChyb3V0ZURhdGEudGFibGV2aWV3UGVybWlzc2lvbnNbdGhpcy5hY3Rpb24udGFibGV2aWV3Q2F0ZWdvcnldKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZVBlcm1pc3Npb25zID0gcm91dGVEYXRhLnRhYmxldmlld1Blcm1pc3Npb25zW3RoaXMuYWN0aW9uLnRhYmxldmlld0NhdGVnb3J5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb2Nlc3NTdWJzY3JpcHRpb25zKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uLmNsYXNzTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5ob3N0Q2xhc3MgPSB0aGlzLmFjdGlvbi5jbGFzc05hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaG9zdFZpc2liaWxpdHlTdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLiRpc1Zpc2libGUsIHRoaXMuJGlzUGVybWl0dGVkXSkuc3Vic2NyaWJlKChbaXNWaXNpYmxlLCBpc1Blcm1pdHRlZF0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNIb3N0SGlkZGVuID0gIWlzVmlzaWJsZSB8fCAhaXNQZXJtaXR0ZWQ7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChob3N0VmlzaWJpbGl0eVN1YnNjcmlwdGlvbik7XG5cbiAgICAgICAgdGhpcy5idXR0b25DbGFzcyA9IHRoaXMuYWN0aW9uLmJ1dHRvbi5zdHlsZUNsYXNzLmJ1aWxkKHRoaXMuaGFzTm9UaXRsZSk7XG5cbiAgICAgICAgLy8gSGVyZSB3ZSBjaGVjayBpZiBhbiBhY3Rpb24gb3IgYW55IHN1YmFjdGlvbiBoYXMgY29uZmlybWF0aW9uIGRpYWxvZ1xuICAgICAgICB0aGlzLmFjdGlvbk9yU3ViYWN0aW9uSGFzUnVuQ29uZmlybWF0aW9uID0gdGhpcy5hY3Rpb24uc3ViYWN0aW9ucy5zb21lKHN1YiA9PiBzdWIuaGFzUnVuQ29uZmlybWF0aW9uKSB8fCB0aGlzLmFjdGlvbi5oYXNSdW5Db25maXJtYXRpb247XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKGNoYW5nZXNbJ2l0ZW0nXT8uZmlyc3RDaGFuZ2UgPz8gdHJ1ZSkgfHxcbiAgICAgICAgICAgICEoY2hhbmdlc1snaXRlbUlkJ10/LmZpcnN0Q2hhbmdlID8/IHRydWUpIHx8XG4gICAgICAgICAgICAhKGNoYW5nZXNbJ2FjdGlvbkRhdGEnXT8uZmlyc3RDaGFuZ2UgPz8gdHJ1ZSkgfHxcbiAgICAgICAgICAgICh0aGlzLmFjdGlvbi5oYXNJdGVtc1NlbGVjdGlvbiAmJiAhKGNoYW5nZXNbJ3NlbGVjdGVkSXRlbXMnXT8uZmlyc3RDaGFuZ2UgPz8gdHJ1ZSkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aW9uRXhlY3V0b3Iub25BY3Rpb25EZXN0cm95KHRoaXMuaW5zdGFuY2UpO1xuICAgICAgICB0aGlzLmlzVmlzaWJsZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5pc1Blcm1pdHRlZFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5pc0VuYWJsZWRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMubGFiZWxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMudG9vbHRpcFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLnN1YmFjdGlvblN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyaWdnZXJBY3Rpb24oYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlPiwgcGFyYW1ldGVycz86IEFjdGlvblBhcmFtZXRlcnM8SXRlbT4sIGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgaWYgKGFjdGlvbi5zdWJhY3Rpb25zQXNNZW51KSB7XG4gICAgICAgICAgICB0aGlzLnN1YmFjdGlvbnNNZW51Py50b2dnbGUoZXZlbnQgPz8gbmV3IEV2ZW50KCd0cmlnZ2VyJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWN0aW9uRGF0YSA9IHRoaXMuYWN0aW9uRGF0YSA/IHRoaXMuYWN0aW9uRGF0YSA6IHt9O1xuXG4gICAgICAgIHBhcmFtZXRlcnMgPz89IHtcbiAgICAgICAgICAgIGl0ZW1JZDogdGhpcy5pdGVtSWQsXG4gICAgICAgICAgICBpdGVtOiB0aGlzLml0ZW0sXG4gICAgICAgICAgICBhY3Rpb25EYXRhOiBhY3Rpb25EYXRhLFxuICAgICAgICAgICAgZGF0YUxpc3RQYXJhbXM6IHRoaXMuZGF0YUxpc3RQYXJhbXMsXG4gICAgICAgICAgICByb3V0ZTogdGhpcy5yb3V0ZSxcbiAgICAgICAgICAgIHNvdXJjZUNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgICAgIGhvc3RDb21wb25lbnQ6IHRoaXMuaG9zdENvbXBvbmVudCxcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM6IHRoaXMuc2VsZWN0ZWRJdGVtc1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5hY3Rpb25FeGVjdXRvci50cmlnZ2VyQWN0aW9uPEl0ZW0sIFNlcnZpY2U+KGFjdGlvbiwgcGFyYW1ldGVycyk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IGluc3RhbmNlLmNvbnRleHQ7XG4gICAgICAgIGlmICghY29udGV4dCkge1xuICAgICAgICAgICAgLy8gbm8gY29udGV4dCBpcyBwcm92aWRlZCBpZiByb3V0aW5nIGlzIHRyaWdnZXJlZCBvciBlZGl0b3IgaXMgb3BlbmVkIHZpYSBkaWFsb2dcbiAgICAgICAgICAgIC8vIGl0IGlzIGluIGFub3RoZXIgY29tcG9uZW50IGp1cmlzZGljdGlvbiB0byBoYW5kbGUgY29udGV4dHNcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgaW5zdGFuY2UucmVzdWx0JC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5pc2hFdmVudEVtaXR0ZXIubmV4dChpbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3Rpb24uaGFzSXRlbXNTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lcj8ucmVsb2FkVGFibGUoe2RhdGE6IHtldmVudDogZXZlbnR9fSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIGluc3RhbmNlLmVycm9yJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5pc2hFdmVudEVtaXR0ZXIubmV4dChpbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2Uuc3RhdGUkLnN1YnNjcmliZShzID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHMpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5SdW5TdGFydDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLlJ1bkVuZDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5SdW5FcnJvcjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5OZXh0QWN0aW9uU3RhcnQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnN0YW5jZT8ubmV4dEFjdGlvbkluc3RhbmNlPy5hY3Rpb24udHlwZSA9PT0gQWN0aW9uVHlwZUVudW0uRGlyZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uTmV4dEFjdGlvbkVuZDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmluc3RhbmNlPy5uZXh0QWN0aW9uSW5zdGFuY2U/LmFjdGlvbi50eXBlID09PSBBY3Rpb25UeXBlRW51bS5EaXJlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRXJyb3JBY3Rpb25TdGFydDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmluc3RhbmNlPy5lcnJvckFjdGlvbkluc3RhbmNlPy5hY3Rpb24udHlwZSA9PT0gQWN0aW9uVHlwZUVudW0uRGlyZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRXJyb3JBY3Rpb25FbmQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnN0YW5jZT8uZXJyb3JBY3Rpb25JbnN0YW5jZT8uYWN0aW9uLnR5cGUgPT09IEFjdGlvblR5cGVFbnVtLkRpcmVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuYWN0aW9uRXhlY3V0b3IucnVuKGNvbnRleHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkN1c3RvbUFjdGlvbkNtcEluc3QoaW5zdGFuY2U6IElBY3Rpb25Db21wb25lbnQ8SXRlbT4pIHtcbiAgICAgICAgY29uc3QgY21wSW5zdFN1YnNjcmlwdGlvbiA9IGluc3RhbmNlLnRyaWdnZXJBY3Rpb25FdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHBhcmFtcyA9PiB0aGlzLnRyaWdnZXJBY3Rpb24odGhpcy5hY3Rpb24sIHBhcmFtcykpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChjbXBJbnN0U3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NTdWJhY3Rpb25zKCk6IE1lbnVJdGVtW10ge1xuICAgICAgICB0aGlzLnN1YmFjdGlvblN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuc3ViYWN0aW9uU3Vic2NyaXB0aW9ucyA9IFtdO1xuXG4gICAgICAgIGNvbnN0IG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHN1YmFjdGlvbiBvZiB0aGlzLmFjdGlvbi5zdWJhY3Rpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBtZW51SXRlbSA9IHt9IGFzIE1lbnVJdGVtO1xuXG4gICAgICAgICAgICBtZW51SXRlbS5pY29uID0gc3ViYWN0aW9uLmJ1dHRvbi5pY29uID8/IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuc3ViYWN0aW9uU3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIGdldEkxOG5Gb3JBY3Rpb25Bc3luYyh0aGlzLnRyYW5zbGF0ZSwgc3ViYWN0aW9uLCAndGl0bGUnLCBzdWJhY3Rpb24uYnV0dG9uLmxhYmVsID8/IHVuZGVmaW5lZCwgdGhpcy5pdGVtKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICBuZXh0OiByZXMgPT4gKG1lbnVJdGVtLmxhYmVsID0gcmVzISlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuc3ViYWN0aW9uU3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIGdldEkxOG5Gb3JBY3Rpb25Bc3luYyh0aGlzLnRyYW5zbGF0ZSwgc3ViYWN0aW9uLCAndG9vbHRpcCcsIHRoaXMuYWN0aW9uLmJ1dHRvbi50b29sdGlwLCB0aGlzLml0ZW0pLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiAobWVudUl0ZW0udG9vbHRpcCA9IHJlcyEpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IHBhcmFtZXRlcnM6IEFjdGlvblBhcmFtZXRlcnM8SXRlbT4gPSB7XG4gICAgICAgICAgICAgICAgaXRlbUlkOiB0aGlzLml0ZW1JZCxcbiAgICAgICAgICAgICAgICBpdGVtOiB0aGlzLml0ZW0sXG4gICAgICAgICAgICAgICAgYWN0aW9uRGF0YTogdGhpcy5hY3Rpb25EYXRhLFxuICAgICAgICAgICAgICAgIHNvdXJjZUNvbXBvbmVudDogdGhpc1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKHN1YmFjdGlvbi5oYXNJdGVtc1NlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuYWN0aW9uRXhlY3V0b3IucHJlcGFyZUFjdGlvbkNvbnRleHRWYWxpZGF0aW9uKHN1YmFjdGlvbiwgcGFyYW1ldGVycywgdGhpcy5kYXRhUHJvdmlkZXIpO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHN1YmFjdGlvbi5pc0VuYWJsZWRGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ViYWN0aW9uU3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICB0b09ic2VydmFibGUoc3ViYWN0aW9uLmlzRW5hYmxlZEZ1bmN0aW9uKGNvbnRleHQpKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDogcmVzID0+IChtZW51SXRlbS5kaXNhYmxlZCA9ICFyZXMpXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdmlzaWJpbGl0eU9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGJvb2xlYW4+W10gPSBbXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc3ViYWN0aW9uLmlzVmlzaWJsZUZ1bmN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eU9ic2VydmFibGVzLnB1c2godG9PYnNlcnZhYmxlKHN1YmFjdGlvbi5pc1Zpc2libGVGdW5jdGlvbihjb250ZXh0KSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzdWJhY3Rpb24ucGVybWlzc2lvbnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eU9ic2VydmFibGVzLnB1c2godGhpcy5hdXRob3JpemF0aW9uLmlzUGVybWl0dGVkKHN1YmFjdGlvbi5wZXJtaXNzaW9ucywgdGhpcy5yb3V0ZS5zbmFwc2hvdCwgY29udGV4dCBhcyBBY3Rpb25Db250ZXh0VmFsaWRhdGlvbjx1bmtub3duLCB1bmtub3duPikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByb3V0ZURhdGEgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEgYXMgVGFibGV2aWV3Um91dGVEYXRhO1xuICAgICAgICAgICAgaWYgKHN1YmFjdGlvbi50YWJsZXZpZXdDYXRlZ29yeSAmJiByb3V0ZURhdGEudGFibGV2aWV3UGVybWlzc2lvbnMgJiYgcm91dGVEYXRhLnRhYmxldmlld1Blcm1pc3Npb25zW3N1YmFjdGlvbi50YWJsZXZpZXdDYXRlZ29yeV0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3V0ZVBlcm1pc3Npb25zID0gcm91dGVEYXRhLnRhYmxldmlld1Blcm1pc3Npb25zW3N1YmFjdGlvbi50YWJsZXZpZXdDYXRlZ29yeV07XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eU9ic2VydmFibGVzLnB1c2godGhpcy5hdXRob3JpemF0aW9uLmlzUGVybWl0dGVkKHJvdXRlUGVybWlzc2lvbnMsIHRoaXMucm91dGUuc25hcHNob3QsIGNvbnRleHQgYXMgQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zdWJhY3Rpb25TdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdCh2aXNpYmlsaXR5T2JzZXJ2YWJsZXMpLnN1YnNjcmliZSh2aXNpYmlsaXRpZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICBtZW51SXRlbS52aXNpYmxlID0gdmlzaWJpbGl0aWVzLmV2ZXJ5KHZhbHVlID0+IHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgbWVudUl0ZW0uY29tbWFuZCA9ICgpID0+IHRoaXMudHJpZ2dlckFjdGlvbihzdWJhY3Rpb24pO1xuXG4gICAgICAgICAgICBtZW51SXRlbXMucHVzaChtZW51SXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lbnVJdGVtcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NTdWJzY3JpcHRpb25zKCkge1xuICAgICAgICBjb25zdCBwYXJhbWV0ZXJzOiBBY3Rpb25QYXJhbWV0ZXJzPEl0ZW0+ID0ge1xuICAgICAgICAgICAgaXRlbUlkOiB0aGlzLml0ZW1JZCxcbiAgICAgICAgICAgIGl0ZW06IHRoaXMuaXRlbSxcbiAgICAgICAgICAgIGFjdGlvbkRhdGE6IHRoaXMuYWN0aW9uRGF0YSxcbiAgICAgICAgICAgIHNvdXJjZUNvbXBvbmVudDogdGhpc1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLmFjdGlvbi5oYXNJdGVtc1NlbGVjdGlvbikge1xuICAgICAgICAgICAgcGFyYW1ldGVycy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuYWN0aW9uRXhlY3V0b3IucHJlcGFyZUFjdGlvbkNvbnRleHRWYWxpZGF0aW9uKHRoaXMuYWN0aW9uLCBwYXJhbWV0ZXJzLCB0aGlzLmRhdGFQcm92aWRlcik7XG5cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjdGlvbi5pc1Zpc2libGVGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmlzVmlzaWJsZVN1YnNjcmlwdGlvbiA9IHRvT2JzZXJ2YWJsZSh0aGlzLmFjdGlvbi5pc1Zpc2libGVGdW5jdGlvbihjb250ZXh0KSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiByZXMgPT4gdGhpcy5pc1Zpc2libGVTdWJqZWN0Lm5leHQocmVzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjdGlvbi5wZXJtaXNzaW9ucyAhPT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHRoaXMucm91dGVQZXJtaXNzaW9ucyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMuaXNQZXJtaXR0ZWRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICBjb25zdCBwZXJtaXNzaW9ucyA9XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb24ucGVybWlzc2lvbnMgJiYgdGhpcy5yb3V0ZVBlcm1pc3Npb25zXG4gICAgICAgICAgICAgICAgICAgID8gUGVybWlzc2lvbnMuQWxsLm9mKHRoaXMucm91dGVQZXJtaXNzaW9ucywgdGhpcy5hY3Rpb24ucGVybWlzc2lvbnMpXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5yb3V0ZVBlcm1pc3Npb25zID8/IHRoaXMuYWN0aW9uLnBlcm1pc3Npb25zITtcbiAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlU3Vic2NyaXB0aW9uID0gdGhpcy5hdXRob3JpemF0aW9uLmlzUGVybWl0dGVkKHBlcm1pc3Npb25zLCB0aGlzLnJvdXRlLnNuYXBzaG90LCBjb250ZXh0IGFzIEFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+KS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB0aGlzLmlzUGVybWl0dGVkU3ViamVjdC5uZXh0KHJlcylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hY3Rpb24uaXNFbmFibGVkRnVuY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFbmFibGVkU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5pc0VuYWJsZWRTdWJzY3JpcHRpb24gPSB0b09ic2VydmFibGUodGhpcy5hY3Rpb24uaXNFbmFibGVkRnVuY3Rpb24oY29udGV4dCkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogcmVzID0+IHRoaXMuaXNFbmFibGVkU3ViamVjdC5uZXh0KHJlcylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc05vVGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmxhYmVsU3Vic2NyaXB0aW9uID0gZ2V0STE4bkZvckFjdGlvbkFzeW5jKHRoaXMudHJhbnNsYXRlLCB0aGlzLmFjdGlvbiwgJ3RpdGxlJywgdGhpcy5hY3Rpb24uYnV0dG9uLmxhYmVsID8/IHVuZGVmaW5lZCwgdGhpcy5pdGVtKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IGkxOG4gPT4gdGhpcy5sYWJlbFN1YmplY3QubmV4dChpMThuKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRvb2x0aXBTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGlmICh0aGlzLmFjdGlvbi5idXR0b24udG9vbHRpcCkge1xuICAgICAgICAgICAgdGhpcy50b29sdGlwU3Vic2NyaXB0aW9uID0gZ2V0STE4bkZvckFjdGlvbkFzeW5jKHRoaXMudHJhbnNsYXRlLCB0aGlzLmFjdGlvbiwgJ3Rvb2x0aXAnLCB0aGlzLmFjdGlvbi5idXR0b24udG9vbHRpcCwgdGhpcy5pdGVtLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiBpMThuID0+IHRoaXMudG9vbHRpcFN1YmplY3QubmV4dChpMThuKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN1YmFjdGlvbnMgPSB0aGlzLnByb2Nlc3NTdWJhY3Rpb25zKCk7XG4gICAgfVxufVxuIiwiQGlmICgoJGlzVmlzaWJsZSB8IGFzeW5jKSAmJiAoJGlzUGVybWl0dGVkIHwgYXN5bmMpKSB7XG4gICAgQGlmIChhY3Rpb25MaW5rICYmIGFjdGlvbkxpbmsudXJsICE9PSAnJykge1xuICAgICAgICA8YVxuICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgW2xhYmVsXT1cIigkbGFiZWwgfCBhc3luYykgPz8gJydcIlxuICAgICAgICAgICAgW2ljb25dPVwiJGFueShhY3Rpb24uYnV0dG9uLmljb24pXCJcbiAgICAgICAgICAgIFtpY29uUG9zXT1cImFjdGlvbi5idXR0b24uaWNvblBvc2l0aW9uXCJcbiAgICAgICAgICAgIFtocmVmXT1cIigkaXNFbmFibGVkIHwgYXN5bmMpID09PSBmYWxzZSB8fCAoKGlucHV0RGlzYWJsZWQgfCBhc3luYykgPz8gZmFsc2UpID8gbnVsbCA6IChhY3Rpb25MaW5rLnVybCB8IG1uZ1BhcmFtZXRyaXplOiBpdGVtSWQgOiBpdGVtIDogYWN0aW9uRGF0YSlcIlxuICAgICAgICAgICAgW3RhcmdldF09XCJhY3Rpb25MaW5rLnRhcmdldFwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiKCRpc0VuYWJsZWQgfCBhc3luYykgPT09IGZhbHNlIHx8ICgoaW5wdXREaXNhYmxlZCB8IGFzeW5jKSA/PyBmYWxzZSlcIlxuICAgICAgICAgICAgW3BUb29sdGlwXT1cIigkdG9vbHRpcCB8IGFzeW5jKSA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJhY3Rpb24uYnV0dG9uLnRvb2x0aXBQb3NpdGlvbiA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzXCI+PC9hPlxuICAgIH0gQGVsc2UgaWYgKGFjdGlvbkxpbmspIHtcbiAgICAgICAgPGFcbiAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgIFtpY29uXT1cIiRhbnkoYWN0aW9uLmJ1dHRvbi5pY29uKVwiXG4gICAgICAgICAgICBbaWNvblBvc109XCJhY3Rpb24uYnV0dG9uLmljb25Qb3NpdGlvblwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiKCRsYWJlbCB8IGFzeW5jKSA/PyAnJ1wiXG4gICAgICAgICAgICBbdGFyZ2V0XT1cImFjdGlvbkxpbmsudGFyZ2V0XCJcbiAgICAgICAgICAgIFtyZXBsYWNlVXJsXT1cImFjdGlvbkxpbmsucmVwbGFjZVVybFwiXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCIoJGlzRW5hYmxlZCB8IGFzeW5jKSA9PT0gZmFsc2UgfHwgKChpbnB1dERpc2FibGVkIHwgYXN5bmMpID8/IGZhbHNlKSA/IG51bGwgOiAoYWN0aW9uTGluay5wYXRoU2VnbWVudHMgfCBtbmdQYXJhbWV0cml6ZTogaXRlbUlkIDogaXRlbSA6IGFjdGlvbkRhdGEpXCJcbiAgICAgICAgICAgIFtyZWxhdGl2ZVRvXT1cInJvdXRlXCJcbiAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJhY3Rpb25MaW5rLnF1ZXJ5UGFyYW1zIHwgbW5nUGFyYW1ldHJpemU6IGl0ZW1JZCA6IGl0ZW0gOiBhY3Rpb25EYXRhXCJcbiAgICAgICAgICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cImFjdGlvbkxpbmsucXVlcnlQYXJhbXNIYW5kbGluZ1wiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiKCRpc0VuYWJsZWQgfCBhc3luYykgPT09IGZhbHNlIHx8ICgoaW5wdXREaXNhYmxlZCB8IGFzeW5jKSA/PyBmYWxzZSlcIlxuICAgICAgICAgICAgW3BUb29sdGlwXT1cIigkdG9vbHRpcCB8IGFzeW5jKSA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJhY3Rpb24uYnV0dG9uLnRvb2x0aXBQb3NpdGlvbiA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzXCI+PC9hPlxuICAgIH0gQGVsc2UgaWYgKGFjdGlvbi5jb21wb25lbnQgfHwgYWN0aW9uLmNvbXBvbmVudEZyb21EaSkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbW5nQ29tcG9uZW50XT1cImFjdGlvbi5jb21wb25lbnRcIlxuICAgICAgICAgICAgW2luamVjdGlvblRva2VuXT1cImFjdGlvbi5jb21wb25lbnRGcm9tRGlcIlxuICAgICAgICAgICAgW2lucHV0c109XCJ7XG4gICAgICAgICAgICAgICAgYWN0aW9uOiBhY3Rpb24sXG4gICAgICAgICAgICAgICAgaXRlbTogaXRlbSxcbiAgICAgICAgICAgICAgICBpdGVtSWQ6IGl0ZW1JZCxcbiAgICAgICAgICAgICAgICBhY3Rpb25EYXRhOiBhY3Rpb25EYXRhLFxuICAgICAgICAgICAgICAgIGVuYWJsZWQ6ICRpc0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgbG9hZGluZzogJGxvYWRpbmdcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKGluc3RhbmNlQ3JlYXRlZCk9XCJvbkN1c3RvbUFjdGlvbkNtcEluc3QoJGV2ZW50KVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICB9IEBlbHNlIGlmIChhY3Rpb24uc3ViYWN0aW9ucy5sZW5ndGggPiAwICYmICFhY3Rpb24uc3ViYWN0aW9uc0FzTWVudSkge1xuICAgICAgICA8cC1zcGxpdEJ1dHRvblxuICAgICAgICAgICAgW2ljb25dPVwiYWN0aW9uLmJ1dHRvbi5pY29uID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbaWNvblBvc109XCJhY3Rpb24uYnV0dG9uLmljb25Qb3NpdGlvblwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiKCRsYWJlbCB8IGFzeW5jKSA/PyAnJ1wiXG4gICAgICAgICAgICBbcFRvb2x0aXBdPVwiKCR0b29sdGlwIHwgYXN5bmMpID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImFjdGlvbi5idXR0b24udG9vbHRpcFBvc2l0aW9uID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiKCRpc0VuYWJsZWQgfCBhc3luYykgPT09IGZhbHNlIHx8ICgoaW5wdXREaXNhYmxlZCB8IGFzeW5jKSA/PyBmYWxzZSlcIlxuICAgICAgICAgICAgKG9uQ2xpY2spPVwidHJpZ2dlckFjdGlvbihhY3Rpb24pXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJidXR0b25DbGFzc1wiXG4gICAgICAgICAgICBbbW9kZWxdPVwic3ViYWN0aW9uc1wiPlxuICAgICAgICA8L3Atc3BsaXRCdXR0b24+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2ljb25dPVwiJGFueShhY3Rpb24uYnV0dG9uLmljb24pXCJcbiAgICAgICAgICAgIFtpY29uUG9zXT1cImFjdGlvbi5idXR0b24uaWNvblBvc2l0aW9uXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCIoJGxhYmVsIHwgYXN5bmMpID8/ICcnXCJcbiAgICAgICAgICAgIFtwVG9vbHRpcF09XCIoJHRvb2x0aXAgfCBhc3luYykgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiYWN0aW9uLmJ1dHRvbi50b29sdGlwUG9zaXRpb24gPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFtsb2FkaW5nXT1cIigoJGxvYWRpbmcgfCBhc3luYykgPz8gZmFsc2UpIHx8ICgoaW5wdXRMb2FkaW5nIHwgYXN5bmMpID8/IGZhbHNlKVwiXG4gICAgICAgICAgICBsb2FkaW5nSWNvbj1cInBpIHBpLXNwaW4gcGktc3Bpbm5lclwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiKCRpc0VuYWJsZWQgfCBhc3luYykgPT09IGZhbHNlIHx8ICgoaW5wdXREaXNhYmxlZCB8IGFzeW5jKSA/PyBmYWxzZSlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRyaWdnZXJBY3Rpb24oYWN0aW9uLCB1bmRlZmluZWQsICRldmVudClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzXCI+PC9idXR0b24+XG4gICAgICAgIDxwLW1lbnUgI3N1YmFjdGlvbnNNZW51IFttb2RlbF09XCJzdWJhY3Rpb25zXCIgW3BvcHVwXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiBzdHlsZUNsYXNzPVwibW5nLWFjdGlvbi1tZW51XCI+PC9wLW1lbnU+XG4gICAgfVxufVxuIl19
|
|
@@ -68,10 +68,10 @@ export class ActionEditorComponent {
|
|
|
68
68
|
triggerSubmit() {
|
|
69
69
|
this.actionEditorWInjContextCmp?.triggerSubmit();
|
|
70
70
|
}
|
|
71
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ActionEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
72
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: ActionEditorComponent, isStandalone: true, selector: "mng-action-editor", inputs: { action: "action", itemIdInput: ["itemId", "itemIdInput"], itemInput: ["item", "itemInput"], actionData: "actionData", dataProvider: "dataProvider" }, outputs: { actionRunEventEmitter: "actionSubmit", actionCancelEventEmitter: "actionCancel" }, usesOnChanges: true, hostDirectives: [{ directive: i1.DialogKeydownHandlerDirective }], ngImport: i0, template: "<div\n [mngComponent]=\"injContextCmpType\"\n [inputs]=\"{\n data: actionEditorWInjContextInputData\n }\"\n [nodeInjector]=\"injector\"\n (instanceCreated)=\"onActionEditorWInjContextCmp($event)\"></div>\n", dependencies: [{ kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "nodeInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
73
73
|
}
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ActionEditorComponent, decorators: [{
|
|
75
75
|
type: Component,
|
|
76
76
|
args: [{ standalone: true, selector: 'mng-action-editor', imports: [ComponentDirective], hostDirectives: [DialogKeydownHandlerDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [mngComponent]=\"injContextCmpType\"\n [inputs]=\"{\n data: actionEditorWInjContextInputData\n }\"\n [nodeInjector]=\"injector\"\n (instanceCreated)=\"onActionEditorWInjContextCmp($event)\"></div>\n" }]
|
|
77
77
|
}], propDecorators: { action: [{
|
|
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
94
94
|
type: Output,
|
|
95
95
|
args: ['actionCancel']
|
|
96
96
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2FjdGlvbi9jb21wb25lbnRzL2VkaXRvci9hY3Rpb24tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvYWN0aW9uL2NvbXBvbmVudHMvZWRpdG9yL2FjdGlvbi1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBdUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BLLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBYSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSw2QkFBNkIsRUFBd0IsTUFBTSw2QkFBNkIsQ0FBQztBQUN2SixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUdoRixPQUFPLEVBQUMsb0NBQW9DLEVBQXVDLE1BQU0sNkRBQTZELENBQUM7OztBQVV2SixNQUFNLE9BQU8scUJBQXFCO0lBUmxDO1FBU29CLHNCQUFpQixHQUFHLG9DQUFpRCxDQUFDO1FBRS9FLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBVy9DLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO1FBQ2pF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LENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU07UUFDVCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVNLGFBQWE7UUFDaEIsSUFBSSxDQUFDLDBCQUEwQixFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQ3JELENBQUM7OEdBcEZRLHFCQUFxQjtrR0FBckIscUJBQXFCLG1hQ25CbEMscU9BT0EsNENEUWMsa0JBQWtCOzsyRkFJbkIscUJBQXFCO2tCQVJqQyxTQUFTO2lDQUNNLElBQUksWUFDTixtQkFBbUIsV0FFcEIsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFDYixDQUFDLDZCQUE2QixDQUFDLG1CQUM5Qix1QkFBdUIsQ0FBQyxNQUFNOzhCQVVmLE1BQU07c0JBQXJDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUdDLFdBQVc7c0JBQWxDLEtBQUs7dUJBQUMsUUFBUTtnQkFDTyxTQUFTO3NCQUE5QixLQUFLO3VCQUFDLE1BQU07Z0JBQ0csVUFBVTtzQkFBekIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUV5QixxQkFBcUI7c0JBQW5ELE1BQU07dUJBQUMsY0FBYztnQkFDUyx3QkFBd0I7c0JBQXRELE1BQU07dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFR5cGUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQge0R5bmFtaWNEaWFsb2dDb25maWd9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XG5cbmltcG9ydCB7QWN0aW9uRGF0YSwgQ29tbW9uc0ludGVybmFsRXJyb3IsIENvbXBvbmVudERpcmVjdGl2ZSwgRGlhbG9nS2V5ZG93bkhhbmRsZXJEaXJlY3RpdmUsIElEYXRhUHJvdmlkZXIsIElkVHlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7QWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3R9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7QWN0aW9uRWRpdG9yRGlhbG9nRGF0YX0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbi1lZGl0b3ItZGlhbG9nLWRhdGEubW9kZWwnO1xuaW1wb3J0IHtBY3Rpb25FZGl0b3JJbmplY3RvckNvbnRleHRDb21wb25lbnQsIEFjdGlvbkVkaXRvckluamVjdG9yQ29udGV4dElucHV0RGF0YX0gZnJvbSAnLi9pbmplY3Rvci1jb250ZXh0L2FjdGlvbi1lZGl0b3ItaW5qZWN0b3ItY29udGV4dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWFjdGlvbi1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbQ29tcG9uZW50RGlyZWN0aXZlXSxcbiAgICBob3N0RGlyZWN0aXZlczogW0RpYWxvZ0tleWRvd25IYW5kbGVyRGlyZWN0aXZlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JDb21wb25lbnQ8VCA9IGFueSwgUyA9IGFueT4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgcHVibGljIHJlYWRvbmx5IGluakNvbnRleHRDbXBUeXBlID0gQWN0aW9uRWRpdG9ySW5qZWN0b3JDb250ZXh0Q29tcG9uZW50IGFzIFR5cGU8YW55PjtcblxuICAgIHB1YmxpYyBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gICAgcHVibGljIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dDb25maWcgPSBpbmplY3QoRHluYW1pY0RpYWxvZ0NvbmZpZywge29wdGlvbmFsOiB0cnVlfSk7XG5cbiAgICAvLyBtZXRhZGF0YSBhbmQgZWRpdG9yIG1vZGUgaW5wdXRcbiAgICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIGFjdGlvbiE6IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PFQsIFM+O1xuXG4gICAgLy8gZGF0YSBzb3VyY2UgaW5wdXRzXG4gICAgQElucHV0KCdpdGVtSWQnKSBwdWJsaWMgaXRlbUlkSW5wdXQ/OiBJZFR5cGU7XG4gICAgQElucHV0KCdpdGVtJykgcHVibGljIGl0ZW1JbnB1dD86IFQ7XG4gICAgQElucHV0KCkgcHVibGljIGFjdGlvbkRhdGE/OiBBY3Rpb25EYXRhO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhUHJvdmlkZXI/OiBJRGF0YVByb3ZpZGVyPFQsIFM+O1xuXG4gICAgQE91dHB1dCgnYWN0aW9uU3VibWl0JykgcHVibGljIGFjdGlvblJ1bkV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8VCB8IG51bGwgfCB1bmRlZmluZWQ+KCk7XG4gICAgQE91dHB1dCgnYWN0aW9uQ2FuY2VsJykgcHVibGljIGFjdGlvbkNhbmNlbEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8VCB8IG51bGwgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICBwcml2YXRlIGFjdGlvbkVkaXRvcldJbmpDb250ZXh0Q21wPzogQWN0aW9uRWRpdG9ySW5qZWN0b3JDb250ZXh0Q29tcG9uZW50PFQsIFM+O1xuICAgIHB1YmxpYyBhY3Rpb25FZGl0b3JXSW5qQ29udGV4dElucHV0RGF0YT86IEFjdGlvbkVkaXRvckluamVjdG9yQ29udGV4dElucHV0RGF0YTxULCBTPjtcblxuICAgIHByaXZhdGUgaXNEaWFsb2cgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgYWN0aW9uRWRpdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25FZGl0b3JXSW5qQ29udGV4dENtcDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZvcm1FZGl0b3JDbXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGlvbkVkaXRvcj8uZm9ybUVkaXRvckNtcDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgbGV0IGRpYWxvZ0RhdGE6IEFjdGlvbkVkaXRvckRpYWxvZ0RhdGE8VCwgUz4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnPy5kYXRhKSB7XG4gICAgICAgICAgICBkaWFsb2dEYXRhID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YSBhcyBBY3Rpb25FZGl0b3JEaWFsb2dEYXRhPFQsIFM+O1xuICAgICAgICAgICAgdGhpcy5pc0RpYWxvZyA9IHRydWU7XG5cbiAgICAgICAgICAgIC8vIHNldCBpbmplY3RvciBmcm9tIHByb3ZpZGVkIG9uZVxuICAgICAgICAgICAgdGhpcy5pbmplY3RvciA9IGRpYWxvZ0RhdGEuaW5qZWN0b3I7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGlvbkVkaXRvcldJbmpDb250ZXh0SW5wdXREYXRhID0ge1xuICAgICAgICAgICAgaXNEaWFsb2c6IHRoaXMuaXNEaWFsb2csXG4gICAgICAgICAgICBkaWFsb2dDb25maWc6IHRoaXMuZGlhbG9nQ29uZmlnID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGRlc2NyaXB0b3I6IGRpYWxvZ0RhdGE/LmFjdGlvbi5kZXNjcmlwdG9yID8/IHRoaXMuYWN0aW9uLFxuICAgICAgICAgICAgYWN0aW9uSW5zdGFuY2U6IGRpYWxvZ0RhdGE/LmFjdGlvbi5pbnN0YW5jZSxcbiAgICAgICAgICAgIHByZXZpb3VzQWN0aW9uSW5zdGFuY2U6IGRpYWxvZ0RhdGE/LmFjdGlvbi5wcmV2aW91c0luc3RhbmNlLFxuICAgICAgICAgICAgaXRlbUlkOiBkaWFsb2dEYXRhPy5hY3Rpb24uaW5zdGFuY2UuYWN0aXZhdGlvblBhcmFtZXRlcnM/Lml0ZW1JZCA/PyB0aGlzLml0ZW1JZElucHV0LFxuICAgICAgICAgICAgaXRlbTogZGlhbG9nRGF0YT8uYWN0aW9uLmluc3RhbmNlLmFjdGl2YXRpb25QYXJhbWV0ZXJzPy5pdGVtID8/IHRoaXMuaXRlbUlucHV0LFxuICAgICAgICAgICAgYWN0aW9uRGF0YTogZGlhbG9nRGF0YT8uYWN0aW9uLmluc3RhbmNlLmFjdGl2YXRpb25QYXJhbWV0ZXJzPy5hY3Rpb25EYXRhID8/IHRoaXMuYWN0aW9uRGF0YSxcbiAgICAgICAgICAgIGRhdGFQcm92aWRlcjogdGhpcy5kYXRhUHJvdmlkZXJcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydpdGVtSWRJbnB1dCddICYmICFjaGFuZ2VzWydpdGVtSWRJbnB1dCddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbkVkaXRvcldJbmpDb250ZXh0Q21wPy51cGRhdGVJdGVtSWQodGhpcy5pdGVtSWRJbnB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXNbJ2l0ZW1JbnB1dCddICYmICFjaGFuZ2VzWydpdGVtSW5wdXQnXS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25FZGl0b3JXSW5qQ29udGV4dENtcD8udXBkYXRlSXRlbSh0aGlzLml0ZW1JbnB1dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25BY3Rpb25FZGl0b3JXSW5qQ29udGV4dENtcChjbXA6IEFjdGlvbkVkaXRvckluamVjdG9yQ29udGV4dENvbXBvbmVudDxULCBTPikge1xuICAgICAgICBpZiAodGhpcy5hY3Rpb25FZGl0b3JXSW5qQ29udGV4dENtcCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKCdBY3Rpb24gZWRpdG9yIGluamVjdGlvbiBjb250ZXh0IGNvbXBvbmVudCBpcyBhbHJlYWR5IGluaXRpYWxpemVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3Rpb25FZGl0b3JXSW5qQ29udGV4dENtcCA9IGNtcDtcbiAgICAgICAgdGhpcy5hY3Rpb25FZGl0b3JXSW5qQ29udGV4dENtcC5hY3Rpb25DYW5jZWxFdmVudEVtaXR0ZXIucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKGFjdGlvbiA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbkNhbmNlbEV2ZW50RW1pdHRlci5lbWl0KGFjdGlvbik7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFjdGlvbkVkaXRvcldJbmpDb250ZXh0Q21wLmFjdGlvblJ1bkV2ZW50RW1pdHRlci5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoYWN0aW9uID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uUnVuRXZlbnRFbWl0dGVyLmVtaXQoYWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy5hY3Rpb25FZGl0b3JXSW5qQ29udGV4dENtcD8uY2FuY2VsKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyaWdnZXJTdWJtaXQoKSB7XG4gICAgICAgIHRoaXMuYWN0aW9uRWRpdG9yV0luakNvbnRleHRDbXA/LnRyaWdnZXJTdWJtaXQoKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgW21uZ0NvbXBvbmVudF09XCJpbmpDb250ZXh0Q21wVHlwZVwiXG4gICAgW2lucHV0c109XCJ7XG4gICAgICAgIGRhdGE6IGFjdGlvbkVkaXRvcldJbmpDb250ZXh0SW5wdXREYXRhXG4gICAgfVwiXG4gICAgW25vZGVJbmplY3Rvcl09XCJpbmplY3RvclwiXG4gICAgKGluc3RhbmNlQ3JlYXRlZCk9XCJvbkFjdGlvbkVkaXRvcldJbmpDb250ZXh0Q21wKCRldmVudClcIj48L2Rpdj5cbiJdfQ==
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2FjdGlvbi9jb21wb25lbnRzL2VkaXRvci9hY3Rpb24tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvYWN0aW9uL2NvbXBvbmVudHMvZWRpdG9yL2FjdGlvbi1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBdUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BLLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBYSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSw2QkFBNkIsRUFBd0IsTUFBTSw2QkFBNkIsQ0FBQztBQUN2SixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUdoRixPQUFPLEVBQUMsb0NBQW9DLEVBQXVDLE1BQU0sNkRBQTZELENBQUM7OztBQVV2SixNQUFNLE9BQU8scUJBQXFCO0lBUmxDO1FBU29CLHNCQUFpQixHQUFHLG9DQUFpRCxDQUFDO1FBRS9FLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBVy9DLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO1FBQ2pFLDZCQUF3QixHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO1FBSzNGLGFBQVEsR0FBRyxLQUFLLENBQUM7S0ErRDVCO0lBN0RHLElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7SUFDNUMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLFVBQVUsR0FBNkMsU0FBUyxDQUFDO1FBRXJFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMxQixVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFvQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBRXJCLGlDQUFpQztZQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDeEMsQ0FBQztRQUVELElBQUksQ0FBQyxnQ0FBZ0MsR0FBRztZQUNwQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksU0FBUztZQUM1QyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU07WUFDeEQsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUMzQyxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtZQUMzRCxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQ3BGLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVM7WUFDOUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVTtZQUMzRixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDbEMsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLDBCQUEwQixFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQywwQkFBMEIsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDTCxDQUFDO0lBRU0sNEJBQTRCLENBQUMsR0FBK0M7UUFDL0UsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksb0JBQW9CLENBQUMsa0VBQWtFLENBQUMsQ0FBQztRQUN2RyxDQUFDO1FBQ0QsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEdBQUcsQ0FBQztRQUN0QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsSCxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLDBCQUEwQixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0csSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLDBCQUEwQixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFTSxhQUFhO1FBQ2hCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxhQUFhLEVBQUUsQ0FBQztJQUNyRCxDQUFDOzhHQXBGUSxxQkFBcUI7a0dBQXJCLHFCQUFxQixtYUNuQmxDLHFPQU9BLDRDRFFjLGtCQUFrQjs7MkZBSW5CLHFCQUFxQjtrQkFSakMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sbUJBQW1CLFdBRXBCLENBQUMsa0JBQWtCLENBQUMsa0JBQ2IsQ0FBQyw2QkFBNkIsQ0FBQyxtQkFDOUIsdUJBQXVCLENBQUMsTUFBTTs4QkFVZixNQUFNO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFHQyxXQUFXO3NCQUFsQyxLQUFLO3VCQUFDLFFBQVE7Z0JBQ08sU0FBUztzQkFBOUIsS0FBSzt1QkFBQyxNQUFNO2dCQUNHLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFFeUIscUJBQXFCO3NCQUFuRCxNQUFNO3VCQUFDLGNBQWM7Z0JBQ1Msd0JBQXdCO3NCQUF0RCxNQUFNO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBUeXBlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHtEeW5hbWljRGlhbG9nQ29uZmlnfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuXG5pbXBvcnQge0FjdGlvbkRhdGEsIENvbW1vbnNJbnRlcm5hbEVycm9yLCBDb21wb25lbnREaXJlY3RpdmUsIERpYWxvZ0tleWRvd25IYW5kbGVyRGlyZWN0aXZlLCBJRGF0YVByb3ZpZGVyLCBJZFR5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0FjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge0FjdGlvbkVkaXRvckRpYWxvZ0RhdGF9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb24tZWRpdG9yLWRpYWxvZy1kYXRhLm1vZGVsJztcbmltcG9ydCB7QWN0aW9uRWRpdG9ySW5qZWN0b3JDb250ZXh0Q29tcG9uZW50LCBBY3Rpb25FZGl0b3JJbmplY3RvckNvbnRleHRJbnB1dERhdGF9IGZyb20gJy4vaW5qZWN0b3ItY29udGV4dC9hY3Rpb24tZWRpdG9yLWluamVjdG9yLWNvbnRleHQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy1hY3Rpb24tZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW0NvbXBvbmVudERpcmVjdGl2ZV0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtEaWFsb2dLZXlkb3duSGFuZGxlckRpcmVjdGl2ZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yQ29tcG9uZW50PFQgPSBhbnksIFMgPSBhbnk+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHB1YmxpYyByZWFkb25seSBpbmpDb250ZXh0Q21wVHlwZSA9IEFjdGlvbkVkaXRvckluamVjdG9yQ29udGV4dENvbXBvbmVudCBhcyBUeXBlPGFueT47XG5cbiAgICBwdWJsaWMgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHB1YmxpYyByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nQ29uZmlnID0gaW5qZWN0KER5bmFtaWNEaWFsb2dDb25maWcsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgLy8gbWV0YWRhdGEgYW5kIGVkaXRvciBtb2RlIGlucHV0XG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBhY3Rpb24hOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxULCBTPjtcblxuICAgIC8vIGRhdGEgc291cmNlIGlucHV0c1xuICAgIEBJbnB1dCgnaXRlbUlkJykgcHVibGljIGl0ZW1JZElucHV0PzogSWRUeXBlO1xuICAgIEBJbnB1dCgnaXRlbScpIHB1YmxpYyBpdGVtSW5wdXQ/OiBUO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25EYXRhPzogQWN0aW9uRGF0YTtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0YVByb3ZpZGVyPzogSURhdGFQcm92aWRlcjxULCBTPjtcblxuICAgIEBPdXRwdXQoJ2FjdGlvblN1Ym1pdCcpIHB1YmxpYyBhY3Rpb25SdW5FdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFQgfCBudWxsIHwgdW5kZWZpbmVkPigpO1xuICAgIEBPdXRwdXQoJ2FjdGlvbkNhbmNlbCcpIHB1YmxpYyBhY3Rpb25DYW5jZWxFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFQgfCBudWxsIHwgdW5kZWZpbmVkPigpO1xuXG4gICAgcHJpdmF0ZSBhY3Rpb25FZGl0b3JXSW5qQ29udGV4dENtcD86IEFjdGlvbkVkaXRvckluamVjdG9yQ29udGV4dENvbXBvbmVudDxULCBTPjtcbiAgICBwdWJsaWMgYWN0aW9uRWRpdG9yV0luakNvbnRleHRJbnB1dERhdGE/OiBBY3Rpb25FZGl0b3JJbmplY3RvckNvbnRleHRJbnB1dERhdGE8VCwgUz47XG5cbiAgICBwcml2YXRlIGlzRGlhbG9nID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgZ2V0IGFjdGlvbkVkaXRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9uRWRpdG9yV0luakNvbnRleHRDbXA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmb3JtRWRpdG9yQ21wKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25FZGl0b3I/LmZvcm1FZGl0b3JDbXA7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGxldCBkaWFsb2dEYXRhOiBBY3Rpb25FZGl0b3JEaWFsb2dEYXRhPFQsIFM+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZz8uZGF0YSkge1xuICAgICAgICAgICAgZGlhbG9nRGF0YSA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEgYXMgQWN0aW9uRWRpdG9yRGlhbG9nRGF0YTxULCBTPjtcbiAgICAgICAgICAgIHRoaXMuaXNEaWFsb2cgPSB0cnVlO1xuXG4gICAgICAgICAgICAvLyBzZXQgaW5qZWN0b3IgZnJvbSBwcm92aWRlZCBvbmVcbiAgICAgICAgICAgIHRoaXMuaW5qZWN0b3IgPSBkaWFsb2dEYXRhLmluamVjdG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3Rpb25FZGl0b3JXSW5qQ29udGV4dElucHV0RGF0YSA9IHtcbiAgICAgICAgICAgIGlzRGlhbG9nOiB0aGlzLmlzRGlhbG9nLFxuICAgICAgICAgICAgZGlhbG9nQ29uZmlnOiB0aGlzLmRpYWxvZ0NvbmZpZyA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICBkZXNjcmlwdG9yOiBkaWFsb2dEYXRhPy5hY3Rpb24uZGVzY3JpcHRvciA/PyB0aGlzLmFjdGlvbixcbiAgICAgICAgICAgIGFjdGlvbkluc3RhbmNlOiBkaWFsb2dEYXRhPy5hY3Rpb24uaW5zdGFuY2UsXG4gICAgICAgICAgICBwcmV2aW91c0FjdGlvbkluc3RhbmNlOiBkaWFsb2dEYXRhPy5hY3Rpb24ucHJldmlvdXNJbnN0YW5jZSxcbiAgICAgICAgICAgIGl0ZW1JZDogZGlhbG9nRGF0YT8uYWN0aW9uLmluc3RhbmNlLmFjdGl2YXRpb25QYXJhbWV0ZXJzPy5pdGVtSWQgPz8gdGhpcy5pdGVtSWRJbnB1dCxcbiAgICAgICAgICAgIGl0ZW06IGRpYWxvZ0RhdGE/LmFjdGlvbi5pbnN0YW5jZS5hY3RpdmF0aW9uUGFyYW1ldGVycz8uaXRlbSA/PyB0aGlzLml0ZW1JbnB1dCxcbiAgICAgICAgICAgIGFjdGlvbkRhdGE6IGRpYWxvZ0RhdGE/LmFjdGlvbi5pbnN0YW5jZS5hY3RpdmF0aW9uUGFyYW1ldGVycz8uYWN0aW9uRGF0YSA/PyB0aGlzLmFjdGlvbkRhdGEsXG4gICAgICAgICAgICBkYXRhUHJvdmlkZXI6IHRoaXMuZGF0YVByb3ZpZGVyXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1snaXRlbUlkSW5wdXQnXSAmJiAhY2hhbmdlc1snaXRlbUlkSW5wdXQnXS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25FZGl0b3JXSW5qQ29udGV4dENtcD8udXBkYXRlSXRlbUlkKHRoaXMuaXRlbUlkSW5wdXQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzWydpdGVtSW5wdXQnXSAmJiAhY2hhbmdlc1snaXRlbUlucHV0J10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uRWRpdG9yV0luakNvbnRleHRDbXA/LnVwZGF0ZUl0ZW0odGhpcy5pdGVtSW5wdXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQWN0aW9uRWRpdG9yV0luakNvbnRleHRDbXAoY21wOiBBY3Rpb25FZGl0b3JJbmplY3RvckNvbnRleHRDb21wb25lbnQ8VCwgUz4pIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uRWRpdG9yV0luakNvbnRleHRDbXApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcignQWN0aW9uIGVkaXRvciBpbmplY3Rpb24gY29udGV4dCBjb21wb25lbnQgaXMgYWxyZWFkeSBpbml0aWFsaXplZCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWN0aW9uRWRpdG9yV0luakNvbnRleHRDbXAgPSBjbXA7XG4gICAgICAgIHRoaXMuYWN0aW9uRWRpdG9yV0luakNvbnRleHRDbXAuYWN0aW9uQ2FuY2VsRXZlbnRFbWl0dGVyLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZShhY3Rpb24gPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25DYW5jZWxFdmVudEVtaXR0ZXIuZW1pdChhY3Rpb24pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hY3Rpb25FZGl0b3JXSW5qQ29udGV4dENtcC5hY3Rpb25SdW5FdmVudEVtaXR0ZXIucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKGFjdGlvbiA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvblJ1bkV2ZW50RW1pdHRlci5lbWl0KGFjdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuYWN0aW9uRWRpdG9yV0luakNvbnRleHRDbXA/LmNhbmNlbCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmlnZ2VyU3VibWl0KCkge1xuICAgICAgICB0aGlzLmFjdGlvbkVkaXRvcldJbmpDb250ZXh0Q21wPy50cmlnZ2VyU3VibWl0KCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIFttbmdDb21wb25lbnRdPVwiaW5qQ29udGV4dENtcFR5cGVcIlxuICAgIFtpbnB1dHNdPVwie1xuICAgICAgICBkYXRhOiBhY3Rpb25FZGl0b3JXSW5qQ29udGV4dElucHV0RGF0YVxuICAgIH1cIlxuICAgIFtub2RlSW5qZWN0b3JdPVwiaW5qZWN0b3JcIlxuICAgIChpbnN0YW5jZUNyZWF0ZWQpPVwib25BY3Rpb25FZGl0b3JXSW5qQ29udGV4dENtcCgkZXZlbnQpXCI+PC9kaXY+XG4iXX0=
|