@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
|
@@ -22,6 +22,7 @@ export function withTableview(config) {
|
|
|
22
22
|
return {
|
|
23
23
|
type: CommonsFeatureTypeEnum.Tableview,
|
|
24
24
|
providers: [
|
|
25
|
+
DatePipe,
|
|
25
26
|
NavigationService,
|
|
26
27
|
{
|
|
27
28
|
provide: COMMONS_TABLEVIEW_FEATURE_CONFIG_IT,
|
|
@@ -58,4 +59,4 @@ export function withTableview(config) {
|
|
|
58
59
|
]
|
|
59
60
|
};
|
|
60
61
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RhYmxldmlldy9zcmMvcHJvdmlkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBaUIsc0JBQXNCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRixPQUFPLEVBQUMsbUNBQW1DLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUUvRyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUN6RixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUNoSCxPQUFPLEVBQUMsd0JBQXdCLEVBQUUsK0JBQStCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4SCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUM3RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN4RixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsbUNBQW1DLEVBQXlCLE1BQU0scURBQXFELENBQUM7QUFFaEk7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBK0I7SUFDekQsT0FBTztRQUNILElBQUksRUFBRSxzQkFBc0IsQ0FBQyxTQUFTO1FBQ3RDLFNBQVMsRUFBRTtZQUNQLFFBQVE7WUFDUixpQkFBaUI7WUFDakI7Z0JBQ0ksT0FBTyxFQUFFLG1DQUFtQztnQkFDNUMsUUFBUSxFQUFFLE1BQU07YUFDbkI7WUFDRDtnQkFDSSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsVUFBVSxFQUFFLDJCQUEyQjtnQkFDdkMsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLG1DQUFtQyxDQUFDO2FBQzFFO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLDBCQUEwQjtnQkFDbkMsUUFBUSxFQUFFLHFCQUFxQjthQUNsQztZQUNEO2dCQUNJLE9BQU8sRUFBRSxtQ0FBbUM7Z0JBQzVDLFFBQVEsRUFBRSw2QkFBNkI7YUFDMUM7WUFDRDtnQkFDSSxPQUFPLEVBQUUsd0JBQXdCO2dCQUNqQyxRQUFRLEVBQUUsK0JBQStCO2FBQzVDO1lBQ0QseUJBQXlCO1lBQ3pCO2dCQUNJLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSx5QkFBeUI7YUFDekM7WUFDRCwyQkFBMkI7WUFDM0I7Z0JBQ0ksT0FBTyxFQUFFLG9CQUFvQjtnQkFDN0IsV0FBVyxFQUFFLDJCQUEyQjthQUMzQztTQUNKO0tBQ0osQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGVQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQge0ZPUk1MWV9DT05GSUd9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtDb21tb25zRmVhdHVyZSwgQ29tbW9uc0ZlYXR1cmVUeXBlRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7REFUQV9MQU5HVUFHRV9EUk9QRE9XTl9DT01QT05FTlRfSVQsIERhdGFQcm92aWRlckV4ZWN1dG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge0FjdGlvbkVkaXRvckNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb24vY29tcG9uZW50cy9lZGl0b3IvYWN0aW9uLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHtEYXRhTGFuZ3VhZ2VEcm9wZG93bkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb24vY29tcG9uZW50cy9sb2NhbGl6YXRpb24vZGF0YS1sYW5ndWFnZS1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3Rpb25FcnJvck1hcHBlclNlcnZpY2UsIERlZmF1bHRBY3Rpb25FcnJvck1hcHBlclNlcnZpY2V9IGZyb20gJy4vYWN0aW9uL3NlcnZpY2VzL2FjdGlvbi1lcnJvci1tYXBwZXIuc2VydmljZSc7XG5pbXBvcnQge0FjdGlvbkV4ZWN1dG9yU2VydmljZX0gZnJvbSAnLi9hY3Rpb24vc2VydmljZXMvYWN0aW9uLWV4ZWN1dG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtEZWZhdWx0RGF0YVByb3ZpZGVyRXhlY3V0b3J9IGZyb20gJy4vYWN0aW9uL3NlcnZpY2VzL2RhdGEtcHJvdmlkZXItZXhlY3V0b3Iuc2VydmljZSc7XG5pbXBvcnQge05hdmlnYXRpb25TZXJ2aWNlfSBmcm9tICcuL2FjdGlvbi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtSb290QWN0aW9uRXhlY3V0b3JTZXJ2aWNlfSBmcm9tICcuL2FjdGlvbi9zZXJ2aWNlcy9yb290LWFjdGlvbi1leGVjdXRvci5zZXJ2aWNlJztcbmltcG9ydCB7QUNUSU9OX0VESVRPUl9DT01QT05FTlRfSVR9IGZyb20gJy4vYWN0aW9uL3NlcnZpY2VzL3Rva2Vucy9hY3Rpb24tZWRpdG9yLnRva2VuJztcbmltcG9ydCB7Y29tbW9uc0Zvcm1seUNvbmZpZ1Byb3ZpZGVyfSBmcm9tICcuL2VkaXRvci9zZXJ2aWNlcy9mb3JtbHktY29uZmlnLnByb3ZpZGVyJztcbmltcG9ydCB7Q09NTU9OU19UQUJMRVZJRVdfRkVBVFVSRV9DT05GSUdfSVQsIFRhYmxldmlld0ZlYXR1cmVDb25maWd9IGZyb20gJy4vdGFibGV2aWV3L3NlcnZpY2VzL3RhYmxldmlldy1mZWF0dXJlLWNvbmZpZy50b2tlbic7XG5cbi8qKlxuICogUHJlcGFyZXMgcHJvdmlkZXJzIGZvciB1c2FnZSBvZiB0aGUgdGFibGV2aWV3IGZ1bmN0aW9uYWxpdGllcy5cbiAqXG4gKiBAcmV0dXJucyB7Q29tbW9uc0ZlYXR1cmV9IFRoZSBgQ29tbW9uc0ZlYXR1cmVgIG9iamVjdCB3aXRoIHRoZSBsYXlvdXQgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhUYWJsZXZpZXcoY29uZmlnPzogVGFibGV2aWV3RmVhdHVyZUNvbmZpZyk6IENvbW1vbnNGZWF0dXJlIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBDb21tb25zRmVhdHVyZVR5cGVFbnVtLlRhYmxldmlldyxcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICBEYXRlUGlwZSxcbiAgICAgICAgICAgIE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IENPTU1PTlNfVEFCTEVWSUVXX0ZFQVRVUkVfQ09ORklHX0lULFxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogRk9STUxZX0NPTkZJRyxcbiAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBjb21tb25zRm9ybWx5Q29uZmlnUHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgZGVwczogW1RyYW5zbGF0ZVNlcnZpY2UsIERhdGVQaXBlLCBDT01NT05TX1RBQkxFVklFV19GRUFUVVJFX0NPTkZJR19JVF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogQUNUSU9OX0VESVRPUl9DT01QT05FTlRfSVQsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IEFjdGlvbkVkaXRvckNvbXBvbmVudFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBEQVRBX0xBTkdVQUdFX0RST1BET1dOX0NPTVBPTkVOVF9JVCxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogRGF0YUxhbmd1YWdlRHJvcGRvd25Db21wb25lbnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogQWN0aW9uRXJyb3JNYXBwZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBEZWZhdWx0QWN0aW9uRXJyb3JNYXBwZXJTZXJ2aWNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgUm9vdEFjdGlvbkV4ZWN1dG9yU2VydmljZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBBY3Rpb25FeGVjdXRvclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFJvb3RBY3Rpb25FeGVjdXRvclNlcnZpY2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBEZWZhdWx0RGF0YVByb3ZpZGVyRXhlY3V0b3IsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogRGF0YVByb3ZpZGVyRXhlY3V0b3IsXG4gICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IERlZmF1bHREYXRhUHJvdmlkZXJFeGVjdXRvclxuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfTtcbn1cbiJdfQ==
|
|
@@ -2,10 +2,10 @@ import { Component, Input } from '@angular/core';
|
|
|
2
2
|
import { TableviewComponent } from '../tableview/tableview.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class TableviewRouteComponent {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
6
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: TableviewRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: TableviewRouteComponent, isStandalone: true, selector: "mng-tableview-route", inputs: { tableview: "tableview" }, ngImport: i0, template: "<mng-tableview [descriptor]=\"tableview.descriptor\" [dataProvider]=\"tableview.dataProvider\" [actions]=\"tableview.actions\"> </mng-tableview>\n", dependencies: [{ kind: "component", type: TableviewComponent, selector: "mng-tableview", inputs: ["descriptor", "dataProvider", "actions"] }] }); }
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: TableviewRouteComponent, decorators: [{
|
|
9
9
|
type: Component,
|
|
10
10
|
args: [{ standalone: true, selector: 'mng-tableview-route', imports: [TableviewComponent], template: "<mng-tableview [descriptor]=\"tableview.descriptor\" [dataProvider]=\"tableview.dataProvider\" [actions]=\"tableview.actions\"> </mng-tableview>\n" }]
|
|
11
11
|
}], propDecorators: { tableview: [{
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { NgTemplateOutlet } from '@angular/common';
|
|
2
|
-
import { Component,
|
|
2
|
+
import { Component, Input, computed, contentChildren, inject } from '@angular/core';
|
|
3
3
|
import { RouterOutlet } from '@angular/router';
|
|
4
4
|
import { TranslateModule } from '@ngx-translate/core';
|
|
5
5
|
import { SharedModule } from 'primeng/api';
|
|
6
6
|
import { ToolbarModule } from 'primeng/toolbar';
|
|
7
|
-
import { TemplateDirective } from '@mediusinc/mng-commons/core';
|
|
7
|
+
import { TemplateDirective, findTemplateByName } from '@mediusinc/mng-commons/core';
|
|
8
8
|
import { ActionPositionEnum, TableviewActionDefaultCategories, TableviewDescriptorInst } from '@mediusinc/mng-commons/tableview/api';
|
|
9
9
|
import { ActionComponent } from '../../../action/components/action/action.component';
|
|
10
10
|
import { ActionTableComponent } from '../../../action/components/table/action-table.component';
|
|
@@ -23,6 +23,9 @@ export class TableviewComponent {
|
|
|
23
23
|
this.toolbarRightActions = [];
|
|
24
24
|
this.hasItemSelectionAction = false;
|
|
25
25
|
this.selectedItems = [];
|
|
26
|
+
this.templates = contentChildren(TemplateDirective);
|
|
27
|
+
this.footerTemplate = computed(() => findTemplateByName([...this.templates()], 'footer'));
|
|
28
|
+
this.rowExpandTemplate = computed(() => findTemplateByName([...this.templates()], 'rowExpandContent'));
|
|
26
29
|
}
|
|
27
30
|
ngOnInit() {
|
|
28
31
|
if (this.viewContainer) {
|
|
@@ -49,27 +52,18 @@ export class TableviewComponent {
|
|
|
49
52
|
this.toolbarRightActions = this.toolbarRightActions.reverse();
|
|
50
53
|
this.hasItemSelectionAction = [...this.toolbarLeftActions, ...this.toolbarRightActions].some(e => e.hasItemsSelection);
|
|
51
54
|
}
|
|
52
|
-
ngAfterContentInit() {
|
|
53
|
-
this.templates.forEach(template => {
|
|
54
|
-
switch (template.getType()) {
|
|
55
|
-
case 'footer':
|
|
56
|
-
this.footerTemplate = template.template;
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
55
|
onTableLoad(event) {
|
|
62
56
|
this.tableParams = event.params;
|
|
63
57
|
}
|
|
64
58
|
selectionChange(selectedItems) {
|
|
65
59
|
this.selectedItems = selectedItems;
|
|
66
60
|
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: TableviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: TableviewComponent, isStandalone: true, selector: "mng-tableview", inputs: { descriptor: "descriptor", dataProvider: "dataProvider", actions: "actions" }, providers: [provideViewContainer()], queries: [{ propertyName: "templates", predicate: TemplateDirective, isSignal: true }], ngImport: i0, template: "<div class=\"mng-tableview\">\n <div class=\"card\">\n @if (toolbarLeftActions.length > 0 || toolbarRightActions.length > 0) {\n <p-toolbar styleClass=\"mb-4\">\n <ng-template pTemplate=\"left\">\n @for (action of toolbarLeftActions; track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems\"></mng-action>\n }\n </ng-template>\n <ng-template pTemplate=\"right\">\n @for (action of toolbarRightActions; track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n }\n\n <mng-action-table\n [descriptor]=\"descriptor.table\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"true\"\n [actions]=\"tableActions\"\n [selectionEnabled]=\"hasItemSelectionAction\"\n [selectionMode]=\"'multiple'\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between table-header\">\n <h5 class=\"p-0 m-0\">{{ descriptor.tableTitle ?? '' | translate }}</h5>\n </div>\n </ng-template>\n @if (rowExpandTemplate()) {\n <ng-template mngTemplate=\"rowExpandContent\" let-item=\"rowItem\">\n <ng-container *ngTemplateOutlet=\"rowExpandTemplate(); context: {rowItem: item}\"></ng-container>\n </ng-template>\n }\n\n @if (footerTemplate()) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate(); context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n </mng-action-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ToolbarModule }, { kind: "component", type: i1.Toolbar, selector: "p-toolbar", inputs: ["style", "styleClass", "ariaLabelledBy"] }, { kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataListParams", "dataProvider", "hostComponent", "route", "disabled", "loading", "selectedItems"], outputs: ["finish"] }, { kind: "component", type: ActionTableComponent, selector: "mng-action-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "globalFilterFields", "actions", "captionComponent", "columnActionComponent", "columnActionMinWidth"], outputs: ["tableLoad", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { kind: "directive", type: TemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
69
63
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: TableviewComponent, decorators: [{
|
|
71
65
|
type: Component,
|
|
72
|
-
args: [{ standalone: true, selector: 'mng-tableview', imports: [ToolbarModule, SharedModule, TranslateModule, NgTemplateOutlet, ActionComponent, ActionTableComponent, TemplateDirective, RouterOutlet], providers: [provideViewContainer()], template: "<div class=\"mng-tableview\">\n <div class=\"card\">\n @if (toolbarLeftActions.length > 0 || toolbarRightActions.length > 0) {\n <p-toolbar styleClass=\"mb-4\">\n <ng-template pTemplate=\"left\">\n @for (action of toolbarLeftActions; track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems\"></mng-action>\n }\n </ng-template>\n <ng-template pTemplate=\"right\">\n @for (action of toolbarRightActions; track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n }\n\n <mng-action-table\n [descriptor]=\"descriptor.table\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"true\"\n [actions]=\"tableActions\"\n [selectionEnabled]=\"hasItemSelectionAction\"\n [selectionMode]=\"'multiple'\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between table-header\">\n <h5 class=\"p-0 m-0\">{{ descriptor.tableTitle ?? '' | translate }}</h5>\n </div>\n </ng-template>\n\n @if (footerTemplate) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n </mng-action-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n" }]
|
|
66
|
+
args: [{ standalone: true, selector: 'mng-tableview', imports: [ToolbarModule, SharedModule, TranslateModule, NgTemplateOutlet, ActionComponent, ActionTableComponent, TemplateDirective, RouterOutlet], providers: [provideViewContainer()], template: "<div class=\"mng-tableview\">\n <div class=\"card\">\n @if (toolbarLeftActions.length > 0 || toolbarRightActions.length > 0) {\n <p-toolbar styleClass=\"mb-4\">\n <ng-template pTemplate=\"left\">\n @for (action of toolbarLeftActions; track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems\"></mng-action>\n }\n </ng-template>\n <ng-template pTemplate=\"right\">\n @for (action of toolbarRightActions; track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n }\n\n <mng-action-table\n [descriptor]=\"descriptor.table\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"true\"\n [actions]=\"tableActions\"\n [selectionEnabled]=\"hasItemSelectionAction\"\n [selectionMode]=\"'multiple'\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between table-header\">\n <h5 class=\"p-0 m-0\">{{ descriptor.tableTitle ?? '' | translate }}</h5>\n </div>\n </ng-template>\n @if (rowExpandTemplate()) {\n <ng-template mngTemplate=\"rowExpandContent\" let-item=\"rowItem\">\n <ng-container *ngTemplateOutlet=\"rowExpandTemplate(); context: {rowItem: item}\"></ng-container>\n </ng-template>\n }\n\n @if (footerTemplate()) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate(); context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n </mng-action-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n" }]
|
|
73
67
|
}], propDecorators: { descriptor: [{
|
|
74
68
|
type: Input,
|
|
75
69
|
args: [{ required: true }]
|
|
@@ -77,8 +71,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
77
71
|
type: Input
|
|
78
72
|
}], actions: [{
|
|
79
73
|
type: Input
|
|
80
|
-
}], templates: [{
|
|
81
|
-
type: ContentChildren,
|
|
82
|
-
args: [TemplateDirective]
|
|
83
74
|
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvdGFibGV2aWV3L2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL3RhYmxldmlldy9jb21wb25lbnRzL3RhYmxldmlldy90YWJsZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFtQixTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQWUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxFQUFpQixpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRTlFLE9BQU8sRUFBdUIsa0JBQWtCLEVBQTBCLGdDQUFnQyxFQUFFLHVCQUF1QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFakwsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7QUFTOUUsTUFBTSxPQUFPLGtCQUFrQjtJQVAvQjtRQVFv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LGVBQWUsV0FFaEIsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLGFBQ3RJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzs4QkFLSCxVQUFVO3NCQUF6QyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFDUCxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBV3FDLFNBQVM7c0JBQW5ELGVBQWU7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgSW5wdXQsIE9uSW5pdCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyT3V0bGV0fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1NoYXJlZE1vZHVsZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtUb29sYmFyTW9kdWxlfSBmcm9tICdwcmltZW5nL3Rvb2xiYXInO1xuXG5pbXBvcnQge0RhdGFMaXN0UGFyYW1zLCBUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7VGFibGVMb2FkRXZlbnR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGUvYXBpJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvckluc3QsIEFjdGlvblBvc2l0aW9uRW51bSwgSVRhYmxldmlld0RhdGFQcm92aWRlciwgVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMsIFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge0FjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vYWN0aW9uL2NvbXBvbmVudHMvYWN0aW9uL2FjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3Rpb25UYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vYWN0aW9uL2NvbXBvbmVudHMvdGFibGUvYWN0aW9uLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQge3Byb3ZpZGVWaWV3Q29udGFpbmVyfSBmcm9tICcuLi8uLi8uLi9hY3Rpb24vc2VydmljZXMvcHJvdmlkZXJzL3Byb3ZpZGUtdmlldy1jb250YWluZXInO1xuaW1wb3J0IHtWaWV3Q29udGFpbmVyfSBmcm9tICcuLi8uLi8uLi9hY3Rpb24vc2VydmljZXMvdmlldy1jb250YWluZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctdGFibGV2aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbVG9vbGJhck1vZHVsZSwgU2hhcmVkTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIE5nVGVtcGxhdGVPdXRsZXQsIEFjdGlvbkNvbXBvbmVudCwgQWN0aW9uVGFibGVDb21wb25lbnQsIFRlbXBsYXRlRGlyZWN0aXZlLCBSb3V0ZXJPdXRsZXRdLFxuICAgIHByb3ZpZGVyczogW3Byb3ZpZGVWaWV3Q29udGFpbmVyKCldXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxldmlld0NvbXBvbmVudDxJdGVtID0gYW55LCBTZXJ2aWNlID0gdW5kZWZpbmVkLCBTb3J0cyA9IGtleW9mIEl0ZW0sIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBrZXlvZiBJdGVtPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcHVibGljIHJlYWRvbmx5IHZpZXdDb250YWluZXIgPSBpbmplY3QoVmlld0NvbnRhaW5lciwge29wdGlvbmFsOiB0cnVlfSk7XG5cbiAgICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIGRlc2NyaXB0b3IhOiBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxJdGVtLCBTb3J0cywgRmlsdGVycz47XG4gICAgQElucHV0KCkgcHVibGljIGRhdGFQcm92aWRlcj86IElUYWJsZXZpZXdEYXRhUHJvdmlkZXI8SXRlbSwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+PiA9IFtdO1xuXG4gICAgcHVibGljIHRhYmxlQWN0aW9uczogQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbT5bXSA9IFtdO1xuICAgIHB1YmxpYyB0b29sYmFyTGVmdEFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+W10gPSBbXTtcbiAgICBwdWJsaWMgdG9vbGJhclJpZ2h0QWN0aW9uczogQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbT5bXSA9IFtdO1xuXG4gICAgcHVibGljIHRhYmxlUGFyYW1zPzogRGF0YUxpc3RQYXJhbXM7XG5cbiAgICBwdWJsaWMgaGFzSXRlbVNlbGVjdGlvbkFjdGlvbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiBJdGVtW10gPSBbXTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVEaXJlY3RpdmUpIHB1YmxpYyB0ZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8VGVtcGxhdGVEaXJlY3RpdmU+O1xuICAgIHB1YmxpYyBmb290ZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudmlld0NvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmFjdGlvbnMgPSB0aGlzLmFjdGlvbnM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52aWV3Q29udGFpbmVyICYmIHRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXIuZGF0YVByb3ZpZGVyID0gdGhpcy5kYXRhUHJvdmlkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiB0aGlzLmFjdGlvbnMuZmlsdGVyKHZhbHVlID0+IHZhbHVlLnBvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcz8uaW5jbHVkZXMoVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRCkgPz8gdHJ1ZSkpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhckxlZnQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckxlZnRBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhclJpZ2h0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5UYWJsZUhlYWRlcjpcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Sb3dJbmxpbmU6XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uUm93Q2xpY2s6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMgPSB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMucmV2ZXJzZSgpO1xuXG4gICAgICAgIHRoaXMuaGFzSXRlbVNlbGVjdGlvbkFjdGlvbiA9IFsuLi50aGlzLnRvb2xiYXJMZWZ0QWN0aW9ucywgLi4udGhpcy50b29sYmFyUmlnaHRBY3Rpb25zXS5zb21lKGUgPT4gZS5oYXNJdGVtc1NlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcy5mb3JFYWNoKHRlbXBsYXRlID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAodGVtcGxhdGUuZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZm9vdGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb290ZXJUZW1wbGF0ZSA9IHRlbXBsYXRlLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVGFibGVMb2FkKGV2ZW50OiBUYWJsZUxvYWRFdmVudCkge1xuICAgICAgICB0aGlzLnRhYmxlUGFyYW1zID0gZXZlbnQucGFyYW1zO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0ZWRJdGVtczogQXJyYXk8SXRlbT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRJdGVtcztcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW5nLXRhYmxldmlld1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgIEBpZiAodG9vbGJhckxlZnRBY3Rpb25zLmxlbmd0aCA+IDAgfHwgdG9vbGJhclJpZ2h0QWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICA8cC10b29sYmFyIHN0eWxlQ2xhc3M9XCJtYi00XCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIHRvb2xiYXJMZWZ0QWN0aW9uczsgdHJhY2sgYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bW5nLWFjdGlvbiBbYWN0aW9uXT1cImFjdGlvblwiIFtkYXRhTGlzdFBhcmFtc109XCJ0YWJsZVBhcmFtc1wiIFtob3N0Q29tcG9uZW50XT1cInRoaXNcIiBbc2VsZWN0ZWRJdGVtc109XCJzZWxlY3RlZEl0ZW1zXCI+PC9tbmctYWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIHRvb2xiYXJSaWdodEFjdGlvbnM7IHRyYWNrIGFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG1uZy1hY3Rpb24gW2FjdGlvbl09XCJhY3Rpb25cIiBbZGF0YUxpc3RQYXJhbXNdPVwidGFibGVQYXJhbXNcIiBbaG9zdENvbXBvbmVudF09XCJ0aGlzXCIgW3NlbGVjdGVkSXRlbXNdPVwic2VsZWN0ZWRJdGVtc1wiPjwvbW5nLWFjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3AtdG9vbGJhcj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxtbmctYWN0aW9uLXRhYmxlXG4gICAgICAgICAgICBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yLnRhYmxlXCJcbiAgICAgICAgICAgIFtkYXRhUHJvdmlkZXJdPVwiZGF0YVByb3ZpZGVyXCJcbiAgICAgICAgICAgIFt1c2VRdWVyeVBhcmFtc109XCJ0cnVlXCJcbiAgICAgICAgICAgIFthY3Rpb25zXT1cInRhYmxlQWN0aW9uc1wiXG4gICAgICAgICAgICBbc2VsZWN0aW9uRW5hYmxlZF09XCJoYXNJdGVtU2VsZWN0aW9uQWN0aW9uXCJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cIidtdWx0aXBsZSdcIlxuICAgICAgICAgICAgKHRhYmxlTG9hZCk9XCJvblRhYmxlTG9hZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtbmdUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBtZDpmbGV4LXJvdyBtZDpqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiB0YWJsZS1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwicC0wIG0tMFwiPnt7IGRlc2NyaXB0b3IudGFibGVUaXRsZSA/PyAnJyB8IHRyYW5zbGF0ZSB9fTwvaDU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICBAaWYgKGZvb3RlclRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1uZ1RlbXBsYXRlPVwiZm9vdGVyXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LXRvdGFsQ291bnQ9XCJ0b3RhbENvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZTsgY29udGV4dDoge2RhdGEsIHRvdGFsQ291bnR9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9tbmctYWN0aW9uLXRhYmxlPlxuICAgIDwvZGl2PlxuXG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuPC9kaXY+XG4iXX0=
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvdGFibGV2aWV3L2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL3RhYmxldmlldy9jb21wb25lbnRzL3RhYmxldmlldy90YWJsZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQStCLFFBQVEsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRWxHLE9BQU8sRUFBdUIsa0JBQWtCLEVBQTBCLGdDQUFnQyxFQUFFLHVCQUF1QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFakwsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7QUFTOUUsTUFBTSxPQUFPLGtCQUFr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WUFBWSxxSUFBRSxlQUFlLDRGQUFFLGdCQUFnQixvSkFBRSxlQUFlLG9PQUFFLG9CQUFvQix3WUFBRSxpQkFBaUIsMkZBQUUsWUFBWTs7MkZBR3ZJLGtCQUFrQjtrQkFQOUIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sZUFBZSxXQUVoQixDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLENBQUMsYUFDdEksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDOzhCQUtILFVBQVU7c0JBQXpDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNQLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBTaWduYWwsIFRlbXBsYXRlUmVmLCBjb21wdXRlZCwgY29udGVudENoaWxkcmVuLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7U2hhcmVkTW9kdWxlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge1Rvb2xiYXJNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbGJhcic7XG5cbmltcG9ydCB7RGF0YUxpc3RQYXJhbXMsIFRlbXBsYXRlRGlyZWN0aXZlLCBmaW5kVGVtcGxhdGVCeU5hbWV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge1RhYmxlTG9hZEV2ZW50fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxlL2FwaSc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3JJbnN0LCBBY3Rpb25Qb3NpdGlvbkVudW0sIElUYWJsZXZpZXdEYXRhUHJvdmlkZXIsIFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLCBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuaW1wb3J0IHtBY3Rpb25Db21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2FjdGlvbi9jb21wb25lbnRzL2FjdGlvbi9hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7QWN0aW9uVGFibGVDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2FjdGlvbi9jb21wb25lbnRzL3RhYmxlL2FjdGlvbi10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtwcm92aWRlVmlld0NvbnRhaW5lcn0gZnJvbSAnLi4vLi4vLi4vYWN0aW9uL3NlcnZpY2VzL3Byb3ZpZGVycy9wcm92aWRlLXZpZXctY29udGFpbmVyJztcbmltcG9ydCB7Vmlld0NvbnRhaW5lcn0gZnJvbSAnLi4vLi4vLi4vYWN0aW9uL3NlcnZpY2VzL3ZpZXctY29udGFpbmVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLXRhYmxldmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxldmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1Rvb2xiYXJNb2R1bGUsIFNoYXJlZE1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0LCBBY3Rpb25Db21wb25lbnQsIEFjdGlvblRhYmxlQ29tcG9uZW50LCBUZW1wbGF0ZURpcmVjdGl2ZSwgUm91dGVyT3V0bGV0XSxcbiAgICBwcm92aWRlcnM6IFtwcm92aWRlVmlld0NvbnRhaW5lcigpXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdDb21wb25lbnQ8SXRlbSA9IGFueSwgU2VydmljZSA9IHVuZGVmaW5lZCwgU29ydHMgPSBrZXlvZiBJdGVtLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0ga2V5b2YgSXRlbT4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyByZWFkb25seSB2aWV3Q29udGFpbmVyID0gaW5qZWN0KFZpZXdDb250YWluZXIsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBkZXNjcmlwdG9yITogVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8SXRlbSwgU29ydHMsIEZpbHRlcnM+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhUHJvdmlkZXI/OiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPEl0ZW0sIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzPjtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvckluc3Q8YW55Pj4gPSBbXTtcblxuICAgIHB1YmxpYyB0YWJsZUFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+W10gPSBbXTtcbiAgICBwdWJsaWMgdG9vbGJhckxlZnRBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPltdID0gW107XG4gICAgcHVibGljIHRvb2xiYXJSaWdodEFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+W10gPSBbXTtcblxuICAgIHB1YmxpYyB0YWJsZVBhcmFtcz86IERhdGFMaXN0UGFyYW1zO1xuXG4gICAgcHVibGljIGhhc0l0ZW1TZWxlY3Rpb25BY3Rpb24gPSBmYWxzZTtcbiAgICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogSXRlbVtdID0gW107XG5cbiAgICBwdWJsaWMgdGVtcGxhdGVzID0gY29udGVudENoaWxkcmVuKFRlbXBsYXRlRGlyZWN0aXZlKTtcbiAgICBwdWJsaWMgZm9vdGVyVGVtcGxhdGU6IFNpZ25hbDxUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbD4gPSBjb21wdXRlZCgoKSA9PiBmaW5kVGVtcGxhdGVCeU5hbWUoWy4uLnRoaXMudGVtcGxhdGVzKCldLCAnZm9vdGVyJykpO1xuICAgIHB1YmxpYyByb3dFeHBhbmRUZW1wbGF0ZTogU2lnbmFsPFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPiA9IGNvbXB1dGVkKCgpID0+IGZpbmRUZW1wbGF0ZUJ5TmFtZShbLi4udGhpcy50ZW1wbGF0ZXMoKV0sICdyb3dFeHBhbmRDb250ZW50JykpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnZpZXdDb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5hY3Rpb25zID0gdGhpcy5hY3Rpb25zO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmlld0NvbnRhaW5lciAmJiB0aGlzLmRhdGFQcm92aWRlcikge1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmRhdGFQcm92aWRlciA9IHRoaXMuZGF0YVByb3ZpZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5hY3Rpb25zLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZS5wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM/LmluY2x1ZGVzKFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLlJFQUQpID8/IHRydWUpKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5wb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uUG9zaXRpb25FbnVtLlRvb2xiYXJMZWZ0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJMZWZ0QWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uUG9zaXRpb25FbnVtLlRvb2xiYXJSaWdodDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sYmFyUmlnaHRBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uVGFibGVIZWFkZXI6XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uUm93SW5saW5lOlxuICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uUG9zaXRpb25FbnVtLlJvd0NsaWNrOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlQWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sYmFyUmlnaHRBY3Rpb25zID0gdGhpcy50b29sYmFyUmlnaHRBY3Rpb25zLnJldmVyc2UoKTtcblxuICAgICAgICB0aGlzLmhhc0l0ZW1TZWxlY3Rpb25BY3Rpb24gPSBbLi4udGhpcy50b29sYmFyTGVmdEFjdGlvbnMsIC4uLnRoaXMudG9vbGJhclJpZ2h0QWN0aW9uc10uc29tZShlID0+IGUuaGFzSXRlbXNTZWxlY3Rpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhYmxlTG9hZChldmVudDogVGFibGVMb2FkRXZlbnQpIHtcbiAgICAgICAgdGhpcy50YWJsZVBhcmFtcyA9IGV2ZW50LnBhcmFtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGVkSXRlbXM6IEFycmF5PEl0ZW0+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1uZy10YWJsZXZpZXdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICBAaWYgKHRvb2xiYXJMZWZ0QWN0aW9ucy5sZW5ndGggPiAwIHx8IHRvb2xiYXJSaWdodEFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgPHAtdG9vbGJhciBzdHlsZUNsYXNzPVwibWItNFwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJsZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiB0b29sYmFyTGVmdEFjdGlvbnM7IHRyYWNrIGFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG1uZy1hY3Rpb24gW2FjdGlvbl09XCJhY3Rpb25cIiBbZGF0YUxpc3RQYXJhbXNdPVwidGFibGVQYXJhbXNcIiBbaG9zdENvbXBvbmVudF09XCJ0aGlzXCIgW3NlbGVjdGVkSXRlbXNdPVwic2VsZWN0ZWRJdGVtc1wiPjwvbW5nLWFjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiB0b29sYmFyUmlnaHRBY3Rpb25zOyB0cmFjayBhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtbmctYWN0aW9uIFthY3Rpb25dPVwiYWN0aW9uXCIgW2RhdGFMaXN0UGFyYW1zXT1cInRhYmxlUGFyYW1zXCIgW2hvc3RDb21wb25lbnRdPVwidGhpc1wiIFtzZWxlY3RlZEl0ZW1zXT1cInNlbGVjdGVkSXRlbXNcIj48L21uZy1hY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9wLXRvb2xiYXI+XG4gICAgICAgIH1cblxuICAgICAgICA8bW5nLWFjdGlvbi10YWJsZVxuICAgICAgICAgICAgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvci50YWJsZVwiXG4gICAgICAgICAgICBbZGF0YVByb3ZpZGVyXT1cImRhdGFQcm92aWRlclwiXG4gICAgICAgICAgICBbdXNlUXVlcnlQYXJhbXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYWN0aW9uc109XCJ0YWJsZUFjdGlvbnNcIlxuICAgICAgICAgICAgW3NlbGVjdGlvbkVuYWJsZWRdPVwiaGFzSXRlbVNlbGVjdGlvbkFjdGlvblwiXG4gICAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCInbXVsdGlwbGUnXCJcbiAgICAgICAgICAgICh0YWJsZUxvYWQpPVwib25UYWJsZUxvYWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbWQ6ZmxleC1yb3cgbWQ6anVzdGlmeS1jb250ZW50LWJldHdlZW4gdGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInAtMCBtLTBcIj57eyBkZXNjcmlwdG9yLnRhYmxlVGl0bGUgPz8gJycgfCB0cmFuc2xhdGUgfX08L2g1PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIEBpZiAocm93RXhwYW5kVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtbmdUZW1wbGF0ZT1cInJvd0V4cGFuZENvbnRlbnRcIiBsZXQtaXRlbT1cInJvd0l0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJvd0V4cGFuZFRlbXBsYXRlKCk7IGNvbnRleHQ6IHtyb3dJdGVtOiBpdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoZm9vdGVyVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtbmdUZW1wbGF0ZT1cImZvb3RlclwiIGxldC1kYXRhPVwiZGF0YVwiIGxldC10b3RhbENvdW50PVwidG90YWxDb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGUoKTsgY29udGV4dDoge2RhdGEsIHRvdGFsQ291bnR9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9tbmctYWN0aW9uLXRhYmxlPlxuICAgIDwvZGl2PlxuXG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuPC9kaXY+XG4iXX0=
|
|
@@ -198,4 +198,4 @@ export class TableviewRouteBuilder {
|
|
|
198
198
|
return new TableviewRouteBuilderInternal(path, { descriptor, dataProvider, actions });
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LXJvdXRlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL3RhYmxldmlldy9yb3V0ZXIvdGFibGV2aWV3LXJvdXRlLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFpQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RixPQUFPLEVBRUgsNkJBQTZCLEVBQzdCLGlDQUFpQyxFQUNqQyw4QkFBOEIsRUFFOUIsZ0NBQWdDLEVBR25DLE1BQU0sc0NBQXNDLENBQUM7QUFFOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDMUYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFOUUsTUFBTSxPQUFPLDZCQUE4QixTQUFRLFlBQVk7SUFtQjNELFlBQ1ksSUFBWSxFQUNwQixPQUtFO1FBRUYsS0FBSyxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxxQkFBcUIsRUFBQyxDQUFDLENBQUM7UUFSbkUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQWhCUCxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUU5QixjQUFTLEdBQXVCLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDO1FBQzlELGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFDeEIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxjQUFjLENBQUM7UUFDMUIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBUyxHQUFHLElBQUksQ0FBQztRQWlCckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7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QztJQUM5QixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLE1BQU0sQ0FBQyxhQUFhLENBQUksSUFBWSxFQUFFLFNBQWtCO1FBQzNELE9BQU8sSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBSSxDQUNkLElBQVksRUFDWixVQUF3QyxFQUN4QyxZQUFvQyxFQUNwQyxPQUF5QztRQUV6QyxPQUFPLElBQUksNkJBQTZCLENBQUMsSUFBSSxFQUFFLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0FQZXJtaXNzaW9ucywgQ29tbW9uc1JvdXRlRGF0YSwgUm91dGVCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBY3Rpb25EZXNjcmlwdG9ySW5zdCxcbiAgICBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9ySW5zdCxcbiAgICBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvckluc3QsXG4gICAgQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3JJbnN0LFxuICAgIElUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvckluc3QsXG4gICAgVGFibGV2aWV3Um91dGVEYXRhXG59IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7QWN0aW9uUm91dGVDb21wb25lbnR9IGZyb20gJy4uLy4uL2FjdGlvbi9jb21wb25lbnRzL3JvdXRlL2FjdGlvbi1yb3V0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHt1bnNhdmVkQ2hhbmdlc0d1YXJkfSBmcm9tICcuLi8uLi9hY3Rpb24vZ3VhcmRzL3Vuc2F2ZWQtY2hhbmdlcy5ndWFyZCc7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXJJbnRlcm5hbCBleHRlbmRzIFJvdXRlQnVpbGRlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXNjcmlwdG9yPzogVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8YW55PjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFQcm92aWRlcj86IElUYWJsZXZpZXdEYXRhUHJvdmlkZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb25zPzogQXJyYXk8QWN0aW9uRGVzY3JpcHRvckluc3Q8YW55Pj47XG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Zyb21Db21wb25lbnQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJvdXRlRGF0YTogVGFibGV2aWV3Um91dGVEYXRhID0ge2JyZWFkY3J1bWI6IG51bGx9O1xuICAgIHByaXZhdGUgaGFzRGV0YWlscyA9IHRydWU7XG4gICAgcHJpdmF0ZSBkZXRhaWxzUGF0aCA9ICc6aXRlbUlkJztcbiAgICBwcml2YXRlIGhhc0VkaXQgPSB0cnVlO1xuICAgIHByaXZhdGUgZWRpdFBhdGggPSAnOml0ZW1JZC9lZGl0JztcbiAgICBwcml2YXRlIGhhc0FkZCA9IHRydWU7XG4gICAgcHJpdmF0ZSBhZGRQYXRoID0gJ2FkZCc7XG4gICAgcHJpdmF0ZSBoYXNEZWxldGUgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSB0YWJsZXZpZXdQZXJtaXNzaW9ucz86IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogQVBlcm1pc3Npb25zO1xuICAgIH07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcGF0aDogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOiBQYXJ0aWFsPHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogVHlwZTxhbnk+O1xuICAgICAgICAgICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8YW55PjtcbiAgICAgICAgICAgIGRhdGFQcm92aWRlcjogSVRhYmxldmlld0RhdGFQcm92aWRlcjtcbiAgICAgICAgICAgIGFjdGlvbnM6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3JJbnN0PGFueT4+O1xuICAgICAgICB9PlxuICAgICkge1xuICAgICAgICBzdXBlcih7cGF0aDogcGF0aCwgY29tcG9uZW50OiBvcHRpb25zLmNvbXBvbmVudCA/PyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXJ9KTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMuY29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLmlzRnJvbUNvbXBvbmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdG9yID0gb3B0aW9ucy5kZXNjcmlwdG9yO1xuICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXIgPSBvcHRpb25zLmRhdGFQcm92aWRlcjtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9ucyA9IG9wdGlvbnMuYWN0aW9ucztcblxuICAgICAgICAgICAgdGhpcy5oYXNEZXRhaWxzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmhhc0FkZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5oYXNFZGl0ID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAodGhpcy5hY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5hY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvckluc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzRGV0YWlscyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uIGluc3RhbmNlb2YgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvckluc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzQWRkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvckluc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzRWRpdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJlYWRPbmx5KHBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zKTogdGhpcyB7XG4gICAgICAgIGlmIChwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy53aXRoUGVybWlzc2lvbnMocGVybWlzc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMud2l0aEFkZChmYWxzZSk7XG4gICAgICAgIHRoaXMud2l0aEVkaXQoZmFsc2UpO1xuICAgICAgICB0aGlzLndpdGhEZWxldGUoZmFsc2UpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERldGFpbHMoaGFzRGV0YWlscyA9IHRydWUsIHBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zLCBwYXRoPzogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGFzRGV0YWlscyA9IGhhc0RldGFpbHM7XG4gICAgICAgIGlmIChwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy53aXRoUGVybWlzc2lvbnModW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsc1BhdGggPSBwYXRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQWRkKGhhc0FkZCA9IHRydWUsIHBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zLCBwYXRoPzogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGFzQWRkID0gaGFzQWRkO1xuICAgICAgICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMud2l0aFBlcm1pc3Npb25zKHVuZGVmaW5lZCwgcGVybWlzc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFBhdGggPSBwYXRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRWRpdChoYXNFZGl0ID0gdHJ1ZSwgcGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMsIHBhdGg/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oYXNFZGl0ID0gaGFzRWRpdDtcbiAgICAgICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhQZXJtaXNzaW9ucyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgcGVybWlzc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRQYXRoID0gcGF0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERlbGV0ZShoYXNEZWxldGUgPSB0cnVlLCBwZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucyk6IHRoaXMge1xuICAgICAgICB0aGlzLmhhc0RlbGV0ZSA9IGhhc0RlbGV0ZTtcbiAgICAgICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhQZXJtaXNzaW9ucyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdpdGhQZXJtaXNzaW9ucyhyZWFkPzogQVBlcm1pc3Npb25zLCBhZGQ/OiBBUGVybWlzc2lvbnMsIGVkaXQ/OiBBUGVybWlzc2lvbnMsIGRlbGV0PzogQVBlcm1pc3Npb25zLCBkZXRhaWxzPzogQVBlcm1pc3Npb25zKTogdGhpcyB7XG4gICAgICAgIGlmICghdGhpcy50YWJsZXZpZXdQZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy50YWJsZXZpZXdQZXJtaXNzaW9ucyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWFkKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLlJFQURdID0gcmVhZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWRkKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkFERF0gPSBhZGQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVkaXQpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuRURJVF0gPSBlZGl0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZWxldCkge1xuICAgICAgICAgICAgdGhpcy50YWJsZXZpZXdQZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERUxFVEVdID0gZGVsZXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRldGFpbHMpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVUQUlMU10gPSBkZXRhaWxzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUGVybWlzc2lvbkJ5Q2F0ZWdvcnkoa2V5OiBzdHJpbmcsIHBlcm1pc3Npb25zOiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zID0ge307XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50YWJsZXZpZXdQZXJtaXNzaW9uc1trZXldID0gcGVybWlzc2lvbnM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUGVybWlzc2lvbnNPYmplY3QocGVybWlzc2lvbnM6IHtba2V5OiBzdHJpbmddOiBBUGVybWlzc2lvbnN9KTogdGhpcyB7XG4gICAgICAgIHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGJ1aWxkKCk6IFJvdXRlIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRnJvbUNvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3ID0ge1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3I6IHRoaXMuZGVzY3JpcHRvciEsXG4gICAgICAgICAgICAgICAgZGF0YVByb3ZpZGVyOiB0aGlzLmRhdGFQcm92aWRlciFcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodGhpcy5hY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3LmFjdGlvbnMgPSB0aGlzLmFjdGlvbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVEYXRhLnRhYmxldmlld1Blcm1pc3Npb25zID0gey4uLnRoaXMudGFibGV2aWV3UGVybWlzc2lvbnN9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucm91dGVEYXRhLnRhYmxldmlld0FjdGlvbnMgPSB7XG4gICAgICAgICAgICBoYXNBZGQ6IHRoaXMuaGFzQWRkLFxuICAgICAgICAgICAgaGFzRWRpdDogdGhpcy5oYXNFZGl0LFxuICAgICAgICAgICAgaGFzRGV0YWlsczogdGhpcy5oYXNEZXRhaWxzLFxuICAgICAgICAgICAgaGFzRGVsZXRlOiB0aGlzLmhhc0RlbGV0ZVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLndpdGhEYXRhKHRoaXMucm91dGVEYXRhKTtcbiAgICAgICAgaWYgKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEXSkge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZURhdGEucGVybWlzc2lvbnMgPSB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLlJFQURdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY29weSByb3V0ZSBkYXRhIGZvciBjaGlsZHJlbiwgcmVzZXQgYnJlYWRjcnVtYnMgbWVudSBpdGVtcyBhbmQgcGVybWlzc2lvblxuICAgICAgICBjb25zdCBjaGlsZHJlblJvdXRlRGF0YTogQ29tbW9uc1JvdXRlRGF0YSA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMucm91dGVEYXRhLFxuICAgICAgICAgICAgYnJlYWRjcnVtYjogbnVsbCxcbiAgICAgICAgICAgIG1lbnVJdGVtczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcGVybWlzc2lvbnM6IHVuZGVmaW5lZFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGxpc3Qgcm91dGVcbiAgICAgICAgY29uc3Qgcm9vdENoaWxkUm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSgnJywgQWN0aW9uUm91dGVDb21wb25lbnQpO1xuICAgICAgICByb290Q2hpbGRSb3V0ZUJ1aWxkZXIud2l0aERhdGEoey4uLmNoaWxkcmVuUm91dGVEYXRhfSk7XG4gICAgICAgIGlmICh0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zPy5bVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRF0pIHtcbiAgICAgICAgICAgIHJvb3RDaGlsZFJvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy50YWJsZXZpZXdQZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hZGRDaGlsZEJ1aWxkZXIocm9vdENoaWxkUm91dGVCdWlsZGVyKTtcblxuICAgICAgICAvLyBhZGQgcm91dGVcbiAgICAgICAgaWYgKHRoaXMuaGFzQWRkKSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZUJ1aWxkZXIgPSBSb3V0ZUJ1aWxkZXIuY3JlYXRlKHRoaXMuYWRkUGF0aCwgQWN0aW9uUm91dGVDb21wb25lbnQpO1xuICAgICAgICAgICAgcm91dGVCdWlsZGVyLndpdGhEYXRhKHsuLi5jaGlsZHJlblJvdXRlRGF0YX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5BRERdKSB7XG4gICAgICAgICAgICAgICAgcm91dGVCdWlsZGVyLndpdGhQZXJtaXNzaW9ucyh0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkFERF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRDaGlsZEJ1aWxkZXIocm91dGVCdWlsZGVyKTtcbiAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoQ2FuRGVhY3RpdmF0ZSh1bnNhdmVkQ2hhbmdlc0d1YXJkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5oYXNEZXRhaWxzKSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZUJ1aWxkZXIgPSBSb3V0ZUJ1aWxkZXIuY3JlYXRlKHRoaXMuZGV0YWlsc1BhdGgsIEFjdGlvblJvdXRlQ29tcG9uZW50KTtcbiAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoRGF0YSh7Li4uY2hpbGRyZW5Sb3V0ZURhdGF9KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zPy5bVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVUQUlMU10pIHtcbiAgICAgICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aFBlcm1pc3Npb25zKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVUQUlMU10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRDaGlsZEJ1aWxkZXIocm91dGVCdWlsZGVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5oYXNFZGl0KSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZUJ1aWxkZXIgPSBSb3V0ZUJ1aWxkZXIuY3JlYXRlKHRoaXMuZWRpdFBhdGgsIEFjdGlvblJvdXRlQ29tcG9uZW50KTtcbiAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoRGF0YSh7Li4uY2hpbGRyZW5Sb3V0ZURhdGF9KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zPy5bVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuRURJVF0pIHtcbiAgICAgICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aFBlcm1pc3Npb25zKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuRURJVF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRDaGlsZEJ1aWxkZXIocm91dGVCdWlsZGVyKTtcbiAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoQ2FuRGVhY3RpdmF0ZSh1bnNhdmVkQ2hhbmdlc0d1YXJkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdXBlci5idWlsZCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaW5kTWVudUl0ZW1QZXJtaXNzaW9ucygpIHtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1QZXJtaXNzaW9uID0gc3VwZXIuZmluZE1lbnVJdGVtUGVybWlzc2lvbnMoKTtcbiAgICAgICAgaWYgKCFtZW51SXRlbVBlcm1pc3Npb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zPy5bVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lbnVJdGVtUGVybWlzc2lvbjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXIge1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNvbXBvbmVudDxDPihwYXRoOiBzdHJpbmcsIGNvbXBvbmVudDogVHlwZTxDPik6IFRhYmxldmlld1JvdXRlQnVpbGRlckludGVybmFsIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXJJbnRlcm5hbChwYXRoLCB7Y29tcG9uZW50fSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tKFxuICAgICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICAgIGRlc2NyaXB0b3I6IFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0PGFueT4sXG4gICAgICAgIGRhdGFQcm92aWRlcjogSVRhYmxldmlld0RhdGFQcm92aWRlcixcbiAgICAgICAgYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvckluc3Q8YW55Pj5cbiAgICApOiBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXJJbnRlcm5hbCB7XG4gICAgICAgIHJldHVybiBuZXcgVGFibGV2aWV3Um91dGVCdWlsZGVySW50ZXJuYWwocGF0aCwge2Rlc2NyaXB0b3IsIGRhdGFQcm92aWRlciwgYWN0aW9uc30pO1xuICAgIH1cbn1cbiJdfQ==
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LXJvdXRlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL3RhYmxldmlldy9yb3V0ZXIvdGFibGV2aWV3LXJvdXRlLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFpQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RixPQUFPLEVBRUgsNkJBQTZCLEVBQzdCLGlDQUFpQyxFQUNqQyw4QkFBOEIsRUFFOUIsZ0NBQWdDLEVBR25DLE1BQU0sc0NBQXNDLENBQUM7QUFFOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDMUYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFOUUsTUFBTSxPQUFPLDZCQUE4QixTQUFRLFlBQVk7SUFtQjNELFlBQ1ksSUFBWSxFQUNwQixPQUtFO1FBRUYsS0FBSyxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxxQkFBcUIsRUFBQyxDQUFDLENBQUM7UUFSbkUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQWhCUCxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUU5QixjQUFTLEdBQXVCLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDO1FBQzlELGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFDeEIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxjQUFjLENBQUM7UUFDMUIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBUyxHQUFHLElBQUksQ0FBQztRQWlCckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUss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LElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFa0IsdUJBQXVCO1FBQ3RDLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsT0FBTyxrQkFBa0IsQ0FBQztJQUM5QixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLE1BQU0sQ0FBQyxhQUFhLENBQUksSUFBWSxFQUFFLFNBQWtCO1FBQzNELE9BQU8sSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBSSxDQUNkLElBQVksRUFDWixVQUF3QyxFQUN4QyxZQUFvQyxFQUNwQyxPQUF5QztRQUV6QyxPQUFPLElBQUksNkJBQTZCLENBQUMsSUFBSSxFQUFFLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0FQZXJtaXNzaW9ucywgQ29tbW9uc1JvdXRlRGF0YSwgUm91dGVCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBY3Rpb25EZXNjcmlwdG9ySW5zdCxcbiAgICBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9ySW5zdCxcbiAgICBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvckluc3QsXG4gICAgQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3JJbnN0LFxuICAgIElUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvckluc3QsXG4gICAgVGFibGV2aWV3Um91dGVEYXRhXG59IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7QWN0aW9uUm91dGVDb21wb25lbnR9IGZyb20gJy4uLy4uL2FjdGlvbi9jb21wb25lbnRzL3JvdXRlL2FjdGlvbi1yb3V0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHt1bnNhdmVkQ2hhbmdlc0d1YXJkfSBmcm9tICcuLi8uLi9hY3Rpb24vZ3VhcmRzL3Vuc2F2ZWQtY2hhbmdlcy5ndWFyZCc7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXJJbnRlcm5hbCBleHRlbmRzIFJvdXRlQnVpbGRlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXNjcmlwdG9yPzogVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8YW55PjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFQcm92aWRlcj86IElUYWJsZXZpZXdEYXRhUHJvdmlkZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb25zPzogQXJyYXk8QWN0aW9uRGVzY3JpcHRvckluc3Q8YW55Pj47XG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Zyb21Db21wb25lbnQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJvdXRlRGF0YTogVGFibGV2aWV3Um91dGVEYXRhID0ge2JyZWFkY3J1bWI6IG51bGx9O1xuICAgIHByaXZhdGUgaGFzRGV0YWlscyA9IHRydWU7XG4gICAgcHJpdmF0ZSBkZXRhaWxzUGF0aCA9ICc6aXRlbUlkJztcbiAgICBwcml2YXRlIGhhc0VkaXQgPSB0cnVlO1xuICAgIHByaXZhdGUgZWRpdFBhdGggPSAnOml0ZW1JZC9lZGl0JztcbiAgICBwcml2YXRlIGhhc0FkZCA9IHRydWU7XG4gICAgcHJpdmF0ZSBhZGRQYXRoID0gJ2FkZCc7XG4gICAgcHJpdmF0ZSBoYXNEZWxldGUgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSB0YWJsZXZpZXdQZXJtaXNzaW9ucz86IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogQVBlcm1pc3Npb25zO1xuICAgIH07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcGF0aDogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOiBQYXJ0aWFsPHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogVHlwZTxhbnk+O1xuICAgICAgICAgICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8YW55PjtcbiAgICAgICAgICAgIGRhdGFQcm92aWRlcjogSVRhYmxldmlld0RhdGFQcm92aWRlcjtcbiAgICAgICAgICAgIGFjdGlvbnM6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3JJbnN0PGFueT4+O1xuICAgICAgICB9PlxuICAgICkge1xuICAgICAgICBzdXBlcih7cGF0aDogcGF0aCwgY29tcG9uZW50OiBvcHRpb25zLmNvbXBvbmVudCA/PyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXJ9KTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMuY29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLmlzRnJvbUNvbXBvbmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdG9yID0gb3B0aW9ucy5kZXNjcmlwdG9yO1xuICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXIgPSBvcHRpb25zLmRhdGFQcm92aWRlcjtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9ucyA9IG9wdGlvbnMuYWN0aW9ucztcblxuICAgICAgICAgICAgdGhpcy5oYXNEZXRhaWxzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmhhc0FkZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5oYXNFZGl0ID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAodGhpcy5hY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5hY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvckluc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzRGV0YWlscyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uIGluc3RhbmNlb2YgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvckluc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzQWRkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvckluc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzRWRpdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJlYWRPbmx5KHBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zKTogdGhpcyB7XG4gICAgICAgIGlmIChwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy53aXRoUGVybWlzc2lvbnMocGVybWlzc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMud2l0aEFkZChmYWxzZSk7XG4gICAgICAgIHRoaXMud2l0aEVkaXQoZmFsc2UpO1xuICAgICAgICB0aGlzLndpdGhEZWxldGUoZmFsc2UpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERldGFpbHMoaGFzRGV0YWlscyA9IHRydWUsIHBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zLCBwYXRoPzogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGFzRGV0YWlscyA9IGhhc0RldGFpbHM7XG4gICAgICAgIGlmIChwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy53aXRoUGVybWlzc2lvbnModW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsc1BhdGggPSBwYXRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQWRkKGhhc0FkZCA9IHRydWUsIHBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zLCBwYXRoPzogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGFzQWRkID0gaGFzQWRkO1xuICAgICAgICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMud2l0aFBlcm1pc3Npb25zKHVuZGVmaW5lZCwgcGVybWlzc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFBhdGggPSBwYXRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRWRpdChoYXNFZGl0ID0gdHJ1ZSwgcGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMsIHBhdGg/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oYXNFZGl0ID0gaGFzRWRpdDtcbiAgICAgICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhQZXJtaXNzaW9ucyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgcGVybWlzc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRQYXRoID0gcGF0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERlbGV0ZShoYXNEZWxldGUgPSB0cnVlLCBwZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucyk6IHRoaXMge1xuICAgICAgICB0aGlzLmhhc0RlbGV0ZSA9IGhhc0RlbGV0ZTtcbiAgICAgICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhQZXJtaXNzaW9ucyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdpdGhQZXJtaXNzaW9ucyhyZWFkPzogQVBlcm1pc3Npb25zLCBhZGQ/OiBBUGVybWlzc2lvbnMsIGVkaXQ/OiBBUGVybWlzc2lvbnMsIGRlbGV0PzogQVBlcm1pc3Npb25zLCBkZXRhaWxzPzogQVBlcm1pc3Npb25zKTogdGhpcyB7XG4gICAgICAgIGlmICghdGhpcy50YWJsZXZpZXdQZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy50YWJsZXZpZXdQZXJtaXNzaW9ucyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWFkKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLlJFQURdID0gcmVhZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWRkKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkFERF0gPSBhZGQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVkaXQpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuRURJVF0gPSBlZGl0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZWxldCkge1xuICAgICAgICAgICAgdGhpcy50YWJsZXZpZXdQZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERUxFVEVdID0gZGVsZXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRldGFpbHMpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVUQUlMU10gPSBkZXRhaWxzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUGVybWlzc2lvbkJ5Q2F0ZWdvcnkoa2V5OiBzdHJpbmcsIHBlcm1pc3Npb25zOiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zID0ge307XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50YWJsZXZpZXdQZXJtaXNzaW9uc1trZXldID0gcGVybWlzc2lvbnM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUGVybWlzc2lvbnNPYmplY3QocGVybWlzc2lvbnM6IHtba2V5OiBzdHJpbmddOiBBUGVybWlzc2lvbnN9KTogdGhpcyB7XG4gICAgICAgIHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGJ1aWxkKCk6IFJvdXRlIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRnJvbUNvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3ID0ge1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3I6IHRoaXMuZGVzY3JpcHRvciEsXG4gICAgICAgICAgICAgICAgZGF0YVByb3ZpZGVyOiB0aGlzLmRhdGFQcm92aWRlciFcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodGhpcy5hY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3LmFjdGlvbnMgPSB0aGlzLmFjdGlvbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVEYXRhLnRhYmxldmlld1Blcm1pc3Npb25zID0gey4uLnRoaXMudGFibGV2aWV3UGVybWlzc2lvbnN9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucm91dGVEYXRhLnRhYmxldmlld0FjdGlvbnMgPSB7XG4gICAgICAgICAgICBoYXNBZGQ6IHRoaXMuaGFzQWRkLFxuICAgICAgICAgICAgaGFzRWRpdDogdGhpcy5oYXNFZGl0LFxuICAgICAgICAgICAgaGFzRGV0YWlsczogdGhpcy5oYXNEZXRhaWxzLFxuICAgICAgICAgICAgaGFzRGVsZXRlOiB0aGlzLmhhc0RlbGV0ZVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLndpdGhEYXRhKHRoaXMucm91dGVEYXRhKTtcbiAgICAgICAgaWYgKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEXSkge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZURhdGEucGVybWlzc2lvbnMgPSB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLlJFQURdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY29weSByb3V0ZSBkYXRhIGZvciBjaGlsZHJlbiwgcmVzZXQgYnJlYWRjcnVtYnMgbWVudSBpdGVtcyBhbmQgcGVybWlzc2lvblxuICAgICAgICBjb25zdCBjaGlsZHJlblJvdXRlRGF0YTogQ29tbW9uc1JvdXRlRGF0YSA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMucm91dGVEYXRhLFxuICAgICAgICAgICAgYnJlYWRjcnVtYjogbnVsbCxcbiAgICAgICAgICAgIG1lbnVJdGVtczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcGVybWlzc2lvbnM6IHVuZGVmaW5lZFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGxpc3Qgcm91dGVcbiAgICAgICAgY29uc3Qgcm9vdENoaWxkUm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSgnJywgQWN0aW9uUm91dGVDb21wb25lbnQpO1xuICAgICAgICByb290Q2hpbGRSb3V0ZUJ1aWxkZXIud2l0aERhdGEoey4uLmNoaWxkcmVuUm91dGVEYXRhfSk7XG4gICAgICAgIGlmICh0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zPy5bVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRF0pIHtcbiAgICAgICAgICAgIHJvb3RDaGlsZFJvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy50YWJsZXZpZXdQZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hZGRDaGlsZEJ1aWxkZXIocm9vdENoaWxkUm91dGVCdWlsZGVyKTtcblxuICAgICAgICAvLyBhZGQgcm91dGVcbiAgICAgICAgaWYgKHRoaXMuaGFzQWRkKSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZUJ1aWxkZXIgPSBSb3V0ZUJ1aWxkZXIuY3JlYXRlKHRoaXMuYWRkUGF0aCwgQWN0aW9uUm91dGVDb21wb25lbnQpO1xuICAgICAgICAgICAgcm91dGVCdWlsZGVyLndpdGhEYXRhKHsuLi5jaGlsZHJlblJvdXRlRGF0YX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5BRERdKSB7XG4gICAgICAgICAgICAgICAgcm91dGVCdWlsZGVyLndpdGhQZXJtaXNzaW9ucyh0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkFERF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRDaGlsZEJ1aWxkZXIocm91dGVCdWlsZGVyKTtcbiAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoQ2FuRGVhY3RpdmF0ZSh1bnNhdmVkQ2hhbmdlc0d1YXJkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5oYXNEZXRhaWxzKSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZUJ1aWxkZXIgPSBSb3V0ZUJ1aWxkZXIuY3JlYXRlKHRoaXMuZGV0YWlsc1BhdGgsIEFjdGlvblJvdXRlQ29tcG9uZW50KTtcbiAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoRGF0YSh7Li4uY2hpbGRyZW5Sb3V0ZURhdGF9KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zPy5bVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVUQUlMU10pIHtcbiAgICAgICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aFBlcm1pc3Npb25zKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVUQUlMU10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRDaGlsZEJ1aWxkZXIocm91dGVCdWlsZGVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5oYXNFZGl0KSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZUJ1aWxkZXIgPSBSb3V0ZUJ1aWxkZXIuY3JlYXRlKHRoaXMuZWRpdFBhdGgsIEFjdGlvblJvdXRlQ29tcG9uZW50KTtcbiAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoRGF0YSh7Li4uY2hpbGRyZW5Sb3V0ZURhdGF9KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zPy5bVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuRURJVF0pIHtcbiAgICAgICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aFBlcm1pc3Npb25zKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuRURJVF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRDaGlsZEJ1aWxkZXIocm91dGVCdWlsZGVyKTtcbiAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoQ2FuRGVhY3RpdmF0ZSh1bnNhdmVkQ2hhbmdlc0d1YXJkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdXBlci5idWlsZCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaW5kTWVudUl0ZW1QZXJtaXNzaW9ucygpIHtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1QZXJtaXNzaW9uID0gc3VwZXIuZmluZE1lbnVJdGVtUGVybWlzc2lvbnMoKTtcbiAgICAgICAgaWYgKCFtZW51SXRlbVBlcm1pc3Npb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zPy5bVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lbnVJdGVtUGVybWlzc2lvbjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXIge1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNvbXBvbmVudDxDPihwYXRoOiBzdHJpbmcsIGNvbXBvbmVudDogVHlwZTxDPik6IFRhYmxldmlld1JvdXRlQnVpbGRlckludGVybmFsIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXJJbnRlcm5hbChwYXRoLCB7Y29tcG9uZW50fSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tKFxuICAgICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICAgIGRlc2NyaXB0b3I6IFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0PGFueT4sXG4gICAgICAgIGRhdGFQcm92aWRlcjogSVRhYmxldmlld0RhdGFQcm92aWRlcixcbiAgICAgICAgYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvckluc3Q8YW55Pj5cbiAgICApOiBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXJJbnRlcm5hbCB7XG4gICAgICAgIHJldHVybiBuZXcgVGFibGV2aWV3Um91dGVCdWlsZGVySW50ZXJuYWwocGF0aCwge2Rlc2NyaXB0b3IsIGRhdGFQcm92aWRlciwgYWN0aW9uc30pO1xuICAgIH1cbn1cbiJdfQ==
|