@eo-sdk/client 10.0.0-beta.4 → 10.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/eo-client/about-state/about-state.component.d.ts +0 -5
- package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/dashboard.component.d.ts +25 -33
- package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts +19 -0
- package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.d.ts +24 -0
- package/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts +20 -0
- package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.d.ts +19 -0
- package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.d.ts +4 -0
- package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts +25 -0
- package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.d.ts +20 -0
- package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.d.ts +4 -0
- package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts +28 -0
- package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts +44 -0
- package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts.map +1 -0
- package/app/eo-client/eo-client.module.d.ts +24 -13
- package/app/eo-client/eo-client.module.d.ts.map +1 -1
- package/app/eo-client/favorite-state/favorite-state.component.d.ts +7 -8
- package/app/eo-client/favorite-state/favorite-state.component.d.ts.map +1 -1
- package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts +8 -10
- package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
- package/app/eo-client/login/login.component.d.ts +12 -5
- package/app/eo-client/login/login.component.d.ts.map +1 -1
- package/app/eo-client/notifications-state/notifications-state.component.d.ts +9 -11
- package/app/eo-client/notifications-state/notifications-state.component.d.ts.map +1 -1
- package/app/eo-client/object-state/object-state/object-state.component.d.ts +10 -11
- package/app/eo-client/object-state/object-state/object-state.component.d.ts.map +1 -1
- package/app/eo-client/prepare-state/prepare-state/prepare-state.component.d.ts +8 -9
- package/app/eo-client/prepare-state/prepare-state/prepare-state.component.d.ts.map +1 -1
- package/app/eo-client/process-state/process-state.component.d.ts +8 -10
- package/app/eo-client/process-state/process-state.component.d.ts.map +1 -1
- package/app/eo-client/recyclebin-state/recyclebin-state.component.d.ts +5 -6
- package/app/eo-client/recyclebin-state/recyclebin-state.component.d.ts.map +1 -1
- package/app/eo-client/result-state/result-state.component.d.ts +3 -5
- package/app/eo-client/result-state/result-state.component.d.ts.map +1 -1
- package/app/eo-client/settings/settings.component.d.ts +6 -7
- package/app/eo-client/settings/settings.component.d.ts.map +1 -1
- package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts +8 -10
- package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts.map +1 -1
- package/app/eo-client/version-state/version-state.component.d.ts +5 -7
- package/app/eo-client/version-state/version-state.component.d.ts.map +1 -1
- package/app/eo-framework/accordion/accordion.module.d.ts +1 -2
- package/app/eo-framework/accordion/accordion.module.d.ts.map +1 -1
- package/app/eo-framework/actions/action-menu/action-menu.component.d.ts +4 -5
- package/app/eo-framework/actions/action-menu/action-menu.component.d.ts.map +1 -1
- package/app/eo-framework/actions/action.module.d.ts +11 -10
- package/app/eo-framework/actions/action.module.d.ts.map +1 -1
- package/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.d.ts +3 -2
- package/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.d.ts.map +1 -1
- package/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.d.ts +9 -13
- package/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +3 -4
- package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.d.ts +1 -2
- package/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-shell.module.d.ts +18 -20
- package/app/eo-framework/app-shell/app-shell.module.d.ts.map +1 -1
- package/app/eo-framework/app-shell/index.d.ts +0 -1
- package/app/eo-framework/app-shell/index.d.ts.map +1 -1
- package/app/eo-framework/eo-framework.module.d.ts +37 -38
- package/app/eo-framework/eo-framework.module.d.ts.map +1 -1
- package/app/eo-framework/form-elements/date/date.component.d.ts +0 -2
- package/app/eo-framework/form-elements/date/date.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/form-elements.module.d.ts +9 -18
- package/app/eo-framework/form-elements/form-elements.module.d.ts.map +1 -1
- package/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.d.ts +1 -0
- package/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.d.ts.map +1 -1
- package/app/eo-framework/grid/filters/datetime-filter.component.d.ts +0 -2
- package/app/eo-framework/grid/filters/datetime-filter.component.d.ts.map +1 -1
- package/app/eo-framework/grid/grid.component.d.ts +7 -8
- package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
- package/app/eo-framework/grid/grid.module.d.ts +7 -8
- package/app/eo-framework/grid/grid.module.d.ts.map +1 -1
- package/app/eo-framework/inbox-details/inbox-details.component.d.ts +1 -2
- package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
- package/app/eo-framework/index.d.ts +0 -4
- package/app/eo-framework/index.d.ts.map +1 -1
- package/app/eo-framework/media/media.component.d.ts +4 -3
- package/app/eo-framework/media/media.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/favorite-icon/favorite-icon.component.d.ts +2 -3
- package/app/eo-framework/object-details/favorite-icon/favorite-icon.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-details.component.d.ts +14 -6
- package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-details.module.d.ts +2 -1
- package/app/eo-framework/object-details/object-details.module.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-history/object-history.component.d.ts +2 -3
- package/app/eo-framework/object-details/object-history/object-history.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.d.ts +10 -0
- package/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.d.ts.map +1 -0
- package/app/eo-framework/object-form/object-form/form-element/form-element.component.d.ts +8 -3
- package/app/eo-framework/object-form/object-form/form-element/form-element.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +1 -2
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.d.ts +7 -2
- package/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts +28 -11
- 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/object-form-script/object-form-script.service.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/object-form.component.d.ts +1 -2
- package/app/eo-framework/object-form/object-form/object-form.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/object-form/object-form.module.d.ts +9 -9
- package/app/eo-framework/object-state-details/object-state-details.component.d.ts +1 -2
- package/app/eo-framework/object-state-details/object-state-details.component.d.ts.map +1 -1
- package/app/eo-framework/prepare-details/prepare-details.component.d.ts +8 -9
- package/app/eo-framework/prepare-details/prepare-details.component.d.ts.map +1 -1
- package/app/eo-framework/process/details/process-details.component.d.ts +7 -8
- package/app/eo-framework/process/details/process-details.component.d.ts.map +1 -1
- package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts +9 -11
- package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts.map +1 -1
- package/app/eo-framework/result-list/result-list.component.d.ts +5 -6
- package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
- package/app/eo-framework/settings/settings.module.d.ts +3 -4
- package/app/eo-framework/settings/settings.module.d.ts.map +1 -1
- package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts +4 -5
- package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts.map +1 -1
- package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +2 -3
- package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts.map +1 -1
- package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts +1 -0
- package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
- package/app/eo-framework/ui/outside-click/outside-click.directive.d.ts +1 -2
- package/app/eo-framework/ui/outside-click/outside-click.directive.d.ts.map +1 -1
- package/app/eo-framework/ui/signature-tab/signature-tab.component.d.ts +0 -1
- package/app/eo-framework/ui/signature-tab/signature-tab.component.d.ts.map +1 -1
- package/app/eo-framework/util/index.d.ts +0 -1
- package/app/eo-framework/util/index.d.ts.map +1 -1
- package/app/eo-framework/util/util.module.d.ts +0 -1
- package/app/eo-framework/util/util.module.d.ts.map +1 -1
- package/app/eo-framework-core/layout/layout.service.d.ts +2 -26
- package/app/eo-framework-core/layout/layout.service.d.ts.map +1 -1
- package/app/eo-framework-core/pipes/locale-number.pipe.d.ts +2 -3
- package/app/eo-framework-core/pipes/locale-number.pipe.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +32 -2
- package/assets/_default/i18n/en.json +37 -7
- package/assets/_default/svg/ic_add_document_file_as_new_version.svg +1 -0
- package/assets/_default/svg/ic_create_document.svg +1 -0
- package/assets/_default/svg/ic_create_document_in_folder.svg +1 -0
- package/assets/_default/svg/ic_noUrl.svg +1 -0
- package/assets/dashboard.json +47 -0
- package/esm2020/app/eo-client/about-state/about-state.component.mjs +5 -11
- package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +143 -98
- package/esm2020/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +59 -0
- package/esm2020/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +39 -0
- package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +53 -0
- package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +42 -0
- package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.mjs +2 -0
- package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +65 -0
- package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +43 -0
- package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.mjs +2 -0
- package/esm2020/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +117 -0
- package/esm2020/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +115 -0
- package/esm2020/app/eo-client/eo-client.module.mjs +44 -6
- package/esm2020/app/eo-client/favorite-state/favorite-state.component.mjs +15 -14
- package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +14 -11
- package/esm2020/app/eo-client/login/login.component.mjs +33 -13
- package/esm2020/app/eo-client/notifications-state/notifications-state.component.mjs +16 -12
- package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +27 -23
- package/esm2020/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +12 -9
- package/esm2020/app/eo-client/process-state/process-state.component.mjs +6 -9
- package/esm2020/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +14 -11
- package/esm2020/app/eo-client/result-state/result-state.component.mjs +11 -8
- package/esm2020/app/eo-client/settings/settings.component.mjs +16 -12
- package/esm2020/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +16 -13
- package/esm2020/app/eo-client/version-state/version-state.component.mjs +13 -10
- package/esm2020/app/eo-framework/accordion/accordion.module.mjs +3 -7
- package/esm2020/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +3 -3
- package/esm2020/app/eo-framework/actions/action-menu/action-menu.component.mjs +15 -11
- package/esm2020/app/eo-framework/actions/action.module.mjs +5 -2
- package/esm2020/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +5 -7
- package/esm2020/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +3 -3
- package/esm2020/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +2 -2
- package/esm2020/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +43 -48
- package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +2 -2
- package/esm2020/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +2 -2
- package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +16 -14
- package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +8 -3
- package/esm2020/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +4 -6
- package/esm2020/app/eo-framework/app-shell/app-shell.module.mjs +1 -8
- package/esm2020/app/eo-framework/app-shell/index.mjs +1 -2
- package/esm2020/app/eo-framework/eo-framework.module.mjs +35 -43
- package/esm2020/app/eo-framework/form-elements/date/date.component.mjs +2 -12
- package/esm2020/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +3 -3
- package/esm2020/app/eo-framework/form-elements/form-elements.module.mjs +28 -37
- package/esm2020/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
- package/esm2020/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +10 -6
- package/esm2020/app/eo-framework/form-elements/organization/organization.component.mjs +3 -3
- package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +5 -6
- package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +2 -2
- package/esm2020/app/eo-framework/frame/frame.component.mjs +2 -2
- package/esm2020/app/eo-framework/grid/filters/datetime-filter.component.mjs +2 -6
- package/esm2020/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
- package/esm2020/app/eo-framework/grid/filters/organization-filter.component.mjs +3 -3
- package/esm2020/app/eo-framework/grid/grid.component.mjs +16 -12
- package/esm2020/app/eo-framework/grid/grid.module.mjs +1 -5
- package/esm2020/app/eo-framework/inbox-details/inbox-details.component.mjs +16 -11
- package/esm2020/app/eo-framework/index.mjs +1 -5
- package/esm2020/app/eo-framework/media/media.component.mjs +31 -12
- package/esm2020/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +13 -10
- package/esm2020/app/eo-framework/object-details/object-details.component.mjs +64 -38
- package/esm2020/app/eo-framework/object-details/object-details.module.mjs +7 -3
- package/esm2020/app/eo-framework/object-details/object-history/object-history.component.mjs +13 -9
- package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.mjs +18 -0
- package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +20 -6
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +21 -22
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.mjs +1 -1
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +94 -32
- package/esm2020/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +6 -4
- package/esm2020/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +2 -3
- package/esm2020/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -5
- package/esm2020/app/eo-framework/object-form/object-form-helper.service.mjs +2 -2
- package/esm2020/app/eo-framework/object-form/object-form.module.mjs +9 -10
- package/esm2020/app/eo-framework/object-state-details/object-state-details.component.mjs +15 -13
- package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +16 -14
- package/esm2020/app/eo-framework/process/details/process-details.component.mjs +16 -12
- package/esm2020/app/eo-framework/process-form/process-form.component.mjs +2 -2
- package/esm2020/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +25 -17
- package/esm2020/app/eo-framework/result-list/result-list.component.mjs +21 -15
- package/esm2020/app/eo-framework/settings/settings.module.mjs +1 -5
- package/esm2020/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +17 -13
- package/esm2020/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +12 -8
- package/esm2020/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +2 -2
- package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +20 -12
- package/esm2020/app/eo-framework/ui/outside-click/outside-click.directive.mjs +11 -8
- package/esm2020/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -6
- package/esm2020/app/eo-framework/upload-overlay/upload-overlay.component.mjs +3 -3
- package/esm2020/app/eo-framework/util/index.mjs +1 -2
- package/esm2020/app/eo-framework/util/util.module.mjs +2 -3
- package/esm2020/app/eo-framework-core/layout/layout.service.mjs +61 -63
- package/esm2020/app/eo-framework-core/pipes/locale-number.pipe.mjs +11 -8
- package/esm2020/projects/eo-sdk/core/lib/eo-core.module.mjs +8 -8
- package/esm2020/projects/eo-sdk/core/lib/model/inbox-item.model.mjs +2 -6
- package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.service.mjs +24 -30
- package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.mjs +1 -1
- package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.mjs +8 -6
- package/esm2020/projects/eo-sdk/core/lib/service/config/config.service.mjs +1 -1
- package/esm2020/projects/eo-sdk/core/lib/service/dms/dms.service.mjs +14 -16
- package/esm2020/projects/eo-sdk/core/lib/service/prepare/prepare.service.mjs +15 -12
- package/esm2020/projects/eo-sdk/core/lib/service/signing/signing.service.mjs +12 -6
- package/esm2020/projects/eo-sdk/core/lib/service/system/system.service.mjs +2 -6
- package/esm2020/projects/eo-sdk/core/lib/service/user/user.service.mjs +11 -1
- package/esm2020/projects/eo-sdk/core/lib/util/utils.mjs +3 -3
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +1069 -1066
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2015/eo-sdk-client.mjs +14808 -15012
- package/fesm2015/eo-sdk-client.mjs.map +1 -1
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +1069 -1066
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2020/eo-sdk-client.mjs +16587 -16787
- package/fesm2020/eo-sdk-client.mjs.map +1 -1
- package/package.json +5 -5
- package/projects/eo-sdk/core/lib/eo-core.module.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/model/inbox-item.model.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts +14 -20
- package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts +4 -0
- package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts +3 -1
- package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/config/config.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +10 -8
- package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/prepare/prepare.service.d.ts +1 -0
- package/projects/eo-sdk/core/lib/service/prepare/prepare.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts +4 -1
- package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/system/system.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +6 -0
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/util/utils.d.ts +3 -4
- package/projects/eo-sdk/core/lib/util/utils.d.ts.map +1 -1
- package/scss/_eo-variables.scss +1 -0
- package/scss/_main.scss +1 -1
- package/scss/_mixins.scss +6 -6
- package/styles.css +2 -1
- package/app/eo-framework/app-shell/app-bar/app-layout/app-layout.component.d.ts +0 -24
- package/app/eo-framework/app-shell/app-bar/app-layout/app-layout.component.d.ts.map +0 -1
- package/app/eo-framework/split/index.d.ts +0 -5
- package/app/eo-framework/split/index.d.ts.map +0 -1
- package/app/eo-framework/split/split/split.component.d.ts +0 -83
- package/app/eo-framework/split/split/split.component.d.ts.map +0 -1
- package/app/eo-framework/split/split-area/split-area.component.d.ts +0 -37
- package/app/eo-framework/split/split-area/split-area.component.d.ts.map +0 -1
- package/app/eo-framework/split/split-gutter/split-gutter.directive.d.ts +0 -21
- package/app/eo-framework/split/split-gutter/split-gutter.directive.d.ts.map +0 -1
- package/app/eo-framework/split/split.module.d.ts +0 -12
- package/app/eo-framework/split/split.module.d.ts.map +0 -1
- package/app/eo-framework/undock-split/undock-split.component.d.ts +0 -28
- package/app/eo-framework/undock-split/undock-split.component.d.ts.map +0 -1
- package/app/eo-framework/undock-split/undock-split.service.d.ts +0 -43
- package/app/eo-framework/undock-split/undock-split.service.d.ts.map +0 -1
- package/app/eo-framework/undock-split/undock-state.interface.d.ts +0 -6
- package/app/eo-framework/undock-split/undock-state.interface.d.ts.map +0 -1
- package/app/eo-framework/util/unsubscribe/unsubscribe.component.d.ts +0 -11
- package/app/eo-framework/util/unsubscribe/unsubscribe.component.d.ts.map +0 -1
- package/esm2020/app/eo-framework/app-shell/app-bar/app-layout/app-layout.component.mjs +0 -67
- package/esm2020/app/eo-framework/split/index.mjs +0 -5
- package/esm2020/app/eo-framework/split/split/split.component.mjs +0 -373
- package/esm2020/app/eo-framework/split/split-area/split-area.component.mjs +0 -131
- package/esm2020/app/eo-framework/split/split-gutter/split-gutter.directive.mjs +0 -73
- package/esm2020/app/eo-framework/split/split.module.mjs +0 -28
- package/esm2020/app/eo-framework/undock-split/undock-split.component.mjs +0 -89
- package/esm2020/app/eo-framework/undock-split/undock-split.service.mjs +0 -135
- package/esm2020/app/eo-framework/undock-split/undock-state.interface.mjs +0 -2
- package/esm2020/app/eo-framework/util/unsubscribe/unsubscribe.component.mjs +0 -23
|
@@ -20,16 +20,13 @@ export class SignatureTabComponent {
|
|
|
20
20
|
this.user = user;
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
-
isUserAdmin() {
|
|
24
|
-
return this.user.roles.find(role => role.name === 'System-Admin-Role');
|
|
25
|
-
}
|
|
26
23
|
}
|
|
27
24
|
SignatureTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SignatureTabComponent, deps: [{ token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
-
SignatureTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: SignatureTabComponent, selector: "eo-signature-tab", inputs: { dmsObject: "dmsObject" }, ngImport: i0, template: "<ng-container *ngIf=\"dmsObject.data.yuvsigstatus_meta; else tplNoSignature\">\n\n <section class=\"info\">\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.status'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigstatus_meta.label}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigerror\">\n <div class=\"label\">{{'eo.object.signature-tab.label.error'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigerror}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.date'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigdate | localeDate: 'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requestdate'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreqdate | localeDate:'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requester'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigrequester_meta.title}} </div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailsubject\">\n <div class=\"label\">{{'eo.object.signature-tab.label.subject'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailsubject}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailbody\">\n <div class=\"label\">{{'eo.object.signature-tab.label.body'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailbody}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigcanceledby\">\n <div class=\"label\">{{'eo.object.signature-tab.label.canceledby'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigcanceledby_meta.title}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigreason\">\n <div class=\"label\">{{'eo.object.signature-tab.label.reason'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreason}}</div>\n </div>\n <div class=\"row\" *ngIf=\"
|
|
25
|
+
SignatureTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: SignatureTabComponent, selector: "eo-signature-tab", inputs: { dmsObject: "dmsObject" }, ngImport: i0, template: "<ng-container *ngIf=\"dmsObject.data.yuvsigstatus_meta; else tplNoSignature\">\n\n <section class=\"info\">\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.status'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigstatus_meta.label}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigerror\">\n <div class=\"label\">{{'eo.object.signature-tab.label.error'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigerror}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.date'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigdate | localeDate: 'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requestdate'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreqdate | localeDate:'eoShortDate'}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigrequester_meta?.title\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requester'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigrequester_meta.title}} </div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailsubject\">\n <div class=\"label\">{{'eo.object.signature-tab.label.subject'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailsubject}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailbody\">\n <div class=\"label\">{{'eo.object.signature-tab.label.body'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailbody}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigcanceledby\">\n <div class=\"label\">{{'eo.object.signature-tab.label.canceledby'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigcanceledby_meta.title}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigreason\">\n <div class=\"label\">{{'eo.object.signature-tab.label.reason'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreason}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigplatform\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatform'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigplatform}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigplatformid\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatformId'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigplatformid}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signers'|translate}}</div>\n <div class=\"value\">\n <div class=\"signer-container\" *ngFor=\"let s of dmsObject.data.yuvsigners\">\n <span class=\"circle\" [title]=\"'eo.object.signature-tab.order.tooltip' | translate\">{{s.yuvsignerorder}}</span>\n <div class=\"signer\">\n <div class=\"date\" *ngIf=\"s.yuvsignerdate\">{{s.yuvsignerdate | localeDate: 'eoShort'}}</div>\n <div class=\"name\" *ngIf=\"s.yuvsignername\">{{s.yuvsignername}}</div>\n <div class=\"email\" *ngIf=\"s.yuvsigneremail\">{{s.yuvsigneremail}}</div>\n <div class=\"state {{s.yuvsignerstatus}}\"><span *ngIf=\"s.yuvsignerstatus_meta?.label\">{{s.yuvsignerstatus_meta.label}}</span></div>\n <div class=\"reason\" *ngIf=\"s.yuvsignercomment\">{{s.yuvsignercomment}}</div>\n </div>\n\n </div>\n </div>\n </div>\n </section>\n</ng-container>\n<ng-template #tplNoSignature>\n <div class=\"signature-not-found\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_signature.svg', text:'eo.object.signature-tab.no-signatures'}\"></eo-error-message>\n </div>\n</ng-template>\n", styles: [":host{display:block;padding:var(--app-pane-padding);height:100%;box-sizing:border-box;overflow-y:auto}:host .row{display:flex;margin:0 calc(var(--app-pane-padding) / -4) 2px;line-height:1.5em}:host .row .label,:host .row .value{margin:calc(var(--app-pane-padding) / 4)}:host .row .label{display:inline-block;flex-basis:30%;flex-shrink:0;background-color:var(--color-primary-3);color:var(--color-white);padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 4);border-radius:2px;white-space:normal}:host .row .circle{display:inline-block;width:2em;height:2em;border-radius:50%;background-color:var(--color-primary-3);color:#fff;text-align:center;line-height:1.8em;align-self:center}:host .row .signer-container{--signer-border-radius: 4px;--signer-row-gap: calc(var(--app-pane-padding) / 2);--signer-icon-color: var(--text-color-hint);padding:calc(var(--app-pane-padding) / 2);background-color:var(--panel-background);border-radius:0 var(--signer-border-radius) var(--signer-border-radius) 0;margin-bottom:calc(var(--app-pane-padding) / 4);display:flex}:host .row .signer-container .signer{display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:1fr auto;-moz-column-gap:var(--app-pane-padding);column-gap:var(--app-pane-padding);grid-template-areas:\"name name\" \"email email\" \"state date\" \"reason reason\";margin-left:5px}:host .row .signer-container .signed{--signer-icon-color: var(--color-success)}:host .row .signer-container .revised,:host .row .signer-container .expired,:host .row .signer-container .cancelled{--signer-icon-color: var(--color-warning)}:host .row .signer-container .error{--signer-icon-color: var(--color-error)}:host .row .signer-container .date{grid-area:date;color:var(--text-color-caption);margin-top:var(--signer-row-gap);align-self:center}:host .row .signer-container .name{grid-area:name;font-weight:var(--font-weight-bold)}:host .row .signer-container .email{grid-area:email}:host .row .signer-container .state{grid-area:state;margin-top:var(--signer-row-gap)}:host .row .signer-container .state span{display:inline-block;padding:2px 4px 1px;background-color:var(--signer-icon-color);color:#fff;border-radius:4px}:host .row .signer-container .reason{grid-area:reason;margin-top:var(--signer-row-gap)}:host .signature-not-found{height:100%;display:flex;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i5.LocaleDatePipe, name: "localeDate" }] });
|
|
29
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SignatureTabComponent, decorators: [{
|
|
30
27
|
type: Component,
|
|
31
|
-
args: [{ selector: 'eo-signature-tab', template: "<ng-container *ngIf=\"dmsObject.data.yuvsigstatus_meta; else tplNoSignature\">\n\n <section class=\"info\">\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.status'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigstatus_meta.label}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigerror\">\n <div class=\"label\">{{'eo.object.signature-tab.label.error'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigerror}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.date'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigdate | localeDate: 'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requestdate'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreqdate | localeDate:'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requester'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigrequester_meta.title}} </div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailsubject\">\n <div class=\"label\">{{'eo.object.signature-tab.label.subject'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailsubject}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailbody\">\n <div class=\"label\">{{'eo.object.signature-tab.label.body'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailbody}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigcanceledby\">\n <div class=\"label\">{{'eo.object.signature-tab.label.canceledby'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigcanceledby_meta.title}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigreason\">\n <div class=\"label\">{{'eo.object.signature-tab.label.reason'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreason}}</div>\n </div>\n <div class=\"row\" *ngIf=\"
|
|
28
|
+
args: [{ selector: 'eo-signature-tab', template: "<ng-container *ngIf=\"dmsObject.data.yuvsigstatus_meta; else tplNoSignature\">\n\n <section class=\"info\">\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.status'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigstatus_meta.label}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigerror\">\n <div class=\"label\">{{'eo.object.signature-tab.label.error'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigerror}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.date'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigdate | localeDate: 'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requestdate'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreqdate | localeDate:'eoShortDate'}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigrequester_meta?.title\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requester'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigrequester_meta.title}} </div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailsubject\">\n <div class=\"label\">{{'eo.object.signature-tab.label.subject'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailsubject}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailbody\">\n <div class=\"label\">{{'eo.object.signature-tab.label.body'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailbody}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigcanceledby\">\n <div class=\"label\">{{'eo.object.signature-tab.label.canceledby'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigcanceledby_meta.title}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigreason\">\n <div class=\"label\">{{'eo.object.signature-tab.label.reason'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreason}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigplatform\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatform'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigplatform}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigplatformid\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatformId'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigplatformid}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signers'|translate}}</div>\n <div class=\"value\">\n <div class=\"signer-container\" *ngFor=\"let s of dmsObject.data.yuvsigners\">\n <span class=\"circle\" [title]=\"'eo.object.signature-tab.order.tooltip' | translate\">{{s.yuvsignerorder}}</span>\n <div class=\"signer\">\n <div class=\"date\" *ngIf=\"s.yuvsignerdate\">{{s.yuvsignerdate | localeDate: 'eoShort'}}</div>\n <div class=\"name\" *ngIf=\"s.yuvsignername\">{{s.yuvsignername}}</div>\n <div class=\"email\" *ngIf=\"s.yuvsigneremail\">{{s.yuvsigneremail}}</div>\n <div class=\"state {{s.yuvsignerstatus}}\"><span *ngIf=\"s.yuvsignerstatus_meta?.label\">{{s.yuvsignerstatus_meta.label}}</span></div>\n <div class=\"reason\" *ngIf=\"s.yuvsignercomment\">{{s.yuvsignercomment}}</div>\n </div>\n\n </div>\n </div>\n </div>\n </section>\n</ng-container>\n<ng-template #tplNoSignature>\n <div class=\"signature-not-found\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_signature.svg', text:'eo.object.signature-tab.no-signatures'}\"></eo-error-message>\n </div>\n</ng-template>\n", styles: [":host{display:block;padding:var(--app-pane-padding);height:100%;box-sizing:border-box;overflow-y:auto}:host .row{display:flex;margin:0 calc(var(--app-pane-padding) / -4) 2px;line-height:1.5em}:host .row .label,:host .row .value{margin:calc(var(--app-pane-padding) / 4)}:host .row .label{display:inline-block;flex-basis:30%;flex-shrink:0;background-color:var(--color-primary-3);color:var(--color-white);padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 4);border-radius:2px;white-space:normal}:host .row .circle{display:inline-block;width:2em;height:2em;border-radius:50%;background-color:var(--color-primary-3);color:#fff;text-align:center;line-height:1.8em;align-self:center}:host .row .signer-container{--signer-border-radius: 4px;--signer-row-gap: calc(var(--app-pane-padding) / 2);--signer-icon-color: var(--text-color-hint);padding:calc(var(--app-pane-padding) / 2);background-color:var(--panel-background);border-radius:0 var(--signer-border-radius) var(--signer-border-radius) 0;margin-bottom:calc(var(--app-pane-padding) / 4);display:flex}:host .row .signer-container .signer{display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:1fr auto;-moz-column-gap:var(--app-pane-padding);column-gap:var(--app-pane-padding);grid-template-areas:\"name name\" \"email email\" \"state date\" \"reason reason\";margin-left:5px}:host .row .signer-container .signed{--signer-icon-color: var(--color-success)}:host .row .signer-container .revised,:host .row .signer-container .expired,:host .row .signer-container .cancelled{--signer-icon-color: var(--color-warning)}:host .row .signer-container .error{--signer-icon-color: var(--color-error)}:host .row .signer-container .date{grid-area:date;color:var(--text-color-caption);margin-top:var(--signer-row-gap);align-self:center}:host .row .signer-container .name{grid-area:name;font-weight:var(--font-weight-bold)}:host .row .signer-container .email{grid-area:email}:host .row .signer-container .state{grid-area:state;margin-top:var(--signer-row-gap)}:host .row .signer-container .state span{display:inline-block;padding:2px 4px 1px;background-color:var(--signer-icon-color);color:#fff;border-radius:4px}:host .row .signer-container .reason{grid-area:reason;margin-top:var(--signer-row-gap)}:host .signature-not-found{height:100%;display:flex;justify-content:center;align-items:center}\n"] }]
|
|
32
29
|
}], ctorParameters: function () { return [{ type: i1.UserService }]; }, propDecorators: { dmsObject: [{
|
|
33
30
|
type: Input
|
|
34
31
|
}] } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay91aS9zaWduYXR1cmUtdGFiL3NpZ25hdHVyZS10YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvc2lnbmF0dXJlLXRhYi9zaWduYXR1cmUtdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUS9DLE1BQU0sT0FBTyxxQkFBcUI7SUFLaEMsSUFDSSxTQUFTLENBQUMsSUFBZTtRQUMzQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEFwQlUscUJBQXFCO3NHQUFyQixxQkFBcUIsNEZDUmxDLGsySEF5RUE7MkZEakVhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0I7a0dBVXhCLFNBQVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Rtc09iamVjdCwgRW9Vc2VyLCBVc2VyU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tc2lnbmF0dXJlLXRhYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWduYXR1cmUtdGFiLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2lnbmF0dXJlLXRhYi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25hdHVyZVRhYkNvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSBfZG1zT2JqZWN0OiBEbXNPYmplY3Q7XG4gIHVzZXI6IEVvVXNlcjtcblxuICBASW5wdXQoKVxuICBzZXQgZG1zT2JqZWN0KGl0ZW06IERtc09iamVjdCkge1xuICAgIGlmICh0aGlzLl9kbXNPYmplY3QgIT09IGl0ZW0pIHtcbiAgICAgIHRoaXMuX2Rtc09iamVjdCA9IGl0ZW07XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRtc09iamVjdCgpOiBEbXNPYmplY3Qge1xuICAgIHJldHVybiB0aGlzLl9kbXNPYmplY3Q7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkge1xuICAgIHRoaXMudXNlclNlcnZpY2UudXNlciQuc3Vic2NyaWJlKCh1c2VyKSA9PiB7XG4gICAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZG1zT2JqZWN0LmRhdGEueXV2c2lnc3RhdHVzX21ldGE7IGVsc2UgdHBsTm9TaWduYXR1cmVcIj5cblxuICA8c2VjdGlvbiBjbGFzcz1cImluZm9cIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57eydlby5vYmplY3Quc2lnbmF0dXJlLXRhYi5sYWJlbC5zdGF0dXMnfHRyYW5zbGF0ZX19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAge3tkbXNPYmplY3QuZGF0YS55dXZzaWdzdGF0dXNfbWV0YS5sYWJlbH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiZG1zT2JqZWN0LmRhdGEueXV2c2lnZXJyb3JcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPnt7J2VvLm9iamVjdC5zaWduYXR1cmUtdGFiLmxhYmVsLmVycm9yJ3x0cmFuc2xhdGV9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tkbXNPYmplY3QuZGF0YS55dXZzaWdlcnJvcn19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3snZW8ub2JqZWN0LnNpZ25hdHVyZS10YWIubGFiZWwuZGF0ZSd8dHJhbnNsYXRlfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7ZG1zT2JqZWN0LmRhdGEueXV2c2lnZGF0ZSB8IGxvY2FsZURhdGU6ICdlb1Nob3J0RGF0ZSd9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPnt7J2VvLm9iamVjdC5zaWduYXR1cmUtdGFiLmxhYmVsLnJlcXVlc3RkYXRlJ3x0cmFuc2xhdGV9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tkbXNPYmplY3QuZGF0YS55dXZzaWdyZXFkYXRlIHwgbG9jYWxlRGF0ZTonZW9TaG9ydERhdGUnfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJkbXNPYmplY3QuZGF0YS55dXZzaWdyZXF1ZXN0ZXJfbWV0YT8udGl0bGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPnt7J2VvLm9iamVjdC5zaWduYXR1cmUtdGFiLmxhYmVsLnJlcXVlc3Rlcid8dHJhbnNsYXRlfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICB7e2Rtc09iamVjdC5kYXRhLnl1dnNpZ3JlcXVlc3Rlcl9tZXRhLnRpdGxlfX0gPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiZG1zT2JqZWN0LmRhdGEueXV2c2lnZW1haWxzdWJqZWN0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57eydlby5vYmplY3Quc2lnbmF0dXJlLXRhYi5sYWJlbC5zdWJqZWN0J3x0cmFuc2xhdGV9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tkbXNPYmplY3QuZGF0YS55dXZzaWdlbWFpbHN1YmplY3R9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImRtc09iamVjdC5kYXRhLnl1dnNpZ2VtYWlsYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3snZW8ub2JqZWN0LnNpZ25hdHVyZS10YWIubGFiZWwuYm9keSd8dHJhbnNsYXRlfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7ZG1zT2JqZWN0LmRhdGEueXV2c2lnZW1haWxib2R5fX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJkbXNPYmplY3QuZGF0YS55dXZzaWdjYW5jZWxlZGJ5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57eydlby5vYmplY3Quc2lnbmF0dXJlLXRhYi5sYWJlbC5jYW5jZWxlZGJ5J3x0cmFuc2xhdGV9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tkbXNPYmplY3QuZGF0YS55dXZzaWdjYW5jZWxlZGJ5X21ldGEudGl0bGV9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImRtc09iamVjdC5kYXRhLnl1dnNpZ3JlYXNvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3snZW8ub2JqZWN0LnNpZ25hdHVyZS10YWIubGFiZWwucmVhc29uJ3x0cmFuc2xhdGV9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tkbXNPYmplY3QuZGF0YS55dXZzaWdyZWFzb259fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImRtc09iamVjdC5kYXRhLnl1dnNpZ3BsYXRmb3JtXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57eydlby5vYmplY3Quc2lnbmF0dXJlLXRhYi5sYWJlbC5zaWduaW5nUGxhdGZvcm0nfHRyYW5zbGF0ZX19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj57e2Rtc09iamVjdC5kYXRhLnl1dnNpZ3BsYXRmb3JtfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJkbXNPYmplY3QuZGF0YS55dXZzaWdwbGF0Zm9ybWlkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57eydlby5vYmplY3Quc2lnbmF0dXJlLXRhYi5sYWJlbC5zaWduaW5nUGxhdGZvcm1JZCd8dHJhbnNsYXRlfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7ZG1zT2JqZWN0LmRhdGEueXV2c2lncGxhdGZvcm1pZH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3snZW8ub2JqZWN0LnNpZ25hdHVyZS10YWIubGFiZWwuc2lnbmVycyd8dHJhbnNsYXRlfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2lnbmVyLWNvbnRhaW5lclwiICpuZ0Zvcj1cImxldCBzIG9mIGRtc09iamVjdC5kYXRhLnl1dnNpZ25lcnNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNpcmNsZVwiIFt0aXRsZV09XCInZW8ub2JqZWN0LnNpZ25hdHVyZS10YWIub3JkZXIudG9vbHRpcCcgfCB0cmFuc2xhdGVcIj57e3MueXV2c2lnbmVyb3JkZXJ9fTwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lnbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiICpuZ0lmPVwicy55dXZzaWduZXJkYXRlXCI+e3tzLnl1dnNpZ25lcmRhdGUgfCBsb2NhbGVEYXRlOiAnZW9TaG9ydCd9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIiAqbmdJZj1cInMueXV2c2lnbmVybmFtZVwiPnt7cy55dXZzaWduZXJuYW1lfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbFwiICpuZ0lmPVwicy55dXZzaWduZXJlbWFpbFwiPnt7cy55dXZzaWduZXJlbWFpbH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdGUge3tzLnl1dnNpZ25lcnN0YXR1c319XCI+PHNwYW4gKm5nSWY9XCJzLnl1dnNpZ25lcnN0YXR1c19tZXRhPy5sYWJlbFwiPnt7cy55dXZzaWduZXJzdGF0dXNfbWV0YS5sYWJlbH19PC9zcGFuPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlYXNvblwiICpuZ0lmPVwicy55dXZzaWduZXJjb21tZW50XCI+e3tzLnl1dnNpZ25lcmNvbW1lbnR9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICN0cGxOb1NpZ25hdHVyZT5cbiAgPGRpdiBjbGFzcz1cInNpZ25hdHVyZS1ub3QtZm91bmRcIj5cbiAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19zaWduYXR1cmUuc3ZnJywgdGV4dDonZW8ub2JqZWN0LnNpZ25hdHVyZS10YWIubm8tc2lnbmF0dXJlcyd9XCI+PC9lby1lcnJvci1tZXNzYWdlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -384,12 +384,12 @@ export class UploadOverlayComponent {
|
|
|
384
384
|
}
|
|
385
385
|
}
|
|
386
386
|
UploadOverlayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UploadOverlayComponent, deps: [{ token: i1.Router }, { token: i0.Renderer2 }, { token: i2.PrepareService }, { token: i2.TranslateService }, { token: i2.SystemService }, { token: i2.EventService }, { token: i2.UploadRegistryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
387
|
-
UploadOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", 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]=\"{hasFiles: queue.length, invalid: invalidInput, singleFile: queue.length === 1, 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 <h1 translate>eo.upload.global.headline</h1>\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.upload.global.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\" 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 <!-- list of available upload targets -->\n <div class=\"targets\">\n\n <div class=\"target-list\">\n\n <h2 translate>eo.upload.global.target</h2>\n\n <div class=\"upload-target\" *ngFor=\"let t of validUploadTargets; trackBy: targetTrackByFn\"\n (click)=\"proceedWithUpload(t)\"\n [ngSwitch]=\"t.type\">\n\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n\n <!-- upload to root -->\n <div *ngSwitchCase=\"'root'\" class=\"upload-target-general\">\n <div class=\"name\" translate>eo.upload.global.root.title</div>\n <div class=\"description\" translate>eo.upload.global.root.description</div>\n </div>\n\n <!-- replace file of a specific dms object -->\n <div *ngSwitchCase=\"'object'\" class=\"upload-target-replace\">\n <div class=\"name\" *ngIf=\"t.referenceObject.content;else nocontent\" translate>eo.upload.global.object.title</div>\n\n <ng-template #nocontent>\n <div class=\"name\" translate>eo.upload.global.object.title.nocontent</div>\n </ng-template>\n <div class=\"description\">{{t.description}}</div>\n </div>\n\n <!-- add new files to a context folder -->\n <div *ngSwitchCase=\"'context'\" class=\"upload-target-context\">\n <div class=\"name\">{{'eo.upload.global.context.title'|translate:({context:t.referenceObject.type.label})}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n\n <!-- add new files to a context folder structure tree entry -->\n <div *ngSwitchCase=\"'contexttree'\" class=\"upload-target-contexttree\">\n <div class=\"name\">{{'eo.add.title.location.subfolder'|translate: ({folder: t.subFolder.name})}}</div>\n </div>\n\n <!-- custom upload target (e.g. from plugin component) -->\n <div *ngSwitchCase=\"'custom'\" class=\"upload-target-custom\">\n <div class=\"name\">{{t.name}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </div>\n\n </div>\n\n </div>\n\n <!-- list of files dragged to the component -->\n <div class=\"files\">\n <div class=\"files-list\">\n <div class=\"file-item\" *ngFor=\"let i of queue; trackBy: trackByFn\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span><span class=\"desc-text\"> {{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n </div>\n </div>\n\n </div>\n\n <div class=\"loading\" *ngIf=\"isUploading\"><eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner></div>\n\n\n</div>\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:auto}:host #eo-upload-overlay h1{font-size:4em;font-weight:300;color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration)}: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;max-height:100%;margin:var(--app-pane-padding)}: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 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)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead)}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{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{order:0;padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;flex-flow:row nowrap;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;-moz-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)}: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.hasFiles .uploady{display:none}:host #eo-upload-overlay.hasFiles .count{display:flex}:host #eo-upload-overlay.hasFiles .contents{display:flex}:host #eo-upload-overlay.singleFile .contents{flex-flow:column}:host #eo-upload-overlay.singleFile .contents .files{padding:0;order:1}:host #eo-upload-overlay.singleFile .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}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i6.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.FileSizePipe, name: "fileSize" }] });
|
|
387
|
+
UploadOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", 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]=\"{hasFiles: queue.length, invalid: invalidInput, singleFile: queue.length === 1, 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 <h1 translate>eo.upload.global.headline</h1>\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.upload.global.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\" 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 <!-- list of available upload targets -->\n <div class=\"targets\">\n\n <div class=\"target-list\">\n\n <h2 translate>eo.upload.global.target</h2>\n\n <div class=\"upload-target\" *ngFor=\"let t of validUploadTargets; trackBy: targetTrackByFn\"\n (click)=\"proceedWithUpload(t)\"\n [ngSwitch]=\"t.type\">\n\n <!-- upload to root -->\n <ng-container *ngSwitchCase=\"'root'\" >\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document.svg'\"></eo-icon>\n <div class=\"upload-target-general\">\n <div class=\"name\" translate>eo.upload.global.root.title</div>\n <div class=\"description\" translate>eo.upload.global.root.description</div>\n </div>\n </ng-container>\n\n <!-- replace file of a specific dms object -->\n <ng-container *ngSwitchCase=\"'object'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_add_document_file_as_new_version.svg'\"></eo-icon>\n <div class=\"upload-target-replace\">\n <div class=\"name\" *ngIf=\"t.referenceObject.content;else nocontent\" translate>eo.upload.global.object.title</div>\n <ng-template #nocontent>\n <div class=\"name\" translate>eo.upload.global.object.title.nocontent</div>\n </ng-template>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n\n <!-- add new files to a context folder -->\n <ng-container *ngSwitchCase=\"'context'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\n <div class=\"upload-target-context\">\n <div class=\"name\">{{'eo.upload.global.context.title'|translate:({context:t.referenceObject.type.label})}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n\n <!-- add new files to a context folder structure tree entry -->\n <ng-container *ngSwitchCase=\"'contexttree'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\n <div class=\"upload-target-contexttree\">\n <div class=\"name\">{{'eo.add.title.location.subfolder'|translate: ({folder: t.subFolder.name})}}</div>\n </div>\n </ng-container>\n\n <!-- custom upload target (e.g. from plugin component) -->\n <ng-container *ngSwitchCase=\"'custom'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n <div class=\"upload-target-custom\">\n <div class=\"name\">{{t.name}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n </div>\n\n </div>\n\n </div>\n\n <!-- list of files dragged to the component -->\n <div class=\"files\">\n <div class=\"files-list\">\n <div class=\"file-item\" *ngFor=\"let i of queue; trackBy: trackByFn\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span><span class=\"desc-text\"> {{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n </div>\n </div>\n\n </div>\n\n <div class=\"loading\" *ngIf=\"isUploading\"><eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner></div>\n\n\n</div>\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:auto}:host #eo-upload-overlay h1{font-size:4em;font-weight:300;color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration)}: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;max-height:100%;margin:var(--app-pane-padding)}: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 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)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead)}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{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{order:0;padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;flex-flow:row nowrap;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;-moz-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)}: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.hasFiles .uploady{display:none}:host #eo-upload-overlay.hasFiles .count{display:flex}:host #eo-upload-overlay.hasFiles .contents{display:flex}:host #eo-upload-overlay.singleFile .contents{flex-flow:column}:host #eo-upload-overlay.singleFile .contents .files{padding:0;order:1}:host #eo-upload-overlay.singleFile .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}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i6.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.FileSizePipe, name: "fileSize" }] });
|
|
388
388
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UploadOverlayComponent, decorators: [{
|
|
389
389
|
type: Component,
|
|
390
|
-
args: [{ selector: 'eo-upload-overlay', template: "<div id=\"eo-upload-overlay\" #overlay class=\"dark\" *ngIf=\"fileOver\" tabindex=\"1\"\n [ngClass]=\"{hasFiles: queue.length, invalid: invalidInput, singleFile: queue.length === 1, 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 <h1 translate>eo.upload.global.headline</h1>\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.upload.global.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\" 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 <!-- list of available upload targets -->\n <div class=\"targets\">\n\n <div class=\"target-list\">\n\n <h2 translate>eo.upload.global.target</h2>\n\n <div class=\"upload-target\" *ngFor=\"let t of validUploadTargets; trackBy: targetTrackByFn\"\n (click)=\"proceedWithUpload(t)\"\n [ngSwitch]=\"t.type\">\n\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n\n <!-- upload to root -->\n <div *ngSwitchCase=\"'root'\" class=\"upload-target-general\">\n <div class=\"name\" translate>eo.upload.global.root.title</div>\n <div class=\"description\" translate>eo.upload.global.root.description</div>\n </div>\n\n <!-- replace file of a specific dms object -->\n <div *ngSwitchCase=\"'object'\" class=\"upload-target-replace\">\n <div class=\"name\" *ngIf=\"t.referenceObject.content;else nocontent\" translate>eo.upload.global.object.title</div>\n\n <ng-template #nocontent>\n <div class=\"name\" translate>eo.upload.global.object.title.nocontent</div>\n </ng-template>\n <div class=\"description\">{{t.description}}</div>\n </div>\n\n <!-- add new files to a context folder -->\n <div *ngSwitchCase=\"'context'\" class=\"upload-target-context\">\n <div class=\"name\">{{'eo.upload.global.context.title'|translate:({context:t.referenceObject.type.label})}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n\n <!-- add new files to a context folder structure tree entry -->\n <div *ngSwitchCase=\"'contexttree'\" class=\"upload-target-contexttree\">\n <div class=\"name\">{{'eo.add.title.location.subfolder'|translate: ({folder: t.subFolder.name})}}</div>\n </div>\n\n <!-- custom upload target (e.g. from plugin component) -->\n <div *ngSwitchCase=\"'custom'\" class=\"upload-target-custom\">\n <div class=\"name\">{{t.name}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </div>\n\n </div>\n\n </div>\n\n <!-- list of files dragged to the component -->\n <div class=\"files\">\n <div class=\"files-list\">\n <div class=\"file-item\" *ngFor=\"let i of queue; trackBy: trackByFn\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span><span class=\"desc-text\"> {{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n </div>\n </div>\n\n </div>\n\n <div class=\"loading\" *ngIf=\"isUploading\"><eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner></div>\n\n\n</div>\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:auto}:host #eo-upload-overlay h1{font-size:4em;font-weight:300;color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration)}: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;max-height:100%;margin:var(--app-pane-padding)}: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 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)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead)}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{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{order:0;padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;flex-flow:row nowrap;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;-moz-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)}: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.hasFiles .uploady{display:none}:host #eo-upload-overlay.hasFiles .count{display:flex}:host #eo-upload-overlay.hasFiles .contents{display:flex}:host #eo-upload-overlay.singleFile .contents{flex-flow:column}:host #eo-upload-overlay.singleFile .contents .files{padding:0;order:1}:host #eo-upload-overlay.singleFile .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}}\n"] }]
|
|
390
|
+
args: [{ selector: 'eo-upload-overlay', template: "<div id=\"eo-upload-overlay\" #overlay class=\"dark\" *ngIf=\"fileOver\" tabindex=\"1\"\n [ngClass]=\"{hasFiles: queue.length, invalid: invalidInput, singleFile: queue.length === 1, 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 <h1 translate>eo.upload.global.headline</h1>\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.upload.global.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\" 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 <!-- list of available upload targets -->\n <div class=\"targets\">\n\n <div class=\"target-list\">\n\n <h2 translate>eo.upload.global.target</h2>\n\n <div class=\"upload-target\" *ngFor=\"let t of validUploadTargets; trackBy: targetTrackByFn\"\n (click)=\"proceedWithUpload(t)\"\n [ngSwitch]=\"t.type\">\n\n <!-- upload to root -->\n <ng-container *ngSwitchCase=\"'root'\" >\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document.svg'\"></eo-icon>\n <div class=\"upload-target-general\">\n <div class=\"name\" translate>eo.upload.global.root.title</div>\n <div class=\"description\" translate>eo.upload.global.root.description</div>\n </div>\n </ng-container>\n\n <!-- replace file of a specific dms object -->\n <ng-container *ngSwitchCase=\"'object'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_add_document_file_as_new_version.svg'\"></eo-icon>\n <div class=\"upload-target-replace\">\n <div class=\"name\" *ngIf=\"t.referenceObject.content;else nocontent\" translate>eo.upload.global.object.title</div>\n <ng-template #nocontent>\n <div class=\"name\" translate>eo.upload.global.object.title.nocontent</div>\n </ng-template>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n\n <!-- add new files to a context folder -->\n <ng-container *ngSwitchCase=\"'context'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\n <div class=\"upload-target-context\">\n <div class=\"name\">{{'eo.upload.global.context.title'|translate:({context:t.referenceObject.type.label})}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n\n <!-- add new files to a context folder structure tree entry -->\n <ng-container *ngSwitchCase=\"'contexttree'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\n <div class=\"upload-target-contexttree\">\n <div class=\"name\">{{'eo.add.title.location.subfolder'|translate: ({folder: t.subFolder.name})}}</div>\n </div>\n </ng-container>\n\n <!-- custom upload target (e.g. from plugin component) -->\n <ng-container *ngSwitchCase=\"'custom'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n <div class=\"upload-target-custom\">\n <div class=\"name\">{{t.name}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n </div>\n\n </div>\n\n </div>\n\n <!-- list of files dragged to the component -->\n <div class=\"files\">\n <div class=\"files-list\">\n <div class=\"file-item\" *ngFor=\"let i of queue; trackBy: trackByFn\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span><span class=\"desc-text\"> {{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n </div>\n </div>\n\n </div>\n\n <div class=\"loading\" *ngIf=\"isUploading\"><eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner></div>\n\n\n</div>\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:auto}:host #eo-upload-overlay h1{font-size:4em;font-weight:300;color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration)}: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;max-height:100%;margin:var(--app-pane-padding)}: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 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)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead)}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{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{order:0;padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;flex-flow:row nowrap;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;-moz-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)}: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.hasFiles .uploady{display:none}:host #eo-upload-overlay.hasFiles .count{display:flex}:host #eo-upload-overlay.hasFiles .contents{display:flex}:host #eo-upload-overlay.singleFile .contents{flex-flow:column}:host #eo-upload-overlay.singleFile .contents .files{padding:0;order:1}:host #eo-upload-overlay.singleFile .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}}\n"] }]
|
|
391
391
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i0.Renderer2 }, { type: i2.PrepareService }, { type: i2.TranslateService }, { type: i2.SystemService }, { type: i2.EventService }, { type: i2.UploadRegistryService }]; }, propDecorators: { overlayEl: [{
|
|
392
392
|
type: ViewChild,
|
|
393
393
|
args: ['overlay']
|
|
394
394
|
}] } });
|
|
395
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdXBsb2FkLW92ZXJsYXkvdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdXBsb2FkLW92ZXJsYXkvdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEVBQUUsSUFBSSxZQUFZLEVBQUUsUUFBUSxJQUFJLGtCQUFrQixFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwRixPQUFPLEVBQUMsU0FBUyxFQUFxQixTQUFTLEVBQXNDLE1BQU0sZUFBZSxDQUFDO0FBRTNHLE9BQU8sRUFHTCxVQUFVLEVBRVYsWUFBWSxFQUNaLGNBQWMsRUFFZCxLQUFLLEVBRUwsZ0JBQWdCLEVBQ2pCLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7QUFPdEIsTUFBTSxPQUFPLHNCQUFzQjtJQXNCakMsWUFBb0IsTUFBYyxFQUNkLFFBQW1CLEVBQ25CLGNBQThCLEVBQzlCLFNBQTJCLEVBQzNCLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLGNBQXFDO1FBTnJDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUF4QnpELFVBQUssR0FBcUIsRUFBRSxDQUFDO1FBTTdCLHVCQUFrQixHQUFtQixFQUFFLENBQUM7UUFHaEMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBT25DLG1CQUFj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LEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMxRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQixDQUFDLEtBQXFCO1FBQzlDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzRixDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUN6QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELHlDQUF5QztJQUN6QyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUk7UUFDbkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOzttSEF2YlUsc0JBQXNCO3VHQUF0QixzQkFBc0IsK0pDckJuQywrNUpBcUhBOzJGRGhHYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsbUJBQW1COzRRQU1QLFNBQVM7c0JBQTlCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7b2YgYXMgb2JzZXJ2YWJsZU9mLCBmb3JrSm9pbiBhcyBvYnNlcnZhYmxlRm9ya0pvaW4sIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgT2JqZWN0VHlwZSxcbiAgRXZlbnRTZXJ2aWNlLFxuICBFbmFpb0V2ZW50LFxuICBVcGxvYWRSZWdpc3RyeVNlcnZpY2UsXG4gIFVwbG9hZFRhcmdldCxcbiAgVXBsb2FkRmlsZUl0ZW0sXG4gIFByZXBhcmVTZXJ2aWNlLFxuICBVdGlscyxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgRW52aXJvbm1lbnRFbmFpbywgU3lzdGVtU2VydmljZVxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby11cGxvYWQtb3ZlcmxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC1vdmVybGF5LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkT3ZlcmxheUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKCdvdmVybGF5Jykgb3ZlcmxheUVsOiBFbGVtZW50UmVmO1xuXG4gIHF1ZXVlOiBVcGxvYWRGaWxlSXRlbVtdID0gW107XG4gIGZpbGVPdmVyOiBib29sZWFuO1xuICBpc1VwbG9hZGluZzogYm9vbGVhbjtcbiAgaGFzVmFsaWRVcGxvYWRUYXJnZXRzOiBib29sZWFuO1xuICBpbnZhbGlkSW5wdXQ6IGJvb2xlYW47XG4gIHF1ZXVlU2l6ZTogbnVtYmVyO1xuICB2YWxpZFVwbG9hZFRhcmdldHM6IFVwbG9hZFRhcmdldFtdID0gW107XG4gIHNlbGVjdGVkVXBsb2FkVGFyZ2V0OiBVcGxvYWRUYXJnZXQ7XG5cbiAgcHJpdmF0ZSB1cGxvYWRUYXJnZXRzOiBVcGxvYWRUYXJnZXRbXSA9IFtdO1xuICBwcml2YXRlIGRyYWdMZWF2ZUxpc3RlbmVyOiBGdW5jdGlvbjtcbiAgcHJpdmF0ZSBkcm9wTGlzdGVuZXI6IEZ1bmN0aW9uO1xuICBwcml2YXRlIGRyYWdPdmVyTGlzdGVuZXI6IEZ1bmN0aW9uO1xuICBwcml2YXRlIGVzY0tleUxpc3RlbmVyOiBGdW5jdGlvbjtcbiAgcHJpdmF0ZSBkcmFnRW50ZXJMaXN0ZW5lcjogRnVuY3Rpb247XG4gIHByaXZhdGUgcGFzdGVMaXN0ZW5lcjogRnVuY3Rpb247XG4gIHByaXZhdGUgZHJhZ0V2ZW50Q291bnQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwcmVwYXJlU2VydmljZTogUHJlcGFyZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdXBsb2FkUmVnaXN0cnk6IFVwbG9hZFJlZ2lzdHJ5U2VydmljZSkge1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCkge1xuXG4gICAgLy8gZ2xvYmFsIGRyYWcmZHJvcCB1cGxvYWQgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBvbiBkZXNrdG9wICh3ZWIgb3IgZWxlY3Ryb24pXG4gICAgaWYgKEVudmlyb25tZW50RW5haW8uaXNNb2JpbGVFbnZpcm9ubWVudCgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gc3Vic2NyaWJlIGZvciB0aGUgbGlzdCBvZiByZWdpc3RlcmVkIHVwbG9hZCB0YXJnZXRzXG4gICAgdGhpcy51cGxvYWRSZWdpc3RyeS51cGxvYWRUYXJnZXRzJC5zdWJzY3JpYmUoKHVwbG9hZFRhcmdldHM6IFVwbG9hZFRhcmdldFtdKSA9PiB7XG4gICAgICB0aGlzLnVwbG9hZFRhcmdldHMgPSB1cGxvYWRUYXJnZXRzO1xuICAgIH0pO1xuXG4gICAgdGhpcy5wYXN0ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ3Bhc3RlJywgKGU6IENsaXBib2FyZEV2ZW50KSA9PiB7XG4gICAgICB0aGlzLm9uUGFzdGUoZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmRyYWdFbnRlckxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2RyYWdlbnRlcicsIChlOiBEcmFnRXZlbnQpID0+IHtcbiAgICAgIHRoaXMub25EcmFnRW50ZXIoZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uUGFzdGUoZTogQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc1VwbG9hZGluZykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmhhc1ZhbGlkVXBsb2FkVGFyZ2V0cyA9IHRydWU7XG4gICAgdGhpcy5pbnZhbGlkSW5wdXQgPSBmYWxzZTtcbiAgICBpZiAoIXRoaXMuZmlsZU92ZXIgJiYgdGhpcy5wYXN0ZUNvbnRhaW5zRmlsZXMoZSkpIHtcbiAgICAgIGxldCB0cmFuc2ZlciA9IGUuY2xpcGJvYXJkRGF0YTtcbiAgICAgIGlmICghdHJhbnNmZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBjaGVjayBmb3IgZGlyZWN0b3JpZXNcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJhbnNmZXIuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRyYW5zZmVyLml0ZW1zW2ldLmtpbmQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdGhpcy5pbnZhbGlkSW5wdXQgPSB0cnVlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmZSA9IHRyYW5zZmVyLml0ZW1zW2ldLndlYmtpdEdldEFzRW50cnkoKTtcbiAgICAgICAgaWYgKGZlICYmIGZlLmlzRGlyZWN0b3J5KSB7XG4gICAgICAgICAgICB0aGlzLmludmFsaWRJbnB1dCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pbnZhbGlkSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fcHJldmVudEFuZFN0b3AoZSk7XG4gICAgICAgIHRoaXMuc2V0RmlsZU92ZXIodHJ1ZSk7XG4gICAgICAgIHRoaXMub25GaWxlc0Ryb3BwZWQoQXJyYXkuZnJvbSh0cmFuc2Zlci5maWxlcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25EcmFnRW50ZXIoZTogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNVcGxvYWRpbmcpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5oYXNWYWxpZFVwbG9hZFRhcmdldHMgPSB0cnVlO1xuICAgIGlmICghdGhpcy5maWxlT3ZlciAmJiB0aGlzLmRyYWdDb250YWluc0ZpbGVzKGUpKSB7XG4gICAgICB0aGlzLmRyYWdFdmVudENvdW50ID0gMDtcbiAgICAgIHRoaXMuc2V0RmlsZU92ZXIodHJ1ZSk7XG5cblxuICAgICAgLy8gdXNlIHRpbWVvdXQgaGVyZSB0byBmb3JjZSBhbmd1bGFyIGRpZ2VzdCBjeWNsZSBiZWZvcmUgY29udGludWluZywgYmVjYXVzZSB3ZSBhcmUgYWNjZXNzaW5nIGRvbSBlbGVtZW50c1xuICAgICAgLy8gdGhhdCBhcmUgbm90IHRoZXJlICgqbmdJZikgdW50aWwgZmlsZU92ZXIgaXMgc2V0IHRvIHRydWUuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gdG9kbzogcmVwbGFjZSBieSByZW5kZXJlciBzb2x1dGlvbiB3aGVuIGF2YWlsYWJsZSAoaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTU2NzQpXG4gICAgICAgIHRoaXMub3ZlcmxheUVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgLy8gYmluZCBsYXRlIChvbmx5LCB3aGVuIG5lZWRlZCkgdG8gZHJhZ2xlYXZlIGV2ZW50IHRvIGF2b2lkIGhlYXZ5IHByb2Nlc3Npbmcgb24gZXZlcnkgZHJhZyBldmVudFxuICAgICAgICB0aGlzLmRyYWdMZWF2ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5vdmVybGF5RWwubmF0aXZlRWxlbWVudCwgJ2RyYWdsZWF2ZScsIChldnQpID0+IHtcbiAgICAgICAgICB0aGlzLmRyYWdFdmVudENvdW50LS07XG4gICAgICAgICAgaWYgKHRoaXMuZHJhZ0V2ZW50Q291bnQgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZHJvcExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5vdmVybGF5RWwubmF0aXZlRWxlbWVudCwgJ2Ryb3AnLCAoZXZ0KSA9PiB7XG4gICAgICAgICAgbGV0IHRyYW5zZmVyID0gdGhpcy5fZ2V0VHJhbnNmZXIoZXZ0KTtcbiAgICAgICAgICBpZiAoIXRyYW5zZmVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3ByZXZlbnRBbmRTdG9wKGV2dCk7XG5cbiAgICAgICAgICAvLyBjaGVjayBmb3IgZGlyZWN0b3JpZXNcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyYW5zZmVyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBmZSA9IHRyYW5zZmVyLml0ZW1zW2ldLndlYmtpdEdldEFzRW50cnkoKTtcbiAgICAgICAgICAgIGlmIChmZSAmJiBmZS5pc0RpcmVjdG9yeSkge1xuICAgICAgICAgICAgICB0aGlzLmludmFsaWRJbnB1dCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghdGhpcy5pbnZhbGlkSW5wdXQpIHtcbiAgICAgICAgICAgIHRoaXMub25GaWxlc0Ryb3BwZWQodHJhbnNmZXIuZmlsZXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kcmFnT3Zlckxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5vdmVybGF5RWwubmF0aXZlRWxlbWVudCwgJ2RyYWdvdmVyJywgKGV2dCkgPT4ge1xuICAgICAgICAgIGxldCB0cmFuc2ZlciA9IHRoaXMuX2dldFRyYW5zZmVyKGV2dCk7XG4gICAgICAgICAgaWYgKCF0cmFuc2Zlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0cmFuc2Zlci5kcm9wRWZmZWN0ID0gJ2NvcHknO1xuICAgICAgICAgIHRoaXMuX3ByZXZlbnRBbmRTdG9wKGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJhZ0V2ZW50Q291bnQrKztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRUcmFuc2ZlcihldmVudDogYW55KTogYW55IHtcbiAgICByZXR1cm4gZXZlbnQuZGF0YVRyYW5zZmVyID8gZXZlbnQuZGF0YVRyYW5zZmVyIDogZXZlbnQub3JpZ2luYWxFdmVudC5kYXRhVHJhbnNmZXI7IC8vIGpRdWVyeSBmaXg7XG4gIH1cblxuICBwcml2YXRlIF9wcmV2ZW50QW5kU3RvcChldmVudDogYW55KTogYW55IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkZpbGVzRHJvcHBlZChmaWxlSXRlbXM6IEZpbGVbXSkge1xuICAgIC8vIGNsZWFyIHF1ZXVlIHdoZW4gbmV3IGZpbGVzIGFyZSBhZGRlZFxuICAgIC8vIHRvZG86IHJlbW92ZSBpbiBmdXR1cmUgcmVsZWFzZXMgdG8gc3VwcG9ydCBjb2xsZWN0aXZlIGZpbGUgYWRkaW5nXG4gICAgdGhpcy5xdWV1ZSA9IFtdO1xuICAgIGZvciAobGV0IGZpbGUgb2YgZmlsZUl0ZW1zKSB7XG4gICAgICB0aGlzLnF1ZXVlLnB1c2gobmV3IFVwbG9hZEZpbGVJdGVtKGZpbGUpKTtcbiAgICB9XG5cbiAgICAvLyBiaW5kIEVTQyBrZXkgbGlzdGVuZXIgZm9yIGNsb3NpbmcgdGhlIGRpYWxvZyBhcyBsYXRlIGFzIHBvc3NpYmxlXG4gICAgaWYgKCF0aGlzLmVzY0tleUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmVzY0tleUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2tleXVwJywgKGUpID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gMjcpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBjYWxjdWxhdGUgdG90YWwgc2l6ZSBvZiBxdWV1ZVxuICAgIHRoaXMuc2V0UXVldWVTaXplKCk7XG4gICAgLy8gZmlsdGVyIGF2YWlsYWJsZSB0YXJnZXRzXG4gICAgdGhpcy52YWxpZGF0ZVVwbG9hZFRhcmdldHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgbGlzdCBvZiByZWdpc3RlcmVkIHVwbG9hZCB0YXJnZXRzLCBzbyBvbmx5IHZhbGlkIHRhcmdldHMgd2lsbCBiZSBzaG93bi5cbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVVcGxvYWRUYXJnZXRzKCkge1xuICAgIHRoaXMuaGFzVmFsaWRVcGxvYWRUYXJnZXRzID0gdHJ1ZTtcbiAgICBvYnNlcnZhYmxlRm9ya0pvaW4odGhpcy51cGxvYWRUYXJnZXRzLm1hcCh0ID0+IHRoaXMudmFsaWRhdGVVcGxvYWRUYXJnZXQodCkpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKHJlczogeyB0YXJnZXQ6IFVwbG9hZFRhcmdldCwgdmFsaWQ6IGJvb2xlYW4gfVtdKSA9PiB7XG4gICAgICAgICAgdGhpcy52YWxpZFVwbG9hZFRhcmdldHMgPSByZXMuZmlsdGVyKHIgPT4gci52YWxpZCkubWFwKGZpbHRlcmVkID0+IGZpbHRlcmVkLnRhcmdldCkucmV2ZXJzZSgpLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBhLnR5cGUgPT09ICdjb250ZXh0JyA/IC0xIDogYi50eXBlID09PSAnY29udGV4dCcgPyAxIDogMDsgLy8gQ29udGV4dCBzaG91bGQgYmUgb24gdG9wXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy52YWxpZFVwbG9hZFRhcmdldHMgPSBbXTtcbiAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFzVmFsaWRVcGxvYWRUYXJnZXRzID0gdGhpcy52YWxpZFVwbG9hZFRhcmdldHMubGVuZ3RoID4gMDtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVVcGxvYWRUYXJnZXQodGFyZ2V0OiBVcGxvYWRUYXJnZXQpOiBPYnNlcnZhYmxlPHsgdGFyZ2V0OiBVcGxvYWRUYXJnZXQsIHZhbGlkOiBib29sZWFuIH0+IHtcblxuICAgIGlmICghdGhpcy5xdWV1ZSkge1xuICAgICAgcmV0dXJuIG9ic2VydmFibGVPZih7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiBmYWxzZX0pO1xuICAgIH1cblxuICAgIHJldHVybiBPYnNlcnZhYmxlLmNyZWF0ZShvID0+IHtcbiAgICAgIGxldCB2YWxpZCA9IGZhbHNlO1xuXG4gICAgICBpZiAodGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5ST09UKSB7XG5cbiAgICAgICAgLy8gdG9kbzogYXJlIHRoZXJlIG90aGVyIHJlc3RyaWN0aW9ucyBvbiByb290IHRhcmdldD9cbiAgICAgICAgdGhpcy5wcmVwYXJlU2VydmljZS5nZXRQcmVwYXJlQ2hpbGRUeXBlcyhudWxsLCB0cnVlKVxuICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAocmVzOiB7IHBhcmVudDogc3RyaW5nLCB0eXBlczogT2JqZWN0VHlwZVtdIH0pID0+IHtcbiAgICAgICAgICAgICAgdmFsaWQgPSB0aGlzLnF1ZXVlLmxlbmd0aCA+IDAgJiYgcmVzLnR5cGVzLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xuICAgICAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgICBvLm5leHQoe3RhcmdldDogdGFyZ2V0LCB2YWxpZDogZmFsc2V9KTtcbiAgICAgICAgICAgICAgby5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuT0JKRUNUKSB7XG5cbiAgICAgICAgLy8gdG9kbzogY2hlY2sgaWYgdGhlIHJlZmVyZW5jZSBvYmplY3Qgc3VwcG9ydHMgdGhlIGdpdmVuIGZpbGUgdHlwZVxuICAgICAgICB2YWxpZCA9IHRhcmdldC5yZWZlcmVuY2VPYmplY3QgJiZcbiAgICAgICAgICB0YXJnZXQucmVmZXJlbmNlT2JqZWN0LnR5cGUubWF4RmlsZXMgPiAwICYmXG4gICAgICAgICAgIXRhcmdldC5yZWZlcmVuY2VPYmplY3QubG9jayAmJlxuICAgICAgICAgICF0YXJnZXQucmVmZXJlbmNlT2JqZWN0LmlzRmluYWxpemVkICYmXG4gICAgICAgICAgKHRhcmdldC5yZWZlcmVuY2VPYmplY3QucmlnaHRzICYmIHRhcmdldC5yZWZlcmVuY2VPYmplY3QucmlnaHRzLmVkaXQpICYmXG4gICAgICAgICAgdGhpcy5xdWV1ZS5sZW5ndGggPT09IDE7XG4gICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xuICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVCB8fCB0YXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LkNPTlRFWFRfVFJFRSkge1xuXG4gICAgICAgIC8vIHRvZG86IGFkZCBjaGVja3MgcmVsYXRlZCB0byB0aGUgcmVmZXJlbmNlIG9iamVjdCAoZS5nLiBhbGxvd2VkIGZpbGUgdHlwZXMpXG4gICAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2UuZ2V0UHJlcGFyZUNoaWxkVHlwZXModGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5pZCwgdHJ1ZSlcbiAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHJlczogeyBwYXJlbnQ6IHN0cmluZywgdHlwZXM6IE9iamVjdFR5cGVbXSB9KSA9PiB7XG4gICAgICAgICAgICAgIHZhbGlkID0gdGFyZ2V0LnJlZmVyZW5jZU9iamVjdCAmJiB0aGlzLnF1ZXVlLmxlbmd0aCA+IDAgJiYgcmVzLnR5cGVzLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgICAgICAgLy8gZm9yIENPTlRFWFRfVFJFRSB0YXJnZXRzIGFsc28gY2hlY2sgaWYgdGhlIGRlc2lyZWQgbm9kZVxuICAgICAgICAgICAgICAvLyB0eXBlIGlzIHBhcnQgb2YgdGhlIHByZXBhcmUgY2hpbGQgdHlwZXNcbiAgICAgICAgICAgICAgaWYgKHRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVF9UUkVFICYmIHRhcmdldC5zdWJGb2xkZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJGb2xkZXI6IGFueSA9IHRhcmdldC5zdWJGb2xkZXI7XG4gICAgICAgICAgICAgICAgdmFsaWQgPSAhIXJlcy50eXBlcy5maW5kKHQgPT4gdGhpcy5zeXN0ZW1TZXJ2aWNlLmltcGxlbWVudHNUeXBlKHQsIHN1YkZvbGRlci5kYXRhLnR5cGUpKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xuICAgICAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgICBvLm5leHQoe3RhcmdldDogdGFyZ2V0LCB2YWxpZDogZmFsc2V9KTtcbiAgICAgICAgICAgICAgby5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvLm5leHQoe3RhcmdldDogdGFyZ2V0LCB2YWxpZDogZmFsc2V9KTtcbiAgICAgICAgby5jb21wbGV0ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBmaWxlIGZyb20gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gYmUgdXBsb2FkZWQuXG4gICAqIEBwYXJhbSBmaWxlSXRlbSAtIHRoZSBmaWxlIGl0ZW0gdG8gYmUgcmVtb3ZlZFxuICAgKi9cbiAgcHVibGljIHJlbW92ZUZpbGVJdGVtKGZpbGVJdGVtOiBVcGxvYWRGaWxlSXRlbSkge1xuXG4gICAgdGhpcy5xdWV1ZSA9IHRoaXMucXVldWUuZmlsdGVyKChmKSA9PiBmLmlkICE9PSBmaWxlSXRlbS5pZCk7XG4gICAgaWYgKCF0aGlzLnF1ZXVlLmxlbmd0aCkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB1cGRhdGUgYXZhaWxhYmxlIHVwbG9hZCB0YXJnZXRzIGJlY2F1c2UgdGhlaXIgdmFsaWRpdHlcbiAgICAgIC8vIG1heSBiZSBiYXNlZCBvbiB0aGUgcXVldWUgc2l6ZVxuICAgICAgdGhpcy52YWxpZGF0ZVVwbG9hZFRhcmdldHMoKTtcbiAgICAgIHRoaXMuc2V0UXVldWVTaXplKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2NlZWQgdXBsb2FkIHdpdGggYSBzZWxlY3RlZCB1cGxvYWQgdGFyZ2V0LlxuICAgKiBAcGFyYW0gdXBsb2FkVGFyZ2V0IC0gdGhlIHRhcmdldCB0byB1cGxvYWQgZmlsZXMgdG9cbiAgICovXG4gIHB1YmxpYyBwcm9jZWVkV2l0aFVwbG9hZCh1cGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldCkge1xuXG4gICAgaWYgKHVwbG9hZFRhcmdldC50eXBlICE9PSBVcGxvYWRUYXJnZXQuQ1VTVE9NICYmIHRoaXMucXVldWUubGVuZ3RoID4gMSkge1xuICAgICAgLy8gRm9yIG1vcmUgdGhhbiBvbmUgZmlsZSB0byBiZSB1cGxvYWRlZCB0byBhIG5vbmUgY3VzdG9tIHRhcmdldCwgd2UgbGV0IHRoZSB1c2VyIGRlY2lkZSBpZlxuICAgICAgLy8gYmF0Y2ggdXBsb2FkIHNob3VsZCBiZSB1c2VkIG9yIG5vdCAuLi5cblxuXG4gICAgICB0aGlzLnNlbGVjdGVkVXBsb2FkVGFyZ2V0ID0gdXBsb2FkVGFyZ2V0O1xuICAgIH0gZWxzZSBpZiAodXBsb2FkVGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5PQkpFQ1QpIHtcbiAgICAgIC8vIC4uLiBvdGhlcndpc2UgdXBsb2FkIGlzIHN0YXJ0ZWQgaW1tZWRpYXRlbHlcbiAgICAgIHRoaXMuc3RhcnRVcGxvYWQodXBsb2FkVGFyZ2V0LCBbbnVsbCwgdGhpcy5nZXRTdGF0ZVJvdXRlKCldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGFydFVwbG9hZCh1cGxvYWRUYXJnZXQsIFtudWxsLCAnL3ByZXBhcmUnXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2NlZWQgdXBsb2FkIHVzaW5nIHRoZSBzZWxlY3RlZCB1cGxvYWQgdGFyZ2V0LlxuICAgKiBAcGFyYW0gdXNlQmF0Y2hVcGxvYWQgLSBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gdXNlIGJhdGNoIHVwbG9hZFxuICAgKi9cbiAgcHVibGljIHByb2NlZWRXaXRoU2VsZWN0ZWRUYXJnZXQodXNlQmF0Y2hVcGxvYWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnN0YXJ0VXBsb2FkKHRoaXMuc2VsZWN0ZWRVcGxvYWRUYXJnZXQsIFt1c2VCYXRjaFVwbG9hZCwgJy9wcmVwYXJlJ10pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgc2VsZWN0ZWQgdXBsb2FkIHRhcmdldC5cbiAgICovXG4gIHB1YmxpYyByZXNldFNlbGVjdGVkVXBsb2FkVGFyZ2V0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRVcGxvYWRUYXJnZXQgPSBudWxsO1xuICB9XG5cbiAgZ2V0U3RhdGVSb3V0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIudXJsO1xuICB9XG5cblxuICBwcml2YXRlIHN1Y2Nlc3NmdWxVcGxvYWQodGFyZ2V0LCB1cGxvYWRUYXJnZXQpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9VUERBVEVELCB1cGxvYWRUYXJnZXQucmVmZXJlbmNlT2JqZWN0KTtcbiAgICB1cGxvYWRUYXJnZXQub25VcGxvYWRTdWNjZXNzKHRhcmdldCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgdGhlIGFjdHVhbCB1cGxvYWQuXG4gICAqIEBwYXJhbSB1cGxvYWRUYXJnZXQgLSB0YXJnZXQgdG8gdXBsb2FkIHRoZSBmaWxlcyB0b1xuICAgKiBAcGFyYW0gdXNlQmF0Y2hVcGxvYWQgLSBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gdXNlIGJhdGNoIHVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBzdGFydFVwbG9hZCh1cGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldCwgWy4uLmFyZ3NdKSB7XG5cbiAgICBjb25zdCBbdXNlQmF0Y2hVcGxvYWQsIHRhcmdldF0gPSBhcmdzO1xuXG4gICAgdGhpcy5pc1VwbG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy51bmJpbmRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnByZXBhcmVTZXJ2aWNlXG4gICAgICAudXBsb2FkVG9UYXJnZXQodXBsb2FkVGFyZ2V0LCB0aGlzLnF1ZXVlLCB1c2VCYXRjaFVwbG9hZClcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICBpZiAodXBsb2FkVGFyZ2V0LnN1YkZvbGRlciAmJiB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyLmRhdGEuZGF0YSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzKSkge1xuICAgICAgICAgICAgICBsZXQgb2JzID0gW107XG4gICAgICAgICAgICAgIHJlcy5mb3JFYWNoKHIgPT4ge1xuICAgICAgICAgICAgICAgIG9icy5wdXNoKHRoaXMucHJlcGFyZVNlcnZpY2UudXBkYXRlUHJlcGFyZWRJdGVtSW5kZXhEYXRhKHIuaWQsIHVwbG9hZFRhcmdldC5zdWJGb2xkZXIuZGF0YS5kYXRhKSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBvYnNlcnZhYmxlRm9ya0pvaW4ob2JzKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdWNjZXNzZnVsVXBsb2FkKHRhcmdldCwgdXBsb2FkVGFyZ2V0KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnByZXBhcmVTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLnVwZGF0ZVByZXBhcmVkSXRlbUluZGV4RGF0YShyZXMuaWQsIHVwbG9hZFRhcmdldC5zdWJGb2xkZXIuZGF0YS5kYXRhKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdWNjZXNzZnVsVXBsb2FkKHRhcmdldCwgdXBsb2FkVGFyZ2V0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3VjY2Vzc2Z1bFVwbG9hZCh0YXJnZXQsIHVwbG9hZFRhcmdldCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfSwgVXRpbHMudGhyb3coKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB1cGxvYWRUYXJnZXQub25VcGxvYWRGYWlsKCk7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9LFxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby51cGxvYWQuZ2xvYmFsLmVycm9yLnRpdGxlJyksXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnVwbG9hZC5nbG9iYWwuZXJyb3IuZGVzY3JpcHRpb24nKSlcbiAgICAgICk7XG4gICAgdGhpcy5yZXNldFNlbGVjdGVkVXBsb2FkVGFyZ2V0KCk7XG4gIH1cblxuICBwcml2YXRlIHNldFF1ZXVlU2l6ZSgpIHtcbiAgICBsZXQgcyA9IDA7XG4gICAgZm9yIChsZXQgZiBvZiB0aGlzLnF1ZXVlKSB7XG4gICAgICBzICs9IGYuc2l6ZTtcbiAgICB9XG4gICAgdGhpcy5xdWV1ZVNpemUgPSBzO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSB1cGxvYWQgb3ZlcmxheSBhbmQgcmVsZWFzZSBhbGwgYm91bmQgcmVzb3VyY2VzLlxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgLy8gdW5iaW5kIGJvdW5kIGV2ZW50IGxpc3RlbmVyLCB3aGVuIHRoZXkgYXJlIG5vdCBuZWVkZWQgYW55bW9yZVxuICAgIHRoaXMudW5iaW5kTGlzdGVuZXJzKCk7XG4gICAgLy8gY2xlYXIgdXBsb2FkIHF1ZXVlXG4gICAgdGhpcy5xdWV1ZSA9IFtdO1xuICAgIC8vIGhpZGUgdGhlIG92ZXJsYXlcbiAgICB0aGlzLnNldEZpbGVPdmVyKGZhbHNlKTtcbiAgICB0aGlzLmludmFsaWRJbnB1dCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGaWxlT3Zlcih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZmlsZU92ZXIgPSB2YWx1ZTtcbiAgICB0aGlzLnVwbG9hZFJlZ2lzdHJ5LnNldE92ZXJsYXlBY3RpdmUodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSB1bmJpbmRMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHRoaXMuZHJhZ0xlYXZlTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZHJhZ0xlYXZlTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZHJhZ0xlYXZlTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5kcmFnT3Zlckxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmRyYWdPdmVyTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmRyb3BMaXN0ZW5lcikge1xuICAgICAgdGhpcy5kcm9wTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZHJvcExpc3RlbmVyID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXNjS2V5TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZXNjS2V5TGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZXNjS2V5TGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIGN1cnJlbnQgZHJhZyBldmVudCBjb250YWlucyBvbmUgb3IgbW9yZSBmaWxlcy5cbiAgICogQHBhcmFtIGV2ZW50IC0gdGhlIGRyYWcgZXZlbnQgdG8gYmUgY2hlY2tlZFxuICAgKiBAcmV0dXJucyBudW1iZXIgb2YgZmlsZXNcbiAgICovXG4gICBwcml2YXRlIGRyYWdDb250YWluc0ZpbGVzKGV2ZW50OiBEcmFnRXZlbnQpOiBudW1iZXIge1xuICAgIHJldHVybiBBcnJheS5mcm9tKGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtcyB8fCBbXSkuZmlsdGVyKGkgPT4gaS5raW5kID09PSAnZmlsZScpLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIGN1cnJlbnQgcGFzdGUgZXZlbnQgY29udGFpbnMgb25lIG9yIG1vcmUgZmlsZXMuXG4gICAqIEBwYXJhbSBldmVudCAtIHRoZSBwYXN0ZSBldmVudCB0byBiZSBjaGVja2VkXG4gICAqIEByZXR1cm5zIG51bWJlciBvZiBmaWxlc1xuICAgKi9cbiAgcHJpdmF0ZSBwYXN0ZUNvbnRhaW5zRmlsZXMoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShldmVudC5jbGlwYm9hcmREYXRhLml0ZW1zIHx8IFtdKS5maWx0ZXIoaSA9PiBpLmtpbmQgPT09ICdmaWxlJykubGVuZ3RoO1xuICB9XG5cbiAgLy8gbmdGb3IgdHJhY2tpbmcgZnVuY3Rpb24gZm9yIHVwbG9hZCB0YXJnZXRzXG4gIHRhcmdldFRyYWNrQnlGbihpbmRleCwgaXRlbSkge1xuICAgIHJldHVybiBpdGVtLmlkO1xuICB9XG5cbiAgLy8gbmdGb3IgdHJhY2tpbmcgZnVuY3Rpb24gZm9yIGZpbGUgaXRlbXNcbiAgdHJhY2tCeUZuKGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5kcmFnRW50ZXJMaXN0ZW5lcikge1xuICAgICAgdGhpcy5kcmFnRW50ZXJMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBpZD1cImVvLXVwbG9hZC1vdmVybGF5XCIgI292ZXJsYXkgY2xhc3M9XCJkYXJrXCIgKm5nSWY9XCJmaWxlT3ZlclwiIHRhYmluZGV4PVwiMVwiXG4gICAgIFtuZ0NsYXNzXT1cIntoYXNGaWxlczogcXVldWUubGVuZ3RoLCBpbnZhbGlkOiBpbnZhbGlkSW5wdXQsIHNpbmdsZUZpbGU6IHF1ZXVlLmxlbmd0aCA9PT0gMSwgdXBsb2FkaW5nOiBpc1VwbG9hZGluZ31cIj5cblxuICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBjbG9zZVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiAoY2xpY2spPVwiY2xvc2UoKVwiPjwvZW8taWNvbj5cblxuICA8ZGl2IGNsYXNzPVwiY291bnRcIj5cbiAgICA8ZGl2Pnt7cXVldWUubGVuZ3RofX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicXVldWVTaXplXCI+e3txdWV1ZVNpemUgfCBmaWxlU2l6ZX19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxoMSB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5oZWFkbGluZTwvaDE+XG4gIDxlby1pY29uIGNsYXNzPVwidXBsb2FkeVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3VwbG9hZC5zdmcnXCI+PC9lby1pY29uPlxuXG4gIDwhLS0gYmF0Y2ggdXBsb2FkIGRpYWxvZyAtLT5cbiAgPGRpdiBjbGFzcz1cImJhdGNoLWRpYWxvZ1wiICpuZ0lmPVwiIWludmFsaWRJbnB1dCAmJiBzZWxlY3RlZFVwbG9hZFRhcmdldCAmJiAhaXNVcGxvYWRpbmdcIj5cblxuICAgIDxoMiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5jaG9vc2UudGl0bGU8L2gyPlxuICAgIDxwIHRyYW5zbGF0ZT5lby51cGxvYWQuZ2xvYmFsLmNob29zZS5tZXNzYWdlPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJyZXNldFNlbGVjdGVkVXBsb2FkVGFyZ2V0KClcIiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5jYW5jZWw8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cInByb2NlZWRXaXRoU2VsZWN0ZWRUYXJnZXQoZmFsc2UpXCIgY2xhc3M9XCJwcmltYXJ5XCIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuY2hvb3NlLnNpbmdsZTwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicHJvY2VlZFdpdGhTZWxlY3RlZFRhcmdldCh0cnVlKVwiIGNsYXNzPVwicHJpbWFyeVwiIHRyYW5zbGF0ZT5lby51cGxvYWQuZ2xvYmFsLmNob29zZS5tdWx0aTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIGludmFsaWQgaW5wdXQgZGlhbG9nIC0tPlxuICA8ZGl2IGNsYXNzPVwiYmF0Y2gtZGlhbG9nXCIgKm5nSWY9XCJoYXNWYWxpZFVwbG9hZFRhcmdldHMgJiYgaW52YWxpZElucHV0XCI+XG5cbiAgICA8aDIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuaW52YWxpZC50aXRsZTwvaDI+XG4gICAgPHAgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuaW52YWxpZC5tZXNzYWdlPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuY2xvc2U8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBubyB1cGxvYWQgdGFyZ2V0cyBhdmFpbGFibGUgLS0+XG4gIDxkaXYgY2xhc3M9XCJiYXRjaC1kaWFsb2dcIiAqbmdJZj1cIiFoYXNWYWxpZFVwbG9hZFRhcmdldHNcIj5cblxuICAgIDxoMiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5ub3RhcmdldC50aXRsZTwvaDI+XG4gICAgPHAgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwubm90YXJnZXQubWVzc2FnZTwvcD5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIHRyYW5zbGF0ZT5lby51cGxvYWQuZ2xvYmFsLmNsb3NlPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50c1wiICpuZ0lmPVwiaGFzVmFsaWRVcGxvYWRUYXJnZXRzICYmICFpbnZhbGlkSW5wdXQgJiYgIXNlbGVjdGVkVXBsb2FkVGFyZ2V0ICYmICFpc1VwbG9hZGluZ1wiPlxuXG4gICAgPCEtLSBsaXN0IG9mIGF2YWlsYWJsZSB1cGxvYWQgdGFyZ2V0cyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0c1wiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0LWxpc3RcIj5cblxuICAgICAgICA8aDIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwudGFyZ2V0PC9oMj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLXRhcmdldFwiICpuZ0Zvcj1cImxldCB0IG9mIHZhbGlkVXBsb2FkVGFyZ2V0czsgdHJhY2tCeTogdGFyZ2V0VHJhY2tCeUZuXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwicHJvY2VlZFdpdGhVcGxvYWQodClcIlxuICAgICAgICAgICAgIFtuZ1N3aXRjaF09XCJ0LnR5cGVcIj5cblxuICAgICAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3VwbG9hZC5zdmcnXCI+PC9lby1pY29uPlxuXG4gICAgICAgICAgPCEtLSB1cGxvYWQgdG8gcm9vdCAtLT5cbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncm9vdCdcIiBjbGFzcz1cInVwbG9hZC10YXJnZXQtZ2VuZXJhbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5yb290LnRpdGxlPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5yb290LmRlc2NyaXB0aW9uPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIHJlcGxhY2UgZmlsZSBvZiBhIHNwZWNpZmljIGRtcyBvYmplY3QgLS0+XG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ29iamVjdCdcIiBjbGFzcz1cInVwbG9hZC10YXJnZXQtcmVwbGFjZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIiAqbmdJZj1cInQucmVmZXJlbmNlT2JqZWN0LmNvbnRlbnQ7ZWxzZSBub2NvbnRlbnRcIiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5vYmplY3QudGl0bGU8L2Rpdj5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub2NvbnRlbnQ+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwub2JqZWN0LnRpdGxlLm5vY29udGVudDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7dC5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIGFkZCBuZXcgZmlsZXMgdG8gYSBjb250ZXh0IGZvbGRlciAtLT5cbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY29udGV4dCdcIiBjbGFzcz1cInVwbG9hZC10YXJnZXQtY29udGV4dFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57eydlby51cGxvYWQuZ2xvYmFsLmNvbnRleHQudGl0bGUnfHRyYW5zbGF0ZTooe2NvbnRleHQ6dC5yZWZlcmVuY2VPYmplY3QudHlwZS5sYWJlbH0pfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7dC5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIGFkZCBuZXcgZmlsZXMgdG8gYSBjb250ZXh0IGZvbGRlciBzdHJ1Y3R1cmUgdHJlZSBlbnRyeSAtLT5cbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY29udGV4dHRyZWUnXCIgIGNsYXNzPVwidXBsb2FkLXRhcmdldC1jb250ZXh0dHJlZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57eydlby5hZGQudGl0bGUubG9jYXRpb24uc3ViZm9sZGVyJ3x0cmFuc2xhdGU6ICh7Zm9sZGVyOiB0LnN1YkZvbGRlci5uYW1lfSl9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBjdXN0b20gdXBsb2FkIHRhcmdldCAoZS5nLiBmcm9tIHBsdWdpbiBjb21wb25lbnQpIC0tPlxuICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidjdXN0b20nXCIgY2xhc3M9XCJ1cGxvYWQtdGFyZ2V0LWN1c3RvbVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57e3QubmFtZX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj57e3QuZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gbGlzdCBvZiBmaWxlcyBkcmFnZ2VkIHRvIHRoZSBjb21wb25lbnQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImZpbGVzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZXMtbGlzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1pdGVtXCIgKm5nRm9yPVwibGV0IGkgb2YgcXVldWU7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPnt7aS5uYW1lfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+PHNwYW4gY2xhc3M9XCJzaXplXCI+e3tpLnNpemUgfCBmaWxlU2l6ZX19PC9zcGFuPjxzcGFuIGNsYXNzPVwiZGVzYy10ZXh0XCI+Jm5ic3A7e3tpLnR5cGV9fTwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZVwiIChjbGljayk9XCJyZW1vdmVGaWxlSXRlbShpKVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxvYWRpbmdcIiAqbmdJZj1cImlzVXBsb2FkaW5nXCI+PGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInbGFyZ2UnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+PC9kaXY+XG5cblxuPC9kaXY+XG4iXX0=
|
|
395
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdXBsb2FkLW92ZXJsYXkvdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdXBsb2FkLW92ZXJsYXkvdXBsb2FkLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEVBQUUsSUFBSSxZQUFZLEVBQUUsUUFBUSxJQUFJLGtCQUFrQixFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwRixPQUFPLEVBQUMsU0FBUyxFQUFxQixTQUFTLEVBQXNDLE1BQU0sZUFBZSxDQUFDO0FBRTNHLE9BQU8sRUFHTCxVQUFVLEVBRVYsWUFBWSxFQUNaLGNBQWMsRUFFZCxLQUFLLEVBRUwsZ0JBQWdCLEVBQ2pCLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7QUFPdEIsTUFBTSxPQUFPLHNCQUFzQjtJQXNCakMsWUFBb0IsTUFBYyxFQUNkLFFBQW1CLEVBQ25CLGNBQThCLEVBQzlCLFNBQTJCLEVBQzNCLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLGNBQXFDO1FBTnJDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUF4QnpELFVBQUssR0FBcUIsRUFBRSxDQUFDO1FBTTdCLHVCQUFrQixHQUFtQixFQUFFLENBQUM7UUFHaEMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBT25DLG1CQUFj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LEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMxRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQixDQUFDLEtBQXFCO1FBQzlDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzRixDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUN6QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELHlDQUF5QztJQUN6QyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUk7UUFDbkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOzttSEF2YlUsc0JBQXNCO3VHQUF0QixzQkFBc0IsK0pDckJuQyx1bUxBaUlBOzJGRDVHYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsbUJBQW1COzRRQU1QLFNBQVM7c0JBQTlCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7b2YgYXMgb2JzZXJ2YWJsZU9mLCBmb3JrSm9pbiBhcyBvYnNlcnZhYmxlRm9ya0pvaW4sIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgT2JqZWN0VHlwZSxcbiAgRXZlbnRTZXJ2aWNlLFxuICBFbmFpb0V2ZW50LFxuICBVcGxvYWRSZWdpc3RyeVNlcnZpY2UsXG4gIFVwbG9hZFRhcmdldCxcbiAgVXBsb2FkRmlsZUl0ZW0sXG4gIFByZXBhcmVTZXJ2aWNlLFxuICBVdGlscyxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgRW52aXJvbm1lbnRFbmFpbywgU3lzdGVtU2VydmljZVxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby11cGxvYWQtb3ZlcmxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC1vdmVybGF5LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkT3ZlcmxheUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKCdvdmVybGF5Jykgb3ZlcmxheUVsOiBFbGVtZW50UmVmO1xuXG4gIHF1ZXVlOiBVcGxvYWRGaWxlSXRlbVtdID0gW107XG4gIGZpbGVPdmVyOiBib29sZWFuO1xuICBpc1VwbG9hZGluZzogYm9vbGVhbjtcbiAgaGFzVmFsaWRVcGxvYWRUYXJnZXRzOiBib29sZWFuO1xuICBpbnZhbGlkSW5wdXQ6IGJvb2xlYW47XG4gIHF1ZXVlU2l6ZTogbnVtYmVyO1xuICB2YWxpZFVwbG9hZFRhcmdldHM6IFVwbG9hZFRhcmdldFtdID0gW107XG4gIHNlbGVjdGVkVXBsb2FkVGFyZ2V0OiBVcGxvYWRUYXJnZXQ7XG5cbiAgcHJpdmF0ZSB1cGxvYWRUYXJnZXRzOiBVcGxvYWRUYXJnZXRbXSA9IFtdO1xuICBwcml2YXRlIGRyYWdMZWF2ZUxpc3RlbmVyOiBGdW5jdGlvbjtcbiAgcHJpdmF0ZSBkcm9wTGlzdGVuZXI6IEZ1bmN0aW9uO1xuICBwcml2YXRlIGRyYWdPdmVyTGlzdGVuZXI6IEZ1bmN0aW9uO1xuICBwcml2YXRlIGVzY0tleUxpc3RlbmVyOiBGdW5jdGlvbjtcbiAgcHJpdmF0ZSBkcmFnRW50ZXJMaXN0ZW5lcjogRnVuY3Rpb247XG4gIHByaXZhdGUgcGFzdGVMaXN0ZW5lcjogRnVuY3Rpb247XG4gIHByaXZhdGUgZHJhZ0V2ZW50Q291bnQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwcmVwYXJlU2VydmljZTogUHJlcGFyZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdXBsb2FkUmVnaXN0cnk6IFVwbG9hZFJlZ2lzdHJ5U2VydmljZSkge1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCkge1xuXG4gICAgLy8gZ2xvYmFsIGRyYWcmZHJvcCB1cGxvYWQgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBvbiBkZXNrdG9wICh3ZWIgb3IgZWxlY3Ryb24pXG4gICAgaWYgKEVudmlyb25tZW50RW5haW8uaXNNb2JpbGVFbnZpcm9ubWVudCgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gc3Vic2NyaWJlIGZvciB0aGUgbGlzdCBvZiByZWdpc3RlcmVkIHVwbG9hZCB0YXJnZXRzXG4gICAgdGhpcy51cGxvYWRSZWdpc3RyeS51cGxvYWRUYXJnZXRzJC5zdWJzY3JpYmUoKHVwbG9hZFRhcmdldHM6IFVwbG9hZFRhcmdldFtdKSA9PiB7XG4gICAgICB0aGlzLnVwbG9hZFRhcmdldHMgPSB1cGxvYWRUYXJnZXRzO1xuICAgIH0pO1xuXG4gICAgdGhpcy5wYXN0ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ3Bhc3RlJywgKGU6IENsaXBib2FyZEV2ZW50KSA9PiB7XG4gICAgICB0aGlzLm9uUGFzdGUoZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmRyYWdFbnRlckxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2RyYWdlbnRlcicsIChlOiBEcmFnRXZlbnQpID0+IHtcbiAgICAgIHRoaXMub25EcmFnRW50ZXIoZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uUGFzdGUoZTogQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc1VwbG9hZGluZykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmhhc1ZhbGlkVXBsb2FkVGFyZ2V0cyA9IHRydWU7XG4gICAgdGhpcy5pbnZhbGlkSW5wdXQgPSBmYWxzZTtcbiAgICBpZiAoIXRoaXMuZmlsZU92ZXIgJiYgdGhpcy5wYXN0ZUNvbnRhaW5zRmlsZXMoZSkpIHtcbiAgICAgIGxldCB0cmFuc2ZlciA9IGUuY2xpcGJvYXJkRGF0YTtcbiAgICAgIGlmICghdHJhbnNmZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBjaGVjayBmb3IgZGlyZWN0b3JpZXNcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJhbnNmZXIuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRyYW5zZmVyLml0ZW1zW2ldLmtpbmQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdGhpcy5pbnZhbGlkSW5wdXQgPSB0cnVlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmZSA9IHRyYW5zZmVyLml0ZW1zW2ldLndlYmtpdEdldEFzRW50cnkoKTtcbiAgICAgICAgaWYgKGZlICYmIGZlLmlzRGlyZWN0b3J5KSB7XG4gICAgICAgICAgICB0aGlzLmludmFsaWRJbnB1dCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pbnZhbGlkSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fcHJldmVudEFuZFN0b3AoZSk7XG4gICAgICAgIHRoaXMuc2V0RmlsZU92ZXIodHJ1ZSk7XG4gICAgICAgIHRoaXMub25GaWxlc0Ryb3BwZWQoQXJyYXkuZnJvbSh0cmFuc2Zlci5maWxlcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25EcmFnRW50ZXIoZTogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNVcGxvYWRpbmcpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5oYXNWYWxpZFVwbG9hZFRhcmdldHMgPSB0cnVlO1xuICAgIGlmICghdGhpcy5maWxlT3ZlciAmJiB0aGlzLmRyYWdDb250YWluc0ZpbGVzKGUpKSB7XG4gICAgICB0aGlzLmRyYWdFdmVudENvdW50ID0gMDtcbiAgICAgIHRoaXMuc2V0RmlsZU92ZXIodHJ1ZSk7XG5cblxuICAgICAgLy8gdXNlIHRpbWVvdXQgaGVyZSB0byBmb3JjZSBhbmd1bGFyIGRpZ2VzdCBjeWNsZSBiZWZvcmUgY29udGludWluZywgYmVjYXVzZSB3ZSBhcmUgYWNjZXNzaW5nIGRvbSBlbGVtZW50c1xuICAgICAgLy8gdGhhdCBhcmUgbm90IHRoZXJlICgqbmdJZikgdW50aWwgZmlsZU92ZXIgaXMgc2V0IHRvIHRydWUuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gdG9kbzogcmVwbGFjZSBieSByZW5kZXJlciBzb2x1dGlvbiB3aGVuIGF2YWlsYWJsZSAoaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTU2NzQpXG4gICAgICAgIHRoaXMub3ZlcmxheUVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgLy8gYmluZCBsYXRlIChvbmx5LCB3aGVuIG5lZWRlZCkgdG8gZHJhZ2xlYXZlIGV2ZW50IHRvIGF2b2lkIGhlYXZ5IHByb2Nlc3Npbmcgb24gZXZlcnkgZHJhZyBldmVudFxuICAgICAgICB0aGlzLmRyYWdMZWF2ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5vdmVybGF5RWwubmF0aXZlRWxlbWVudCwgJ2RyYWdsZWF2ZScsIChldnQpID0+IHtcbiAgICAgICAgICB0aGlzLmRyYWdFdmVudENvdW50LS07XG4gICAgICAgICAgaWYgKHRoaXMuZHJhZ0V2ZW50Q291bnQgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZHJvcExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5vdmVybGF5RWwubmF0aXZlRWxlbWVudCwgJ2Ryb3AnLCAoZXZ0KSA9PiB7XG4gICAgICAgICAgbGV0IHRyYW5zZmVyID0gdGhpcy5fZ2V0VHJhbnNmZXIoZXZ0KTtcbiAgICAgICAgICBpZiAoIXRyYW5zZmVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3ByZXZlbnRBbmRTdG9wKGV2dCk7XG5cbiAgICAgICAgICAvLyBjaGVjayBmb3IgZGlyZWN0b3JpZXNcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyYW5zZmVyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBmZSA9IHRyYW5zZmVyLml0ZW1zW2ldLndlYmtpdEdldEFzRW50cnkoKTtcbiAgICAgICAgICAgIGlmIChmZSAmJiBmZS5pc0RpcmVjdG9yeSkge1xuICAgICAgICAgICAgICB0aGlzLmludmFsaWRJbnB1dCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghdGhpcy5pbnZhbGlkSW5wdXQpIHtcbiAgICAgICAgICAgIHRoaXMub25GaWxlc0Ryb3BwZWQodHJhbnNmZXIuZmlsZXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kcmFnT3Zlckxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5vdmVybGF5RWwubmF0aXZlRWxlbWVudCwgJ2RyYWdvdmVyJywgKGV2dCkgPT4ge1xuICAgICAgICAgIGxldCB0cmFuc2ZlciA9IHRoaXMuX2dldFRyYW5zZmVyKGV2dCk7XG4gICAgICAgICAgaWYgKCF0cmFuc2Zlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0cmFuc2Zlci5kcm9wRWZmZWN0ID0gJ2NvcHknO1xuICAgICAgICAgIHRoaXMuX3ByZXZlbnRBbmRTdG9wKGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJhZ0V2ZW50Q291bnQrKztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRUcmFuc2ZlcihldmVudDogYW55KTogYW55IHtcbiAgICByZXR1cm4gZXZlbnQuZGF0YVRyYW5zZmVyID8gZXZlbnQuZGF0YVRyYW5zZmVyIDogZXZlbnQub3JpZ2luYWxFdmVudC5kYXRhVHJhbnNmZXI7IC8vIGpRdWVyeSBmaXg7XG4gIH1cblxuICBwcml2YXRlIF9wcmV2ZW50QW5kU3RvcChldmVudDogYW55KTogYW55IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkZpbGVzRHJvcHBlZChmaWxlSXRlbXM6IEZpbGVbXSkge1xuICAgIC8vIGNsZWFyIHF1ZXVlIHdoZW4gbmV3IGZpbGVzIGFyZSBhZGRlZFxuICAgIC8vIHRvZG86IHJlbW92ZSBpbiBmdXR1cmUgcmVsZWFzZXMgdG8gc3VwcG9ydCBjb2xsZWN0aXZlIGZpbGUgYWRkaW5nXG4gICAgdGhpcy5xdWV1ZSA9IFtdO1xuICAgIGZvciAobGV0IGZpbGUgb2YgZmlsZUl0ZW1zKSB7XG4gICAgICB0aGlzLnF1ZXVlLnB1c2gobmV3IFVwbG9hZEZpbGVJdGVtKGZpbGUpKTtcbiAgICB9XG5cbiAgICAvLyBiaW5kIEVTQyBrZXkgbGlzdGVuZXIgZm9yIGNsb3NpbmcgdGhlIGRpYWxvZyBhcyBsYXRlIGFzIHBvc3NpYmxlXG4gICAgaWYgKCF0aGlzLmVzY0tleUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmVzY0tleUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2tleXVwJywgKGUpID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gMjcpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBjYWxjdWxhdGUgdG90YWwgc2l6ZSBvZiBxdWV1ZVxuICAgIHRoaXMuc2V0UXVldWVTaXplKCk7XG4gICAgLy8gZmlsdGVyIGF2YWlsYWJsZSB0YXJnZXRzXG4gICAgdGhpcy52YWxpZGF0ZVVwbG9hZFRhcmdldHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgbGlzdCBvZiByZWdpc3RlcmVkIHVwbG9hZCB0YXJnZXRzLCBzbyBvbmx5IHZhbGlkIHRhcmdldHMgd2lsbCBiZSBzaG93bi5cbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVVcGxvYWRUYXJnZXRzKCkge1xuICAgIHRoaXMuaGFzVmFsaWRVcGxvYWRUYXJnZXRzID0gdHJ1ZTtcbiAgICBvYnNlcnZhYmxlRm9ya0pvaW4odGhpcy51cGxvYWRUYXJnZXRzLm1hcCh0ID0+IHRoaXMudmFsaWRhdGVVcGxvYWRUYXJnZXQodCkpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKHJlczogeyB0YXJnZXQ6IFVwbG9hZFRhcmdldCwgdmFsaWQ6IGJvb2xlYW4gfVtdKSA9PiB7XG4gICAgICAgICAgdGhpcy52YWxpZFVwbG9hZFRhcmdldHMgPSByZXMuZmlsdGVyKHIgPT4gci52YWxpZCkubWFwKGZpbHRlcmVkID0+IGZpbHRlcmVkLnRhcmdldCkucmV2ZXJzZSgpLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBhLnR5cGUgPT09ICdjb250ZXh0JyA/IC0xIDogYi50eXBlID09PSAnY29udGV4dCcgPyAxIDogMDsgLy8gQ29udGV4dCBzaG91bGQgYmUgb24gdG9wXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy52YWxpZFVwbG9hZFRhcmdldHMgPSBbXTtcbiAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFzVmFsaWRVcGxvYWRUYXJnZXRzID0gdGhpcy52YWxpZFVwbG9hZFRhcmdldHMubGVuZ3RoID4gMDtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVVcGxvYWRUYXJnZXQodGFyZ2V0OiBVcGxvYWRUYXJnZXQpOiBPYnNlcnZhYmxlPHsgdGFyZ2V0OiBVcGxvYWRUYXJnZXQsIHZhbGlkOiBib29sZWFuIH0+IHtcblxuICAgIGlmICghdGhpcy5xdWV1ZSkge1xuICAgICAgcmV0dXJuIG9ic2VydmFibGVPZih7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiBmYWxzZX0pO1xuICAgIH1cblxuICAgIHJldHVybiBPYnNlcnZhYmxlLmNyZWF0ZShvID0+IHtcbiAgICAgIGxldCB2YWxpZCA9IGZhbHNlO1xuXG4gICAgICBpZiAodGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5ST09UKSB7XG5cbiAgICAgICAgLy8gdG9kbzogYXJlIHRoZXJlIG90aGVyIHJlc3RyaWN0aW9ucyBvbiByb290IHRhcmdldD9cbiAgICAgICAgdGhpcy5wcmVwYXJlU2VydmljZS5nZXRQcmVwYXJlQ2hpbGRUeXBlcyhudWxsLCB0cnVlKVxuICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAocmVzOiB7IHBhcmVudDogc3RyaW5nLCB0eXBlczogT2JqZWN0VHlwZVtdIH0pID0+IHtcbiAgICAgICAgICAgICAgdmFsaWQgPSB0aGlzLnF1ZXVlLmxlbmd0aCA+IDAgJiYgcmVzLnR5cGVzLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xuICAgICAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgICBvLm5leHQoe3RhcmdldDogdGFyZ2V0LCB2YWxpZDogZmFsc2V9KTtcbiAgICAgICAgICAgICAgby5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuT0JKRUNUKSB7XG5cbiAgICAgICAgLy8gdG9kbzogY2hlY2sgaWYgdGhlIHJlZmVyZW5jZSBvYmplY3Qgc3VwcG9ydHMgdGhlIGdpdmVuIGZpbGUgdHlwZVxuICAgICAgICB2YWxpZCA9IHRhcmdldC5yZWZlcmVuY2VPYmplY3QgJiZcbiAgICAgICAgICB0YXJnZXQucmVmZXJlbmNlT2JqZWN0LnR5cGUubWF4RmlsZXMgPiAwICYmXG4gICAgICAgICAgIXRhcmdldC5yZWZlcmVuY2VPYmplY3QubG9jayAmJlxuICAgICAgICAgICF0YXJnZXQucmVmZXJlbmNlT2JqZWN0LmlzRmluYWxpemVkICYmXG4gICAgICAgICAgKHRhcmdldC5yZWZlcmVuY2VPYmplY3QucmlnaHRzICYmIHRhcmdldC5yZWZlcmVuY2VPYmplY3QucmlnaHRzLmVkaXQpICYmXG4gICAgICAgICAgdGhpcy5xdWV1ZS5sZW5ndGggPT09IDE7XG4gICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xuICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVCB8fCB0YXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LkNPTlRFWFRfVFJFRSkge1xuXG4gICAgICAgIC8vIHRvZG86IGFkZCBjaGVja3MgcmVsYXRlZCB0byB0aGUgcmVmZXJlbmNlIG9iamVjdCAoZS5nLiBhbGxvd2VkIGZpbGUgdHlwZXMpXG4gICAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2UuZ2V0UHJlcGFyZUNoaWxkVHlwZXModGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5pZCwgdHJ1ZSlcbiAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHJlczogeyBwYXJlbnQ6IHN0cmluZywgdHlwZXM6IE9iamVjdFR5cGVbXSB9KSA9PiB7XG4gICAgICAgICAgICAgIHZhbGlkID0gdGFyZ2V0LnJlZmVyZW5jZU9iamVjdCAmJiB0aGlzLnF1ZXVlLmxlbmd0aCA+IDAgJiYgcmVzLnR5cGVzLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgICAgICAgLy8gZm9yIENPTlRFWFRfVFJFRSB0YXJnZXRzIGFsc28gY2hlY2sgaWYgdGhlIGRlc2lyZWQgbm9kZVxuICAgICAgICAgICAgICAvLyB0eXBlIGlzIHBhcnQgb2YgdGhlIHByZXBhcmUgY2hpbGQgdHlwZXNcbiAgICAgICAgICAgICAgaWYgKHRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVF9UUkVFICYmIHRhcmdldC5zdWJGb2xkZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJGb2xkZXI6IGFueSA9IHRhcmdldC5zdWJGb2xkZXI7XG4gICAgICAgICAgICAgICAgdmFsaWQgPSAhIXJlcy50eXBlcy5maW5kKHQgPT4gdGhpcy5zeXN0ZW1TZXJ2aWNlLmltcGxlbWVudHNUeXBlKHQsIHN1YkZvbGRlci5kYXRhLnR5cGUpKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG8ubmV4dCh7dGFyZ2V0OiB0YXJnZXQsIHZhbGlkOiB2YWxpZH0pO1xuICAgICAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgICBvLm5leHQoe3RhcmdldDogdGFyZ2V0LCB2YWxpZDogZmFsc2V9KTtcbiAgICAgICAgICAgICAgby5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvLm5leHQoe3RhcmdldDogdGFyZ2V0LCB2YWxpZDogZmFsc2V9KTtcbiAgICAgICAgby5jb21wbGV0ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBmaWxlIGZyb20gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gYmUgdXBsb2FkZWQuXG4gICAqIEBwYXJhbSBmaWxlSXRlbSAtIHRoZSBmaWxlIGl0ZW0gdG8gYmUgcmVtb3ZlZFxuICAgKi9cbiAgcHVibGljIHJlbW92ZUZpbGVJdGVtKGZpbGVJdGVtOiBVcGxvYWRGaWxlSXRlbSkge1xuXG4gICAgdGhpcy5xdWV1ZSA9IHRoaXMucXVldWUuZmlsdGVyKChmKSA9PiBmLmlkICE9PSBmaWxlSXRlbS5pZCk7XG4gICAgaWYgKCF0aGlzLnF1ZXVlLmxlbmd0aCkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB1cGRhdGUgYXZhaWxhYmxlIHVwbG9hZCB0YXJnZXRzIGJlY2F1c2UgdGhlaXIgdmFsaWRpdHlcbiAgICAgIC8vIG1heSBiZSBiYXNlZCBvbiB0aGUgcXVldWUgc2l6ZVxuICAgICAgdGhpcy52YWxpZGF0ZVVwbG9hZFRhcmdldHMoKTtcbiAgICAgIHRoaXMuc2V0UXVldWVTaXplKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2NlZWQgdXBsb2FkIHdpdGggYSBzZWxlY3RlZCB1cGxvYWQgdGFyZ2V0LlxuICAgKiBAcGFyYW0gdXBsb2FkVGFyZ2V0IC0gdGhlIHRhcmdldCB0byB1cGxvYWQgZmlsZXMgdG9cbiAgICovXG4gIHB1YmxpYyBwcm9jZWVkV2l0aFVwbG9hZCh1cGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldCkge1xuXG4gICAgaWYgKHVwbG9hZFRhcmdldC50eXBlICE9PSBVcGxvYWRUYXJnZXQuQ1VTVE9NICYmIHRoaXMucXVldWUubGVuZ3RoID4gMSkge1xuICAgICAgLy8gRm9yIG1vcmUgdGhhbiBvbmUgZmlsZSB0byBiZSB1cGxvYWRlZCB0byBhIG5vbmUgY3VzdG9tIHRhcmdldCwgd2UgbGV0IHRoZSB1c2VyIGRlY2lkZSBpZlxuICAgICAgLy8gYmF0Y2ggdXBsb2FkIHNob3VsZCBiZSB1c2VkIG9yIG5vdCAuLi5cblxuXG4gICAgICB0aGlzLnNlbGVjdGVkVXBsb2FkVGFyZ2V0ID0gdXBsb2FkVGFyZ2V0O1xuICAgIH0gZWxzZSBpZiAodXBsb2FkVGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5PQkpFQ1QpIHtcbiAgICAgIC8vIC4uLiBvdGhlcndpc2UgdXBsb2FkIGlzIHN0YXJ0ZWQgaW1tZWRpYXRlbHlcbiAgICAgIHRoaXMuc3RhcnRVcGxvYWQodXBsb2FkVGFyZ2V0LCBbbnVsbCwgdGhpcy5nZXRTdGF0ZVJvdXRlKCldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGFydFVwbG9hZCh1cGxvYWRUYXJnZXQsIFtudWxsLCAnL3ByZXBhcmUnXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2NlZWQgdXBsb2FkIHVzaW5nIHRoZSBzZWxlY3RlZCB1cGxvYWQgdGFyZ2V0LlxuICAgKiBAcGFyYW0gdXNlQmF0Y2hVcGxvYWQgLSBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gdXNlIGJhdGNoIHVwbG9hZFxuICAgKi9cbiAgcHVibGljIHByb2NlZWRXaXRoU2VsZWN0ZWRUYXJnZXQodXNlQmF0Y2hVcGxvYWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnN0YXJ0VXBsb2FkKHRoaXMuc2VsZWN0ZWRVcGxvYWRUYXJnZXQsIFt1c2VCYXRjaFVwbG9hZCwgJy9wcmVwYXJlJ10pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgc2VsZWN0ZWQgdXBsb2FkIHRhcmdldC5cbiAgICovXG4gIHB1YmxpYyByZXNldFNlbGVjdGVkVXBsb2FkVGFyZ2V0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRVcGxvYWRUYXJnZXQgPSBudWxsO1xuICB9XG5cbiAgZ2V0U3RhdGVSb3V0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIudXJsO1xuICB9XG5cblxuICBwcml2YXRlIHN1Y2Nlc3NmdWxVcGxvYWQodGFyZ2V0LCB1cGxvYWRUYXJnZXQpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9VUERBVEVELCB1cGxvYWRUYXJnZXQucmVmZXJlbmNlT2JqZWN0KTtcbiAgICB1cGxvYWRUYXJnZXQub25VcGxvYWRTdWNjZXNzKHRhcmdldCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgdGhlIGFjdHVhbCB1cGxvYWQuXG4gICAqIEBwYXJhbSB1cGxvYWRUYXJnZXQgLSB0YXJnZXQgdG8gdXBsb2FkIHRoZSBmaWxlcyB0b1xuICAgKiBAcGFyYW0gdXNlQmF0Y2hVcGxvYWQgLSBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gdXNlIGJhdGNoIHVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBzdGFydFVwbG9hZCh1cGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldCwgWy4uLmFyZ3NdKSB7XG5cbiAgICBjb25zdCBbdXNlQmF0Y2hVcGxvYWQsIHRhcmdldF0gPSBhcmdzO1xuXG4gICAgdGhpcy5pc1VwbG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy51bmJpbmRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnByZXBhcmVTZXJ2aWNlXG4gICAgICAudXBsb2FkVG9UYXJnZXQodXBsb2FkVGFyZ2V0LCB0aGlzLnF1ZXVlLCB1c2VCYXRjaFVwbG9hZClcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICBpZiAodXBsb2FkVGFyZ2V0LnN1YkZvbGRlciAmJiB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyLmRhdGEuZGF0YSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzKSkge1xuICAgICAgICAgICAgICBsZXQgb2JzID0gW107XG4gICAgICAgICAgICAgIHJlcy5mb3JFYWNoKHIgPT4ge1xuICAgICAgICAgICAgICAgIG9icy5wdXNoKHRoaXMucHJlcGFyZVNlcnZpY2UudXBkYXRlUHJlcGFyZWRJdGVtSW5kZXhEYXRhKHIuaWQsIHVwbG9hZFRhcmdldC5zdWJGb2xkZXIuZGF0YS5kYXRhKSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBvYnNlcnZhYmxlRm9ya0pvaW4ob2JzKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdWNjZXNzZnVsVXBsb2FkKHRhcmdldCwgdXBsb2FkVGFyZ2V0KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnByZXBhcmVTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLnVwZGF0ZVByZXBhcmVkSXRlbUluZGV4RGF0YShyZXMuaWQsIHVwbG9hZFRhcmdldC5zdWJGb2xkZXIuZGF0YS5kYXRhKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdWNjZXNzZnVsVXBsb2FkKHRhcmdldCwgdXBsb2FkVGFyZ2V0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3VjY2Vzc2Z1bFVwbG9hZCh0YXJnZXQsIHVwbG9hZFRhcmdldCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfSwgVXRpbHMudGhyb3coKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB1cGxvYWRUYXJnZXQub25VcGxvYWRGYWlsKCk7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9LFxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby51cGxvYWQuZ2xvYmFsLmVycm9yLnRpdGxlJyksXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnVwbG9hZC5nbG9iYWwuZXJyb3IuZGVzY3JpcHRpb24nKSlcbiAgICAgICk7XG4gICAgdGhpcy5yZXNldFNlbGVjdGVkVXBsb2FkVGFyZ2V0KCk7XG4gIH1cblxuICBwcml2YXRlIHNldFF1ZXVlU2l6ZSgpIHtcbiAgICBsZXQgcyA9IDA7XG4gICAgZm9yIChsZXQgZiBvZiB0aGlzLnF1ZXVlKSB7XG4gICAgICBzICs9IGYuc2l6ZTtcbiAgICB9XG4gICAgdGhpcy5xdWV1ZVNpemUgPSBzO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSB1cGxvYWQgb3ZlcmxheSBhbmQgcmVsZWFzZSBhbGwgYm91bmQgcmVzb3VyY2VzLlxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgLy8gdW5iaW5kIGJvdW5kIGV2ZW50IGxpc3RlbmVyLCB3aGVuIHRoZXkgYXJlIG5vdCBuZWVkZWQgYW55bW9yZVxuICAgIHRoaXMudW5iaW5kTGlzdGVuZXJzKCk7XG4gICAgLy8gY2xlYXIgdXBsb2FkIHF1ZXVlXG4gICAgdGhpcy5xdWV1ZSA9IFtdO1xuICAgIC8vIGhpZGUgdGhlIG92ZXJsYXlcbiAgICB0aGlzLnNldEZpbGVPdmVyKGZhbHNlKTtcbiAgICB0aGlzLmludmFsaWRJbnB1dCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGaWxlT3Zlcih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZmlsZU92ZXIgPSB2YWx1ZTtcbiAgICB0aGlzLnVwbG9hZFJlZ2lzdHJ5LnNldE92ZXJsYXlBY3RpdmUodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSB1bmJpbmRMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHRoaXMuZHJhZ0xlYXZlTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZHJhZ0xlYXZlTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZHJhZ0xlYXZlTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5kcmFnT3Zlckxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmRyYWdPdmVyTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmRyb3BMaXN0ZW5lcikge1xuICAgICAgdGhpcy5kcm9wTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZHJvcExpc3RlbmVyID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXNjS2V5TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZXNjS2V5TGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZXNjS2V5TGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIGN1cnJlbnQgZHJhZyBldmVudCBjb250YWlucyBvbmUgb3IgbW9yZSBmaWxlcy5cbiAgICogQHBhcmFtIGV2ZW50IC0gdGhlIGRyYWcgZXZlbnQgdG8gYmUgY2hlY2tlZFxuICAgKiBAcmV0dXJucyBudW1iZXIgb2YgZmlsZXNcbiAgICovXG4gICBwcml2YXRlIGRyYWdDb250YWluc0ZpbGVzKGV2ZW50OiBEcmFnRXZlbnQpOiBudW1iZXIge1xuICAgIHJldHVybiBBcnJheS5mcm9tKGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtcyB8fCBbXSkuZmlsdGVyKGkgPT4gaS5raW5kID09PSAnZmlsZScpLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIGN1cnJlbnQgcGFzdGUgZXZlbnQgY29udGFpbnMgb25lIG9yIG1vcmUgZmlsZXMuXG4gICAqIEBwYXJhbSBldmVudCAtIHRoZSBwYXN0ZSBldmVudCB0byBiZSBjaGVja2VkXG4gICAqIEByZXR1cm5zIG51bWJlciBvZiBmaWxlc1xuICAgKi9cbiAgcHJpdmF0ZSBwYXN0ZUNvbnRhaW5zRmlsZXMoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShldmVudC5jbGlwYm9hcmREYXRhLml0ZW1zIHx8IFtdKS5maWx0ZXIoaSA9PiBpLmtpbmQgPT09ICdmaWxlJykubGVuZ3RoO1xuICB9XG5cbiAgLy8gbmdGb3IgdHJhY2tpbmcgZnVuY3Rpb24gZm9yIHVwbG9hZCB0YXJnZXRzXG4gIHRhcmdldFRyYWNrQnlGbihpbmRleCwgaXRlbSkge1xuICAgIHJldHVybiBpdGVtLmlkO1xuICB9XG5cbiAgLy8gbmdGb3IgdHJhY2tpbmcgZnVuY3Rpb24gZm9yIGZpbGUgaXRlbXNcbiAgdHJhY2tCeUZuKGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5kcmFnRW50ZXJMaXN0ZW5lcikge1xuICAgICAgdGhpcy5kcmFnRW50ZXJMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBpZD1cImVvLXVwbG9hZC1vdmVybGF5XCIgI292ZXJsYXkgY2xhc3M9XCJkYXJrXCIgKm5nSWY9XCJmaWxlT3ZlclwiIHRhYmluZGV4PVwiMVwiXG4gICAgIFtuZ0NsYXNzXT1cIntoYXNGaWxlczogcXVldWUubGVuZ3RoLCBpbnZhbGlkOiBpbnZhbGlkSW5wdXQsIHNpbmdsZUZpbGU6IHF1ZXVlLmxlbmd0aCA9PT0gMSwgdXBsb2FkaW5nOiBpc1VwbG9hZGluZ31cIj5cblxuICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBjbG9zZVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiAoY2xpY2spPVwiY2xvc2UoKVwiPjwvZW8taWNvbj5cblxuICA8ZGl2IGNsYXNzPVwiY291bnRcIj5cbiAgICA8ZGl2Pnt7cXVldWUubGVuZ3RofX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicXVldWVTaXplXCI+e3txdWV1ZVNpemUgfCBmaWxlU2l6ZX19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxoMSB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5oZWFkbGluZTwvaDE+XG4gIDxlby1pY29uIGNsYXNzPVwidXBsb2FkeVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3VwbG9hZC5zdmcnXCI+PC9lby1pY29uPlxuXG4gIDwhLS0gYmF0Y2ggdXBsb2FkIGRpYWxvZyAtLT5cbiAgPGRpdiBjbGFzcz1cImJhdGNoLWRpYWxvZ1wiICpuZ0lmPVwiIWludmFsaWRJbnB1dCAmJiBzZWxlY3RlZFVwbG9hZFRhcmdldCAmJiAhaXNVcGxvYWRpbmdcIj5cblxuICAgIDxoMiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5jaG9vc2UudGl0bGU8L2gyPlxuICAgIDxwIHRyYW5zbGF0ZT5lby51cGxvYWQuZ2xvYmFsLmNob29zZS5tZXNzYWdlPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJyZXNldFNlbGVjdGVkVXBsb2FkVGFyZ2V0KClcIiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5jYW5jZWw8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cInByb2NlZWRXaXRoU2VsZWN0ZWRUYXJnZXQoZmFsc2UpXCIgY2xhc3M9XCJwcmltYXJ5XCIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuY2hvb3NlLnNpbmdsZTwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicHJvY2VlZFdpdGhTZWxlY3RlZFRhcmdldCh0cnVlKVwiIGNsYXNzPVwicHJpbWFyeVwiIHRyYW5zbGF0ZT5lby51cGxvYWQuZ2xvYmFsLmNob29zZS5tdWx0aTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIGludmFsaWQgaW5wdXQgZGlhbG9nIC0tPlxuICA8ZGl2IGNsYXNzPVwiYmF0Y2gtZGlhbG9nXCIgKm5nSWY9XCJoYXNWYWxpZFVwbG9hZFRhcmdldHMgJiYgaW52YWxpZElucHV0XCI+XG5cbiAgICA8aDIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuaW52YWxpZC50aXRsZTwvaDI+XG4gICAgPHAgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuaW52YWxpZC5tZXNzYWdlPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwuY2xvc2U8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBubyB1cGxvYWQgdGFyZ2V0cyBhdmFpbGFibGUgLS0+XG4gIDxkaXYgY2xhc3M9XCJiYXRjaC1kaWFsb2dcIiAqbmdJZj1cIiFoYXNWYWxpZFVwbG9hZFRhcmdldHNcIj5cblxuICAgIDxoMiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5ub3RhcmdldC50aXRsZTwvaDI+XG4gICAgPHAgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwubm90YXJnZXQubWVzc2FnZTwvcD5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIHRyYW5zbGF0ZT5lby51cGxvYWQuZ2xvYmFsLmNsb3NlPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50c1wiICpuZ0lmPVwiaGFzVmFsaWRVcGxvYWRUYXJnZXRzICYmICFpbnZhbGlkSW5wdXQgJiYgIXNlbGVjdGVkVXBsb2FkVGFyZ2V0ICYmICFpc1VwbG9hZGluZ1wiPlxuXG4gICAgPCEtLSBsaXN0IG9mIGF2YWlsYWJsZSB1cGxvYWQgdGFyZ2V0cyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0c1wiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0LWxpc3RcIj5cblxuICAgICAgICA8aDIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwudGFyZ2V0PC9oMj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLXRhcmdldFwiICpuZ0Zvcj1cImxldCB0IG9mIHZhbGlkVXBsb2FkVGFyZ2V0czsgdHJhY2tCeTogdGFyZ2V0VHJhY2tCeUZuXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwicHJvY2VlZFdpdGhVcGxvYWQodClcIlxuICAgICAgICAgICAgIFtuZ1N3aXRjaF09XCJ0LnR5cGVcIj5cblxuICAgICAgICAgIDwhLS0gdXBsb2FkIHRvIHJvb3QgLS0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3Jvb3QnXCIgPlxuICAgICAgICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY3JlYXRlX2RvY3VtZW50LnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLXRhcmdldC1nZW5lcmFsXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCIgdHJhbnNsYXRlPmVvLnVwbG9hZC5nbG9iYWwucm9vdC50aXRsZTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5yb290LmRlc2NyaXB0aW9uPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDwhLS0gcmVwbGFjZSBmaWxlIG9mIGEgc3BlY2lmaWMgZG1zIG9iamVjdCAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInb2JqZWN0J1wiPlxuICAgICAgICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYWRkX2RvY3VtZW50X2ZpbGVfYXNfbmV3X3ZlcnNpb24uc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtdGFyZ2V0LXJlcGxhY2VcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIiAqbmdJZj1cInQucmVmZXJlbmNlT2JqZWN0LmNvbnRlbnQ7ZWxzZSBub2NvbnRlbnRcIiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5vYmplY3QudGl0bGU8L2Rpdj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub2NvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIiB0cmFuc2xhdGU+ZW8udXBsb2FkLmdsb2JhbC5vYmplY3QudGl0bGUubm9jb250ZW50PC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7dC5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDwhLS0gYWRkIG5ldyBmaWxlcyB0byBhIGNvbnRleHQgZm9sZGVyIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjb250ZXh0J1wiPlxuICAgICAgICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY3JlYXRlX2RvY3VtZW50X2luX2ZvbGRlci5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC10YXJnZXQtY29udGV4dFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPnt7J2VvLnVwbG9hZC5nbG9iYWwuY29udGV4dC50aXRsZSd8dHJhbnNsYXRlOih7Y29udGV4dDp0LnJlZmVyZW5jZU9iamVjdC50eXBlLmxhYmVsfSl9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj57e3QuZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8IS0tIGFkZCBuZXcgZmlsZXMgdG8gYSBjb250ZXh0IGZvbGRlciBzdHJ1Y3R1cmUgdHJlZSBlbnRyeSAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29udGV4dHRyZWUnXCI+XG4gICAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19jcmVhdGVfZG9jdW1lbnRfaW5fZm9sZGVyLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLXRhcmdldC1jb250ZXh0dHJlZVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPnt7J2VvLmFkZC50aXRsZS5sb2NhdGlvbi5zdWJmb2xkZXInfHRyYW5zbGF0ZTogKHtmb2xkZXI6IHQuc3ViRm9sZGVyLm5hbWV9KX19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDwhLS0gY3VzdG9tIHVwbG9hZCB0YXJnZXQgKGUuZy4gZnJvbSBwbHVnaW4gY29tcG9uZW50KSAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY3VzdG9tJ1wiPlxuICAgICAgICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfdXBsb2FkLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLXRhcmdldC1jdXN0b21cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57e3QubmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7dC5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIGxpc3Qgb2YgZmlsZXMgZHJhZ2dlZCB0byB0aGUgY29tcG9uZW50IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJmaWxlc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpbGVzLWxpc3RcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbVwiICpuZ0Zvcj1cImxldCBpIG9mIHF1ZXVlOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57e2kubmFtZX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPjxzcGFuIGNsYXNzPVwic2l6ZVwiPnt7aS5zaXplIHwgZmlsZVNpemV9fTwvc3Bhbj48c3BhbiBjbGFzcz1cImRlc2MtdGV4dFwiPiZuYnNwO3t7aS50eXBlfX08L3NwYW4+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gd2hpdGVcIiAoY2xpY2spPVwicmVtb3ZlRmlsZUl0ZW0oaSlcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19jbGVhci5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nXCIgKm5nSWY9XCJpc1VwbG9hZGluZ1wiPjxlby1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiJ2xhcmdlJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPjwvZGl2PlxuXG5cbjwvZGl2PlxuIl19
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export * from './util.module';
|
|
2
2
|
export * from './services/utilities.service';
|
|
3
|
-
export * from './unsubscribe/unsubscribe.component';
|
|
4
3
|
export * from './directive/trap-focus.directive';
|
|
5
4
|
export * from './directive/prevent-double-click.directive';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay91dGlsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDRDQUE0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91dGlsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlL3RyYXAtZm9jdXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlL3ByZXZlbnQtZG91YmxlLWNsaWNrLmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
3
|
import { UtilitiesService } from './services/utilities.service';
|
|
4
4
|
import { OrderByPipe } from './sortable/order-by.pipe';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export { UnsubscribeOnDestroy } from './unsubscribe/unsubscribe.component';
|
|
7
6
|
export class UtilModule {
|
|
8
7
|
}
|
|
9
8
|
UtilModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UtilModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -20,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
20
19
|
exports: [OrderByPipe]
|
|
21
20
|
}]
|
|
22
21
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay91dGlsL3V0aWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7QUFVckQsTUFBTSxPQUFPLFVBQVU7O3VHQUFWLFVBQVU7d0dBQVYsVUFBVSxpQkFKTixXQUFXLGFBRnhCLFlBQVksYUFJSixXQUFXO3dHQUVWLFVBQVUsYUFIVixDQUFDLGdCQUFnQixDQUFDLFlBSDNCLFlBQVk7MkZBTUgsVUFBVTtrQkFSdEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxXQUFXLENBQUM7b0JBQzNCLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUM3QixPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUM7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VXRpbGl0aWVzU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcy91dGlsaXRpZXMuc2VydmljZSc7XG5pbXBvcnQge09yZGVyQnlQaXBlfSBmcm9tICcuL3NvcnRhYmxlL29yZGVyLWJ5LnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtPcmRlckJ5UGlwZV0sXG4gIHByb3ZpZGVyczogW1V0aWxpdGllc1NlcnZpY2VdLFxuICBleHBvcnRzOiBbT3JkZXJCeVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFV0aWxNb2R1bGUge1xufVxuIl19
|