@eo-sdk/client 11.9.0-rc.2 → 11.10.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts +1 -0
- package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts +1 -0
- package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-setup/signature-statistics-setup.component.d.ts.map +1 -1
- package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts +1 -0
- package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
- package/app/eo-client/notifications-state/notifications-state.component.d.ts +1 -0
- package/app/eo-client/notifications-state/notifications-state.component.d.ts.map +1 -1
- package/app/eo-client/process-state/process-state.component.d.ts +1 -0
- package/app/eo-client/process-state/process-state.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +1 -0
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +4 -2
- package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/number-range/number-range.component.d.ts +7 -2
- package/app/eo-framework/form-elements/number-range/number-range.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/organization/organization.component.d.ts +10 -0
- package/app/eo-framework/form-elements/organization/organization.component.d.ts.map +1 -1
- package/app/eo-framework/inbox-details/inbox-details.component.d.ts +28 -5
- package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts +0 -1
- package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
- package/app/eo-framework/ui/overlay/overlay.component.d.ts +3 -2
- package/app/eo-framework/ui/overlay/overlay.component.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +4 -0
- package/assets/_default/i18n/en.json +12 -8
- package/assets/_default/i18n/ja.json +1132 -0
- package/assets/_default/i18n/ko.json +1132 -0
- package/assets/_default/i18n/th.json +1132 -0
- package/assets/_default/i18n/zh.json +1132 -0
- package/esm2022/app/eo-client/about-state/about-state.component.mjs +6 -6
- package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +7 -5
- package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +83 -120
- package/esm2022/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
- package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +6 -6
- package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-setup/signature-statistics-setup.component.mjs +7 -7
- package/esm2022/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-widget.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +3 -3
- package/esm2022/app/eo-client/eo-client-routing.module.mjs +4 -4
- package/esm2022/app/eo-client/eo-client.module.mjs +4 -4
- package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +3 -3
- package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +11 -5
- package/esm2022/app/eo-client/inbox-state/inbox-state-routing.module.mjs +4 -4
- package/esm2022/app/eo-client/inbox-state/inbox-state.module.mjs +4 -4
- package/esm2022/app/eo-client/login/login.component.mjs +3 -3
- package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +11 -5
- package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
- package/esm2022/app/eo-client/object-state/object-state-routing.module.mjs +4 -4
- package/esm2022/app/eo-client/object-state/object-state-service/object-state.service.mjs +3 -3
- package/esm2022/app/eo-client/object-state/object-state.module.mjs +4 -4
- package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +3 -3
- package/esm2022/app/eo-client/prepare-state/prepare-state-routing.module.mjs +4 -4
- package/esm2022/app/eo-client/prepare-state/prepare-state.module.mjs +4 -4
- package/esm2022/app/eo-client/process-state/process-state.component.mjs +11 -5
- package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +3 -3
- package/esm2022/app/eo-client/result-state/result-state.component.mjs +3 -3
- package/esm2022/app/eo-client/settings/settings.component.mjs +3 -3
- package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +3 -3
- package/esm2022/app/eo-client/version-state/version-state.component.mjs +3 -3
- package/esm2022/app/eo-framework/accordion/accordion.module.mjs +4 -4
- package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/action-menu/action-component-anchor/action-component-anchor.directive.mjs +3 -3
- package/esm2022/app/eo-framework/actions/action-menu/action-menu.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/action-service/action.service.mjs +3 -3
- package/esm2022/app/eo-framework/actions/action.module.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/copy-action/copy-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/cut-action/cut-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/delete-action/delete-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/delete-action/delete-prepared-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/download-action/download-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/email/email/email.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/email/email-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/favorite-action/favorite-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/finalize/definalize-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/finalize/finalize-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/open-context-action/open-context-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/open-versions-action/open-versions-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/remove-subscription-action/remove-subscription-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/restore-version-action/restore-version-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/return-task-action/return-task/return-task.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/return-task-action/return-task-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-object-action/unlock-object-action.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/update-resubmission-action/update-resubmission-action.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +3 -3
- package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow-action.component.mjs +3 -3
- package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +3 -3
- package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +3 -3
- package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +3 -3
- package/esm2022/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +3 -3
- package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +3 -3
- package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
- package/esm2022/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +3 -3
- package/esm2022/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +3 -3
- package/esm2022/app/eo-framework/app-shell/app-shell-routing.module.mjs +4 -4
- package/esm2022/app/eo-framework/app-shell/app-shell.module.mjs +4 -4
- package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +3 -3
- package/esm2022/app/eo-framework/cta/component/cta.component.mjs +3 -3
- package/esm2022/app/eo-framework/cta/cta.module.mjs +4 -4
- package/esm2022/app/eo-framework/eo-framework.module.mjs +4 -4
- package/esm2022/app/eo-framework/error/error.module.mjs +4 -4
- package/esm2022/app/eo-framework/error/error404/error404.component.mjs +3 -3
- package/esm2022/app/eo-framework/error/not-found/not-found.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/date/date.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +19 -10
- package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +20 -14
- package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.service.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/form-elements.module.mjs +4 -4
- package/esm2022/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/id-reference/service/reference-finder.service.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/number/number.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/number-range/number-range.component.mjs +12 -6
- package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +34 -14
- package/esm2022/app/eo-framework/form-elements/password/password.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +3 -3
- package/esm2022/app/eo-framework/frame/frame.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/extensions/empty/empty.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/extensions/filter/abstract-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/extensions/pagination/pagination.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/extensions/services/list-settings.service.mjs +3 -3
- package/esm2022/app/eo-framework/grid/extensions/total-count/total-count.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/filters/list-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/filters/organization-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/grid.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/grid.module.mjs +4 -4
- package/esm2022/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.mjs +3 -3
- package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +54 -14
- package/esm2022/app/eo-framework/list-container/list-container.component.mjs +3 -3
- package/esm2022/app/eo-framework/list-container/list-container.module.mjs +4 -4
- package/esm2022/app/eo-framework/media/content-preview.service.mjs +3 -3
- package/esm2022/app/eo-framework/media/media.component.mjs +3 -3
- package/esm2022/app/eo-framework/media/media.module.mjs +4 -4
- package/esm2022/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-details/object-details.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-details/object-details.module.mjs +4 -4
- package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter-pipe/history-filter.pipe.mjs +3 -3
- package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-details/object-history/object-history.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.mjs +3 -3
- package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +4 -12
- package/esm2022/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +3 -3
- package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +5 -5
- package/esm2022/app/eo-framework/object-form/object-form.module.mjs +4 -4
- package/esm2022/app/eo-framework/object-state-details/object-state-details.component.mjs +3 -3
- package/esm2022/app/eo-framework/plugins/plugin.component.mjs +9 -9
- package/esm2022/app/eo-framework/plugins/plugin.directive.mjs +3 -3
- package/esm2022/app/eo-framework/plugins/plugin.service.mjs +3 -3
- package/esm2022/app/eo-framework/plugins/plugins.module.mjs +4 -4
- package/esm2022/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.mjs +3 -3
- package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +3 -3
- package/esm2022/app/eo-framework/process/details/process-details.component.mjs +3 -3
- package/esm2022/app/eo-framework/process/history/process-history.component.mjs +3 -3
- package/esm2022/app/eo-framework/process/process-file/process-file.component.mjs +3 -3
- package/esm2022/app/eo-framework/process-form/process-form.component.mjs +3 -3
- package/esm2022/app/eo-framework/process-form/process-form.module.mjs +4 -4
- package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
- package/esm2022/app/eo-framework/quick-search/quick-search.module.mjs +4 -4
- package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +3 -3
- package/esm2022/app/eo-framework/result-list/result-list.component.mjs +3 -3
- package/esm2022/app/eo-framework/result-list/result-list.module.mjs +4 -4
- package/esm2022/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.mjs +3 -3
- package/esm2022/app/eo-framework/settings/permissions/permissions.component.mjs +3 -3
- package/esm2022/app/eo-framework/settings/settings.module.mjs +4 -4
- package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.mjs +3 -3
- package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.mjs +3 -3
- package/esm2022/app/eo-framework/shortcuts/shortcuts.directive.mjs +3 -3
- package/esm2022/app/eo-framework/shortcuts/shortcuts.module.mjs +4 -4
- package/esm2022/app/eo-framework/shortcuts/shortcuts.service.mjs +3 -3
- package/esm2022/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +3 -3
- package/esm2022/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.mjs +3 -3
- package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +3 -3
- package/esm2022/app/eo-framework/stored-query/stored-query.module.mjs +4 -4
- package/esm2022/app/eo-framework/tree/tree-node/tree-node.component.mjs +5 -5
- package/esm2022/app/eo-framework/tree/tree.component.mjs +3 -3
- package/esm2022/app/eo-framework/tree/tree.module.mjs +4 -4
- package/esm2022/app/eo-framework/ui/clipboard/clipboard.component.mjs +3 -3
- package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +9 -9
- package/esm2022/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +3 -3
- package/esm2022/app/eo-framework/ui/error-message/error-message.component.mjs +3 -3
- package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +3 -3
- package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +3 -3
- package/esm2022/app/eo-framework/ui/loading-spinner/loading-spinner.component.mjs +3 -3
- package/esm2022/app/eo-framework/ui/outside-click/outside-click.directive.mjs +3 -3
- package/esm2022/app/eo-framework/ui/overlay/overlay.component.mjs +14 -6
- package/esm2022/app/eo-framework/ui/query-scope-select/query-scope-select.component.mjs +3 -3
- package/esm2022/app/eo-framework/ui/router-link/router-link.directive.mjs +3 -3
- package/esm2022/app/eo-framework/ui/rtl-aware/rtl-aware.directive.mjs +3 -3
- package/esm2022/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
- package/esm2022/app/eo-framework/ui/ui.module.mjs +4 -4
- package/esm2022/app/eo-framework/ui/user-avatar/user-avatar.component.mjs +3 -3
- package/esm2022/app/eo-framework/upload-overlay/upload-overlay-guard.service.mjs +3 -3
- package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +5 -5
- package/esm2022/app/eo-framework/util/directive/prevent-double-click.directive.mjs +3 -3
- package/esm2022/app/eo-framework/util/directive/trap-focus.directive.mjs +3 -3
- package/esm2022/app/eo-framework/util/services/utilities.service.mjs +3 -3
- package/esm2022/app/eo-framework/util/sortable/order-by.pipe.mjs +3 -3
- package/esm2022/app/eo-framework/util/util.module.mjs +4 -4
- package/esm2022/app/eo-framework-core/agent/agent.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/api/grid.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/api/plugins.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/empty-state/empty-state.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/eo-framework-core.module.mjs +4 -4
- package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/layout/layout.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/location/location.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/pending-changes/pending-changes-guard.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/pending-changes/pending-changes.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/pipes/filesize.pipe.mjs +3 -3
- package/esm2022/app/eo-framework-core/pipes/keys.pipe.mjs +3 -3
- package/esm2022/app/eo-framework-core/pipes/locale-date.pipe.mjs +3 -3
- package/esm2022/app/eo-framework-core/pipes/locale-number.pipe.mjs +12 -12
- package/esm2022/app/eo-framework-core/pipes/pipes.module.mjs +4 -4
- package/esm2022/app/eo-framework-core/pipes/safe-html.pipe.mjs +3 -3
- package/esm2022/app/eo-framework-core/references/reference.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/route-guards/auth/auth-guard.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/search/app-search.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/selection/selection.service.mjs +3 -3
- package/esm2022/app/eo-framework-core/title/page-title.service.mjs +3 -3
- package/fesm2022/eo-sdk-client.mjs +1058 -995
- package/fesm2022/eo-sdk-client.mjs.map +1 -1
- package/package.json +12 -12
|
@@ -461,14 +461,14 @@ export class UploadOverlayComponent {
|
|
|
461
461
|
pasteContainsFiles(event) {
|
|
462
462
|
return Array.from(event.clipboardData.items || []).filter(i => i.kind === 'file').length;
|
|
463
463
|
}
|
|
464
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
465
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.4", type: UploadOverlayComponent, selector: "eo-upload-overlay", viewQueries: [{ propertyName: "overlayEl", first: true, predicate: ["overlay"], descendants: true }], ngImport: i0, template: "<div id=\"eo-upload-overlay\" #overlay class=\"dark\" *ngIf=\"fileOver\" tabindex=\"1\"\n [ngClass]=\"{file: queue.length, invalid: invalidInput, uploading: isUploading}\">\n\n <eo-icon class=\"button white close\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"close()\"></eo-icon>\n\n <div class=\"count\">\n <div>{{queue.length}}</div>\n <div class=\"queueSize\">{{queueSize | fileSize}}</div>\n </div>\n\n <div class=\"headline\">\n <h1 translate>eo.upload.global.headline</h1>\n </div>\n \n <eo-icon class=\"uploady\" [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n\n <!-- batch upload dialog -->\n <div class=\"batch-dialog\" *ngIf=\"!invalidInput && selectedUploadTarget && !isUploading\">\n\n <h2 translate>eo.upload.global.choose.title</h2>\n <p translate>eo.upload.global.choose.message</p>\n <div class=\"actions\">\n <button (click)=\"resetSelectedUploadTarget()\" translate>eo.cta.button.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\"\n translate>eo.upload.global.choose.single</button>\n <button (click)=\"proceedWithSelectedTarget(true)\" class=\"primary\" translate>eo.upload.global.choose.multi</button>\n </div>\n </div>\n\n <!-- invalid input dialog -->\n <div class=\"batch-dialog\" *ngIf=\"hasValidUploadTargets && invalidInput\">\n\n <h2 translate>eo.upload.global.invalid.title</h2>\n <p translate>eo.upload.global.invalid.message</p>\n <div class=\"actions\">\n <button (click)=\"close()\" translate>eo.upload.global.close</button>\n </div>\n </div>\n\n <!-- no upload targets available -->\n <div class=\"batch-dialog\" *ngIf=\"!hasValidUploadTargets\">\n\n <h2 translate>eo.upload.global.notarget.title</h2>\n <p translate>eo.upload.global.notarget.message</p>\n <div class=\"actions\">\n <button (click)=\"close()\" translate>eo.upload.global.close</button>\n </div>\n </div>\n\n <div class=\"contents\" *ngIf=\"hasValidUploadTargets && !invalidInput && !selectedUploadTarget && !isUploading\">\n\n <div class=\"section\">\n <!-- list of available upload targets -->\n <div class=\"targets\">\n <div class=\"target-list\">\n @for (targetType of targetTypes; track targetType.type) {\n @for (t of validUploadTargets; track t.id) {\n @if (t.type === targetType.type) {\n <ng-container *ngTemplateOutlet=\"uploadTargetTemplate; context: {\n iconSrc: targetType.iconSrc,\n targetClass: targetType.targetClass,\n name: targetType.type === 'custom' ? t.name : (targetType.type === 'context' ? (targetType.name | translate : { context: t.referenceObject.type.label }) : (targetType. name | translate)),\n description: targetType.type === 'custom' || targetType.type === 'object' || targetType. type === 'context' ? t.description : (targetType.description | translate),\n targets: t\n }\">\n </ng-container>\n }\n }\n }\n </div>\n </div>\n\n <!-- upload to favorite -->\n @if (folderFavorites.length > 0) {\n <eo-simple-accordion [selected]=\"favoritesAccSelected\" [header]=\"'eo.upload.global.context.favorite' | translate\"\n (selectChange)=\"onFavoriteToggle($event)\">\n <div class=\"targets\" tabindex=\"-1\">\n <div class=\"target-list\" tabindex=\"-1\">\n @for (t of validUploadTargets; track $index) {\n @if (t.type === 'favorite') {\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(t)\" (click)=\"proceedWithUpload(t)\">\n <ng-container>\n <eo-icon [iconId]=\"t.iconId\"></eo-icon>\n <div class=\"upload-target-favorite\">\n <div class=\"name\">{{t.title}}\n <div class=\"description\">{{t.description}}</div>\n </div>\n </div>\n </ng-container>\n </div>\n }\n }\n </div>\n </div>\n </eo-simple-accordion>\n }\n\n @if(lastOpenedFolder.length > 0){\n <eo-simple-accordion [selected]=\"agentAccSelected\" [header]=\"'eo.upload.global.context.agent' | translate\"\n (selectChange)=\"onAgentToggle($event)\">\n <!-- upload to last opened folder -->\n <div class=\"targets\" tabindex=\"-1\">\n <div class=\"target-list\" tabindex=\"-1\">\n @for (t of validUploadTargets; track $index) {\n @if (t.type === 'agent') {\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(t)\" (click)=\"proceedWithUpload(t)\">\n <ng-container>\n <eo-icon [iconId]=\"t.iconId\"></eo-icon>\n <div class=\"upload-target-agent\">\n <div class=\"name\">{{t?.title}}\n <div class=\"description\">{{t?.description}}</div>\n </div>\n </div>\n </ng-container>\n </div>\n }\n }\n </div>\n </div>\n </eo-simple-accordion>\n }\n </div>\n <!-- list of files dragged to the component -->\n <div class=\"files\" [ngClass]=\"{file: queue.length, invalid: invalidInput, uploading: isUploading}\">\n <div class=\"files-list\">\n @for (i of queue; track $index) {\n <div class=\"file-item\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span>\n <span class=\"desc-text\"> {{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n }\n </div>\n </div>\n </div>\n\n @if (isUploading) {\n <div class=\"loading\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </div>\n }\n</div>\n\n<ng-template #uploadTargetTemplate let-iconSrc=\"iconSrc\" let-targetClass=\"targetClass\" let-name=\"name\"\n let-description=\"description\" let-targets=\"targets\">\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(targets)\" (click)=\"proceedWithUpload(targets)\">\n <ng-container>\n <eo-icon [iconSrc]=\"iconSrc\"></eo-icon>\n <div [ngClass]=\"targetClass\">\n <div class=\"name\">{{ name }}</div>\n <div class=\"description\">{{ description }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host #eo-upload-overlay{position:absolute;inset:0;z-index:9900;background-color:rgba(var(--color-black-rgb),.85);animation:eoFadeIn var(--app-default-transition-duration);display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-white);overflow:hidden}:host #eo-upload-overlay .headline{display:flex;width:100%;min-width:200px;justify-content:center;overflow:hidden;align-content:center;flex-wrap:wrap}:host #eo-upload-overlay .headline h1{font-size:4em;font-weight:var(--font-weight-light);color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .uploady{animation:uploady 2s linear infinite;width:20vw;height:20vw;display:block}:host #eo-upload-overlay .close{position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding)}:host #eo-upload-overlay .count{position:absolute;display:none;right:calc(var(--app-pane-padding) * 3);top:calc(var(--app-pane-padding) * 3);font-size:10vh;flex-flow:column;align-items:flex-end;line-height:1em;animation:eoFadeInDown var(--app-default-transition-duration)}:host #eo-upload-overlay .count .queueSize{font-size:var(--font-caption);line-height:var(--font-caption);margin-top:calc(var(--app-pane-padding) / 2);border-radius:2px;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);background-color:rgba(var(--color-white-rgb),.2)}:host #eo-upload-overlay .batch-dialog{max-width:350px}:host #eo-upload-overlay .batch-dialog .actions{display:flex;padding-top:var(--app-pane-padding);justify-content:flex-end}:host #eo-upload-overlay .batch-dialog .actions button{margin:0 calc(var(--app-pane-padding) / 4)}:host #eo-upload-overlay .contents{display:none;flex-flow:row wrap;margin:var(--app-pane-padding);max-width:100%;max-height:100%;width:100%;height:100%}:host #eo-upload-overlay .targets{order:1;margin:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;justify-content:center;position:relative}:host #eo-upload-overlay .targets .target-list{animation:eoFadeInRight var(--app-default-transition-duration);overflow-y:auto}:host #eo-upload-overlay .targets .target-list h2{font-size:var(--font-subhead);font-weight:400}:host #eo-upload-overlay .targets .target-list .upload-target{background:rgba(var(--color-accent),.6);border:1px solid rgba(var(--color-white-rgb),.4);margin:calc(var(--app-pane-padding) / 2) 0;padding:calc(var(--app-pane-padding) / 2);border-radius:2px;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;display:flex;cursor:pointer;flex-flow:row nowrap;align-items:center}:host #eo-upload-overlay .targets .target-list .upload-target:focus{background-color:var(--color-accent)}:host #eo-upload-overlay .targets .target-list .upload-target eo-icon{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay .targets .target-list .upload-target>div{flex:1 1 auto;margin:0 calc(var(--app-pane-padding) / 2);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{width:100%;max-width:250px;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-caption);opacity:.7}:host #eo-upload-overlay .targets .target-list .upload-target:hover{background-color:var(--color-accent)}:host #eo-upload-overlay .files{padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;max-width:150px;width:95%;min-width:25%;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%;width:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;align-items:center;cursor:default;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 4);margin-bottom:calc(var(--app-pane-padding) / 4);background-color:rgba(var(--color-white-rgb),.1);-webkit-user-select:none;user-select:none}:host #eo-upload-overlay .files .files-list .file-item>div{flex:1 1 auto;padding:0 calc(var(--app-pane-padding) / 2);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .files .files-list .file-item>div .name{font-size:var(--font-subhead);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .files .files-list .file-item>div .desc{color:rgba(var(--color-white-rgb),.75);font-size:var(--font-hint);margin-top:calc(var(--app-pane-padding) / 4)}:host #eo-upload-overlay .files .files-list .file-item>div .size{border-radius:2px;display:inline-block;padding:0 4px;background-color:rgba(var(--color-white-rgb),.2)}:host #eo-upload-overlay .files .files-list .file-item eo-icon{flex:0 0 auto;width:18px;height:18px;padding:calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay.invalid>h1,:host #eo-upload-overlay.invalid .uploady{display:none}:host #eo-upload-overlay.file .uploady{display:none}:host #eo-upload-overlay.file .contents{flex-flow:row-reverse;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;flex:1 1;flex-direction:row-reverse}:host #eo-upload-overlay.file .contents .section{display:flow-root;width:25%;min-width:200px;flex:0 0 auto;max-height:fit-content;overflow:hidden;box-sizing:content-box}:host #eo-upload-overlay.file .contents .targets{order:0;margin-bottom:var(--app-pane-padding)}:host #eo-upload-overlay.uploading h1,:host #eo-upload-overlay.uploading .close{display:none}@keyframes uploady{0%{transform:translateY(0);opacity:.1}50%{transform:translateY(-40px);opacity:.3}to{transform:translateY(0);opacity:.1}}::ng-deep eo-simple-accordion{display:flex;flex-flow:column;flex:0 0 auto}::ng-deep eo-simple-accordion:not(.selected){margin-bottom:var(--app-pane-padding)}::ng-deep eo-simple-accordion>section{min-height:50px;max-height:190px;overflow-y:auto;overflow-x:hidden}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i7.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i8.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.FileSizePipe, name: "fileSize" }] }); }
|
|
464
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UploadOverlayComponent, deps: [{ token: i1.Router }, { token: i0.Renderer2 }, { token: i2.PrepareService }, { token: i2.TranslateService }, { token: i2.UserService }, { token: i3.AgentService }, { token: i2.SystemService }, { token: i2.EventService }, { token: i2.LocalStorageService }, { token: i2.UploadRegistryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
465
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: UploadOverlayComponent, selector: "eo-upload-overlay", viewQueries: [{ propertyName: "overlayEl", first: true, predicate: ["overlay"], descendants: true }], ngImport: i0, template: "<div id=\"eo-upload-overlay\" #overlay class=\"dark\" *ngIf=\"fileOver\" tabindex=\"1\"\n [ngClass]=\"{file: queue.length, invalid: invalidInput, uploading: isUploading}\">\n\n <eo-icon class=\"button white close\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"close()\"></eo-icon>\n\n <div class=\"count\">\n <div>{{queue.length}}</div>\n <div class=\"queueSize\">{{queueSize | fileSize}}</div>\n </div>\n\n <div class=\"headline\">\n <h1 translate>eo.upload.global.headline</h1>\n </div>\n \n <eo-icon class=\"uploady\" [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n\n <!-- batch upload dialog -->\n <div class=\"batch-dialog\" *ngIf=\"!invalidInput && selectedUploadTarget && !isUploading\">\n\n <h2 translate>eo.upload.global.choose.title</h2>\n <p translate>eo.upload.global.choose.message</p>\n <div class=\"actions\">\n <button (click)=\"resetSelectedUploadTarget()\" translate>eo.cta.button.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\"\n translate>eo.upload.global.choose.single</button>\n <button (click)=\"proceedWithSelectedTarget(true)\" class=\"primary\" translate>eo.upload.global.choose.multi</button>\n </div>\n </div>\n\n <!-- invalid input dialog -->\n <div class=\"batch-dialog\" *ngIf=\"hasValidUploadTargets && invalidInput\">\n\n <h2 translate>eo.upload.global.invalid.title</h2>\n <p translate>eo.upload.global.invalid.message</p>\n <div class=\"actions\">\n <button (click)=\"close()\" translate>eo.upload.global.close</button>\n </div>\n </div>\n\n <!-- no upload targets available -->\n <div class=\"batch-dialog\" *ngIf=\"!hasValidUploadTargets\">\n\n <h2 translate>eo.upload.global.notarget.title</h2>\n <p translate>eo.upload.global.notarget.message</p>\n <div class=\"actions\">\n <button (click)=\"close()\" translate>eo.upload.global.close</button>\n </div>\n </div>\n\n <div class=\"contents\" *ngIf=\"hasValidUploadTargets && !invalidInput && !selectedUploadTarget && !isUploading\">\n\n <div class=\"section\">\n <!-- list of available upload targets -->\n <div class=\"targets\">\n <div class=\"target-list\">\n @for (targetType of targetTypes; track targetType.type) {\n @for (t of validUploadTargets; track t.id) {\n @if (t.type === targetType.type) {\n <ng-container *ngTemplateOutlet=\"uploadTargetTemplate; context: {\n iconSrc: targetType.iconSrc,\n targetClass: targetType.targetClass,\n name: targetType.type === 'custom' ? t.name : targetType.type === 'contexttree' ? (targetType.name | translate : {folder: t.subFolder.name}) : targetType.type === 'context' ? (targetType.name | translate : {context: t.referenceObject.type.label}) : (targetType.name | translate),\n description: targetType.type === 'custom' || targetType.type === 'object' || targetType.type === 'context' ? t.description : (targetType.description | translate),\n targets: t\n }\">\n </ng-container>\n }\n }\n }\n </div>\n </div>\n\n <!-- upload to favorite -->\n @if (folderFavorites.length > 0) {\n <eo-simple-accordion [selected]=\"favoritesAccSelected\" [header]=\"'eo.upload.global.context.favorite' | translate\"\n (selectChange)=\"onFavoriteToggle($event)\">\n <div class=\"targets\" tabindex=\"-1\">\n <div class=\"target-list\" tabindex=\"-1\">\n @for (t of validUploadTargets; track $index) {\n @if (t.type === 'favorite') {\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(t)\" (click)=\"proceedWithUpload(t)\">\n <ng-container>\n <eo-icon [iconId]=\"t.iconId\"></eo-icon>\n <div class=\"upload-target-favorite\">\n <div class=\"name\">{{t.title}}\n <div class=\"description\">{{t.description}}</div>\n </div>\n </div>\n </ng-container>\n </div>\n }\n }\n </div>\n </div>\n </eo-simple-accordion>\n }\n\n @if(lastOpenedFolder.length > 0){\n <eo-simple-accordion [selected]=\"agentAccSelected\" [header]=\"'eo.upload.global.context.agent' | translate\"\n (selectChange)=\"onAgentToggle($event)\">\n <!-- upload to last opened folder -->\n <div class=\"targets\" tabindex=\"-1\">\n <div class=\"target-list\" tabindex=\"-1\">\n @for (t of validUploadTargets; track $index) {\n @if (t.type === 'agent') {\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(t)\" (click)=\"proceedWithUpload(t)\">\n <ng-container>\n <eo-icon [iconId]=\"t.iconId\"></eo-icon>\n <div class=\"upload-target-agent\">\n <div class=\"name\">{{t?.title}}\n <div class=\"description\">{{t?.description}}</div>\n </div>\n </div>\n </ng-container>\n </div>\n }\n }\n </div>\n </div>\n </eo-simple-accordion>\n }\n </div>\n <!-- list of files dragged to the component -->\n <div class=\"files\" [ngClass]=\"{file: queue.length, invalid: invalidInput, uploading: isUploading}\">\n <div class=\"files-list\">\n @for (i of queue; track $index) {\n <div class=\"file-item\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span>\n <span class=\"desc-text\"> {{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n }\n </div>\n </div>\n </div>\n\n @if (isUploading) {\n <div class=\"loading\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </div>\n }\n</div>\n\n<ng-template #uploadTargetTemplate let-iconSrc=\"iconSrc\" let-targetClass=\"targetClass\" let-name=\"name\"\n let-description=\"description\" let-targets=\"targets\">\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(targets)\" (click)=\"proceedWithUpload(targets)\">\n <ng-container>\n <eo-icon [iconSrc]=\"iconSrc\"></eo-icon>\n <div [ngClass]=\"targetClass\">\n <div class=\"name\">{{ name }}</div>\n <div class=\"description\">{{ description }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host #eo-upload-overlay{position:absolute;inset:0;z-index:9900;background-color:rgba(var(--color-black-rgb),.85);animation:eoFadeIn var(--app-default-transition-duration);display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-white);overflow:hidden}:host #eo-upload-overlay .headline{display:flex;width:100%;min-width:200px;justify-content:center;overflow:hidden;align-content:center;flex-wrap:wrap}:host #eo-upload-overlay .headline h1{font-size:4em;font-weight:var(--font-weight-light);color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .uploady{animation:uploady 2s linear infinite;width:20vw;height:20vw;display:block}:host #eo-upload-overlay .close{position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding)}:host #eo-upload-overlay .count{position:absolute;display:none;right:calc(var(--app-pane-padding) * 3);top:calc(var(--app-pane-padding) * 3);font-size:10vh;flex-flow:column;align-items:flex-end;line-height:1em;animation:eoFadeInDown var(--app-default-transition-duration)}:host #eo-upload-overlay .count .queueSize{font-size:var(--font-caption);line-height:var(--font-caption);margin-top:calc(var(--app-pane-padding) / 2);border-radius:2px;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);background-color:rgba(var(--color-white-rgb),.2)}:host #eo-upload-overlay .batch-dialog{max-width:350px}:host #eo-upload-overlay .batch-dialog .actions{display:flex;padding-top:var(--app-pane-padding);justify-content:flex-end}:host #eo-upload-overlay .batch-dialog .actions button{margin:0 calc(var(--app-pane-padding) / 4)}:host #eo-upload-overlay .contents{display:none;flex-flow:row wrap;margin:var(--app-pane-padding);max-width:100%;max-height:100%;width:100%;height:100%}:host #eo-upload-overlay .targets{order:1;margin:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;justify-content:center;position:relative}:host #eo-upload-overlay .targets .target-list{animation:eoFadeInRight var(--app-default-transition-duration);overflow-y:auto}:host #eo-upload-overlay .targets .target-list h2{font-size:var(--font-subhead);font-weight:400}:host #eo-upload-overlay .targets .target-list .upload-target{background:rgba(var(--color-accent),.6);border:1px solid rgba(var(--color-white-rgb),.4);margin:calc(var(--app-pane-padding) / 2) 0;padding:calc(var(--app-pane-padding) / 2);border-radius:2px;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;display:flex;cursor:pointer;flex-flow:row nowrap;align-items:center}:host #eo-upload-overlay .targets .target-list .upload-target:focus{background-color:var(--color-accent)}:host #eo-upload-overlay .targets .target-list .upload-target eo-icon{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay .targets .target-list .upload-target>div{flex:1 1 auto;margin:0 calc(var(--app-pane-padding) / 2);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{width:100%;max-width:250px;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-caption);opacity:.7}:host #eo-upload-overlay .targets .target-list .upload-target:hover{background-color:var(--color-accent)}:host #eo-upload-overlay .files{padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;max-width:150px;width:95%;min-width:25%;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%;width:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;align-items:center;cursor:default;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 4);margin-bottom:calc(var(--app-pane-padding) / 4);background-color:rgba(var(--color-white-rgb),.1);-webkit-user-select:none;user-select:none}:host #eo-upload-overlay .files .files-list .file-item>div{flex:1 1 auto;padding:0 calc(var(--app-pane-padding) / 2);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .files .files-list .file-item>div .name{font-size:var(--font-subhead);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .files .files-list .file-item>div .desc{color:rgba(var(--color-white-rgb),.75);font-size:var(--font-hint);margin-top:calc(var(--app-pane-padding) / 4)}:host #eo-upload-overlay .files .files-list .file-item>div .size{border-radius:2px;display:inline-block;padding:0 4px;background-color:rgba(var(--color-white-rgb),.2)}:host #eo-upload-overlay .files .files-list .file-item eo-icon{flex:0 0 auto;width:18px;height:18px;padding:calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay.invalid>h1,:host #eo-upload-overlay.invalid .uploady{display:none}:host #eo-upload-overlay.file .uploady{display:none}:host #eo-upload-overlay.file .contents{flex-flow:row-reverse;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;flex:1 1;flex-direction:row-reverse}:host #eo-upload-overlay.file .contents .section{display:flow-root;width:25%;min-width:200px;flex:0 0 auto;max-height:fit-content;overflow:hidden;box-sizing:content-box}:host #eo-upload-overlay.file .contents .targets{order:0;margin-bottom:var(--app-pane-padding)}:host #eo-upload-overlay.uploading h1,:host #eo-upload-overlay.uploading .close{display:none}@keyframes uploady{0%{transform:translateY(0);opacity:.1}50%{transform:translateY(-40px);opacity:.3}to{transform:translateY(0);opacity:.1}}::ng-deep eo-simple-accordion{display:flex;flex-flow:column;flex:0 0 auto}::ng-deep eo-simple-accordion:not(.selected){margin-bottom:var(--app-pane-padding)}::ng-deep eo-simple-accordion>section{min-height:50px;max-height:190px;overflow-y:auto;overflow-x:hidden}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i7.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i8.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.FileSizePipe, name: "fileSize" }] }); }
|
|
466
466
|
}
|
|
467
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
467
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UploadOverlayComponent, decorators: [{
|
|
468
468
|
type: Component,
|
|
469
|
-
args: [{ selector: 'eo-upload-overlay', template: "<div id=\"eo-upload-overlay\" #overlay class=\"dark\" *ngIf=\"fileOver\" tabindex=\"1\"\n [ngClass]=\"{file: queue.length, invalid: invalidInput, uploading: isUploading}\">\n\n <eo-icon class=\"button white close\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"close()\"></eo-icon>\n\n <div class=\"count\">\n <div>{{queue.length}}</div>\n <div class=\"queueSize\">{{queueSize | fileSize}}</div>\n </div>\n\n <div class=\"headline\">\n <h1 translate>eo.upload.global.headline</h1>\n </div>\n \n <eo-icon class=\"uploady\" [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n\n <!-- batch upload dialog -->\n <div class=\"batch-dialog\" *ngIf=\"!invalidInput && selectedUploadTarget && !isUploading\">\n\n <h2 translate>eo.upload.global.choose.title</h2>\n <p translate>eo.upload.global.choose.message</p>\n <div class=\"actions\">\n <button (click)=\"resetSelectedUploadTarget()\" translate>eo.cta.button.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\"\n translate>eo.upload.global.choose.single</button>\n <button (click)=\"proceedWithSelectedTarget(true)\" class=\"primary\" translate>eo.upload.global.choose.multi</button>\n </div>\n </div>\n\n <!-- invalid input dialog -->\n <div class=\"batch-dialog\" *ngIf=\"hasValidUploadTargets && invalidInput\">\n\n <h2 translate>eo.upload.global.invalid.title</h2>\n <p translate>eo.upload.global.invalid.message</p>\n <div class=\"actions\">\n <button (click)=\"close()\" translate>eo.upload.global.close</button>\n </div>\n </div>\n\n <!-- no upload targets available -->\n <div class=\"batch-dialog\" *ngIf=\"!hasValidUploadTargets\">\n\n <h2 translate>eo.upload.global.notarget.title</h2>\n <p translate>eo.upload.global.notarget.message</p>\n <div class=\"actions\">\n <button (click)=\"close()\" translate>eo.upload.global.close</button>\n </div>\n </div>\n\n <div class=\"contents\" *ngIf=\"hasValidUploadTargets && !invalidInput && !selectedUploadTarget && !isUploading\">\n\n <div class=\"section\">\n <!-- list of available upload targets -->\n <div class=\"targets\">\n <div class=\"target-list\">\n @for (targetType of targetTypes; track targetType.type) {\n @for (t of validUploadTargets; track t.id) {\n @if (t.type === targetType.type) {\n <ng-container *ngTemplateOutlet=\"uploadTargetTemplate; context: {\n iconSrc: targetType.iconSrc,\n targetClass: targetType.targetClass,\n name: targetType.type === 'custom' ? t.name : (targetType.type === 'context' ? (targetType.name | translate : { context: t.referenceObject.type.label }) : (targetType. name | translate)),\n description: targetType.type === 'custom' || targetType.type === 'object' || targetType. type === 'context' ? t.description : (targetType.description | translate),\n targets: t\n }\">\n </ng-container>\n }\n }\n }\n </div>\n </div>\n\n <!-- upload to favorite -->\n @if (folderFavorites.length > 0) {\n <eo-simple-accordion [selected]=\"favoritesAccSelected\" [header]=\"'eo.upload.global.context.favorite' | translate\"\n (selectChange)=\"onFavoriteToggle($event)\">\n <div class=\"targets\" tabindex=\"-1\">\n <div class=\"target-list\" tabindex=\"-1\">\n @for (t of validUploadTargets; track $index) {\n @if (t.type === 'favorite') {\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(t)\" (click)=\"proceedWithUpload(t)\">\n <ng-container>\n <eo-icon [iconId]=\"t.iconId\"></eo-icon>\n <div class=\"upload-target-favorite\">\n <div class=\"name\">{{t.title}}\n <div class=\"description\">{{t.description}}</div>\n </div>\n </div>\n </ng-container>\n </div>\n }\n }\n </div>\n </div>\n </eo-simple-accordion>\n }\n\n @if(lastOpenedFolder.length > 0){\n <eo-simple-accordion [selected]=\"agentAccSelected\" [header]=\"'eo.upload.global.context.agent' | translate\"\n (selectChange)=\"onAgentToggle($event)\">\n <!-- upload to last opened folder -->\n <div class=\"targets\" tabindex=\"-1\">\n <div class=\"target-list\" tabindex=\"-1\">\n @for (t of validUploadTargets; track $index) {\n @if (t.type === 'agent') {\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(t)\" (click)=\"proceedWithUpload(t)\">\n <ng-container>\n <eo-icon [iconId]=\"t.iconId\"></eo-icon>\n <div class=\"upload-target-agent\">\n <div class=\"name\">{{t?.title}}\n <div class=\"description\">{{t?.description}}</div>\n </div>\n </div>\n </ng-container>\n </div>\n }\n }\n </div>\n </div>\n </eo-simple-accordion>\n }\n </div>\n <!-- list of files dragged to the component -->\n <div class=\"files\" [ngClass]=\"{file: queue.length, invalid: invalidInput, uploading: isUploading}\">\n <div class=\"files-list\">\n @for (i of queue; track $index) {\n <div class=\"file-item\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span>\n <span class=\"desc-text\"> {{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n }\n </div>\n </div>\n </div>\n\n @if (isUploading) {\n <div class=\"loading\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </div>\n }\n</div>\n\n<ng-template #uploadTargetTemplate let-iconSrc=\"iconSrc\" let-targetClass=\"targetClass\" let-name=\"name\"\n let-description=\"description\" let-targets=\"targets\">\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(targets)\" (click)=\"proceedWithUpload(targets)\">\n <ng-container>\n <eo-icon [iconSrc]=\"iconSrc\"></eo-icon>\n <div [ngClass]=\"targetClass\">\n <div class=\"name\">{{ name }}</div>\n <div class=\"description\">{{ description }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host #eo-upload-overlay{position:absolute;inset:0;z-index:9900;background-color:rgba(var(--color-black-rgb),.85);animation:eoFadeIn var(--app-default-transition-duration);display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-white);overflow:hidden}:host #eo-upload-overlay .headline{display:flex;width:100%;min-width:200px;justify-content:center;overflow:hidden;align-content:center;flex-wrap:wrap}:host #eo-upload-overlay .headline h1{font-size:4em;font-weight:var(--font-weight-light);color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .uploady{animation:uploady 2s linear infinite;width:20vw;height:20vw;display:block}:host #eo-upload-overlay .close{position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding)}:host #eo-upload-overlay .count{position:absolute;display:none;right:calc(var(--app-pane-padding) * 3);top:calc(var(--app-pane-padding) * 3);font-size:10vh;flex-flow:column;align-items:flex-end;line-height:1em;animation:eoFadeInDown var(--app-default-transition-duration)}:host #eo-upload-overlay .count .queueSize{font-size:var(--font-caption);line-height:var(--font-caption);margin-top:calc(var(--app-pane-padding) / 2);border-radius:2px;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);background-color:rgba(var(--color-white-rgb),.2)}:host #eo-upload-overlay .batch-dialog{max-width:350px}:host #eo-upload-overlay .batch-dialog .actions{display:flex;padding-top:var(--app-pane-padding);justify-content:flex-end}:host #eo-upload-overlay .batch-dialog .actions button{margin:0 calc(var(--app-pane-padding) / 4)}:host #eo-upload-overlay .contents{display:none;flex-flow:row wrap;margin:var(--app-pane-padding);max-width:100%;max-height:100%;width:100%;height:100%}:host #eo-upload-overlay .targets{order:1;margin:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;justify-content:center;position:relative}:host #eo-upload-overlay .targets .target-list{animation:eoFadeInRight var(--app-default-transition-duration);overflow-y:auto}:host #eo-upload-overlay .targets .target-list h2{font-size:var(--font-subhead);font-weight:400}:host #eo-upload-overlay .targets .target-list .upload-target{background:rgba(var(--color-accent),.6);border:1px solid rgba(var(--color-white-rgb),.4);margin:calc(var(--app-pane-padding) / 2) 0;padding:calc(var(--app-pane-padding) / 2);border-radius:2px;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;display:flex;cursor:pointer;flex-flow:row nowrap;align-items:center}:host #eo-upload-overlay .targets .target-list .upload-target:focus{background-color:var(--color-accent)}:host #eo-upload-overlay .targets .target-list .upload-target eo-icon{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay .targets .target-list .upload-target>div{flex:1 1 auto;margin:0 calc(var(--app-pane-padding) / 2);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{width:100%;max-width:250px;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-caption);opacity:.7}:host #eo-upload-overlay .targets .target-list .upload-target:hover{background-color:var(--color-accent)}:host #eo-upload-overlay .files{padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;max-width:150px;width:95%;min-width:25%;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%;width:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;align-items:center;cursor:default;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 4);margin-bottom:calc(var(--app-pane-padding) / 4);background-color:rgba(var(--color-white-rgb),.1);-webkit-user-select:none;user-select:none}:host #eo-upload-overlay .files .files-list .file-item>div{flex:1 1 auto;padding:0 calc(var(--app-pane-padding) / 2);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .files .files-list .file-item>div .name{font-size:var(--font-subhead);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .files .files-list .file-item>div .desc{color:rgba(var(--color-white-rgb),.75);font-size:var(--font-hint);margin-top:calc(var(--app-pane-padding) / 4)}:host #eo-upload-overlay .files .files-list .file-item>div .size{border-radius:2px;display:inline-block;padding:0 4px;background-color:rgba(var(--color-white-rgb),.2)}:host #eo-upload-overlay .files .files-list .file-item eo-icon{flex:0 0 auto;width:18px;height:18px;padding:calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay.invalid>h1,:host #eo-upload-overlay.invalid .uploady{display:none}:host #eo-upload-overlay.file .uploady{display:none}:host #eo-upload-overlay.file .contents{flex-flow:row-reverse;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;flex:1 1;flex-direction:row-reverse}:host #eo-upload-overlay.file .contents .section{display:flow-root;width:25%;min-width:200px;flex:0 0 auto;max-height:fit-content;overflow:hidden;box-sizing:content-box}:host #eo-upload-overlay.file .contents .targets{order:0;margin-bottom:var(--app-pane-padding)}:host #eo-upload-overlay.uploading h1,:host #eo-upload-overlay.uploading .close{display:none}@keyframes uploady{0%{transform:translateY(0);opacity:.1}50%{transform:translateY(-40px);opacity:.3}to{transform:translateY(0);opacity:.1}}::ng-deep eo-simple-accordion{display:flex;flex-flow:column;flex:0 0 auto}::ng-deep eo-simple-accordion:not(.selected){margin-bottom:var(--app-pane-padding)}::ng-deep eo-simple-accordion>section{min-height:50px;max-height:190px;overflow-y:auto;overflow-x:hidden}\n"] }]
|
|
469
|
+
args: [{ selector: 'eo-upload-overlay', template: "<div id=\"eo-upload-overlay\" #overlay class=\"dark\" *ngIf=\"fileOver\" tabindex=\"1\"\n [ngClass]=\"{file: queue.length, invalid: invalidInput, uploading: isUploading}\">\n\n <eo-icon class=\"button white close\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"close()\"></eo-icon>\n\n <div class=\"count\">\n <div>{{queue.length}}</div>\n <div class=\"queueSize\">{{queueSize | fileSize}}</div>\n </div>\n\n <div class=\"headline\">\n <h1 translate>eo.upload.global.headline</h1>\n </div>\n \n <eo-icon class=\"uploady\" [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n\n <!-- batch upload dialog -->\n <div class=\"batch-dialog\" *ngIf=\"!invalidInput && selectedUploadTarget && !isUploading\">\n\n <h2 translate>eo.upload.global.choose.title</h2>\n <p translate>eo.upload.global.choose.message</p>\n <div class=\"actions\">\n <button (click)=\"resetSelectedUploadTarget()\" translate>eo.cta.button.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\"\n translate>eo.upload.global.choose.single</button>\n <button (click)=\"proceedWithSelectedTarget(true)\" class=\"primary\" translate>eo.upload.global.choose.multi</button>\n </div>\n </div>\n\n <!-- invalid input dialog -->\n <div class=\"batch-dialog\" *ngIf=\"hasValidUploadTargets && invalidInput\">\n\n <h2 translate>eo.upload.global.invalid.title</h2>\n <p translate>eo.upload.global.invalid.message</p>\n <div class=\"actions\">\n <button (click)=\"close()\" translate>eo.upload.global.close</button>\n </div>\n </div>\n\n <!-- no upload targets available -->\n <div class=\"batch-dialog\" *ngIf=\"!hasValidUploadTargets\">\n\n <h2 translate>eo.upload.global.notarget.title</h2>\n <p translate>eo.upload.global.notarget.message</p>\n <div class=\"actions\">\n <button (click)=\"close()\" translate>eo.upload.global.close</button>\n </div>\n </div>\n\n <div class=\"contents\" *ngIf=\"hasValidUploadTargets && !invalidInput && !selectedUploadTarget && !isUploading\">\n\n <div class=\"section\">\n <!-- list of available upload targets -->\n <div class=\"targets\">\n <div class=\"target-list\">\n @for (targetType of targetTypes; track targetType.type) {\n @for (t of validUploadTargets; track t.id) {\n @if (t.type === targetType.type) {\n <ng-container *ngTemplateOutlet=\"uploadTargetTemplate; context: {\n iconSrc: targetType.iconSrc,\n targetClass: targetType.targetClass,\n name: targetType.type === 'custom' ? t.name : targetType.type === 'contexttree' ? (targetType.name | translate : {folder: t.subFolder.name}) : targetType.type === 'context' ? (targetType.name | translate : {context: t.referenceObject.type.label}) : (targetType.name | translate),\n description: targetType.type === 'custom' || targetType.type === 'object' || targetType.type === 'context' ? t.description : (targetType.description | translate),\n targets: t\n }\">\n </ng-container>\n }\n }\n }\n </div>\n </div>\n\n <!-- upload to favorite -->\n @if (folderFavorites.length > 0) {\n <eo-simple-accordion [selected]=\"favoritesAccSelected\" [header]=\"'eo.upload.global.context.favorite' | translate\"\n (selectChange)=\"onFavoriteToggle($event)\">\n <div class=\"targets\" tabindex=\"-1\">\n <div class=\"target-list\" tabindex=\"-1\">\n @for (t of validUploadTargets; track $index) {\n @if (t.type === 'favorite') {\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(t)\" (click)=\"proceedWithUpload(t)\">\n <ng-container>\n <eo-icon [iconId]=\"t.iconId\"></eo-icon>\n <div class=\"upload-target-favorite\">\n <div class=\"name\">{{t.title}}\n <div class=\"description\">{{t.description}}</div>\n </div>\n </div>\n </ng-container>\n </div>\n }\n }\n </div>\n </div>\n </eo-simple-accordion>\n }\n\n @if(lastOpenedFolder.length > 0){\n <eo-simple-accordion [selected]=\"agentAccSelected\" [header]=\"'eo.upload.global.context.agent' | translate\"\n (selectChange)=\"onAgentToggle($event)\">\n <!-- upload to last opened folder -->\n <div class=\"targets\" tabindex=\"-1\">\n <div class=\"target-list\" tabindex=\"-1\">\n @for (t of validUploadTargets; track $index) {\n @if (t.type === 'agent') {\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(t)\" (click)=\"proceedWithUpload(t)\">\n <ng-container>\n <eo-icon [iconId]=\"t.iconId\"></eo-icon>\n <div class=\"upload-target-agent\">\n <div class=\"name\">{{t?.title}}\n <div class=\"description\">{{t?.description}}</div>\n </div>\n </div>\n </ng-container>\n </div>\n }\n }\n </div>\n </div>\n </eo-simple-accordion>\n }\n </div>\n <!-- list of files dragged to the component -->\n <div class=\"files\" [ngClass]=\"{file: queue.length, invalid: invalidInput, uploading: isUploading}\">\n <div class=\"files-list\">\n @for (i of queue; track $index) {\n <div class=\"file-item\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span>\n <span class=\"desc-text\"> {{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n }\n </div>\n </div>\n </div>\n\n @if (isUploading) {\n <div class=\"loading\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </div>\n }\n</div>\n\n<ng-template #uploadTargetTemplate let-iconSrc=\"iconSrc\" let-targetClass=\"targetClass\" let-name=\"name\"\n let-description=\"description\" let-targets=\"targets\">\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(targets)\" (click)=\"proceedWithUpload(targets)\">\n <ng-container>\n <eo-icon [iconSrc]=\"iconSrc\"></eo-icon>\n <div [ngClass]=\"targetClass\">\n <div class=\"name\">{{ name }}</div>\n <div class=\"description\">{{ description }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host #eo-upload-overlay{position:absolute;inset:0;z-index:9900;background-color:rgba(var(--color-black-rgb),.85);animation:eoFadeIn var(--app-default-transition-duration);display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-white);overflow:hidden}:host #eo-upload-overlay .headline{display:flex;width:100%;min-width:200px;justify-content:center;overflow:hidden;align-content:center;flex-wrap:wrap}:host #eo-upload-overlay .headline h1{font-size:4em;font-weight:var(--font-weight-light);color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .uploady{animation:uploady 2s linear infinite;width:20vw;height:20vw;display:block}:host #eo-upload-overlay .close{position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding)}:host #eo-upload-overlay .count{position:absolute;display:none;right:calc(var(--app-pane-padding) * 3);top:calc(var(--app-pane-padding) * 3);font-size:10vh;flex-flow:column;align-items:flex-end;line-height:1em;animation:eoFadeInDown var(--app-default-transition-duration)}:host #eo-upload-overlay .count .queueSize{font-size:var(--font-caption);line-height:var(--font-caption);margin-top:calc(var(--app-pane-padding) / 2);border-radius:2px;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);background-color:rgba(var(--color-white-rgb),.2)}:host #eo-upload-overlay .batch-dialog{max-width:350px}:host #eo-upload-overlay .batch-dialog .actions{display:flex;padding-top:var(--app-pane-padding);justify-content:flex-end}:host #eo-upload-overlay .batch-dialog .actions button{margin:0 calc(var(--app-pane-padding) / 4)}:host #eo-upload-overlay .contents{display:none;flex-flow:row wrap;margin:var(--app-pane-padding);max-width:100%;max-height:100%;width:100%;height:100%}:host #eo-upload-overlay .targets{order:1;margin:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;justify-content:center;position:relative}:host #eo-upload-overlay .targets .target-list{animation:eoFadeInRight var(--app-default-transition-duration);overflow-y:auto}:host #eo-upload-overlay .targets .target-list h2{font-size:var(--font-subhead);font-weight:400}:host #eo-upload-overlay .targets .target-list .upload-target{background:rgba(var(--color-accent),.6);border:1px solid rgba(var(--color-white-rgb),.4);margin:calc(var(--app-pane-padding) / 2) 0;padding:calc(var(--app-pane-padding) / 2);border-radius:2px;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;display:flex;cursor:pointer;flex-flow:row nowrap;align-items:center}:host #eo-upload-overlay .targets .target-list .upload-target:focus{background-color:var(--color-accent)}:host #eo-upload-overlay .targets .target-list .upload-target eo-icon{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay .targets .target-list .upload-target>div{flex:1 1 auto;margin:0 calc(var(--app-pane-padding) / 2);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{width:100%;max-width:250px;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-caption);opacity:.7}:host #eo-upload-overlay .targets .target-list .upload-target:hover{background-color:var(--color-accent)}:host #eo-upload-overlay .files{padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;max-width:150px;width:95%;min-width:25%;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%;width:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;align-items:center;cursor:default;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 4);margin-bottom:calc(var(--app-pane-padding) / 4);background-color:rgba(var(--color-white-rgb),.1);-webkit-user-select:none;user-select:none}:host #eo-upload-overlay .files .files-list .file-item>div{flex:1 1 auto;padding:0 calc(var(--app-pane-padding) / 2);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .files .files-list .file-item>div .name{font-size:var(--font-subhead);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .files .files-list .file-item>div .desc{color:rgba(var(--color-white-rgb),.75);font-size:var(--font-hint);margin-top:calc(var(--app-pane-padding) / 4)}:host #eo-upload-overlay .files .files-list .file-item>div .size{border-radius:2px;display:inline-block;padding:0 4px;background-color:rgba(var(--color-white-rgb),.2)}:host #eo-upload-overlay .files .files-list .file-item eo-icon{flex:0 0 auto;width:18px;height:18px;padding:calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay.invalid>h1,:host #eo-upload-overlay.invalid .uploady{display:none}:host #eo-upload-overlay.file .uploady{display:none}:host #eo-upload-overlay.file .contents{flex-flow:row-reverse;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;flex:1 1;flex-direction:row-reverse}:host #eo-upload-overlay.file .contents .section{display:flow-root;width:25%;min-width:200px;flex:0 0 auto;max-height:fit-content;overflow:hidden;box-sizing:content-box}:host #eo-upload-overlay.file .contents .targets{order:0;margin-bottom:var(--app-pane-padding)}:host #eo-upload-overlay.uploading h1,:host #eo-upload-overlay.uploading .close{display:none}@keyframes uploady{0%{transform:translateY(0);opacity:.1}50%{transform:translateY(-40px);opacity:.3}to{transform:translateY(0);opacity:.1}}::ng-deep eo-simple-accordion{display:flex;flex-flow:column;flex:0 0 auto}::ng-deep eo-simple-accordion:not(.selected){margin-bottom:var(--app-pane-padding)}::ng-deep eo-simple-accordion>section{min-height:50px;max-height:190px;overflow-y:auto;overflow-x:hidden}\n"] }]
|
|
470
470
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i0.Renderer2 }, { type: i2.PrepareService }, { type: i2.TranslateService }, { type: i2.UserService }, { type: i3.AgentService }, { type: i2.SystemService }, { type: i2.EventService }, { type: i2.LocalStorageService }, { type: i2.UploadRegistryService }], propDecorators: { overlayEl: [{
|
|
471
471
|
type: ViewChild,
|
|
472
472
|
args: ['overlay']
|
|
473
473
|
}] } });
|
|
474
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdXBsb2FkLW92ZXJsYXkvdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdXBsb2FkLW92ZXJsYXkvdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEVBQUUsSUFBSSxZQUFZLEVBQUUsUUFBUSxJQUFJLGtCQUFrQixFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwRixPQUFPLEVBQUMsU0FBUyxFQUFxQixTQUFTLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE9BQU8sRUFHTCxVQUFVLEVBRVYsWUFBWSxFQUNaLGNBQWMsRUFFZCxLQUFLLEVBRUwsZ0JBQWdCLEVBR2pCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBZSxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFPckUsTUFBTSxPQUFPLHNCQUFzQjtJQThEakMsWUFBb0IsTUFBYyxFQUN4QixRQUFtQixFQUNuQixjQUE4QixFQUM5QixTQUEyQixFQUMzQixXQUF3QixFQUN4QixZQUEwQixFQUMxQixhQUE0QixFQUM1QixZQUEwQixFQUMxQixjQUFtQyxFQUNuQyxjQUFxQztRQVQzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGlCQUFZLEdB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QUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGlCQUFpQixDQUFDLEtBQWdCO1FBQ3hDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMxRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQixDQUFDLEtBQXFCO1FBQzlDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzRixDQUFDOzhHQXRoQlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsK0pDeEJuQyx1NU5BK0pBOzsyRkR2SWEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG1CQUFtQjtpVkFNUCxTQUFTO3NCQUE5QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge29mIGFzIG9ic2VydmFibGVPZiwgZm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBPYmplY3RUeXBlLFxuICBFdmVudFNlcnZpY2UsXG4gIEVuYWlvRXZlbnQsXG4gIFVwbG9hZFJlZ2lzdHJ5U2VydmljZSxcbiAgVXBsb2FkVGFyZ2V0LFxuICBVcGxvYWRGaWxlSXRlbSxcbiAgUHJlcGFyZVNlcnZpY2UsXG4gIFV0aWxzLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBFbnZpcm9ubWVudEVuYWlvLCBTeXN0ZW1TZXJ2aWNlLFxuICBVc2VyU2VydmljZSxcbiAgTG9jYWxTdG9yYWdlU2VydmljZVxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtBZ2VudFNlcnZpY2UsIExvY2FsZURhdGVQaXBlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXVwbG9hZC1vdmVybGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1vdmVybGF5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXknKSBvdmVybGF5RWw6IEVsZW1lbnRSZWY7XG5cbiAgcXVldWU6IFVwbG9hZEZpbGVJdGVtW10gPSBbXTtcbiAgZmlsZU92ZXI6IGJvb2xlYW47XG4gIGlzVXBsb2FkaW5nOiBib29sZWFuO1xuICBoYXNWYWxpZFVwbG9hZFRhcmdldHM6IGJvb2xlYW47XG4gIGludmFsaWRJbnB1dDogYm9vbGVhbjtcbiAgcXVldWVTaXplOiBudW1iZXI7XG4gIHZhbGlkVXBsb2FkVGFyZ2V0czogVXBsb2FkVGFyZ2V0W10gPSBbXTtcbiAgc2VsZWN0ZWRVcGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldDtcbiAgZm9sZGVyRmF2b3JpdGVzOiBVcGxvYWRUYXJnZXRbXSA9IFtdO1xuICBsYXN0T3BlbmVkRm9sZGVyOiBVcGxvYWRUYXJnZXRbXSA9IFtdO1xuICBkYXRlUGlwZTogTG9jYWxlRGF0ZVBpcGU7XG4gIGFnZW50QWNjU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGZhdm9yaXRlc0FjY1NlbGVjdGVkOiBib29sZWFuO1xuXG4gIHRhcmdldFR5cGVzID0gW1xuICAgIHtcbiAgICAgIHR5cGU6ICdyb290JyxcbiAgICAgIGljb25TcmM6ICdhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NyZWF0ZV9kb2N1bWVudC5zdmcnLFxuICAgICAgdGFyZ2V0Q2xhc3M6ICd1cGxvYWQtdGFyZ2V0LWdlbmVyYWwnLFxuICAgICAgbmFtZTogJ2VvLnVwbG9hZC5nbG9iYWwucm9vdC50aXRsZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ2VvLnVwbG9hZC5nbG9iYWwucm9vdC5kZXNjcmlwdGlvbidcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgaWNvblNyYzogJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZG9jdW1lbnRfZmlsZS5zdmcnLFxuICAgICAgdGFyZ2V0Q2xhc3M6ICd1cGxvYWQtdGFyZ2V0LXJlcGxhY2UnLFxuICAgICAgbmFtZTogJ2VvLnVwbG9hZC5nbG9iYWwub2JqZWN0LnRpdGxlJ1xuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ2NvbnRleHQnLFxuICAgICAgaWNvblNyYzogJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY3JlYXRlX2RvY3VtZW50X2luX2ZvbGRlci5zdmcnLFxuICAgICAgdGFyZ2V0Q2xhc3M6ICd1cGxvYWQtdGFyZ2V0LWNvbnRleHQnLFxuICAgICAgbmFtZTogJ2VvLnVwbG9hZC5nbG9iYWwuY29udGV4dC50aXRsZScsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAnY29udGV4dHRyZWUnLFxuICAgICAgaWNvblNyYzogJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY3JlYXRlX2RvY3VtZW50X2luX2ZvbGRlci5zdmcnLFxuICAgICAgdGFyZ2V0Q2xhc3M6ICd1cGxvYWQtdGFyZ2V0LWNvbnRleHR0cmVlJyxcbiAgICAgIG5hbWU6ICdlby5hZGQudGl0bGUubG9jYXRpb24uc3ViZm9sZGVyJ1xuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ2N1c3RvbScsXG4gICAgICBpY29uU3JjOiAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY191cGxvYWQuc3ZnJyxcbiAgICAgIHRhcmdldENsYXNzOiAndXBsb2FkLXRhcmdldC1jdXN0b20nLFxuICAgICAgbmFtZTogJycsXG4gICAgfVxuICBdO1xuXG4gIHByaXZhdGUgdXBsb2FkVGFyZ2V0czogVXBsb2FkVGFyZ2V0W10gPSBbXTtcbiAgcHJpdmF0ZSBkcmFnTGVhdmVMaXN0ZW5lcjogRnVuY3Rpb247XG4gIHByaXZhdGUgZHJvcExpc3RlbmVyOiBGdW5jdGlvbjtcbiAgcHJpdmF0ZSBkcmFnT3Zlckxpc3RlbmVyOiBGdW5jdGlvbjtcbiAgcHJpdmF0ZSBlc2NLZXlMaXN0ZW5lcjogRnVuY3Rpb247XG4gIHByaXZhdGUgZHJhZ0VudGVyTGlzdGVuZXI6IEZ1bmN0aW9uO1xuICBwcml2YXRlIHBhc3RlTGlzdGVuZXI6IEZ1bmN0aW9uO1xuICBwcml2YXRlIGRyYWdFdmVudENvdW50ID0gMDtcbiAgcHJpdmF0ZSBjYWNoZUtleSA9ICdhY2NvcmRpb24uc3RhdGUtLSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBwcmVwYXJlU2VydmljZTogUHJlcGFyZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhZ2VudFNlcnZpY2U6IEFnZW50U2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXBsb2FkUmVnaXN0cnk6IFVwbG9hZFJlZ2lzdHJ5U2VydmljZSkge1xuICAgIHRoaXMuZGF0ZVBpcGUgPSBuZXcgTG9jYWxlRGF0ZVBpcGUodHJhbnNsYXRlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZHJhZ0VudGVyTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZHJhZ0VudGVyTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VlZCB1cGxvYWQgd2l0aCBhIHNlbGVjdGVkIHVwbG9hZCB0YXJnZXQuXG4gICAqIEBwYXJhbSB1cGxvYWRUYXJnZXQgLSB0aGUgdGFyZ2V0IHRvIHVwbG9hZCBmaWxlcyB0b1xuICAgKi9cbiAgcHVibGljIHByb2NlZWRXaXRoVXBsb2FkKHVwbG9hZFRhcmdldDogVXBsb2FkVGFyZ2V0KTogdm9pZCB7XG5cbiAgICBpZiAodXBsb2FkVGFyZ2V0LnR5cGUgIT09IFVwbG9hZFRhcmdldC5DVVNUT00gJiYgdGhpcy5xdWV1ZS5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBGb3IgbW9yZSB0aGFuIG9uZSBmaWxlIHRvIGJlIHVwbG9hZGVkIHRvIGEgbm9uZSBjdXN0b20gdGFyZ2V0LCB3ZSBsZXQgdGhlIHVzZXIgZGVjaWRlIGlmXG4gICAgICAvLyBiYXRjaCB1cGxvYWQgc2hvdWxkIGJlIHVzZWQgb3Igbm90IC4uLlxuXG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRVcGxvYWRUYXJnZXQgPSB1cGxvYWRUYXJnZXQ7XG4gICAgfSBlbHNlIGlmICh1cGxvYWRUYXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0Lk9CSkVDVCkge1xuICAgICAgLy8gLi4uIG90aGVyd2lzZSB1cGxvYWQgaXMgc3RhcnRlZCBpbW1lZGlhdGVseVxuICAgICAgdGhpcy5zdGFydFVwbG9hZCh1cGxvYWRUYXJnZXQsIFtudWxsLCB0aGlzLmdldFN0YXRlUm91dGUoKV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXJ0VXBsb2FkKHVwbG9hZFRhcmdldCwgW251bGwsICcvcHJlcGFyZSddKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VlZCB1cGxvYWQgdXNpbmcgdGhlIHNlbGVjdGVkIHVwbG9hZCB0YXJnZXQuXG4gICAqIEBwYXJhbSB1c2VCYXRjaFVwbG9hZCAtIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0byB1c2UgYmF0Y2ggdXBsb2FkXG4gICAqL1xuICBwdWJsaWMgcHJvY2VlZFdpdGhTZWxlY3RlZFRhcmdldCh1c2VCYXRjaFVwbG9hZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc3RhcnRVcGxvYWQodGhpcy5zZWxlY3RlZFVwbG9hZFRhcmdldCwgW3VzZUJhdGNoVXBsb2FkLCAnL3ByZXBhcmUnXSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBzZWxlY3RlZCB1cGxvYWQgdGFyZ2V0LlxuICAgKi9cbiAgcHVibGljIHJlc2V0U2VsZWN0ZWRVcGxvYWRUYXJnZXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFVwbG9hZFRhcmdldCA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGZpbGUgZnJvbSB0aGUgbGlzdCBvZiBmaWxlcyB0byBiZSB1cGxvYWRlZC5cbiAgICogQHBhcmFtIGZpbGVJdGVtIC0gdGhlIGZpbGUgaXRlbSB0byBiZSByZW1vdmVkXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRmlsZUl0ZW0oZmlsZUl0ZW06IFVwbG9hZEZpbGVJdGVtKTogdm9pZCB7XG5cbiAgICB0aGlzLnF1ZXVlID0gdGhpcy5xdWV1ZS5maWx0ZXIoKGYpID0+IGYuaWQgIT09IGZpbGVJdGVtLmlkKTtcbiAgICBpZiAoIXRoaXMucXVldWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHVwZGF0ZSBhdmFpbGFibGUgdXBsb2FkIHRhcmdldHMgYmVjYXVzZSB0aGVpciB2YWxpZGl0eVxuICAgICAgLy8gbWF5IGJlIGJhc2VkIG9uIHRoZSBxdWV1ZSBzaXplXG4gICAgICB0aGlzLnZhbGlkYXRlVXBsb2FkVGFyZ2V0cygpO1xuICAgICAgdGhpcy5zZXRRdWV1ZVNpemUoKTtcbiAgICB9XG4gIH1cblxuICBnZXRTdGF0ZVJvdXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLnVybDtcbiAgfVxuXG4gIG9uQWdlbnRUb2dnbGUoaW5mbzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLmNhY2hlS2V5ICsgJ2FnZW50LWZvbGRlcicsIEpTT04uc3RyaW5naWZ5KGluZm8pKTtcbiAgfVxuXG4gIG9uRmF2b3JpdGVUb2dnbGUoaW5mbzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLmNhY2hlS2V5ICsgJ2Zhdm9yaXRlLWZvbGRlcicsIEpTT04uc3RyaW5naWZ5KGluZm8pKTtcbiAgfVxuXG4gIGdldEZvbGRlcigpOiB2b2lkIHtcbiAgICAvL2ZvbGRlciBmcm9tIGFnZW50XG4gICAgdGhpcy5hZ2VudFNlcnZpY2UuZ2V0TGFzdE9wZW5lZEZvbGRlcnNJbmZvKCkuc3Vic2NyaWJlKChyZXM6IFtdKTogdm9pZCA9PiB7XG4gICAgICB0aGlzLmxhc3RPcGVuZWRGb2xkZXIgPSByZXMubWFwKChpdGVtOiB7dGl0bGU6IHN0cmluZzsgZGF0YToge2Rlc2NyaXB0aW9uOiBzdHJpbmd9OyBpZDogc3RyaW5nOyB0eXBlOiBzdHJpbmd9KSA9PiB7XG4gICAgICAgIGxldCB0YXJnZXQgPSBuZXcgVXBsb2FkVGFyZ2V0KFxuICAgICAgICAgIGl0ZW0uaWQsXG4gICAgICAgICAgJ2FnZW50JyxcbiAgICAgICAgICBpdGVtPy50aXRsZSxcbiAgICAgICAgICB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZShpdGVtLnR5cGUpLmljb25JZCxcbiAgICAgICAgICBpdGVtLnR5cGVcbiAgICAgICAgKTtcbiAgICAgICAgdGFyZ2V0LmRlc2NyaXB0aW9uID0gaXRlbT8uZGF0YT8uZGVzY3JpcHRpb247XG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubGFzdE9wZW5lZEZvbGRlci5mb3JFYWNoKHRhcmdldCA9PiB0YXJnZXQub25VcGxvYWRTdWNjZXNzID0gKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJlcGFyZSddKSk7XG4gICAgfSk7XG5cbiAgICAvLyBGb2xkZXIgZnJvbSBmYXZvcml0ZVxuICAgIHRoaXMudXNlclNlcnZpY2UuZ2V0RmF2b3JpdGVzKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGNvbnN0IGZhdm9yaXRlc0ZpbHRlcmVkID0gcmVzLmZpbHRlcigoaXRlbToge3RhcmdldDoge2ZvbGRlcjogYm9vbGVhbn19KSA9PiBpdGVtLnRhcmdldC5mb2xkZXIgPT09IHRydWUpO1xuICAgICAgdGhpcy5mb2xkZXJGYXZvcml0ZXMgPSBmYXZvcml0ZXNGaWx0ZXJlZC5tYXAoaXRlbSA9PiB7XG4gICAgICAgIGxldCB0YXJnZXQgPSBuZXcgVXBsb2FkVGFyZ2V0KFxuICAgICAgICAgIGl0ZW0udGFyZ2V0LmlkLFxuICAgICAgICAgICdmYXZvcml0ZScsXG4gICAgICAgICAgaXRlbS50aXRsZSxcbiAgICAgICAgICBpdGVtLnRhcmdldC5pY29uLmlkLFxuICAgICAgICAgIGl0ZW0udGFyZ2V0LnR5cGUsXG4gICAgICAgICk7XG4gICAgICAgIHRhcmdldC5kZXNjcmlwdGlvbiA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGl0ZW0uY3JlYXRlZCk7XG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZm9sZGVyRmF2b3JpdGVzLmZvckVhY2godGFyZ2V0ID0+IHRhcmdldC5vblVwbG9hZFN1Y2Nlc3MgPSAoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcmVwYXJlJ10pKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNhdGNoRm9jdXMoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm92ZXJsYXlFbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t0YWJpbmRleD1cIjBcIl0nKS5mb2N1cygpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgdGhlIHVwbG9hZCBvdmVybGF5IGFuZCByZWxlYXNlIGFsbCBib3VuZCByZXNvdXJjZXMuXG4gICAqL1xuICBjbG9zZSgpOiB2b2lkIHtcbiAgICAvLyB1bmJpbmQgYm91bmQgZXZlbnQgbGlzdGVuZXIsIHdoZW4gdGhleSBhcmUgbm90IG5lZWRlZCBhbnltb3JlXG4gICAgdGhpcy51bmJpbmRMaXN0ZW5lcnMoKTtcbiAgICAvLyBjbGVhciB1cGxvYWQgcXVldWVcbiAgICB0aGlzLnF1ZXVlID0gW107XG4gICAgLy8gaGlkZSB0aGUgb3ZlcmxheVxuICAgIHRoaXMuc2V0RmlsZU92ZXIoZmFsc2UpO1xuICAgIHRoaXMuaW52YWxpZElucHV0ID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGluaXQoKSB7XG4gICAgdGhpcy5nZXRGb2xkZXIoKTtcblxuICAgIC8vIGdsb2JhbCBkcmFnJmRyb3AgdXBsb2FkIHdpbGwgb25seSBiZSBhdmFpbGFibGUgb24gZGVza3RvcCAod2ViIG9yIGVsZWN0cm9uKVxuICAgIGlmIChFbnZpcm9ubWVudEVuYWlvLmlzTW9iaWxlRW52aXJvbm1lbnQoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIHN1YnNjcmliZSBmb3IgdGhlIGxpc3Qgb2YgcmVnaXN0ZXJlZCB1cGxvYWQgdGFyZ2V0c1xuICAgIHRoaXMudXBsb2FkUmVnaXN0cnkudXBsb2FkVGFyZ2V0cyQuc3Vic2NyaWJlKCh1cGxvYWRUYXJnZXRzOiBVcGxvYWRUYXJnZXRbXSkgPT4ge1xuICAgICAgdGhpcy51cGxvYWRUYXJnZXRzID0gdXBsb2FkVGFyZ2V0cztcbiAgICB9KTtcblxuICAgIHRoaXMucGFzdGVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdwYXN0ZScsIChlOiBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgdGhpcy5vblBhc3RlKGUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kcmFnRW50ZXJMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdkcmFnZW50ZXInLCAoZTogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICB0aGlzLm9uRHJhZ0VudGVyKGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvblBhc3RlKGU6IENsaXBib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNVcGxvYWRpbmcpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5oYXNWYWxpZFVwbG9hZFRhcmdldHMgPSB0cnVlO1xuICAgIHRoaXMuaW52YWxpZElucHV0ID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLmZpbGVPdmVyICYmIHRoaXMucGFzdGVDb250YWluc0ZpbGVzKGUpKSB7XG4gICAgICBsZXQgdHJhbnNmZXIgPSBlLmNsaXBib2FyZERhdGE7XG4gICAgICBpZiAoIXRyYW5zZmVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gY2hlY2sgZm9yIGRpcmVjdG9yaWVzXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyYW5zZmVyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0cmFuc2Zlci5pdGVtc1tpXS5raW5kID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRoaXMuaW52YWxpZElucHV0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmUgPSB0cmFuc2Zlci5pdGVtc1tpXS53ZWJraXRHZXRBc0VudHJ5KCk7XG4gICAgICAgIGlmIChmZSAmJiBmZS5pc0RpcmVjdG9yeSkge1xuICAgICAgICAgIHRoaXMuaW52YWxpZElucHV0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pbnZhbGlkSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fcHJldmVudEFuZFN0b3AoZSk7XG4gICAgICAgIHRoaXMuc2V0RmlsZU92ZXIodHJ1ZSk7XG4gICAgICAgIHRoaXMub25GaWxlc0Ryb3BwZWQoQXJyYXkuZnJvbSh0cmFuc2Zlci5maWxlcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25EcmFnRW50ZXIoZTogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNVcGxvYWRpbmcpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5oYXNWYWxpZFVwbG9hZFRhcmdldHMgPSB0cnVlO1xuICAgIGlmICghdGhpcy5maWxlT3ZlciAmJiB0aGlzLmRyYWdDb250YWluc0ZpbGVzKGUpKSB7XG4gICAgICB0aGlzLmRyYWdFdmVudENvdW50ID0gMDtcbiAgICAgIHRoaXMuc2V0RmlsZU92ZXIodHJ1ZSk7XG5cbiAgICAgIC8vIHVzZSB0aW1lb3V0IGhlcmUgdG8gZm9yY2UgYW5ndWxhciBkaWdlc3QgY3ljbGUgYmVmb3JlIGNvbnRpbnVpbmcsIGJlY2F1c2Ugd2UgYXJlIGFjY2Vzc2luZyBkb20gZWxlbWVudHNcbiAgICAgIC8vIHRoYXQgYXJlIG5vdCB0aGVyZSAoKm5nSWYpIHVudGlsIGZpbGVPdmVyIGlzIHNldCB0byB0cnVlLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vIHRvZG86IHJlcGxhY2UgYnkgcmVuZGVyZXIgc29sdXRpb24gd2hlbiBhdmFpbGFibGUgKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE1Njc0KVxuICAgICAgICB0aGlzLm92ZXJsYXlFbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIC8vIGJpbmQgbGF0ZSAob25seSwgd2hlbiBuZWVkZWQpIHRvIGRyYWdsZWF2ZSBldmVudCB0byBhdm9pZCBoZWF2eSBwcm9jZXNzaW5nIG9uIGV2ZXJ5IGRyYWcgZXZlbnRcbiAgICAgICAgdGhpcy5kcmFnTGVhdmVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMub3ZlcmxheUVsLm5hdGl2ZUVsZW1lbnQsICdkcmFnbGVhdmUnLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kcmFnRXZlbnRDb3VudC0tO1xuICAgICAgICAgIGlmICh0aGlzLmRyYWdFdmVudENvdW50ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRyb3BMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMub3ZlcmxheUVsLm5hdGl2ZUVsZW1lbnQsICdkcm9wJywgKGV2dCkgPT4ge1xuICAgICAgICAgIGxldCB0cmFuc2ZlciA9IHRoaXMuX2dldFRyYW5zZmVyKGV2dCk7XG4gICAgICAgICAgaWYgKCF0cmFuc2Zlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9wcmV2ZW50QW5kU3RvcChldnQpO1xuXG4gICAgICAgICAgLy8gY2hlY2sgZm9yIGRpcmVjdG9yaWVzXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0cmFuc2Zlci5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZmUgPSB0cmFuc2Zlci5pdGVtc1tpXS53ZWJraXRHZXRBc0VudHJ5KCk7XG4gICAgICAgICAgICBpZiAoZmUgJiYgZmUuaXNEaXJlY3RvcnkpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkSW5wdXQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXRoaXMuaW52YWxpZElucHV0KSB7XG4gICAgICAgICAgICB0aGlzLm9uRmlsZXNEcm9wcGVkKHRyYW5zZmVyLmZpbGVzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMub3ZlcmxheUVsLm5hdGl2ZUVsZW1lbnQsICdkcmFnb3ZlcicsIChldnQpID0+IHtcbiAgICAgICAgICBsZXQgdHJhbnNmZXIgPSB0aGlzLl9nZXRUcmFuc2ZlcihldnQpO1xuICAgICAgICAgIGlmICghdHJhbnNmZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdjb3B5JztcbiAgICAgICAgICB0aGlzLl9wcmV2ZW50QW5kU3RvcChldnQpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYWdFdmVudENvdW50Kys7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VHJhbnNmZXIoZXZlbnQ6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFuc2ZlciA/IGV2ZW50LmRhdGFUcmFuc2ZlciA6IGV2ZW50Lm9yaWdpbmFsRXZlbnQuZGF0YVRyYW5zZmVyOyAvLyBqUXVlcnkgZml4O1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJldmVudEFuZFN0b3AoZXZlbnQ6IGFueSk6IGFueSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgb25GaWxlc0Ryb3BwZWQoZmlsZUl0ZW1zOiBGaWxlW10pIHtcbiAgICB0aGlzLmdldEZvbGRlcigpO1xuICAgIHRoaXMuZ2V0Q2FjaGVkQWNjb3JkaW9uU3RhdGUoKTtcbiAgICB0aGlzLmNhdGNoRm9jdXMoKTtcbiAgICBcbiAgICAvLyBjbGVhciBxdWV1ZSB3aGVuIG5ldyBmaWxlcyBhcmUgYWRkZWRcbiAgICAvLyB0b2RvOiByZW1vdmUgaW4gZnV0dXJlIHJlbGVhc2VzIHRvIHN1cHBvcnQgY29sbGVjdGl2ZSBmaWxlIGFkZGluZ1xuICAgIHRoaXMucXVldWUgPSBbXTtcbiAgICBmb3IgKGxldCBmaWxlIG9mIGZpbGVJdGVtcykge1xuICAgICAgdGhpcy5xdWV1ZS5wdXNoKG5ldyBVcGxvYWRGaWxlSXRlbShmaWxlKSk7XG4gICAgfVxuXG4gICAgLy8gYmluZCBFU0Mga2V5IGxpc3RlbmVyIGZvciBjbG9zaW5nIHRoZSBkaWFsb2cgYXMgbGF0ZSBhcyBwb3NzaWJsZVxuICAgIGlmICghdGhpcy5lc2NLZXlMaXN0ZW5lcikge1xuICAgICAgdGhpcy5lc2NLZXlMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdrZXl1cCcsIChlKSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmIChlLmtleUNvZGUgPT09IDI3KSB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gY2FsY3VsYXRlIHRvdGFsIHNpemUgb2YgcXVldWVcbiAgICB0aGlzLnNldFF1ZXVlU2l6ZSgpO1xuICAgIC8vIGZpbHRlciBhdmFpbGFibGUgdGFyZ2V0c1xuICAgIHRoaXMudmFsaWRhdGVVcGxvYWRUYXJnZXRzKCk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGxpc3Qgb2YgcmVnaXN0ZXJlZCB1cGxvYWQgdGFyZ2V0cywgc28gb25seSB2YWxpZCB0YXJnZXRzIHdpbGwgYmUgc2hvd24uXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlVXBsb2FkVGFyZ2V0cygpIHtcbiAgICB0aGlzLmhhc1ZhbGlkVXBsb2FkVGFyZ2V0cyA9IHRydWU7XG4gICAgdGhpcy5nZXRGb2xkZXIoKTtcbiAgICBvYnNlcnZhYmxlRm9ya0pvaW4odGhpcy51cGxvYWRUYXJnZXRzLm1hcCh0ID0+IHRoaXMudmFsaWRhdGVVcGxvYWRUYXJnZXQodCkpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKHJlczoge3RhcmdldDogVXBsb2FkVGFyZ2V0OyB2YWxpZDogYm9vbGVhbn1bXSkgPT4ge1xuICAgICAgICAgIHRoaXMudmFsaWRVcGxvYWRUYXJnZXRzID0gcmVzLmZpbHRlcihyID0+IHIudmFsaWQpLm1hcChmaWx0ZXJlZCA9PiBmaWx0ZXJlZC50YXJnZXQpLnJldmVyc2UoKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYS50eXBlID09PSAnY29udGV4dCcgPyAtMSA6IGIudHlwZSA9PT0gJ2NvbnRleHQnID8gMSA6IDA7IC8vIENvbnRleHQgc2hvdWxkIGJlIG9uIHRvcFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMudmFsaWRVcGxvYWRUYXJnZXRzID0gWy4uLnRoaXMudmFsaWRVcGxvYWRUYXJnZXRzLCAuLi50aGlzLmZvbGRlckZhdm9yaXRlcywgLi4udGhpcy5sYXN0T3BlbmVkRm9sZGVyXTtcbiAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmFsaWRVcGxvYWRUYXJnZXRzID0gW107XG4gICAgICAgIH0sICgpID0+IHtcbiAgICAgICAgICB0aGlzLmhhc1ZhbGlkVXBsb2FkVGFyZ2V0cyA9IHRoaXMudmFsaWRVcGxvYWRUYXJnZXRzLmxlbmd0aCA+IDA7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlVXBsb2FkVGFyZ2V0KHRhcmdldDogVXBsb2FkVGFyZ2V0KTogT2JzZXJ2YWJsZTx7dGFyZ2V0OiBVcGxvYWRUYXJnZXQ7IHZhbGlkOiBib29sZWFufT4ge1xuXG4gICAgaWYgKCF0aGlzLnF1ZXVlKSB7XG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IGZhbHNlfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKG8gPT4ge1xuICAgICAgbGV0IHZhbGlkID0gZmFsc2U7XG5cbiAgICAgIGlmICh0YXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LlJPT1QpIHtcblxuICAgICAgICAvLyB0b2RvOiBhcmUgdGhlcmUgb3RoZXIgcmVzdHJpY3Rpb25zIG9uIHJvb3QgdGFyZ2V0P1xuICAgICAgICB0aGlzLnByZXBhcmVTZXJ2aWNlLmdldFByZXBhcmVDaGlsZFR5cGVzKG51bGwsIHRydWUpXG4gICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgIChyZXM6IHtwYXJlbnQ6IHN0cmluZzsgdHlwZXM6IE9iamVjdFR5cGVbXX0pID0+IHtcbiAgICAgICAgICAgICAgdmFsaWQgPSB0aGlzLnF1ZXVlLmxlbmd0aCA+IDAgJiYgcmVzLnR5cGVzLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xuICAgICAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiBmYWxzZX0pO1xuICAgICAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAodGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5PQkpFQ1QpIHtcblxuICAgICAgICAvLyB0b2RvOiBjaGVjayBpZiB0aGUgcmVmZXJlbmNlIG9iamVjdCBzdXBwb3J0cyB0aGUgZ2l2ZW4gZmlsZSB0eXBlXG4gICAgICAgIHZhbGlkID0gdGFyZ2V0LnJlZmVyZW5jZU9iamVjdCAmJlxuICAgICAgICAgIHRhcmdldC5yZWZlcmVuY2VPYmplY3QudHlwZS5tYXhGaWxlcyA+IDAgJiZcbiAgICAgICAgICAhdGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5sb2NrICYmXG4gICAgICAgICAgIXRhcmdldC5yZWZlcmVuY2VPYmplY3QuaXNGaW5hbGl6ZWQgJiZcbiAgICAgICAgICAodGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5yaWdodHMgJiYgdGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5yaWdodHMuZWRpdCkgJiZcbiAgICAgICAgICB0aGlzLnF1ZXVlLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgIHRhcmdldC5yZWZlcmVuY2VPYmplY3QuZGF0YS55dXZzaWdzdGF0dXMgIT09ICdzaWduZWQnICYmXG4gICAgICAgICAgdGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5kYXRhLnl1dnNpZ3N0YXR1cyAhPT0gJ2lucHJvY2Vzcyc7XG4gICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xuICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVCB8fCB0YXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LkNPTlRFWFRfVFJFRSkge1xuXG4gICAgICAgIC8vIHRvZG86IGFkZCBjaGVja3MgcmVsYXRlZCB0byB0aGUgcmVmZXJlbmNlIG9iamVjdCAoZS5nLiBhbGxvd2VkIGZpbGUgdHlwZXMpXG4gICAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2UuZ2V0UHJlcGFyZUNoaWxkVHlwZXModGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5pZCwgdHJ1ZSlcbiAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHJlczoge3BhcmVudDogc3RyaW5nOyB0eXBlczogT2JqZWN0VHlwZVtdfSkgPT4ge1xuICAgICAgICAgICAgICB2YWxpZCA9IHRhcmdldC5yZWZlcmVuY2VPYmplY3QgJiYgdGhpcy5xdWV1ZS5sZW5ndGggPiAwICYmIHJlcy50eXBlcy5sZW5ndGggPiAwO1xuXG4gICAgICAgICAgICAgIC8vIGZvciBDT05URVhUX1RSRUUgdGFyZ2V0cyBhbHNvIGNoZWNrIGlmIHRoZSBkZXNpcmVkIG5vZGVcbiAgICAgICAgICAgICAgLy8gdHlwZSBpcyBwYXJ0IG9mIHRoZSBwcmVwYXJlIGNoaWxkIHR5cGVzXG4gICAgICAgICAgICAgIGlmICh0YXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LkNPTlRFWFRfVFJFRSAmJiB0YXJnZXQuc3ViRm9sZGVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViRm9sZGVyID0gdGFyZ2V0LnN1YkZvbGRlcjtcbiAgICAgICAgICAgICAgICB2YWxpZCA9ICEhcmVzLnR5cGVzLmZpbmQodCA9PiB0aGlzLnN5c3RlbVNlcnZpY2UuaW1wbGVtZW50c1R5cGUodCwgc3ViRm9sZGVyLmRhdGEudHlwZSkpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgby5uZXh0KHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IHZhbGlkfSk7XG4gICAgICAgICAgICAgIG8uY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0sICgpID0+IHtcbiAgICAgICAgICAgICAgby5uZXh0KHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IGZhbHNlfSk7XG4gICAgICAgICAgICAgIG8uY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgby5uZXh0KHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IGZhbHNlfSk7XG4gICAgICAgIG8uY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FjaGVkQWNjb3JkaW9uU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5hZ2VudEFjY1NlbGVjdGVkID0gSlNPTi5wYXJzZSh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5jYWNoZUtleSArICdhZ2VudC1mb2xkZXInKSk7XG4gICAgdGhpcy5mYXZvcml0ZXNBY2NTZWxlY3RlZCA9IEpTT04ucGFyc2UodGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnZmF2b3JpdGUtZm9sZGVyJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWNjZXNzZnVsVXBsb2FkKHRhcmdldCwgdXBsb2FkVGFyZ2V0KTogdm9pZCB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRCwgdXBsb2FkVGFyZ2V0LnJlZmVyZW5jZU9iamVjdCk7XG4gICAgdXBsb2FkVGFyZ2V0Lm9uVXBsb2FkU3VjY2Vzcyh0YXJnZXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHRoZSBhY3R1YWwgdXBsb2FkLlxuICAgKiBAcGFyYW0gdXBsb2FkVGFyZ2V0IC0gdGFyZ2V0IHRvIHVwbG9hZCB0aGUgZmlsZXMgdG9cbiAgICogQHBhcmFtIHVzZUJhdGNoVXBsb2FkIC0gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRvIHVzZSBiYXRjaCB1cGxvYWRcbiAgICovXG4gIHByaXZhdGUgc3RhcnRVcGxvYWQodXBsb2FkVGFyZ2V0OiBVcGxvYWRUYXJnZXQsIFsuLi5hcmdzXSk6IHZvaWQge1xuXG4gICAgY29uc3QgW3VzZUJhdGNoVXBsb2FkLCB0YXJnZXRdID0gYXJncztcblxuICAgIHRoaXMuaXNVcGxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMudW5iaW5kTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5wcmVwYXJlU2VydmljZVxuICAgICAgLnVwbG9hZFRvVGFyZ2V0KHVwbG9hZFRhcmdldCwgdGhpcy5xdWV1ZSwgdXNlQmF0Y2hVcGxvYWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBpZiAodXBsb2FkVGFyZ2V0LnN1YkZvbGRlciAmJiB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyLmRhdGEuZGF0YSkge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcykpIHtcbiAgICAgICAgICAgIGxldCBvYnMgPSBbXTtcbiAgICAgICAgICAgIHJlcy5mb3JFYWNoKHIgPT4ge1xuICAgICAgICAgICAgICBvYnMucHVzaCh0aGlzLnByZXBhcmVTZXJ2aWNlLnVwZGF0ZVByZXBhcmVkSXRlbUluZGV4RGF0YShyLmlkLCB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyLmRhdGEuZGF0YSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBvYnNlcnZhYmxlRm9ya0pvaW4ob2JzKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdWNjZXNzZnVsVXBsb2FkKHRhcmdldCwgdXBsb2FkVGFyZ2V0KSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2VcbiAgICAgICAgICAgICAgLnVwZGF0ZVByZXBhcmVkSXRlbUluZGV4RGF0YShyZXMuaWQsIHVwbG9hZFRhcmdldC5zdWJGb2xkZXIuZGF0YS5kYXRhKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3VjY2Vzc2Z1bFVwbG9hZCh0YXJnZXQsIHVwbG9hZFRhcmdldCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3NmdWxVcGxvYWQodGFyZ2V0LCB1cGxvYWRUYXJnZXQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHtcbiAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB1cGxvYWRUYXJnZXQub25VcGxvYWRGYWlsKCk7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0sXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnVwbG9hZC5nbG9iYWwuZXJyb3IudGl0bGUnKSxcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udXBsb2FkLmdsb2JhbC5lcnJvci5kZXNjcmlwdGlvbicpKVxuICAgICAgKTtcbiAgICB0aGlzLnJlc2V0U2VsZWN0ZWRVcGxvYWRUYXJnZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UXVldWVTaXplKCk6IHZvaWQge1xuICAgIGxldCBzID0gMDtcbiAgICBmb3IgKGxldCBmIG9mIHRoaXMucXVldWUpIHtcbiAgICAgIHMgKz0gZi5zaXplO1xuICAgIH1cbiAgICB0aGlzLnF1ZXVlU2l6ZSA9IHM7XG4gIH1cblxuICBwcml2YXRlIHNldEZpbGVPdmVyKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5maWxlT3ZlciA9IHZhbHVlO1xuICAgIHRoaXMudXBsb2FkUmVnaXN0cnkuc2V0T3ZlcmxheUFjdGl2ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHVuYmluZExpc3RlbmVycygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcmFnTGVhdmVMaXN0ZW5lcikge1xuICAgICAgdGhpcy5kcmFnTGVhdmVMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5kcmFnTGVhdmVMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmRyYWdPdmVyTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5kcmFnT3Zlckxpc3RlbmVyID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZHJvcExpc3RlbmVyKSB7XG4gICAgICB0aGlzLmRyb3BMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5kcm9wTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5lc2NLZXlMaXN0ZW5lcikge1xuICAgICAgdGhpcy5lc2NLZXlMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5lc2NLZXlMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0aGUgY3VycmVudCBkcmFnIGV2ZW50IGNvbnRhaW5zIG9uZSBvciBtb3JlIGZpbGVzLlxuICAgKiBAcGFyYW0gZXZlbnQgLSB0aGUgZHJhZyBldmVudCB0byBiZSBjaGVja2VkXG4gICAqIEByZXR1cm5zIG51bWJlciBvZiBmaWxlc1xuICAgKi9cbiAgcHJpdmF0ZSBkcmFnQ29udGFpbnNGaWxlcyhldmVudDogRHJhZ0V2ZW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShldmVudC5kYXRhVHJhbnNmZXIuaXRlbXMgfHwgW10pLmZpbHRlcihpID0+IGkua2luZCA9PT0gJ2ZpbGUnKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBjdXJyZW50IHBhc3RlIGV2ZW50IGNvbnRhaW5zIG9uZSBvciBtb3JlIGZpbGVzLlxuICAgKiBAcGFyYW0gZXZlbnQgLSB0aGUgcGFzdGUgZXZlbnQgdG8gYmUgY2hlY2tlZFxuICAgKiBAcmV0dXJucyBudW1iZXIgb2YgZmlsZXNcbiAgICovXG4gIHByaXZhdGUgcGFzdGVDb250YWluc0ZpbGVzKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IG51bWJlciB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZXZlbnQuY2xpcGJvYXJkRGF0YS5pdGVtcyB8fCBbXSkuZmlsdGVyKGkgPT4gaS5raW5kID09PSAnZmlsZScpLmxlbmd0aDtcbiAgfVxufVxuIiwiPGRpdiBpZD1cImVvLXVwbG9hZC1vdmVybGF5XCIgI292ZXJsYXkgY2xhc3M9XCJkYXJrXCIgKm5nSWY9XCJmaWxlT3ZlclwiIHRhYmluZGV4PVwiMVwiXG4gIFtuZ0NsYXNzXT1cIntmaWxlOiBxdWV1ZS5sZW5ndGgsIGludmFsaWQ6IGludmFsaWRJbnB1dCwgdXBsb2FkaW5nOiBpc1VwbG9hZGluZ31cIj5cblxuICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBjbG9zZVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiAoY2xpY2spPVwiY2xvc2UoKVwiPjwvZW8taWNvbj5cblxuICA8ZGl2IGNsYXNzPVwiY291bnRcIj5cbiAgICA8ZGl2Pnt7cXVldWUubGVuZ3RofX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicXVldWVTaXplXCI+e3txdWV1ZVNpemUgfCBmaWxlU2l6ZX19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJoZWFkbGluZVwiPlxuICAgIDxoMSB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5oZWFkbGluZTwvaDE+XG4gIDwvZGl2PlxuICBcbiAgPGVvLWljb24gY2xhc3M9XCJ1cGxvYWR5XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfdXBsb2FkLnN2ZydcIj48L2VvLWljb24+XG5cbiAgPCEtLSBiYXRjaCB1cGxvYWQgZGlhbG9nIC0tPlxuICA8ZGl2IGNsYXNzPVwiYmF0Y2gtZGlhbG9nXCIgKm5nSWY9XCIhaW52YWxpZElucHV0ICYmIHNlbGVjdGVkVXBsb2FkVGFyZ2V0ICYmICFpc1VwbG9hZGluZ1wiPlxuXG4gICAgPGgyIHRyYW5zbGF0ZT5lby51cGxvYWQuZ2xvYmFsLmNob29zZS50aXRsZTwvaDI+XG4gICAgPHAgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuY2hvb3NlLm1lc3NhZ2U8L3A+XG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cInJlc2V0U2VsZWN0ZWRVcGxvYWRUYXJnZXQoKVwiIHRyYW5zbGF0ZT5lby5jdGEuYnV0dG9uLmNhbmNlbDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicHJvY2VlZFdpdGhTZWxlY3RlZFRhcmdldChmYWxzZSlcIiBjbGFzcz1cInByaW1hcnlcIlxuICAgICAgICB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5jaG9vc2Uuc2luZ2xlPC9idXR0b24+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJwcm9jZWVkV2l0aFNlbGVjdGVkVGFyZ2V0KHRydWUpXCIgY2xhc3M9XCJwcmltYXJ5XCIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuY2hvb3NlLm11bHRpPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gaW52YWxpZCBpbnB1dCBkaWFsb2cgLS0+XG4gIDxkaXYgY2xhc3M9XCJiYXRjaC1kaWFsb2dcIiAqbmdJZj1cImhhc1ZhbGlkVXBsb2FkVGFyZ2V0cyAmJiBpbnZhbGlkSW5wdXRcIj5cblxuICAgIDxoMiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5pbnZhbGlkLnRpdGxlPC9oMj5cbiAgICA8cCB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5pbnZhbGlkLm1lc3NhZ2U8L3A+XG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5jbG9zZTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIG5vIHVwbG9hZCB0YXJnZXRzIGF2YWlsYWJsZSAtLT5cbiAgPGRpdiBjbGFzcz1cImJhdGNoLWRpYWxvZ1wiICpuZ0lmPVwiIWhhc1ZhbGlkVXBsb2FkVGFyZ2V0c1wiPlxuXG4gICAgPGgyIHRyYW5zbGF0ZT5lby51cGxvYWQuZ2xvYmFsLm5vdGFyZ2V0LnRpdGxlPC9oMj5cbiAgICA8cCB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5ub3RhcmdldC5tZXNzYWdlPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuY2xvc2U8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRzXCIgKm5nSWY9XCJoYXNWYWxpZFVwbG9hZFRhcmdldHMgJiYgIWludmFsaWRJbnB1dCAmJiAhc2VsZWN0ZWRVcGxvYWRUYXJnZXQgJiYgIWlzVXBsb2FkaW5nXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgPCEtLSBsaXN0IG9mIGF2YWlsYWJsZSB1cGxvYWQgdGFyZ2V0cyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YXJnZXRzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YXJnZXQtbGlzdFwiPlxuICAgICAgICAgIEBmb3IgKHRhcmdldFR5cGUgb2YgdGFyZ2V0VHlwZXM7IHRyYWNrIHRhcmdldFR5cGUudHlwZSkge1xuICAgICAgICAgICAgQGZvciAodCBvZiB2YWxpZFVwbG9hZFRhcmdldHM7IHRyYWNrIHQuaWQpIHtcbiAgICAgICAgICAgICAgQGlmICh0LnR5cGUgPT09IHRhcmdldFR5cGUudHlwZSkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1cGxvYWRUYXJnZXRUZW1wbGF0ZTsgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU3JjOiB0YXJnZXRUeXBlLmljb25TcmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldENsYXNzOiB0YXJnZXRUeXBlLnRhcmdldENsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0YXJnZXRUeXBlLnR5cGUgPT09ICdjdXN0b20nID8gdC5uYW1lIDogKHRhcmdldFR5cGUudHlwZSA9PT0gJ2NvbnRleHQnID8gICAgICAodGFyZ2V0VHlwZS5uYW1lIHwgdHJhbnNsYXRlIDogeyBjb250ZXh0OiB0LnJlZmVyZW5jZU9iamVjdC50eXBlLmxhYmVsIH0pIDogICAgICh0YXJnZXRUeXBlLiBuYW1lIHwgdHJhbnNsYXRlKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0YXJnZXRUeXBlLnR5cGUgPT09ICdjdXN0b20nIHx8IHRhcmdldFR5cGUudHlwZSA9PT0gJ29iamVjdCcgfHwgICAgdGFyZ2V0VHlwZS4gIHR5cGUgPT09ICdjb250ZXh0JyA/IHQuZGVzY3JpcHRpb24gOiAodGFyZ2V0VHlwZS5kZXNjcmlwdGlvbiB8ICAgdHJhbnNsYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0czogdFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIHVwbG9hZCB0byBmYXZvcml0ZSAtLT5cbiAgICAgIEBpZiAoZm9sZGVyRmF2b3JpdGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPGVvLXNpbXBsZS1hY2NvcmRpb24gW3NlbGVjdGVkXT1cImZhdm9yaXRlc0FjY1NlbGVjdGVkXCIgW2hlYWRlcl09XCInZW8udXBsb2FkLmdsb2JhbC5jb250ZXh0LmZhdm9yaXRlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RDaGFuZ2UpPVwib25GYXZvcml0ZVRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhcmdldHNcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0LWxpc3RcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICAgIEBmb3IgKHQgb2YgdmFsaWRVcGxvYWRUYXJnZXRzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBAaWYgKHQudHlwZSA9PT0gJ2Zhdm9yaXRlJykge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC10YXJnZXRcIiB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJwcm9jZWVkV2l0aFVwbG9hZCh0KVwiIChjbGljayk9XCJwcm9jZWVkV2l0aFVwbG9hZCh0KVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxlby1pY29uIFtpY29uSWRdPVwidC5pY29uSWRcIj48L2VvLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC10YXJnZXQtZmF2b3JpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3t0LnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3t0LmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmKGxhc3RPcGVuZWRGb2xkZXIubGVuZ3RoID4gMCl7XG4gICAgICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uIFtzZWxlY3RlZF09XCJhZ2VudEFjY1NlbGVjdGVkXCIgW2hlYWRlcl09XCInZW8udXBsb2FkLmdsb2JhbC5jb250ZXh0LmFnZW50JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RDaGFuZ2UpPVwib25BZ2VudFRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICAgICAgPCEtLSB1cGxvYWQgdG8gbGFzdCBvcGVuZWQgZm9sZGVyICAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0c1wiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YXJnZXQtbGlzdFwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICAgICAgQGZvciAodCBvZiB2YWxpZFVwbG9hZFRhcmdldHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIEBpZiAodC50eXBlID09PSAnYWdlbnQnKSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLXRhcmdldFwiIHRhYmluZGV4PVwiMFwiIChrZXlkb3duLmVudGVyKT1cInByb2NlZWRXaXRoVXBsb2FkKHQpXCIgKGNsaWNrKT1cInByb2NlZWRXaXRoVXBsb2FkKHQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPGVvLWljb24gW2ljb25JZF09XCJ0Lmljb25JZFwiPjwvZW8taWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLXRhcmdldC1hZ2VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57e3Q/LnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3t0Py5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPCEtLSBsaXN0IG9mIGZpbGVzIGRyYWdnZWQgdG8gdGhlIGNvbXBvbmVudCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsZXNcIiBbbmdDbGFzc109XCJ7ZmlsZTogcXVldWUubGVuZ3RoLCBpbnZhbGlkOiBpbnZhbGlkSW5wdXQsIHVwbG9hZGluZzogaXNVcGxvYWRpbmd9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZXMtbGlzdFwiPlxuICAgICAgICBAZm9yIChpIG9mIHF1ZXVlOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1pdGVtXCI+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57e2kubmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj48c3BhbiBjbGFzcz1cInNpemVcIj57e2kuc2l6ZSB8IGZpbGVTaXplfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2MtdGV4dFwiPiZuYnNwO3t7aS50eXBlfX08L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZVwiIChjbGljayk9XCJyZW1vdmVGaWxlSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY2xlYXIuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIEBpZiAoaXNVcGxvYWRpbmcpIHtcbiAgICA8ZGl2IGNsYXNzPVwibG9hZGluZ1wiPlxuICAgICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInbGFyZ2UnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3VwbG9hZFRhcmdldFRlbXBsYXRlIGxldC1pY29uU3JjPVwiaWNvblNyY1wiIGxldC10YXJnZXRDbGFzcz1cInRhcmdldENsYXNzXCIgbGV0LW5hbWU9XCJuYW1lXCJcbiAgbGV0LWRlc2NyaXB0aW9uPVwiZGVzY3JpcHRpb25cIiBsZXQtdGFyZ2V0cz1cInRhcmdldHNcIj5cbiAgPGRpdiBjbGFzcz1cInVwbG9hZC10YXJnZXRcIiB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJwcm9jZWVkV2l0aFVwbG9hZCh0YXJnZXRzKVwiIChjbGljayk9XCJwcm9jZWVkV2l0aFVwbG9hZCh0YXJnZXRzKVwiPlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICA8ZW8taWNvbiBbaWNvblNyY109XCJpY29uU3JjXCI+PC9lby1pY29uPlxuICAgICAgPGRpdiBbbmdDbGFzc109XCJ0YXJnZXRDbGFzc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPnt7IG5hbWUgfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3sgZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
474
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdXBsb2FkLW92ZXJsYXkvdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdXBsb2FkLW92ZXJsYXkvdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEVBQUUsSUFBSSxZQUFZLEVBQUUsUUFBUSxJQUFJLGtCQUFrQixFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwRixPQUFPLEVBQUMsU0FBUyxFQUFxQixTQUFTLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE9BQU8sRUFHTCxVQUFVLEVBRVYsWUFBWSxFQUNaLGNBQWMsRUFFZCxLQUFLLEVBRUwsZ0JBQWdCLEVBR2pCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBZSxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFPckUsTUFBTSxPQUFPLHNCQUFzQjtJQThEakMsWUFBb0IsTUFBYyxFQUN4QixRQUFtQixFQUNuQixjQUE4QixFQUM5QixTQUEyQixFQUMzQixXQUF3QixFQUN4QixZQUEwQixFQUMxQixhQUE0QixFQUM1QixZQUEwQixFQUMxQixjQUFtQyxFQUNuQyxjQUFxQztRQVQzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGlCQUFZLEdB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QUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGlCQUFpQixDQUFDLEtBQWdCO1FBQ3hDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMxRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQixDQUFDLEtBQXFCO1FBQzlDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzRixDQUFDOzhHQXRoQlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsK0pDeEJuQyxtK05BK0pBOzsyRkR2SWEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG1CQUFtQjtpVkFNUCxTQUFTO3NCQUE5QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge29mIGFzIG9ic2VydmFibGVPZiwgZm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBPYmplY3RUeXBlLFxuICBFdmVudFNlcnZpY2UsXG4gIEVuYWlvRXZlbnQsXG4gIFVwbG9hZFJlZ2lzdHJ5U2VydmljZSxcbiAgVXBsb2FkVGFyZ2V0LFxuICBVcGxvYWRGaWxlSXRlbSxcbiAgUHJlcGFyZVNlcnZpY2UsXG4gIFV0aWxzLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBFbnZpcm9ubWVudEVuYWlvLCBTeXN0ZW1TZXJ2aWNlLFxuICBVc2VyU2VydmljZSxcbiAgTG9jYWxTdG9yYWdlU2VydmljZVxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtBZ2VudFNlcnZpY2UsIExvY2FsZURhdGVQaXBlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXVwbG9hZC1vdmVybGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1vdmVybGF5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXknKSBvdmVybGF5RWw6IEVsZW1lbnRSZWY7XG5cbiAgcXVldWU6IFVwbG9hZEZpbGVJdGVtW10gPSBbXTtcbiAgZmlsZU92ZXI6IGJvb2xlYW47XG4gIGlzVXBsb2FkaW5nOiBib29sZWFuO1xuICBoYXNWYWxpZFVwbG9hZFRhcmdldHM6IGJvb2xlYW47XG4gIGludmFsaWRJbnB1dDogYm9vbGVhbjtcbiAgcXVldWVTaXplOiBudW1iZXI7XG4gIHZhbGlkVXBsb2FkVGFyZ2V0czogVXBsb2FkVGFyZ2V0W10gPSBbXTtcbiAgc2VsZWN0ZWRVcGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldDtcbiAgZm9sZGVyRmF2b3JpdGVzOiBVcGxvYWRUYXJnZXRbXSA9IFtdO1xuICBsYXN0T3BlbmVkRm9sZGVyOiBVcGxvYWRUYXJnZXRbXSA9IFtdO1xuICBkYXRlUGlwZTogTG9jYWxlRGF0ZVBpcGU7XG4gIGFnZW50QWNjU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGZhdm9yaXRlc0FjY1NlbGVjdGVkOiBib29sZWFuO1xuXG4gIHRhcmdldFR5cGVzID0gW1xuICAgIHtcbiAgICAgIHR5cGU6ICdyb290JyxcbiAgICAgIGljb25TcmM6ICdhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NyZWF0ZV9kb2N1bWVudC5zdmcnLFxuICAgICAgdGFyZ2V0Q2xhc3M6ICd1cGxvYWQtdGFyZ2V0LWdlbmVyYWwnLFxuICAgICAgbmFtZTogJ2VvLnVwbG9hZC5nbG9iYWwucm9vdC50aXRsZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ2VvLnVwbG9hZC5nbG9iYWwucm9vdC5kZXNjcmlwdGlvbidcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgaWNvblNyYzogJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZG9jdW1lbnRfZmlsZS5zdmcnLFxuICAgICAgdGFyZ2V0Q2xhc3M6ICd1cGxvYWQtdGFyZ2V0LXJlcGxhY2UnLFxuICAgICAgbmFtZTogJ2VvLnVwbG9hZC5nbG9iYWwub2JqZWN0LnRpdGxlJ1xuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ2NvbnRleHQnLFxuICAgICAgaWNvblNyYzogJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY3JlYXRlX2RvY3VtZW50X2luX2ZvbGRlci5zdmcnLFxuICAgICAgdGFyZ2V0Q2xhc3M6ICd1cGxvYWQtdGFyZ2V0LWNvbnRleHQnLFxuICAgICAgbmFtZTogJ2VvLnVwbG9hZC5nbG9iYWwuY29udGV4dC50aXRsZScsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAnY29udGV4dHRyZWUnLFxuICAgICAgaWNvblNyYzogJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY3JlYXRlX2RvY3VtZW50X2luX2ZvbGRlci5zdmcnLFxuICAgICAgdGFyZ2V0Q2xhc3M6ICd1cGxvYWQtdGFyZ2V0LWNvbnRleHR0cmVlJyxcbiAgICAgIG5hbWU6ICdlby5hZGQudGl0bGUubG9jYXRpb24uc3ViZm9sZGVyJ1xuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ2N1c3RvbScsXG4gICAgICBpY29uU3JjOiAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY191cGxvYWQuc3ZnJyxcbiAgICAgIHRhcmdldENsYXNzOiAndXBsb2FkLXRhcmdldC1jdXN0b20nLFxuICAgICAgbmFtZTogJycsXG4gICAgfVxuICBdO1xuXG4gIHByaXZhdGUgdXBsb2FkVGFyZ2V0czogVXBsb2FkVGFyZ2V0W10gPSBbXTtcbiAgcHJpdmF0ZSBkcmFnTGVhdmVMaXN0ZW5lcjogRnVuY3Rpb247XG4gIHByaXZhdGUgZHJvcExpc3RlbmVyOiBGdW5jdGlvbjtcbiAgcHJpdmF0ZSBkcmFnT3Zlckxpc3RlbmVyOiBGdW5jdGlvbjtcbiAgcHJpdmF0ZSBlc2NLZXlMaXN0ZW5lcjogRnVuY3Rpb247XG4gIHByaXZhdGUgZHJhZ0VudGVyTGlzdGVuZXI6IEZ1bmN0aW9uO1xuICBwcml2YXRlIHBhc3RlTGlzdGVuZXI6IEZ1bmN0aW9uO1xuICBwcml2YXRlIGRyYWdFdmVudENvdW50ID0gMDtcbiAgcHJpdmF0ZSBjYWNoZUtleSA9ICdhY2NvcmRpb24uc3RhdGUtLSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBwcmVwYXJlU2VydmljZTogUHJlcGFyZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhZ2VudFNlcnZpY2U6IEFnZW50U2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXBsb2FkUmVnaXN0cnk6IFVwbG9hZFJlZ2lzdHJ5U2VydmljZSkge1xuICAgIHRoaXMuZGF0ZVBpcGUgPSBuZXcgTG9jYWxlRGF0ZVBpcGUodHJhbnNsYXRlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZHJhZ0VudGVyTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZHJhZ0VudGVyTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VlZCB1cGxvYWQgd2l0aCBhIHNlbGVjdGVkIHVwbG9hZCB0YXJnZXQuXG4gICAqIEBwYXJhbSB1cGxvYWRUYXJnZXQgLSB0aGUgdGFyZ2V0IHRvIHVwbG9hZCBmaWxlcyB0b1xuICAgKi9cbiAgcHVibGljIHByb2NlZWRXaXRoVXBsb2FkKHVwbG9hZFRhcmdldDogVXBsb2FkVGFyZ2V0KTogdm9pZCB7XG5cbiAgICBpZiAodXBsb2FkVGFyZ2V0LnR5cGUgIT09IFVwbG9hZFRhcmdldC5DVVNUT00gJiYgdGhpcy5xdWV1ZS5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBGb3IgbW9yZSB0aGFuIG9uZSBmaWxlIHRvIGJlIHVwbG9hZGVkIHRvIGEgbm9uZSBjdXN0b20gdGFyZ2V0LCB3ZSBsZXQgdGhlIHVzZXIgZGVjaWRlIGlmXG4gICAgICAvLyBiYXRjaCB1cGxvYWQgc2hvdWxkIGJlIHVzZWQgb3Igbm90IC4uLlxuXG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRVcGxvYWRUYXJnZXQgPSB1cGxvYWRUYXJnZXQ7XG4gICAgfSBlbHNlIGlmICh1cGxvYWRUYXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0Lk9CSkVDVCkge1xuICAgICAgLy8gLi4uIG90aGVyd2lzZSB1cGxvYWQgaXMgc3RhcnRlZCBpbW1lZGlhdGVseVxuICAgICAgdGhpcy5zdGFydFVwbG9hZCh1cGxvYWRUYXJnZXQsIFtudWxsLCB0aGlzLmdldFN0YXRlUm91dGUoKV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXJ0VXBsb2FkKHVwbG9hZFRhcmdldCwgW251bGwsICcvcHJlcGFyZSddKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VlZCB1cGxvYWQgdXNpbmcgdGhlIHNlbGVjdGVkIHVwbG9hZCB0YXJnZXQuXG4gICAqIEBwYXJhbSB1c2VCYXRjaFVwbG9hZCAtIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0byB1c2UgYmF0Y2ggdXBsb2FkXG4gICAqL1xuICBwdWJsaWMgcHJvY2VlZFdpdGhTZWxlY3RlZFRhcmdldCh1c2VCYXRjaFVwbG9hZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc3RhcnRVcGxvYWQodGhpcy5zZWxlY3RlZFVwbG9hZFRhcmdldCwgW3VzZUJhdGNoVXBsb2FkLCAnL3ByZXBhcmUnXSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBzZWxlY3RlZCB1cGxvYWQgdGFyZ2V0LlxuICAgKi9cbiAgcHVibGljIHJlc2V0U2VsZWN0ZWRVcGxvYWRUYXJnZXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFVwbG9hZFRhcmdldCA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGZpbGUgZnJvbSB0aGUgbGlzdCBvZiBmaWxlcyB0byBiZSB1cGxvYWRlZC5cbiAgICogQHBhcmFtIGZpbGVJdGVtIC0gdGhlIGZpbGUgaXRlbSB0byBiZSByZW1vdmVkXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRmlsZUl0ZW0oZmlsZUl0ZW06IFVwbG9hZEZpbGVJdGVtKTogdm9pZCB7XG5cbiAgICB0aGlzLnF1ZXVlID0gdGhpcy5xdWV1ZS5maWx0ZXIoKGYpID0+IGYuaWQgIT09IGZpbGVJdGVtLmlkKTtcbiAgICBpZiAoIXRoaXMucXVldWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHVwZGF0ZSBhdmFpbGFibGUgdXBsb2FkIHRhcmdldHMgYmVjYXVzZSB0aGVpciB2YWxpZGl0eVxuICAgICAgLy8gbWF5IGJlIGJhc2VkIG9uIHRoZSBxdWV1ZSBzaXplXG4gICAgICB0aGlzLnZhbGlkYXRlVXBsb2FkVGFyZ2V0cygpO1xuICAgICAgdGhpcy5zZXRRdWV1ZVNpemUoKTtcbiAgICB9XG4gIH1cblxuICBnZXRTdGF0ZVJvdXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLnVybDtcbiAgfVxuXG4gIG9uQWdlbnRUb2dnbGUoaW5mbzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLmNhY2hlS2V5ICsgJ2FnZW50LWZvbGRlcicsIEpTT04uc3RyaW5naWZ5KGluZm8pKTtcbiAgfVxuXG4gIG9uRmF2b3JpdGVUb2dnbGUoaW5mbzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLmNhY2hlS2V5ICsgJ2Zhdm9yaXRlLWZvbGRlcicsIEpTT04uc3RyaW5naWZ5KGluZm8pKTtcbiAgfVxuXG4gIGdldEZvbGRlcigpOiB2b2lkIHtcbiAgICAvL2ZvbGRlciBmcm9tIGFnZW50XG4gICAgdGhpcy5hZ2VudFNlcnZpY2UuZ2V0TGFzdE9wZW5lZEZvbGRlcnNJbmZvKCkuc3Vic2NyaWJlKChyZXM6IFtdKTogdm9pZCA9PiB7XG4gICAgICB0aGlzLmxhc3RPcGVuZWRGb2xkZXIgPSByZXMubWFwKChpdGVtOiB7dGl0bGU6IHN0cmluZzsgZGF0YToge2Rlc2NyaXB0aW9uOiBzdHJpbmd9OyBpZDogc3RyaW5nOyB0eXBlOiBzdHJpbmd9KSA9PiB7XG4gICAgICAgIGxldCB0YXJnZXQgPSBuZXcgVXBsb2FkVGFyZ2V0KFxuICAgICAgICAgIGl0ZW0uaWQsXG4gICAgICAgICAgJ2FnZW50JyxcbiAgICAgICAgICBpdGVtPy50aXRsZSxcbiAgICAgICAgICB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZShpdGVtLnR5cGUpLmljb25JZCxcbiAgICAgICAgICBpdGVtLnR5cGVcbiAgICAgICAgKTtcbiAgICAgICAgdGFyZ2V0LmRlc2NyaXB0aW9uID0gaXRlbT8uZGF0YT8uZGVzY3JpcHRpb247XG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubGFzdE9wZW5lZEZvbGRlci5mb3JFYWNoKHRhcmdldCA9PiB0YXJnZXQub25VcGxvYWRTdWNjZXNzID0gKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJlcGFyZSddKSk7XG4gICAgfSk7XG5cbiAgICAvLyBGb2xkZXIgZnJvbSBmYXZvcml0ZVxuICAgIHRoaXMudXNlclNlcnZpY2UuZ2V0RmF2b3JpdGVzKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGNvbnN0IGZhdm9yaXRlc0ZpbHRlcmVkID0gcmVzLmZpbHRlcigoaXRlbToge3RhcmdldDoge2ZvbGRlcjogYm9vbGVhbn19KSA9PiBpdGVtLnRhcmdldC5mb2xkZXIgPT09IHRydWUpO1xuICAgICAgdGhpcy5mb2xkZXJGYXZvcml0ZXMgPSBmYXZvcml0ZXNGaWx0ZXJlZC5tYXAoaXRlbSA9PiB7XG4gICAgICAgIGxldCB0YXJnZXQgPSBuZXcgVXBsb2FkVGFyZ2V0KFxuICAgICAgICAgIGl0ZW0udGFyZ2V0LmlkLFxuICAgICAgICAgICdmYXZvcml0ZScsXG4gICAgICAgICAgaXRlbS50aXRsZSxcbiAgICAgICAgICBpdGVtLnRhcmdldC5pY29uLmlkLFxuICAgICAgICAgIGl0ZW0udGFyZ2V0LnR5cGUsXG4gICAgICAgICk7XG4gICAgICAgIHRhcmdldC5kZXNjcmlwdGlvbiA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGl0ZW0uY3JlYXRlZCk7XG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZm9sZGVyRmF2b3JpdGVzLmZvckVhY2godGFyZ2V0ID0+IHRhcmdldC5vblVwbG9hZFN1Y2Nlc3MgPSAoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcmVwYXJlJ10pKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNhdGNoRm9jdXMoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm92ZXJsYXlFbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t0YWJpbmRleD1cIjBcIl0nKS5mb2N1cygpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgdGhlIHVwbG9hZCBvdmVybGF5IGFuZCByZWxlYXNlIGFsbCBib3VuZCByZXNvdXJjZXMuXG4gICAqL1xuICBjbG9zZSgpOiB2b2lkIHtcbiAgICAvLyB1bmJpbmQgYm91bmQgZXZlbnQgbGlzdGVuZXIsIHdoZW4gdGhleSBhcmUgbm90IG5lZWRlZCBhbnltb3JlXG4gICAgdGhpcy51bmJpbmRMaXN0ZW5lcnMoKTtcbiAgICAvLyBjbGVhciB1cGxvYWQgcXVldWVcbiAgICB0aGlzLnF1ZXVlID0gW107XG4gICAgLy8gaGlkZSB0aGUgb3ZlcmxheVxuICAgIHRoaXMuc2V0RmlsZU92ZXIoZmFsc2UpO1xuICAgIHRoaXMuaW52YWxpZElucHV0ID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGluaXQoKSB7XG4gICAgdGhpcy5nZXRGb2xkZXIoKTtcblxuICAgIC8vIGdsb2JhbCBkcmFnJmRyb3AgdXBsb2FkIHdpbGwgb25seSBiZSBhdmFpbGFibGUgb24gZGVza3RvcCAod2ViIG9yIGVsZWN0cm9uKVxuICAgIGlmIChFbnZpcm9ubWVudEVuYWlvLmlzTW9iaWxlRW52aXJvbm1lbnQoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIHN1YnNjcmliZSBmb3IgdGhlIGxpc3Qgb2YgcmVnaXN0ZXJlZCB1cGxvYWQgdGFyZ2V0c1xuICAgIHRoaXMudXBsb2FkUmVnaXN0cnkudXBsb2FkVGFyZ2V0cyQuc3Vic2NyaWJlKCh1cGxvYWRUYXJnZXRzOiBVcGxvYWRUYXJnZXRbXSkgPT4ge1xuICAgICAgdGhpcy51cGxvYWRUYXJnZXRzID0gdXBsb2FkVGFyZ2V0cztcbiAgICB9KTtcblxuICAgIHRoaXMucGFzdGVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdwYXN0ZScsIChlOiBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgdGhpcy5vblBhc3RlKGUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kcmFnRW50ZXJMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdkcmFnZW50ZXInLCAoZTogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICB0aGlzLm9uRHJhZ0VudGVyKGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvblBhc3RlKGU6IENsaXBib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNVcGxvYWRpbmcpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5oYXNWYWxpZFVwbG9hZFRhcmdldHMgPSB0cnVlO1xuICAgIHRoaXMuaW52YWxpZElucHV0ID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLmZpbGVPdmVyICYmIHRoaXMucGFzdGVDb250YWluc0ZpbGVzKGUpKSB7XG4gICAgICBsZXQgdHJhbnNmZXIgPSBlLmNsaXBib2FyZERhdGE7XG4gICAgICBpZiAoIXRyYW5zZmVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gY2hlY2sgZm9yIGRpcmVjdG9yaWVzXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyYW5zZmVyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0cmFuc2Zlci5pdGVtc1tpXS5raW5kID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRoaXMuaW52YWxpZElucHV0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmUgPSB0cmFuc2Zlci5pdGVtc1tpXS53ZWJraXRHZXRBc0VudHJ5KCk7XG4gICAgICAgIGlmIChmZSAmJiBmZS5pc0RpcmVjdG9yeSkge1xuICAgICAgICAgIHRoaXMuaW52YWxpZElucHV0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pbnZhbGlkSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fcHJldmVudEFuZFN0b3AoZSk7XG4gICAgICAgIHRoaXMuc2V0RmlsZU92ZXIodHJ1ZSk7XG4gICAgICAgIHRoaXMub25GaWxlc0Ryb3BwZWQoQXJyYXkuZnJvbSh0cmFuc2Zlci5maWxlcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25EcmFnRW50ZXIoZTogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNVcGxvYWRpbmcpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5oYXNWYWxpZFVwbG9hZFRhcmdldHMgPSB0cnVlO1xuICAgIGlmICghdGhpcy5maWxlT3ZlciAmJiB0aGlzLmRyYWdDb250YWluc0ZpbGVzKGUpKSB7XG4gICAgICB0aGlzLmRyYWdFdmVudENvdW50ID0gMDtcbiAgICAgIHRoaXMuc2V0RmlsZU92ZXIodHJ1ZSk7XG5cbiAgICAgIC8vIHVzZSB0aW1lb3V0IGhlcmUgdG8gZm9yY2UgYW5ndWxhciBkaWdlc3QgY3ljbGUgYmVmb3JlIGNvbnRpbnVpbmcsIGJlY2F1c2Ugd2UgYXJlIGFjY2Vzc2luZyBkb20gZWxlbWVudHNcbiAgICAgIC8vIHRoYXQgYXJlIG5vdCB0aGVyZSAoKm5nSWYpIHVudGlsIGZpbGVPdmVyIGlzIHNldCB0byB0cnVlLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vIHRvZG86IHJlcGxhY2UgYnkgcmVuZGVyZXIgc29sdXRpb24gd2hlbiBhdmFpbGFibGUgKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE1Njc0KVxuICAgICAgICB0aGlzLm92ZXJsYXlFbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIC8vIGJpbmQgbGF0ZSAob25seSwgd2hlbiBuZWVkZWQpIHRvIGRyYWdsZWF2ZSBldmVudCB0byBhdm9pZCBoZWF2eSBwcm9jZXNzaW5nIG9uIGV2ZXJ5IGRyYWcgZXZlbnRcbiAgICAgICAgdGhpcy5kcmFnTGVhdmVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMub3ZlcmxheUVsLm5hdGl2ZUVsZW1lbnQsICdkcmFnbGVhdmUnLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kcmFnRXZlbnRDb3VudC0tO1xuICAgICAgICAgIGlmICh0aGlzLmRyYWdFdmVudENvdW50ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRyb3BMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMub3ZlcmxheUVsLm5hdGl2ZUVsZW1lbnQsICdkcm9wJywgKGV2dCkgPT4ge1xuICAgICAgICAgIGxldCB0cmFuc2ZlciA9IHRoaXMuX2dldFRyYW5zZmVyKGV2dCk7XG4gICAgICAgICAgaWYgKCF0cmFuc2Zlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9wcmV2ZW50QW5kU3RvcChldnQpO1xuXG4gICAgICAgICAgLy8gY2hlY2sgZm9yIGRpcmVjdG9yaWVzXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0cmFuc2Zlci5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZmUgPSB0cmFuc2Zlci5pdGVtc1tpXS53ZWJraXRHZXRBc0VudHJ5KCk7XG4gICAgICAgICAgICBpZiAoZmUgJiYgZmUuaXNEaXJlY3RvcnkpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkSW5wdXQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXRoaXMuaW52YWxpZElucHV0KSB7XG4gICAgICAgICAgICB0aGlzLm9uRmlsZXNEcm9wcGVkKHRyYW5zZmVyLmZpbGVzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMub3ZlcmxheUVsLm5hdGl2ZUVsZW1lbnQsICdkcmFnb3ZlcicsIChldnQpID0+IHtcbiAgICAgICAgICBsZXQgdHJhbnNmZXIgPSB0aGlzLl9nZXRUcmFuc2ZlcihldnQpO1xuICAgICAgICAgIGlmICghdHJhbnNmZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdjb3B5JztcbiAgICAgICAgICB0aGlzLl9wcmV2ZW50QW5kU3RvcChldnQpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYWdFdmVudENvdW50Kys7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VHJhbnNmZXIoZXZlbnQ6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFuc2ZlciA/IGV2ZW50LmRhdGFUcmFuc2ZlciA6IGV2ZW50Lm9yaWdpbmFsRXZlbnQuZGF0YVRyYW5zZmVyOyAvLyBqUXVlcnkgZml4O1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJldmVudEFuZFN0b3AoZXZlbnQ6IGFueSk6IGFueSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgb25GaWxlc0Ryb3BwZWQoZmlsZUl0ZW1zOiBGaWxlW10pIHtcbiAgICB0aGlzLmdldEZvbGRlcigpO1xuICAgIHRoaXMuZ2V0Q2FjaGVkQWNjb3JkaW9uU3RhdGUoKTtcbiAgICB0aGlzLmNhdGNoRm9jdXMoKTtcbiAgICBcbiAgICAvLyBjbGVhciBxdWV1ZSB3aGVuIG5ldyBmaWxlcyBhcmUgYWRkZWRcbiAgICAvLyB0b2RvOiByZW1vdmUgaW4gZnV0dXJlIHJlbGVhc2VzIHRvIHN1cHBvcnQgY29sbGVjdGl2ZSBmaWxlIGFkZGluZ1xuICAgIHRoaXMucXVldWUgPSBbXTtcbiAgICBmb3IgKGxldCBmaWxlIG9mIGZpbGVJdGVtcykge1xuICAgICAgdGhpcy5xdWV1ZS5wdXNoKG5ldyBVcGxvYWRGaWxlSXRlbShmaWxlKSk7XG4gICAgfVxuXG4gICAgLy8gYmluZCBFU0Mga2V5IGxpc3RlbmVyIGZvciBjbG9zaW5nIHRoZSBkaWFsb2cgYXMgbGF0ZSBhcyBwb3NzaWJsZVxuICAgIGlmICghdGhpcy5lc2NLZXlMaXN0ZW5lcikge1xuICAgICAgdGhpcy5lc2NLZXlMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdrZXl1cCcsIChlKSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmIChlLmtleUNvZGUgPT09IDI3KSB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gY2FsY3VsYXRlIHRvdGFsIHNpemUgb2YgcXVldWVcbiAgICB0aGlzLnNldFF1ZXVlU2l6ZSgpO1xuICAgIC8vIGZpbHRlciBhdmFpbGFibGUgdGFyZ2V0c1xuICAgIHRoaXMudmFsaWRhdGVVcGxvYWRUYXJnZXRzKCk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGxpc3Qgb2YgcmVnaXN0ZXJlZCB1cGxvYWQgdGFyZ2V0cywgc28gb25seSB2YWxpZCB0YXJnZXRzIHdpbGwgYmUgc2hvd24uXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlVXBsb2FkVGFyZ2V0cygpIHtcbiAgICB0aGlzLmhhc1ZhbGlkVXBsb2FkVGFyZ2V0cyA9IHRydWU7XG4gICAgdGhpcy5nZXRGb2xkZXIoKTtcbiAgICBvYnNlcnZhYmxlRm9ya0pvaW4odGhpcy51cGxvYWRUYXJnZXRzLm1hcCh0ID0+IHRoaXMudmFsaWRhdGVVcGxvYWRUYXJnZXQodCkpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKHJlczoge3RhcmdldDogVXBsb2FkVGFyZ2V0OyB2YWxpZDogYm9vbGVhbn1bXSkgPT4ge1xuICAgICAgICAgIHRoaXMudmFsaWRVcGxvYWRUYXJnZXRzID0gcmVzLmZpbHRlcihyID0+IHIudmFsaWQpLm1hcChmaWx0ZXJlZCA9PiBmaWx0ZXJlZC50YXJnZXQpLnJldmVyc2UoKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYS50eXBlID09PSAnY29udGV4dCcgPyAtMSA6IGIudHlwZSA9PT0gJ2NvbnRleHQnID8gMSA6IDA7IC8vIENvbnRleHQgc2hvdWxkIGJlIG9uIHRvcFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMudmFsaWRVcGxvYWRUYXJnZXRzID0gWy4uLnRoaXMudmFsaWRVcGxvYWRUYXJnZXRzLCAuLi50aGlzLmZvbGRlckZhdm9yaXRlcywgLi4udGhpcy5sYXN0T3BlbmVkRm9sZGVyXTtcbiAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmFsaWRVcGxvYWRUYXJnZXRzID0gW107XG4gICAgICAgIH0sICgpID0+IHtcbiAgICAgICAgICB0aGlzLmhhc1ZhbGlkVXBsb2FkVGFyZ2V0cyA9IHRoaXMudmFsaWRVcGxvYWRUYXJnZXRzLmxlbmd0aCA+IDA7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlVXBsb2FkVGFyZ2V0KHRhcmdldDogVXBsb2FkVGFyZ2V0KTogT2JzZXJ2YWJsZTx7dGFyZ2V0OiBVcGxvYWRUYXJnZXQ7IHZhbGlkOiBib29sZWFufT4ge1xuXG4gICAgaWYgKCF0aGlzLnF1ZXVlKSB7XG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IGZhbHNlfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKG8gPT4ge1xuICAgICAgbGV0IHZhbGlkID0gZmFsc2U7XG5cbiAgICAgIGlmICh0YXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LlJPT1QpIHtcblxuICAgICAgICAvLyB0b2RvOiBhcmUgdGhlcmUgb3RoZXIgcmVzdHJpY3Rpb25zIG9uIHJvb3QgdGFyZ2V0P1xuICAgICAgICB0aGlzLnByZXBhcmVTZXJ2aWNlLmdldFByZXBhcmVDaGlsZFR5cGVzKG51bGwsIHRydWUpXG4gICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgIChyZXM6IHtwYXJlbnQ6IHN0cmluZzsgdHlwZXM6IE9iamVjdFR5cGVbXX0pID0+IHtcbiAgICAgICAgICAgICAgdmFsaWQgPSB0aGlzLnF1ZXVlLmxlbmd0aCA+IDAgJiYgcmVzLnR5cGVzLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xuICAgICAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiBmYWxzZX0pO1xuICAgICAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAodGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5PQkpFQ1QpIHtcblxuICAgICAgICAvLyB0b2RvOiBjaGVjayBpZiB0aGUgcmVmZXJlbmNlIG9iamVjdCBzdXBwb3J0cyB0aGUgZ2l2ZW4gZmlsZSB0eXBlXG4gICAgICAgIHZhbGlkID0gdGFyZ2V0LnJlZmVyZW5jZU9iamVjdCAmJlxuICAgICAgICAgIHRhcmdldC5yZWZlcmVuY2VPYmplY3QudHlwZS5tYXhGaWxlcyA+IDAgJiZcbiAgICAgICAgICAhdGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5sb2NrICYmXG4gICAgICAgICAgIXRhcmdldC5yZWZlcmVuY2VPYmplY3QuaXNGaW5hbGl6ZWQgJiZcbiAgICAgICAgICAodGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5yaWdodHMgJiYgdGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5yaWdodHMuZWRpdCkgJiZcbiAgICAgICAgICB0aGlzLnF1ZXVlLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgIHRhcmdldC5yZWZlcmVuY2VPYmplY3QuZGF0YS55dXZzaWdzdGF0dXMgIT09ICdzaWduZWQnICYmXG4gICAgICAgICAgdGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5kYXRhLnl1dnNpZ3N0YXR1cyAhPT0gJ2lucHJvY2Vzcyc7XG4gICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xuICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVCB8fCB0YXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LkNPTlRFWFRfVFJFRSkge1xuXG4gICAgICAgIC8vIHRvZG86IGFkZCBjaGVja3MgcmVsYXRlZCB0byB0aGUgcmVmZXJlbmNlIG9iamVjdCAoZS5nLiBhbGxvd2VkIGZpbGUgdHlwZXMpXG4gICAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2UuZ2V0UHJlcGFyZUNoaWxkVHlwZXModGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5pZCwgdHJ1ZSlcbiAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHJlczoge3BhcmVudDogc3RyaW5nOyB0eXBlczogT2JqZWN0VHlwZVtdfSkgPT4ge1xuICAgICAgICAgICAgICB2YWxpZCA9IHRhcmdldC5yZWZlcmVuY2VPYmplY3QgJiYgdGhpcy5xdWV1ZS5sZW5ndGggPiAwICYmIHJlcy50eXBlcy5sZW5ndGggPiAwO1xuXG4gICAgICAgICAgICAgIC8vIGZvciBDT05URVhUX1RSRUUgdGFyZ2V0cyBhbHNvIGNoZWNrIGlmIHRoZSBkZXNpcmVkIG5vZGVcbiAgICAgICAgICAgICAgLy8gdHlwZSBpcyBwYXJ0IG9mIHRoZSBwcmVwYXJlIGNoaWxkIHR5cGVzXG4gICAgICAgICAgICAgIGlmICh0YXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LkNPTlRFWFRfVFJFRSAmJiB0YXJnZXQuc3ViRm9sZGVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViRm9sZGVyID0gdGFyZ2V0LnN1YkZvbGRlcjtcbiAgICAgICAgICAgICAgICB2YWxpZCA9ICEhcmVzLnR5cGVzLmZpbmQodCA9PiB0aGlzLnN5c3RlbVNlcnZpY2UuaW1wbGVtZW50c1R5cGUodCwgc3ViRm9sZGVyLmRhdGEudHlwZSkpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgby5uZXh0KHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IHZhbGlkfSk7XG4gICAgICAgICAgICAgIG8uY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0sICgpID0+IHtcbiAgICAgICAgICAgICAgby5uZXh0KHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IGZhbHNlfSk7XG4gICAgICAgICAgICAgIG8uY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgby5uZXh0KHt0YXJnZXQ6IHRhcmdldCwgdmFsaWQ6IGZhbHNlfSk7XG4gICAgICAgIG8uY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FjaGVkQWNjb3JkaW9uU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5hZ2VudEFjY1NlbGVjdGVkID0gSlNPTi5wYXJzZSh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5jYWNoZUtleSArICdhZ2VudC1mb2xkZXInKSk7XG4gICAgdGhpcy5mYXZvcml0ZXNBY2NTZWxlY3RlZCA9IEpTT04ucGFyc2UodGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnZmF2b3JpdGUtZm9sZGVyJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWNjZXNzZnVsVXBsb2FkKHRhcmdldCwgdXBsb2FkVGFyZ2V0KTogdm9pZCB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRCwgdXBsb2FkVGFyZ2V0LnJlZmVyZW5jZU9iamVjdCk7XG4gICAgdXBsb2FkVGFyZ2V0Lm9uVXBsb2FkU3VjY2Vzcyh0YXJnZXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHRoZSBhY3R1YWwgdXBsb2FkLlxuICAgKiBAcGFyYW0gdXBsb2FkVGFyZ2V0IC0gdGFyZ2V0IHRvIHVwbG9hZCB0aGUgZmlsZXMgdG9cbiAgICogQHBhcmFtIHVzZUJhdGNoVXBsb2FkIC0gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRvIHVzZSBiYXRjaCB1cGxvYWRcbiAgICovXG4gIHByaXZhdGUgc3RhcnRVcGxvYWQodXBsb2FkVGFyZ2V0OiBVcGxvYWRUYXJnZXQsIFsuLi5hcmdzXSk6IHZvaWQge1xuXG4gICAgY29uc3QgW3VzZUJhdGNoVXBsb2FkLCB0YXJnZXRdID0gYXJncztcblxuICAgIHRoaXMuaXNVcGxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMudW5iaW5kTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5wcmVwYXJlU2VydmljZVxuICAgICAgLnVwbG9hZFRvVGFyZ2V0KHVwbG9hZFRhcmdldCwgdGhpcy5xdWV1ZSwgdXNlQmF0Y2hVcGxvYWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBpZiAodXBsb2FkVGFyZ2V0LnN1YkZvbGRlciAmJiB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyLmRhdGEuZGF0YSkge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcykpIHtcbiAgICAgICAgICAgIGxldCBvYnMgPSBbXTtcbiAgICAgICAgICAgIHJlcy5mb3JFYWNoKHIgPT4ge1xuICAgICAgICAgICAgICBvYnMucHVzaCh0aGlzLnByZXBhcmVTZXJ2aWNlLnVwZGF0ZVByZXBhcmVkSXRlbUluZGV4RGF0YShyLmlkLCB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyLmRhdGEuZGF0YSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBvYnNlcnZhYmxlRm9ya0pvaW4ob2JzKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdWNjZXNzZnVsVXBsb2FkKHRhcmdldCwgdXBsb2FkVGFyZ2V0KSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2VcbiAgICAgICAgICAgICAgLnVwZGF0ZVByZXBhcmVkSXRlbUluZGV4RGF0YShyZXMuaWQsIHVwbG9hZFRhcmdldC5zdWJGb2xkZXIuZGF0YS5kYXRhKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3VjY2Vzc2Z1bFVwbG9hZCh0YXJnZXQsIHVwbG9hZFRhcmdldCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3NmdWxVcGxvYWQodGFyZ2V0LCB1cGxvYWRUYXJnZXQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHtcbiAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB1cGxvYWRUYXJnZXQub25VcGxvYWRGYWlsKCk7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0sXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnVwbG9hZC5nbG9iYWwuZXJyb3IudGl0bGUnKSxcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udXBsb2FkLmdsb2JhbC5lcnJvci5kZXNjcmlwdGlvbicpKVxuICAgICAgKTtcbiAgICB0aGlzLnJlc2V0U2VsZWN0ZWRVcGxvYWRUYXJnZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UXVldWVTaXplKCk6IHZvaWQge1xuICAgIGxldCBzID0gMDtcbiAgICBmb3IgKGxldCBmIG9mIHRoaXMucXVldWUpIHtcbiAgICAgIHMgKz0gZi5zaXplO1xuICAgIH1cbiAgICB0aGlzLnF1ZXVlU2l6ZSA9IHM7XG4gIH1cblxuICBwcml2YXRlIHNldEZpbGVPdmVyKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5maWxlT3ZlciA9IHZhbHVlO1xuICAgIHRoaXMudXBsb2FkUmVnaXN0cnkuc2V0T3ZlcmxheUFjdGl2ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHVuYmluZExpc3RlbmVycygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcmFnTGVhdmVMaXN0ZW5lcikge1xuICAgICAgdGhpcy5kcmFnTGVhdmVMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5kcmFnTGVhdmVMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmRyYWdPdmVyTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5kcmFnT3Zlckxpc3RlbmVyID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZHJvcExpc3RlbmVyKSB7XG4gICAgICB0aGlzLmRyb3BMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5kcm9wTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5lc2NLZXlMaXN0ZW5lcikge1xuICAgICAgdGhpcy5lc2NLZXlMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5lc2NLZXlMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0aGUgY3VycmVudCBkcmFnIGV2ZW50IGNvbnRhaW5zIG9uZSBvciBtb3JlIGZpbGVzLlxuICAgKiBAcGFyYW0gZXZlbnQgLSB0aGUgZHJhZyBldmVudCB0byBiZSBjaGVja2VkXG4gICAqIEByZXR1cm5zIG51bWJlciBvZiBmaWxlc1xuICAgKi9cbiAgcHJpdmF0ZSBkcmFnQ29udGFpbnNGaWxlcyhldmVudDogRHJhZ0V2ZW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShldmVudC5kYXRhVHJhbnNmZXIuaXRlbXMgfHwgW10pLmZpbHRlcihpID0+IGkua2luZCA9PT0gJ2ZpbGUnKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBjdXJyZW50IHBhc3RlIGV2ZW50IGNvbnRhaW5zIG9uZSBvciBtb3JlIGZpbGVzLlxuICAgKiBAcGFyYW0gZXZlbnQgLSB0aGUgcGFzdGUgZXZlbnQgdG8gYmUgY2hlY2tlZFxuICAgKiBAcmV0dXJucyBudW1iZXIgb2YgZmlsZXNcbiAgICovXG4gIHByaXZhdGUgcGFzdGVDb250YWluc0ZpbGVzKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IG51bWJlciB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZXZlbnQuY2xpcGJvYXJkRGF0YS5pdGVtcyB8fCBbXSkuZmlsdGVyKGkgPT4gaS5raW5kID09PSAnZmlsZScpLmxlbmd0aDtcbiAgfVxufVxuIiwiPGRpdiBpZD1cImVvLXVwbG9hZC1vdmVybGF5XCIgI292ZXJsYXkgY2xhc3M9XCJkYXJrXCIgKm5nSWY9XCJmaWxlT3ZlclwiIHRhYmluZGV4PVwiMVwiXG4gIFtuZ0NsYXNzXT1cIntmaWxlOiBxdWV1ZS5sZW5ndGgsIGludmFsaWQ6IGludmFsaWRJbnB1dCwgdXBsb2FkaW5nOiBpc1VwbG9hZGluZ31cIj5cblxuICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBjbG9zZVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiAoY2xpY2spPVwiY2xvc2UoKVwiPjwvZW8taWNvbj5cblxuICA8ZGl2IGNsYXNzPVwiY291bnRcIj5cbiAgICA8ZGl2Pnt7cXVldWUubGVuZ3RofX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicXVldWVTaXplXCI+e3txdWV1ZVNpemUgfCBmaWxlU2l6ZX19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJoZWFkbGluZVwiPlxuICAgIDxoMSB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5oZWFkbGluZTwvaDE+XG4gIDwvZGl2PlxuICBcbiAgPGVvLWljb24gY2xhc3M9XCJ1cGxvYWR5XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfdXBsb2FkLnN2ZydcIj48L2VvLWljb24+XG5cbiAgPCEtLSBiYXRjaCB1cGxvYWQgZGlhbG9nIC0tPlxuICA8ZGl2IGNsYXNzPVwiYmF0Y2gtZGlhbG9nXCIgKm5nSWY9XCIhaW52YWxpZElucHV0ICYmIHNlbGVjdGVkVXBsb2FkVGFyZ2V0ICYmICFpc1VwbG9hZGluZ1wiPlxuXG4gICAgPGgyIHRyYW5zbGF0ZT5lby51cGxvYWQuZ2xvYmFsLmNob29zZS50aXRsZTwvaDI+XG4gICAgPHAgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuY2hvb3NlLm1lc3NhZ2U8L3A+XG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cInJlc2V0U2VsZWN0ZWRVcGxvYWRUYXJnZXQoKVwiIHRyYW5zbGF0ZT5lby5jdGEuYnV0dG9uLmNhbmNlbDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicHJvY2VlZFdpdGhTZWxlY3RlZFRhcmdldChmYWxzZSlcIiBjbGFzcz1cInByaW1hcnlcIlxuICAgICAgICB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5jaG9vc2Uuc2luZ2xlPC9idXR0b24+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJwcm9jZWVkV2l0aFNlbGVjdGVkVGFyZ2V0KHRydWUpXCIgY2xhc3M9XCJwcmltYXJ5XCIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuY2hvb3NlLm11bHRpPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gaW52YWxpZCBpbnB1dCBkaWFsb2cgLS0+XG4gIDxkaXYgY2xhc3M9XCJiYXRjaC1kaWFsb2dcIiAqbmdJZj1cImhhc1ZhbGlkVXBsb2FkVGFyZ2V0cyAmJiBpbnZhbGlkSW5wdXRcIj5cblxuICAgIDxoMiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5pbnZhbGlkLnRpdGxlPC9oMj5cbiAgICA8cCB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5pbnZhbGlkLm1lc3NhZ2U8L3A+XG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5jbG9zZTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIG5vIHVwbG9hZCB0YXJnZXRzIGF2YWlsYWJsZSAtLT5cbiAgPGRpdiBjbGFzcz1cImJhdGNoLWRpYWxvZ1wiICpuZ0lmPVwiIWhhc1ZhbGlkVXBsb2FkVGFyZ2V0c1wiPlxuXG4gICAgPGgyIHRyYW5zbGF0ZT5lby51cGxvYWQuZ2xvYmFsLm5vdGFyZ2V0LnRpdGxlPC9oMj5cbiAgICA8cCB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5ub3RhcmdldC5tZXNzYWdlPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuY2xvc2U8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRzXCIgKm5nSWY9XCJoYXNWYWxpZFVwbG9hZFRhcmdldHMgJiYgIWludmFsaWRJbnB1dCAmJiAhc2VsZWN0ZWRVcGxvYWRUYXJnZXQgJiYgIWlzVXBsb2FkaW5nXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgPCEtLSBsaXN0IG9mIGF2YWlsYWJsZSB1cGxvYWQgdGFyZ2V0cyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YXJnZXRzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YXJnZXQtbGlzdFwiPlxuICAgICAgICAgIEBmb3IgKHRhcmdldFR5cGUgb2YgdGFyZ2V0VHlwZXM7IHRyYWNrIHRhcmdldFR5cGUudHlwZSkge1xuICAgICAgICAgICAgQGZvciAodCBvZiB2YWxpZFVwbG9hZFRhcmdldHM7IHRyYWNrIHQuaWQpIHtcbiAgICAgICAgICAgICAgQGlmICh0LnR5cGUgPT09IHRhcmdldFR5cGUudHlwZSkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1cGxvYWRUYXJnZXRUZW1wbGF0ZTsgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU3JjOiB0YXJnZXRUeXBlLmljb25TcmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldENsYXNzOiB0YXJnZXRUeXBlLnRhcmdldENsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0YXJnZXRUeXBlLnR5cGUgPT09ICdjdXN0b20nID8gdC5uYW1lIDogdGFyZ2V0VHlwZS50eXBlID09PSAnY29udGV4dHRyZWUnID8gKHRhcmdldFR5cGUubmFtZSB8IHRyYW5zbGF0ZSA6IHtmb2xkZXI6IHQuc3ViRm9sZGVyLm5hbWV9KSA6IHRhcmdldFR5cGUudHlwZSA9PT0gJ2NvbnRleHQnID8gKHRhcmdldFR5cGUubmFtZSB8IHRyYW5zbGF0ZSA6IHtjb250ZXh0OiB0LnJlZmVyZW5jZU9iamVjdC50eXBlLmxhYmVsfSkgOiAodGFyZ2V0VHlwZS5uYW1lIHwgdHJhbnNsYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRhcmdldFR5cGUudHlwZSA9PT0gJ2N1c3RvbScgfHwgdGFyZ2V0VHlwZS50eXBlID09PSAnb2JqZWN0JyB8fCB0YXJnZXRUeXBlLnR5cGUgPT09ICdjb250ZXh0JyA/IHQuZGVzY3JpcHRpb24gOiAodGFyZ2V0VHlwZS5kZXNjcmlwdGlvbiB8IHRyYW5zbGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldHM6IHRcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSB1cGxvYWQgdG8gZmF2b3JpdGUgLS0+XG4gICAgICBAaWYgKGZvbGRlckZhdm9yaXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uIFtzZWxlY3RlZF09XCJmYXZvcml0ZXNBY2NTZWxlY3RlZFwiIFtoZWFkZXJdPVwiJ2VvLnVwbG9hZC5nbG9iYWwuY29udGV4dC5mYXZvcml0ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0Q2hhbmdlKT1cIm9uRmF2b3JpdGVUb2dnbGUoJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YXJnZXRzXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhcmdldC1saXN0XCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgICAgICBAZm9yICh0IG9mIHZhbGlkVXBsb2FkVGFyZ2V0czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgQGlmICh0LnR5cGUgPT09ICdmYXZvcml0ZScpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtdGFyZ2V0XCIgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZW50ZXIpPVwicHJvY2VlZFdpdGhVcGxvYWQodClcIiAoY2xpY2spPVwicHJvY2VlZFdpdGhVcGxvYWQodClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZW8taWNvbiBbaWNvbklkXT1cInQuaWNvbklkXCI+PC9lby1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtdGFyZ2V0LWZhdm9yaXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPnt7dC50aXRsZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7dC5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZihsYXN0T3BlbmVkRm9sZGVyLmxlbmd0aCA+IDApe1xuICAgICAgICA8ZW8tc2ltcGxlLWFjY29yZGlvbiBbc2VsZWN0ZWRdPVwiYWdlbnRBY2NTZWxlY3RlZFwiIFtoZWFkZXJdPVwiJ2VvLnVwbG9hZC5nbG9iYWwuY29udGV4dC5hZ2VudCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0Q2hhbmdlKT1cIm9uQWdlbnRUb2dnbGUoJGV2ZW50KVwiPlxuICAgICAgICAgIDwhLS0gdXBsb2FkIHRvIGxhc3Qgb3BlbmVkIGZvbGRlciAgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhcmdldHNcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0LWxpc3RcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICAgIEBmb3IgKHQgb2YgdmFsaWRVcGxvYWRUYXJnZXRzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBAaWYgKHQudHlwZSA9PT0gJ2FnZW50Jykge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC10YXJnZXRcIiB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJwcm9jZWVkV2l0aFVwbG9hZCh0KVwiIChjbGljayk9XCJwcm9jZWVkV2l0aFVwbG9hZCh0KVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxlby1pY29uIFtpY29uSWRdPVwidC5pY29uSWRcIj48L2VvLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC10YXJnZXQtYWdlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3t0Py50aXRsZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7dD8uZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9lby1zaW1wbGUtYWNjb3JkaW9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDwhLS0gbGlzdCBvZiBmaWxlcyBkcmFnZ2VkIHRvIHRoZSBjb21wb25lbnQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImZpbGVzXCIgW25nQ2xhc3NdPVwie2ZpbGU6IHF1ZXVlLmxlbmd0aCwgaW52YWxpZDogaW52YWxpZElucHV0LCB1cGxvYWRpbmc6IGlzVXBsb2FkaW5nfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpbGVzLWxpc3RcIj5cbiAgICAgICAgQGZvciAoaSBvZiBxdWV1ZTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbVwiPlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3tpLm5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+PHNwYW4gY2xhc3M9XCJzaXplXCI+e3tpLnNpemUgfCBmaWxlU2l6ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjLXRleHRcIj4mbmJzcDt7e2kudHlwZX19PC9zcGFuPjwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gd2hpdGVcIiAoY2xpY2spPVwicmVtb3ZlRmlsZUl0ZW0oaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBAaWYgKGlzVXBsb2FkaW5nKSB7XG4gICAgPGRpdiBjbGFzcz1cImxvYWRpbmdcIj5cbiAgICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiJ2xhcmdlJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICN1cGxvYWRUYXJnZXRUZW1wbGF0ZSBsZXQtaWNvblNyYz1cImljb25TcmNcIiBsZXQtdGFyZ2V0Q2xhc3M9XCJ0YXJnZXRDbGFzc1wiIGxldC1uYW1lPVwibmFtZVwiXG4gIGxldC1kZXNjcmlwdGlvbj1cImRlc2NyaXB0aW9uXCIgbGV0LXRhcmdldHM9XCJ0YXJnZXRzXCI+XG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWQtdGFyZ2V0XCIgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZW50ZXIpPVwicHJvY2VlZFdpdGhVcGxvYWQodGFyZ2V0cylcIiAoY2xpY2spPVwicHJvY2VlZFdpdGhVcGxvYWQodGFyZ2V0cylcIj5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiaWNvblNyY1wiPjwvZW8taWNvbj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwidGFyZ2V0Q2xhc3NcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57eyBuYW1lIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7IGRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -25,10 +25,10 @@ export class PreventDoubleClickDirective {
|
|
|
25
25
|
event.stopPropagation();
|
|
26
26
|
this.clicks.next(event);
|
|
27
27
|
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
29
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PreventDoubleClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: PreventDoubleClickDirective, selector: "[eoPreventDoubleClick]", inputs: { debounceTime: "debounceTime" }, outputs: { debounceClick: "debounceClick" }, host: { listeners: { "click": "clickEvent($event)", "keydown.enter": "onkeyDown($event)" } }, ngImport: i0 }); }
|
|
30
30
|
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PreventDoubleClickDirective, decorators: [{
|
|
32
32
|
type: Directive,
|
|
33
33
|
args: [{
|
|
34
34
|
selector: '[eoPreventDoubleClick]'
|
|
@@ -54,10 +54,10 @@ export class TrapFocusDirective {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
58
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TrapFocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
58
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: TrapFocusDirective, selector: "[eoTrapFocus]", host: { listeners: { "keydown": "isArrowUpOrDownPressed($event)" } }, ngImport: i0 }); }
|
|
59
59
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TrapFocusDirective, decorators: [{
|
|
61
61
|
type: Directive,
|
|
62
62
|
args: [{
|
|
63
63
|
selector: '[eoTrapFocus]'
|
|
@@ -76,10 +76,10 @@ export class UtilitiesService {
|
|
|
76
76
|
uniqBy,
|
|
77
77
|
values,
|
|
78
78
|
}; }
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
80
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UtilitiesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
80
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UtilitiesService }); }
|
|
81
81
|
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UtilitiesService, decorators: [{
|
|
83
83
|
type: Injectable
|
|
84
84
|
}] });
|
|
85
85
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRzNkLE1BQU0sT0FBTyxnQkFBZ0I7SUFDcEIsTUFBTSxDQUFDLE1BQU07UUFDbEIsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHO1FBQ3ZCLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQixDQUFDO1FBRUQsT0FBTyxPQUFPLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyRSxDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHO1FBQzlCLE9BQU8sT0FBTyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCx3Q0FBd0M7YUFDMUIsV0FBTSxHQXlEaEI7UUFDRixNQUFNO1FBQ04sSUFBSTtRQUNKLFNBQVM7UUFDVCxVQUFVO1FBQ1YsSUFBSTtRQUNKLEtBQUs7UUFDTCxLQUFLO1FBQ0wsU0FBUztRQUNULE1BQU07UUFDTixRQUFRO1FBQ1IsSUFBSTtRQUNKLFFBQVE7UUFDUixPQUFPO1FBQ1AsTUFBTTtRQUNOLEtBQUs7UUFDTCxNQUFNO1FBQ04sTUFBTTtRQUNOLElBQUk7UUFDSixTQUFTO1FBQ1QsT0FBTztRQUNQLEtBQUs7UUFDTCxPQUFPO1FBQ1AsS0FBSztRQUNMLE9BQU87UUFDUCxNQUFNO1FBQ04sR0FBRztRQUNILE9BQU87UUFDUCxHQUFHO1FBQ0gsUUFBUTtRQUNSLE9BQU87UUFDUCxPQUFPO1FBQ1AsTUFBTTtRQUNOLE9BQU87UUFDUCxLQUFLO1FBQ0wsUUFBUTtRQUNSLFFBQVE7UUFDUixRQUFRO1FBQ1IsSUFBSTtRQUNKLElBQUk7UUFDSixHQUFHO1FBQ0gsT0FBTztRQUNQLE1BQU07UUFDTixNQUFNO1FBQ04sT0FBTztRQUNQLE9BQU87UUFDUCxLQUFLO1FBQ0wsR0FBRztRQUNILEtBQUs7UUFDTCxJQUFJO1FBQ0osTUFBTTtRQUNOLEtBQUs7UUFDTCxVQUFVO1FBQ1YsR0FBRztRQUNILElBQUk7UUFDSixNQUFNO1FBQ04sTUFBTTtLQUNQLEFBbEhtQixDQWtIbEI7OEdBeElTLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzaWduLCBiaW5kLCBjYW1lbENhc2UsIGNhcGl0YWxpemUsIGNlaWwsIGNodW5rLCBjbG9uZSwgY2xvbmVEZWVwLCBjb25jYXQsIGRlYm91bmNlLCBlYWNoLCBlbmRzV2l0aCwgZW50cmllcywgZXNjYXBlLCBldmVyeSwgZXh0ZW5kLCBmaWx0ZXIsIGZpbmQsIGZpbmRJbmRleCwgZmluZEtleSwgZmlyc3QsIGZsYXRNYXAsIGZsb29yLCBmb3JFYWNoLCBmb3JPd24sIGdldCwgZ3JvdXBCeSwgaGFzLCBpbmNsdWRlcywgaW5kZXhPZiwgaXNBcnJheSwgaXNEYXRlLCBpc0VtcHR5LCBpc05hTiwgaXNOdW1iZXIsIGlzT2JqZWN0LCBpc1N0cmluZywgam9pbiwga2V5cywgbWFwLCBvcmRlckJ5LCByZWR1Y2UsIHJlbW92ZSwgcmVwbGFjZSwgcmV2ZXJzZSwgcm91bmQsIHNldCwgc2xpY2UsIHNvbWUsIHNvcnRCeSwgc3BsaXQsIHN0YXJ0c1dpdGgsIHN1bSwgdGFrZSwgdW5pcUJ5LCB2YWx1ZXMgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVXRpbGl0aWVzU2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgaXNFZGdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIW5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdFZGdlJykgPiAtMTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNFbXB0eShvYmopIHtcbiAgICBpZiAob2JqID09IG51bGwgfHwgb2JqID09PSAnJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmogPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gaXNOYU4ob2JqKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ2Jvb2xlYW4nID8gZmFsc2UgOiAhT2JqZWN0LmtleXMob2JqKS5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzRW1wdHlPckZhbHNlKHZhbCkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsID09PSAnYm9vbGVhbicgPyAhdmFsIDogVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHZhbCk7XG4gIH1cblxuICAvLyBtaW5pbWFsIHNlbGVjdGlvbiBvZiBsb2Rhc2ggZnVuY3Rpb25zXG4gIHB1YmxpYyBzdGF0aWMgbG9kYXNoOiB7XG4gICAgYXNzaWduOiB0eXBlb2YgYXNzaWduLFxuICAgIGJpbmQ6IHR5cGVvZiBiaW5kLFxuICAgIGNhbWVsQ2FzZTogdHlwZW9mIGNhbWVsQ2FzZSxcbiAgICBjYXBpdGFsaXplOiB0eXBlb2YgY2FwaXRhbGl6ZSxcbiAgICBjZWlsOiB0eXBlb2YgY2VpbCxcbiAgICBjaHVuazogdHlwZW9mIGNodW5rLFxuICAgIGNsb25lOiB0eXBlb2YgY2xvbmUsXG4gICAgY2xvbmVEZWVwOiB0eXBlb2YgY2xvbmVEZWVwLFxuICAgIGNvbmNhdDogdHlwZW9mIGNvbmNhdCxcbiAgICBkZWJvdW5jZTogdHlwZW9mIGRlYm91bmNlLFxuICAgIGVhY2g6IHR5cGVvZiBlYWNoLFxuICAgIGVuZHNXaXRoOiB0eXBlb2YgZW5kc1dpdGgsXG4gICAgZW50cmllczogdHlwZW9mIGVudHJpZXMsXG4gICAgZXNjYXBlOiB0eXBlb2YgZXNjYXBlLFxuICAgIGV2ZXJ5OiB0eXBlb2YgZXZlcnksXG4gICAgZXh0ZW5kOiB0eXBlb2YgZXh0ZW5kLFxuICAgIGZpbHRlcjogdHlwZW9mIGZpbHRlcixcbiAgICBmaW5kOiB0eXBlb2YgZmluZCxcbiAgICBmaW5kSW5kZXg6IHR5cGVvZiBmaW5kSW5kZXgsXG4gICAgZmluZEtleTogdHlwZW9mIGZpbmRLZXksXG4gICAgZmlyc3Q6IHR5cGVvZiBmaXJzdCxcbiAgICBmbGF0TWFwOiB0eXBlb2YgZmxhdE1hcCxcbiAgICBmbG9vcjogdHlwZW9mIGZsb29yLFxuICAgIGZvckVhY2g6IHR5cGVvZiBmb3JFYWNoLFxuICAgIGZvck93bjogdHlwZW9mIGZvck93bixcbiAgICBnZXQ6IHR5cGVvZiBnZXQsXG4gICAgZ3JvdXBCeTogdHlwZW9mIGdyb3VwQnksXG4gICAgaGFzOiB0eXBlb2YgaGFzLFxuICAgIGluY2x1ZGVzOiB0eXBlb2YgaW5jbHVkZXMsXG4gICAgaW5kZXhPZjogdHlwZW9mIGluZGV4T2YsXG4gICAgaXNBcnJheTogdHlwZW9mIGlzQXJyYXksXG4gICAgaXNEYXRlOiB0eXBlb2YgaXNEYXRlLFxuICAgIGlzRW1wdHk6IHR5cGVvZiBpc0VtcHR5LFxuICAgIGlzTmFOOiB0eXBlb2YgaXNOYU4sXG4gICAgaXNOdW1iZXI6IHR5cGVvZiBpc051bWJlcixcbiAgICBpc09iamVjdDogdHlwZW9mIGlzT2JqZWN0LFxuICAgIGlzU3RyaW5nOiB0eXBlb2YgaXNTdHJpbmcsXG4gICAgam9pbjogdHlwZW9mIGpvaW4sXG4gICAga2V5czogdHlwZW9mIGtleXMsXG4gICAgbWFwOiB0eXBlb2YgbWFwLFxuICAgIG9yZGVyQnk6IHR5cGVvZiBvcmRlckJ5LFxuICAgIHJlZHVjZTogdHlwZW9mIHJlZHVjZSxcbiAgICByZW1vdmU6IHR5cGVvZiByZW1vdmUsXG4gICAgcmVwbGFjZTogdHlwZW9mIHJlcGxhY2UsXG4gICAgcmV2ZXJzZTogdHlwZW9mIHJldmVyc2UsXG4gICAgcm91bmQ6IHR5cGVvZiByb3VuZCxcbiAgICBzZXQ6IHR5cGVvZiBzZXQsXG4gICAgc2xpY2U6IHR5cGVvZiBzbGljZSxcbiAgICBzb21lOiB0eXBlb2Ygc29tZSxcbiAgICBzb3J0Qnk6IHR5cGVvZiBzb3J0QnksXG4gICAgc3BsaXQ6IHR5cGVvZiBzcGxpdCxcbiAgICBzdGFydHNXaXRoOiB0eXBlb2Ygc3RhcnRzV2l0aCxcbiAgICBzdW06IHR5cGVvZiBzdW0sXG4gICAgdGFrZTogdHlwZW9mIHRha2UsXG4gICAgdW5pcUJ5OiB0eXBlb2YgdW5pcUJ5LFxuICAgIHZhbHVlczogdHlwZW9mIHZhbHVlc1xuICB9ID0ge1xuICAgIGFzc2lnbixcbiAgICBiaW5kLFxuICAgIGNhbWVsQ2FzZSxcbiAgICBjYXBpdGFsaXplLFxuICAgIGNlaWwsXG4gICAgY2h1bmssXG4gICAgY2xvbmUsXG4gICAgY2xvbmVEZWVwLFxuICAgIGNvbmNhdCxcbiAgICBkZWJvdW5jZSxcbiAgICBlYWNoLFxuICAgIGVuZHNXaXRoLFxuICAgIGVudHJpZXMsXG4gICAgZXNjYXBlLFxuICAgIGV2ZXJ5LFxuICAgIGV4dGVuZCxcbiAgICBmaWx0ZXIsXG4gICAgZmluZCxcbiAgICBmaW5kSW5kZXgsXG4gICAgZmluZEtleSxcbiAgICBmaXJzdCxcbiAgICBmbGF0TWFwLFxuICAgIGZsb29yLFxuICAgIGZvckVhY2gsXG4gICAgZm9yT3duLFxuICAgIGdldCxcbiAgICBncm91cEJ5LFxuICAgIGhhcyxcbiAgICBpbmNsdWRlcyxcbiAgICBpbmRleE9mLFxuICAgIGlzQXJyYXksXG4gICAgaXNEYXRlLFxuICAgIGlzRW1wdHksXG4gICAgaXNOYU4sXG4gICAgaXNOdW1iZXIsXG4gICAgaXNPYmplY3QsXG4gICAgaXNTdHJpbmcsXG4gICAgam9pbixcbiAgICBrZXlzLFxuICAgIG1hcCxcbiAgICBvcmRlckJ5LFxuICAgIHJlZHVjZSxcbiAgICByZW1vdmUsXG4gICAgcmVwbGFjZSxcbiAgICByZXZlcnNlLFxuICAgIHJvdW5kLFxuICAgIHNldCxcbiAgICBzbGljZSxcbiAgICBzb21lLFxuICAgIHNvcnRCeSxcbiAgICBzcGxpdCxcbiAgICBzdGFydHNXaXRoLFxuICAgIHN1bSxcbiAgICB0YWtlLFxuICAgIHVuaXFCeSxcbiAgICB2YWx1ZXMsXG4gIH07XG59XG4iXX0=
|
|
@@ -36,10 +36,10 @@ export class OrderByPipe {
|
|
|
36
36
|
}
|
|
37
37
|
return object;
|
|
38
38
|
}
|
|
39
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
40
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: OrderByPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
40
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: OrderByPipe, name: "orderBy" }); }
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: OrderByPipe, decorators: [{
|
|
43
43
|
type: Pipe,
|
|
44
44
|
args: [{
|
|
45
45
|
name: 'orderBy'
|
|
@@ -4,11 +4,11 @@ import { UtilitiesService } from './services/utilities.service';
|
|
|
4
4
|
import { OrderByPipe } from './sortable/order-by.pipe';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class UtilModule {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0
|
|
9
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UtilModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: UtilModule, declarations: [OrderByPipe], imports: [CommonModule], exports: [OrderByPipe] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UtilModule, providers: [UtilitiesService], imports: [CommonModule] }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UtilModule, decorators: [{
|
|
12
12
|
type: NgModule,
|
|
13
13
|
args: [{
|
|
14
14
|
imports: [
|
|
@@ -181,10 +181,10 @@ export class AgentService {
|
|
|
181
181
|
getHost() {
|
|
182
182
|
return window.location.origin;
|
|
183
183
|
}
|
|
184
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
185
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0
|
|
184
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AgentService, deps: [{ token: CORE_CONFIG }, { token: i1.Logger }, { token: i2.HttpClient }, { token: i1.SystemService }, { token: i1.BackendService }, { token: i1.UserService }, { token: i1.TranslateService }, { token: i1.NotificationsService }, { token: i1.AppCacheService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
185
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AgentService }); }
|
|
186
186
|
}
|
|
187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
187
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AgentService, decorators: [{
|
|
188
188
|
type: Injectable
|
|
189
189
|
}], ctorParameters: () => [{ type: i1.CoreConfig, decorators: [{
|
|
190
190
|
type: Inject,
|
|
@@ -495,10 +495,10 @@ export class GridService {
|
|
|
495
495
|
-1);
|
|
496
496
|
};
|
|
497
497
|
}
|
|
498
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
499
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0
|
|
498
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: GridService, deps: [{ token: i1.TranslateService }, { token: i2.Router }, { token: i3.AppSearchService }, { token: i1.SystemService }, { token: i1.BackendService }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
499
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: GridService }); }
|
|
500
500
|
}
|
|
501
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
501
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: GridService, decorators: [{
|
|
502
502
|
type: Injectable
|
|
503
503
|
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.Router }, { type: i3.AppSearchService }, { type: i1.SystemService }, { type: i1.BackendService }, { type: i1.UserService }] });
|
|
504
504
|
export class CellRenderer {
|
|
@@ -288,10 +288,10 @@ export class PluginsService {
|
|
|
288
288
|
handleError(error) {
|
|
289
289
|
return Promise.reject(error.message || error);
|
|
290
290
|
}
|
|
291
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
292
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0
|
|
291
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PluginsService, deps: [{ token: i1.BackendService }, { token: i1.NotificationsService }, { token: i1.ClipboardService }, { token: i1.Logger }, { token: i1.TranslateService }, { token: i1.DmsService }, { token: i2.Router }, { token: i3.AgentService }, { token: i1.EventService }, { token: i1.UserService }, { token: i0.ApplicationRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
292
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PluginsService, providedIn: 'root' }); }
|
|
293
293
|
}
|
|
294
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
294
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PluginsService, decorators: [{
|
|
295
295
|
type: Injectable,
|
|
296
296
|
args: [{
|
|
297
297
|
providedIn: 'root'
|