@eo-sdk/client 11.5.0-rc.3 → 11.7.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +35 -35
- package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
- package/app/eo-client/eo-client.module.d.ts +4 -5
- package/app/eo-client/eo-client.module.d.ts.map +1 -1
- package/app/eo-client/index.d.ts +3 -0
- package/app/eo-client/index.d.ts.map +1 -1
- package/app/eo-client/process-state/filter-label.d.ts +10 -0
- package/app/eo-client/process-state/filter-label.d.ts.map +1 -0
- package/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +1 -1
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/organization/organization.component.d.ts +1 -0
- package/app/eo-framework/form-elements/organization/organization.component.d.ts.map +1 -1
- package/app/eo-framework/grid/grid.component.d.ts +9 -1
- package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-details.component.d.ts +1 -0
- package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-history/object-history.component.d.ts +3 -2
- 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-table/form-element-table.component.d.ts +1 -0
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
- package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
- package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts +50 -0
- package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
- package/app/eo-framework/ui/indexdata-summary/indexdata-summary.interface.d.ts +10 -0
- package/app/eo-framework/ui/indexdata-summary/indexdata-summary.interface.d.ts.map +1 -0
- package/app/eo-framework/ui/ui.module.d.ts +10 -11
- package/app/eo-framework/ui/ui.module.d.ts.map +1 -1
- package/app/eo-framework-core/agent/agent.service.d.ts.map +1 -1
- package/app/eo-framework-core/eo-framework-core.module.d.ts +1 -2
- package/app/eo-framework-core/eo-framework-core.module.d.ts.map +1 -1
- package/app/eo-framework-core/error-handler/error-handler.service.d.ts.map +1 -1
- package/app/eo-framework-core/search/app-search.service.d.ts +12 -1
- package/app/eo-framework-core/search/app-search.service.d.ts.map +1 -1
- package/assets/_default/README.md +2 -2
- package/assets/_default/config/extend.json +6 -6
- package/assets/_default/config/main.json +44 -44
- package/assets/_default/fonts/roboto_bold_macroman/Roboto-Bold-webfont.svg +765 -765
- package/assets/_default/fonts/roboto_light_macroman/Roboto-Light-webfont.svg +818 -818
- package/assets/_default/fonts/roboto_medium_macroman/Roboto-Medium-webfont.svg +765 -765
- package/assets/_default/fonts/roboto_regular_macroman/Roboto-Regular-webfont.svg +795 -795
- package/assets/_default/i18n/de.json +1132 -1130
- package/assets/_default/i18n/de_after.json +1137 -0
- package/assets/_default/i18n/en.json +10 -8
- package/assets/_default/i18n/po/de.po +310 -310
- package/assets/_default/i18n/po/en.po +310 -310
- package/assets/_default/svg/ic_delete_sweep.svg +3 -3
- package/assets/_default/svg/ic_emoticon-cool.svg +1 -1
- package/assets/_default/svg/ic_kitt-loader.svg +1 -1
- package/assets/_default/svg/ic_link.svg +6 -6
- package/assets/_default/svg/ic_not_listed_location.svg +4 -4
- package/assets/_default/theme/theme.css +13 -13
- package/assets/dashboard.json +47 -47
- package/assets/i18n/temp.json +584 -584
- package/assets/i18n/temp.pot +1753 -1753
- package/esm2022/app/eo-client/about-state/about-state.component.mjs +7 -7
- package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
- package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.mjs +1 -1
- package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.mjs +1 -1
- package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +8 -8
- package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.mjs +1 -1
- package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.mjs +1 -1
- package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.mjs +1 -1
- package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +5 -5
- package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +5 -5
- package/esm2022/app/eo-client/eo-client-routing.module.mjs +5 -5
- package/esm2022/app/eo-client/eo-client.module.mjs +26 -28
- package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +16 -16
- package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +20 -20
- package/esm2022/app/eo-client/inbox-state/inbox-state/inbox.types.enum.mjs +1 -1
- package/esm2022/app/eo-client/inbox-state/inbox-state-routing.module.mjs +5 -5
- package/esm2022/app/eo-client/inbox-state/inbox-state.module.mjs +5 -5
- package/esm2022/app/eo-client/index.mjs +4 -1
- package/esm2022/app/eo-client/login/login.component.mjs +5 -5
- package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +18 -18
- package/esm2022/app/eo-client/notifications-state/notifications-state.interface.mjs +1 -1
- package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +5 -5
- package/esm2022/app/eo-client/object-state/object-state-routing.module.mjs +5 -5
- package/esm2022/app/eo-client/object-state/object-state-service/object-state.interface.mjs +1 -1
- package/esm2022/app/eo-client/object-state/object-state-service/object-state.service.mjs +4 -4
- package/esm2022/app/eo-client/object-state/object-state.module.mjs +5 -5
- package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +16 -16
- package/esm2022/app/eo-client/prepare-state/prepare-state-routing.module.mjs +5 -5
- package/esm2022/app/eo-client/prepare-state/prepare-state.module.mjs +5 -5
- package/esm2022/app/eo-client/process-state/filter-label.mjs +11 -0
- package/esm2022/app/eo-client/process-state/process-state.component.mjs +24 -24
- package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +18 -18
- package/esm2022/app/eo-client/result-state/result-state.component.mjs +5 -5
- package/esm2022/app/eo-client/settings/agent-lock-settings.enum.mjs +1 -1
- package/esm2022/app/eo-client/settings/settings.component.mjs +5 -5
- package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +16 -16
- package/esm2022/app/eo-client/version-state/version-state.component.mjs +18 -18
- package/esm2022/app/eo-framework/accordion/accordion.module.mjs +5 -5
- package/esm2022/app/eo-framework/accordion/index.mjs +1 -1
- package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/action-menu/action-component-anchor/action-component-anchor.directive.mjs +4 -4
- package/esm2022/app/eo-framework/actions/action-menu/action-menu.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/action-service/action.service.mjs +4 -4
- package/esm2022/app/eo-framework/actions/action-target.mjs +1 -1
- package/esm2022/app/eo-framework/actions/action.module.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/copy-action/copy-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/cut-action/cut-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/delete-action/delete-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/delete-action/delete-prepared-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/download-action/download-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/email/email/email.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/email/email-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/favorite-action/favorite-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/finalize/definalize-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/finalize/finalize-action.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/open-context-action/open-context-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/open-versions-action/open-versions-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/remove-subscription-action/remove-subscription-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/restore-version-action/restore-version-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +6 -6
- package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/signature-action/signature.model.mjs +1 -1
- package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/update-resubmission-action/update-resubmission-action.mjs +4 -4
- package/esm2022/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +5 -5
- package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow-action.component.mjs +4 -4
- package/esm2022/app/eo-framework/actions/index.mjs +1 -1
- package/esm2022/app/eo-framework/actions/interfaces/action-component.interface.mjs +1 -1
- package/esm2022/app/eo-framework/actions/interfaces/action-list-entry.mjs +1 -1
- package/esm2022/app/eo-framework/actions/interfaces/action.interface.mjs +1 -1
- package/esm2022/app/eo-framework/actions/selection-range.enum.mjs +1 -1
- package/esm2022/app/eo-framework/animations/animations.mjs +1 -1
- package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +5 -5
- package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +5 -5
- package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +5 -5
- package/esm2022/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +5 -5
- package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +20 -6
- package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.interface.mjs +1 -1
- package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +5 -5
- package/esm2022/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +5 -5
- package/esm2022/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +5 -5
- package/esm2022/app/eo-framework/app-shell/app-shell-routing.module.mjs +5 -5
- package/esm2022/app/eo-framework/app-shell/app-shell.module.mjs +5 -5
- package/esm2022/app/eo-framework/app-shell/index.mjs +1 -1
- package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +5 -5
- package/esm2022/app/eo-framework/cta/component/cta.component.mjs +5 -5
- package/esm2022/app/eo-framework/cta/cta.module.mjs +5 -5
- package/esm2022/app/eo-framework/cta/index.mjs +1 -1
- package/esm2022/app/eo-framework/eo-framework.module.mjs +5 -5
- package/esm2022/app/eo-framework/error/error.module.mjs +5 -5
- package/esm2022/app/eo-framework/error/error404/error404.component.mjs +5 -5
- package/esm2022/app/eo-framework/error/index.mjs +1 -1
- package/esm2022/app/eo-framework/error/not-found/not-found.component.mjs +4 -4
- package/esm2022/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +6 -6
- package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +6 -6
- package/esm2022/app/eo-framework/form-elements/date/date.component.mjs +6 -6
- package/esm2022/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +4 -4
- package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +6 -6
- package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +6 -6
- package/esm2022/app/eo-framework/form-elements/form-elements.module.mjs +5 -5
- package/esm2022/app/eo-framework/form-elements/form-input/form-input.component.mjs +5 -5
- package/esm2022/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.mjs +4 -4
- package/esm2022/app/eo-framework/form-elements/id-reference/animation/reference-finder.animation.mjs +1 -1
- package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +6 -6
- package/esm2022/app/eo-framework/form-elements/id-reference/interface/reference-finder.interface.mjs +1 -1
- package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +5 -5
- package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +5 -5
- package/esm2022/app/eo-framework/form-elements/id-reference/service/reference-finder.service.mjs +4 -4
- package/esm2022/app/eo-framework/form-elements/index.mjs +1 -1
- package/esm2022/app/eo-framework/form-elements/number/number.component.mjs +6 -6
- package/esm2022/app/eo-framework/form-elements/number-range/number-range.component.mjs +6 -6
- package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +30 -21
- package/esm2022/app/eo-framework/form-elements/password/password.component.mjs +5 -5
- package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +6 -6
- package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +6 -6
- package/esm2022/app/eo-framework/frame/frame.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/extensions/empty/empty.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/extensions/filter/abstract-filter.component.mjs +4 -4
- package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filters.interface.mjs +1 -1
- package/esm2022/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/extensions/pagination/pagination.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.mjs +23 -23
- package/esm2022/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/extensions/services/list-settings.service.mjs +4 -4
- package/esm2022/app/eo-framework/grid/extensions/total-count/total-count.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/filters/filesize-filter.component.mjs +1 -1
- package/esm2022/app/eo-framework/grid/filters/list-filter.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/filters/organization-filter.component.mjs +5 -5
- package/esm2022/app/eo-framework/grid/grid-filter.model.mjs +1 -1
- package/esm2022/app/eo-framework/grid/grid.component.mjs +51 -21
- package/esm2022/app/eo-framework/grid/grid.module.mjs +5 -5
- package/esm2022/app/eo-framework/grid/index.mjs +1 -1
- package/esm2022/app/eo-framework/grid/loader.interface.mjs +1 -1
- package/esm2022/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.mjs +5 -5
- package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +5 -5
- package/esm2022/app/eo-framework/index.mjs +1 -1
- package/esm2022/app/eo-framework/list-container/index.mjs +1 -1
- package/esm2022/app/eo-framework/list-container/list-container.component.mjs +5 -5
- package/esm2022/app/eo-framework/list-container/list-container.module.mjs +5 -5
- package/esm2022/app/eo-framework/media/content-preview.service.mjs +4 -4
- package/esm2022/app/eo-framework/media/index.mjs +1 -1
- package/esm2022/app/eo-framework/media/media.component.mjs +5 -5
- package/esm2022/app/eo-framework/media/media.module.mjs +5 -5
- package/esm2022/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +5 -5
- package/esm2022/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +5 -5
- package/esm2022/app/eo-framework/object-details/index.mjs +1 -1
- package/esm2022/app/eo-framework/object-details/object-details.component.mjs +10 -8
- package/esm2022/app/eo-framework/object-details/object-details.module.mjs +5 -5
- package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter-pipe/history-filter.pipe.mjs +4 -4
- package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.component.mjs +5 -5
- package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.mjs +1 -1
- package/esm2022/app/eo-framework/object-details/object-history/object-history.component.mjs +12 -7
- package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +5 -5
- package/esm2022/app/eo-framework/object-form/form-status-changed-event.interface.mjs +1 -1
- package/esm2022/app/eo-framework/object-form/index.mjs +1 -1
- package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.mjs +4 -4
- package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +5 -5
- package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +30 -28
- package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.mjs +1 -1
- package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +5 -5
- package/esm2022/app/eo-framework/object-form/object-form/form-validation/form-validation.mjs +1 -1
- package/esm2022/app/eo-framework/object-form/object-form/object-form-control-wrapper.mjs +1 -1
- package/esm2022/app/eo-framework/object-form/object-form/object-form-control.mjs +1 -1
- package/esm2022/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +5 -5
- package/esm2022/app/eo-framework/object-form/object-form/object-form-group.model.mjs +1 -1
- package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.interface.mjs +1 -1
- package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +4 -4
- package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +1 -1
- package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +5 -5
- package/esm2022/app/eo-framework/object-form/object-form/object-form.model.mjs +1 -1
- package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +5 -5
- package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +4 -4
- package/esm2022/app/eo-framework/object-form/object-form-options.interface.mjs +1 -1
- package/esm2022/app/eo-framework/object-form/object-form.module.mjs +5 -5
- package/esm2022/app/eo-framework/object-state-details/object-state-details.component.mjs +5 -5
- package/esm2022/app/eo-framework/plugins/index.mjs +1 -1
- package/esm2022/app/eo-framework/plugins/plugin.component.mjs +22 -22
- package/esm2022/app/eo-framework/plugins/plugin.directive.mjs +4 -4
- package/esm2022/app/eo-framework/plugins/plugin.service.mjs +4 -4
- package/esm2022/app/eo-framework/plugins/plugins.module.mjs +5 -5
- package/esm2022/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.mjs +5 -5
- package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +12 -12
- package/esm2022/app/eo-framework/process/details/process-details.component.mjs +5 -5
- package/esm2022/app/eo-framework/process/history/process-history.component.mjs +5 -5
- package/esm2022/app/eo-framework/process/process-file/file-entry-permissions.interface.mjs +1 -1
- package/esm2022/app/eo-framework/process/process-file/process-file.component.mjs +5 -5
- package/esm2022/app/eo-framework/process-form/process-form.component.mjs +5 -5
- package/esm2022/app/eo-framework/process-form/process-form.module.mjs +5 -5
- package/esm2022/app/eo-framework/quick-search/index.mjs +1 -1
- package/esm2022/app/eo-framework/quick-search/quick-search/quick-search-result.interface.mjs +1 -1
- package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +5 -5
- package/esm2022/app/eo-framework/quick-search/quick-search.module.mjs +5 -5
- package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +5 -5
- package/esm2022/app/eo-framework/result-list/index.mjs +1 -1
- package/esm2022/app/eo-framework/result-list/result-list.component.mjs +11 -6
- package/esm2022/app/eo-framework/result-list/result-list.module.mjs +5 -5
- package/esm2022/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.mjs +5 -5
- package/esm2022/app/eo-framework/settings/change-password/change-password.interface.mjs +1 -1
- package/esm2022/app/eo-framework/settings/index.mjs +1 -1
- package/esm2022/app/eo-framework/settings/permissions/permissions.component.mjs +5 -5
- package/esm2022/app/eo-framework/settings/settings.module.mjs +5 -5
- package/esm2022/app/eo-framework/shortcuts/global-shortcut-action.interface.mjs +1 -1
- package/esm2022/app/eo-framework/shortcuts/global-shortcut-component.interface.mjs +1 -1
- package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.mjs +5 -5
- package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.mjs +5 -5
- package/esm2022/app/eo-framework/shortcuts/index.mjs +1 -1
- package/esm2022/app/eo-framework/shortcuts/shortcut.interface.mjs +4 -4
- package/esm2022/app/eo-framework/shortcuts/shortcuts.directive.mjs +4 -4
- package/esm2022/app/eo-framework/shortcuts/shortcuts.module.mjs +5 -5
- package/esm2022/app/eo-framework/shortcuts/shortcuts.service.mjs +4 -4
- package/esm2022/app/eo-framework/stored-query/index.mjs +1 -1
- package/esm2022/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +5 -5
- package/esm2022/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.mjs +5 -5
- package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +5 -5
- package/esm2022/app/eo-framework/stored-query/stored-query-type-filter.enum.mjs +1 -1
- package/esm2022/app/eo-framework/stored-query/stored-query.interface.mjs +1 -1
- package/esm2022/app/eo-framework/stored-query/stored-query.module.mjs +5 -5
- package/esm2022/app/eo-framework/tree/index.mjs +1 -1
- package/esm2022/app/eo-framework/tree/tree-node/tree-node.component.mjs +5 -5
- package/esm2022/app/eo-framework/tree/tree.component.interface.mjs +1 -1
- package/esm2022/app/eo-framework/tree/tree.component.mjs +6 -6
- package/esm2022/app/eo-framework/tree/tree.module.mjs +5 -5
- package/esm2022/app/eo-framework/ui/animations/panel-loading.animation.mjs +1 -1
- package/esm2022/app/eo-framework/ui/clipboard/clipboard.component.mjs +5 -5
- package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +5 -5
- package/esm2022/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +4 -4
- package/esm2022/app/eo-framework/ui/error-message/error-message.component.mjs +5 -5
- package/esm2022/app/eo-framework/ui/index.mjs +1 -1
- package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +5 -5
- package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry.interface.mjs +1 -1
- package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +142 -9
- package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.interface.mjs +2 -0
- package/esm2022/app/eo-framework/ui/loading-spinner/loading-spinner.component.mjs +9 -9
- package/esm2022/app/eo-framework/ui/outside-click/outside-click.directive.mjs +4 -4
- package/esm2022/app/eo-framework/ui/overlay/overlay.component.mjs +5 -5
- package/esm2022/app/eo-framework/ui/query-scope-select/query-scope-select.component.mjs +5 -5
- package/esm2022/app/eo-framework/ui/router-link/router-link.directive.mjs +4 -4
- package/esm2022/app/eo-framework/ui/rtl-aware/rtl-aware.directive.mjs +4 -4
- package/esm2022/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +5 -5
- package/esm2022/app/eo-framework/ui/ui.module.mjs +17 -28
- package/esm2022/app/eo-framework/ui/user-avatar/user-avatar.component.mjs +4 -4
- package/esm2022/app/eo-framework/upload-overlay/upload-overlay-guard.service.mjs +4 -4
- package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +5 -5
- package/esm2022/app/eo-framework/util/directive/prevent-double-click.directive.mjs +4 -4
- package/esm2022/app/eo-framework/util/directive/trap-focus.directive.mjs +4 -4
- package/esm2022/app/eo-framework/util/index.mjs +1 -1
- package/esm2022/app/eo-framework/util/services/utilities.service.mjs +4 -4
- package/esm2022/app/eo-framework/util/sortable/order-by.pipe.mjs +4 -4
- package/esm2022/app/eo-framework/util/util.module.mjs +5 -5
- package/esm2022/app/eo-framework-core/agent/agent.interface.mjs +1 -1
- package/esm2022/app/eo-framework-core/agent/agent.service.mjs +4 -4
- package/esm2022/app/eo-framework-core/api/grid.service.mjs +6 -6
- package/esm2022/app/eo-framework-core/api/model/dms-object.api.interface.mjs +1 -1
- package/esm2022/app/eo-framework-core/api/plugins.service.mjs +4 -4
- package/esm2022/app/eo-framework-core/empty-state/empty-state.interface.mjs +1 -1
- package/esm2022/app/eo-framework-core/empty-state/empty-state.service.mjs +4 -4
- package/esm2022/app/eo-framework-core/eo-framework-core.module.mjs +13 -19
- package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +4 -4
- package/esm2022/app/eo-framework-core/error-handler/error-keys.mjs +1 -1
- package/esm2022/app/eo-framework-core/index.mjs +1 -1
- package/esm2022/app/eo-framework-core/layout/layout.service.mjs +4 -4
- package/esm2022/app/eo-framework-core/location/location.service.mjs +4 -4
- package/esm2022/app/eo-framework-core/pending-changes/pending-changes-component.interface.mjs +1 -1
- package/esm2022/app/eo-framework-core/pending-changes/pending-changes-guard.service.mjs +4 -4
- package/esm2022/app/eo-framework-core/pending-changes/pending-changes.service.mjs +4 -4
- package/esm2022/app/eo-framework-core/pipes/filesize.pipe.mjs +4 -4
- package/esm2022/app/eo-framework-core/pipes/keys.pipe.mjs +4 -4
- package/esm2022/app/eo-framework-core/pipes/locale-date.pipe.mjs +4 -4
- package/esm2022/app/eo-framework-core/pipes/locale-number.pipe.mjs +13 -13
- package/esm2022/app/eo-framework-core/pipes/pipes.module.mjs +5 -5
- package/esm2022/app/eo-framework-core/pipes/safe-html.pipe.mjs +4 -4
- package/esm2022/app/eo-framework-core/references/reference.service.mjs +4 -4
- package/esm2022/app/eo-framework-core/route-guards/auth/auth-guard.service.mjs +4 -4
- package/esm2022/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.mjs +4 -4
- package/esm2022/app/eo-framework-core/search/app-search.service.mjs +27 -6
- package/esm2022/app/eo-framework-core/selection/selection.service.mjs +4 -4
- package/esm2022/app/eo-framework-core/title/page-title.service.mjs +4 -4
- package/esm2022/public_api.mjs +1 -1
- package/fesm2022/eo-sdk-client.mjs +1435 -1898
- package/fesm2022/eo-sdk-client.mjs.map +1 -1
- package/languages/ar.json +523 -523
- package/languages/es.json +523 -523
- package/languages/fr.json +523 -523
- package/languages/po/ar.po +457 -457
- package/languages/pt.json +523 -523
- package/languages/temp.pot +928 -928
- package/languages/zh.json +523 -523
- package/misc/client.properties +1 -1
- package/misc/doc-styles/style.css +175 -175
- package/misc/scripts/copy-client-assets.js +26 -26
- package/misc/scripts/copy-core-styles.js +3 -3
- package/misc/scripts/exclude-core-ng-package.js +11 -11
- package/misc/scripts/helper.js +64 -64
- package/misc/scripts/i18n-apply.js +46 -46
- package/misc/scripts/i18n-diff.js +100 -100
- package/misc/scripts/injectdocbase.js +7 -7
- package/misc/scripts/mvn-deploy.js +66 -66
- package/misc/scripts/prebuild-about-state.js +32 -32
- package/misc/scripts/preparedist.js +39 -39
- package/misc/scripts/zipdist.js +21 -21
- package/misc/template.yml +4 -4
- package/misc/tsscheme.xml +34 -34
- package/package.json +17 -17
- package/proxy.config.js +13 -0
- package/scss/_ag-grid.scss +59 -59
- package/scss/_animation.scss +55 -55
- package/scss/_eo-variables.scss +78 -78
- package/scss/_form.scss +660 -660
- package/scss/_main.scss +394 -394
- package/scss/_migrationTemp.scss +27 -27
- package/scss/_mixins.scss +201 -201
- package/scss/_theme-dark.scss +22 -22
- package/scss/_timeline.scss +98 -98
- package/scss/_yuuvis-components.scss +40 -40
- package/styles.scss +141 -141
- package/app/eo-framework/grid/row-grouping/batchRemover.d.ts +0 -13
- package/app/eo-framework/grid/row-grouping/batchRemover.d.ts.map +0 -1
- package/app/eo-framework/grid/row-grouping/group-stage.d.ts +0 -45
- package/app/eo-framework/grid/row-grouping/group-stage.d.ts.map +0 -1
- package/app/eo-framework/grid/row-grouping/row-grouping.module.d.ts +0 -8
- package/app/eo-framework/grid/row-grouping/row-grouping.module.d.ts.map +0 -1
- package/esm2022/app/eo-framework/grid/row-grouping/batchRemover.mjs +0 -50
- package/esm2022/app/eo-framework/grid/row-grouping/group-stage.mjs +0 -623
- package/esm2022/app/eo-framework/grid/row-grouping/row-grouping.module.mjs +0 -8
- package/proxy.config.json +0 -97
|
@@ -43,10 +43,9 @@ let IndexdataSummaryComponent = class IndexdataSummaryComponent {
|
|
|
43
43
|
const coreValues = this.processIndexData(indexdata, 0, true)
|
|
44
44
|
.map(({ label, _value, qname, reference }) => ({ label, reference, _value: diffValue(_value, coreValues2[qname]._value) }))
|
|
45
45
|
.filter(v => v._value);
|
|
46
|
-
const
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
.filter(v => v._value);
|
|
46
|
+
const indexDataArrayDetails = this.getIndexDataArrayDetails(indexdata);
|
|
47
|
+
const indexData2ArrayDetails = this.getIndexDataArrayDetails(indexdata2);
|
|
48
|
+
const dataValues = this.extractDataValuesWithDifferences(indexDataArrayDetails, indexData2ArrayDetails);
|
|
50
49
|
this.coreValues = coreValues;
|
|
51
50
|
this.dataValues = dataValues;
|
|
52
51
|
this.moreInfoAcc = !!dataValues.length;
|
|
@@ -88,6 +87,140 @@ let IndexdataSummaryComponent = class IndexdataSummaryComponent {
|
|
|
88
87
|
this.emptyState = false;
|
|
89
88
|
this.enableVersions = true;
|
|
90
89
|
this.isChangesTab = false;
|
|
90
|
+
/**
|
|
91
|
+
* Compares two values deeply to determine if they are equivalent.
|
|
92
|
+
*
|
|
93
|
+
* This function performs a deep comparison between two values to determine if they are equivalent.
|
|
94
|
+
* It compares objects recursively, including their enumerable properties.
|
|
95
|
+
*
|
|
96
|
+
* @param {any} val1 - The first value to compare.
|
|
97
|
+
* @param {any} val2 - The second value to compare.
|
|
98
|
+
* @returns {boolean} - Returns `true` if the values are deeply equal, otherwise `false`.
|
|
99
|
+
*/
|
|
100
|
+
this.compareContentValueEquality = (val1, val2) => {
|
|
101
|
+
if (val1 === val2)
|
|
102
|
+
return true;
|
|
103
|
+
if (typeof val1 !== 'object' || typeof val2 !== 'object' || val1 == null || val2 == null)
|
|
104
|
+
return false;
|
|
105
|
+
const val1keys = Object.keys(val1);
|
|
106
|
+
const val2keys = Object.keys(val2);
|
|
107
|
+
if (val1keys.length !== val2keys.length)
|
|
108
|
+
return false;
|
|
109
|
+
for (const key of val1keys) {
|
|
110
|
+
if (!val2keys.includes(key) || !this.compareContentValueEquality(val1[key], val2[key]))
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
return true;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Compares two values and returns a summary of their differences.
|
|
117
|
+
* If the values are arrays, it compares their lengths and, if equal, their contents.
|
|
118
|
+
* For non-array values, it checks for equality or if either is considered "empty" by a utility function.
|
|
119
|
+
*
|
|
120
|
+
* @param val1 The first value to compare.
|
|
121
|
+
* @param val2 The second value to compare.
|
|
122
|
+
* @returns An object with `val1` and `val2` properties representing the differences, or `null` if no differences are found.
|
|
123
|
+
* For arrays, the differences are the count of differing items or the difference in lengths.
|
|
124
|
+
* For other values, it returns the values themselves if they differ, or an empty string for "empty" values.
|
|
125
|
+
* Returns `null` if the values are equal or both "empty".
|
|
126
|
+
*/
|
|
127
|
+
this.getDataValueDifferences = (val1, val2) => {
|
|
128
|
+
if (Array.isArray(val1) && Array.isArray(val2)) {
|
|
129
|
+
const length1 = val1.length;
|
|
130
|
+
const length2 = val2.length;
|
|
131
|
+
if (length1 !== length2) {
|
|
132
|
+
return { val1: length1.toString(), val2: length2.toString() };
|
|
133
|
+
}
|
|
134
|
+
// Count content differences when lengths are the same
|
|
135
|
+
let differences = 0;
|
|
136
|
+
for (let i = 0; i < length1; i++) {
|
|
137
|
+
if (!this.compareContentValueEquality(val1[i], val2[i])) {
|
|
138
|
+
differences++;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (differences > 0) {
|
|
142
|
+
return { val1: differences.toString(), val2: differences.toString() };
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const isEmptyVal1 = UtilitiesService.isEmpty(val1);
|
|
149
|
+
const isEmptyVal2 = UtilitiesService.isEmpty(val2);
|
|
150
|
+
if (isEmptyVal1 && isEmptyVal2) {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
if (val1 !== val2 || isEmptyVal1 || isEmptyVal2) {
|
|
154
|
+
return { val1: isEmptyVal1 ? "" : val1, val2: isEmptyVal2 ? "" : val2 };
|
|
155
|
+
}
|
|
156
|
+
return null;
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Extracts properties from an object that are arrays and returns their details.
|
|
160
|
+
*
|
|
161
|
+
* @param {Object} data - The object to analyze.
|
|
162
|
+
* @returns {Array} An array of objects, each representing a property of the input object
|
|
163
|
+
* that is an array. Each object includes the property name (`label`), the number of elements
|
|
164
|
+
* in the array (`length`), the array content itself (`content`), and the type of the array (`type`).
|
|
165
|
+
*/
|
|
166
|
+
this.getIndexDataArrayDetails = (indexData) => {
|
|
167
|
+
const data = indexData.data;
|
|
168
|
+
const formElements = indexData.form.elements;
|
|
169
|
+
// Helper function to find the type of an element by its label
|
|
170
|
+
const findTypeAndLabelByName = (elements, label) => {
|
|
171
|
+
for (const element of elements) {
|
|
172
|
+
if (element.name === label) {
|
|
173
|
+
return { type: element.type, label: element.label };
|
|
174
|
+
}
|
|
175
|
+
if (element.elements && element.elements.length > 0) {
|
|
176
|
+
const typeLabelInfo = findTypeAndLabelByName(element.elements, label);
|
|
177
|
+
if (typeLabelInfo) {
|
|
178
|
+
return typeLabelInfo;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return null;
|
|
183
|
+
};
|
|
184
|
+
return Object.keys(data)
|
|
185
|
+
.filter((key) => Array.isArray(data[key]))
|
|
186
|
+
.map((key) => {
|
|
187
|
+
const { type, label } = findTypeAndLabelByName(formElements, key);
|
|
188
|
+
return {
|
|
189
|
+
label,
|
|
190
|
+
length: data[key].length,
|
|
191
|
+
content: data[key],
|
|
192
|
+
type,
|
|
193
|
+
};
|
|
194
|
+
});
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* Compares the content of two sets of index data array details and extracts the differences.
|
|
198
|
+
*
|
|
199
|
+
* This function maps through the first set of index data array details, finds the matching
|
|
200
|
+
* content from the second set by label, and then calculates the differences between them.
|
|
201
|
+
* It returns an array of objects with labels and the calculated differences, filtering out
|
|
202
|
+
* any entries without a difference.
|
|
203
|
+
*
|
|
204
|
+
* @param {IndexDataArrayDetail[]} indexDataArrayDetails - The first set of index data array details.
|
|
205
|
+
* @param {IndexDataArrayDetail[]} indexData2ArrayDetails - The second set of index data array details.
|
|
206
|
+
* @returns {Array<{label: string, _value: any}>} An array of objects containing labels and their differences.
|
|
207
|
+
*/
|
|
208
|
+
this.extractDataValuesWithDifferences = (indexDataArrayDetails, indexData2ArrayDetails) => {
|
|
209
|
+
return indexDataArrayDetails.map(({ label, type, content }) => {
|
|
210
|
+
const matchingProp = indexData2ArrayDetails.find(prop => prop.label === label);
|
|
211
|
+
const content2 = matchingProp ? matchingProp.content : [];
|
|
212
|
+
const newValue = this.getDataValueDifferences(content, content2);
|
|
213
|
+
if (type === "TABLE" && newValue && newValue.val1 && newValue.val2) {
|
|
214
|
+
newValue.val1 = "";
|
|
215
|
+
newValue.val2 = this.translate.instant('eo.indexdata.summary.table.change');
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
label,
|
|
219
|
+
type,
|
|
220
|
+
_value: newValue,
|
|
221
|
+
};
|
|
222
|
+
}).filter((v) => v._value);
|
|
223
|
+
};
|
|
91
224
|
}
|
|
92
225
|
onValueClick(event, item = {}) {
|
|
93
226
|
if (item.reference || item.version) {
|
|
@@ -137,16 +270,16 @@ let IndexdataSummaryComponent = class IndexdataSummaryComponent {
|
|
|
137
270
|
this.isUserAllowedToShowStorageSection = this.userService.getCurrentUser().hasPrivilege('MANAGE_STORAGES');
|
|
138
271
|
this.getCachedAccordionState();
|
|
139
272
|
}
|
|
140
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
141
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: IndexdataSummaryComponent, selector: "eo-indexdata-summary", inputs: { baseparams: "baseparams", enableVersions: "enableVersions", isChangesTab: "isChangesTab", indexdata: "indexdata", dmsObject: "dmsObject", diff: "diff" }, ngImport: i0, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\n<div class=\"indexdata-summary\">\n\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n\n @if (item?.contextFolder) {\n <eo-simple-accordion [header]=\"item.contextFolder?.type?.label + ':'\"\n [item]=\"item\" [selected]=\"infoFolderAcc\" (selectChange)=\"onContextfolderToggle($event)\">\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues2\"\n [label]=\"item.label\" [value]=\"item.data\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </eo-simple-accordion>\n }\n </div>\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\n <eo-simple-accordion #dataAccordion\n [header]=\"('eo.indexdata.summary.more' | translate)\"\n [selected]=\"moreInfoAcc\"\n (selectChange)=\"onMoreInfoToggle($event)\">\n <div class=\"data\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modified' | translate\"\n [value]=\"baseparams.modifiedOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modifier' | translate\"\n [value]=\"baseparams.modifiedBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.created' | translate\"\n [value]=\"baseparams.createdOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.creator' | translate\"\n [value]=\"baseparams.createdBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.object.summary.version' | translate\"\n [value]=\"getVersionLink(baseparams.version)\"\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\n </eo-indexdata-summary-entry>\n\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filename' | translate\"\n [value]=\"baseparams.contentFileName\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filesize' | translate\"\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetypegroup' | translate\"\n [value]=\"baseparams.mimeGroup\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\n [value]=\"baseparams.mimeType\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.id' | translate\"\n [value]=\"baseparams.id\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.contentId' | translate\"\n [value]=\"baseparams.contentId\">\n </eo-indexdata-summary-entry>\n </div>\n\n @if(storageInfos?.length && isUserAllowedToShowStorageSection && !isChangesTab) {\n <div class=\"storageinfo\">\n <eo-simple-accordion [header]=\"('eo.state.settings.storageinfo' | translate)\"\n [selected]=\"dataInfoAcc\"\n (selectChange)=\"onStorageInfoToggle($event)\">\n\n <div class=\"storageinfo-entry baseparams-section\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.global.baseparam.digest' | translate\"\n [value]=\"baseparams.digest\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.retention' | translate\"\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\n [value]=\"stInfo.permanence\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.setname' | translate\"\n [value]=\"stInfo.setname\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\n [value]=\"stInfo.storagename\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.location' | translate\"\n [value]=\"stInfo.location\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n }\n\n</div>\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:2em;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:max-content}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "component", type: i5.IndexdataSummaryEntryComponent, selector: "eo-indexdata-summary-entry", inputs: ["label", "item", "value", "className"], outputs: ["onValueClicked"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.FileSizePipe, name: "fileSize" }, { kind: "pipe", type: i8.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
273
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: IndexdataSummaryComponent, deps: [{ token: i1.TranslateService }, { token: i2.GridService }, { token: i1.DmsService }, { token: i1.UserService }, { token: i0.ChangeDetectorRef }, { token: i1.LocalStorageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
274
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.4", type: IndexdataSummaryComponent, selector: "eo-indexdata-summary", inputs: { baseparams: "baseparams", enableVersions: "enableVersions", isChangesTab: "isChangesTab", indexdata: "indexdata", dmsObject: "dmsObject", diff: "diff" }, ngImport: i0, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\r\n<div class=\"indexdata-summary\">\r\n\r\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\r\n\r\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\r\n [label]=\"item.label\"\r\n [value]=\"item._value\"\r\n (onValueClicked)=\"onValueClick($event, item)\">\r\n </eo-indexdata-summary-entry>\r\n\r\n @if (item?.contextFolder) {\r\n <eo-simple-accordion [header]=\"item.contextFolder?.type?.label + ':'\"\r\n [item]=\"item\" [selected]=\"infoFolderAcc\" (selectChange)=\"onContextfolderToggle($event)\">\r\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues2\"\r\n [label]=\"item.label\" [value]=\"item.data\"\r\n (onValueClicked)=\"onValueClick($event, item)\">\r\n </eo-indexdata-summary-entry>\r\n </eo-simple-accordion>\r\n }\r\n </div>\r\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\r\n <eo-simple-accordion #dataAccordion\r\n [header]=\"('eo.indexdata.summary.more' | translate)\"\r\n [selected]=\"moreInfoAcc\"\r\n (selectChange)=\"onMoreInfoToggle($event)\">\r\n <div class=\"data\">\r\n\r\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\r\n [label]=\"item.label\"\r\n [value]=\"item._value\"\r\n (onValueClicked)=\"onValueClick($event, item)\">\r\n </eo-indexdata-summary-entry>\r\n </div>\r\n </eo-simple-accordion>\r\n </div>\r\n\r\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.modified' | translate\"\r\n [value]=\"baseparams.modifiedOn | localeDate\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.modifier' | translate\"\r\n [value]=\"baseparams.modifiedBy\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.created' | translate\"\r\n [value]=\"baseparams.createdOn | localeDate\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.creator' | translate\"\r\n [value]=\"baseparams.createdBy\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.object.summary.version' | translate\"\r\n [value]=\"getVersionLink(baseparams.version)\"\r\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\r\n </eo-indexdata-summary-entry>\r\n\r\n\r\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.filename' | translate\"\r\n [value]=\"baseparams.contentFileName\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.filesize' | translate\"\r\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.mimetypegroup' | translate\"\r\n [value]=\"baseparams.mimeGroup\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\r\n [value]=\"baseparams.mimeType\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.id' | translate\"\r\n [value]=\"baseparams.id\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.contentId' | translate\"\r\n [value]=\"baseparams.contentId\">\r\n </eo-indexdata-summary-entry>\r\n </div>\r\n\r\n @if(storageInfos?.length && isUserAllowedToShowStorageSection && !isChangesTab) {\r\n <div class=\"storageinfo\">\r\n <eo-simple-accordion [header]=\"('eo.state.settings.storageinfo' | translate)\"\r\n [selected]=\"dataInfoAcc\"\r\n (selectChange)=\"onStorageInfoToggle($event)\">\r\n\r\n <div class=\"storageinfo-entry baseparams-section\">\r\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\r\n [label]=\"'eo.global.baseparam.digest' | translate\"\r\n [value]=\"baseparams.digest\">\r\n </eo-indexdata-summary-entry>\r\n </div>\r\n\r\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\r\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\r\n [label]=\"'eo.object.storageinfo.retention' | translate\"\r\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\r\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\r\n [value]=\"stInfo.permanence\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\r\n [label]=\"'eo.object.storageinfo.setname' | translate\"\r\n [value]=\"stInfo.setname\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\r\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\r\n [value]=\"stInfo.storagename\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\r\n [label]=\"'eo.object.storageinfo.location' | translate\"\r\n [value]=\"stInfo.location\">\r\n </eo-indexdata-summary-entry>\r\n </div>\r\n </eo-simple-accordion>\r\n </div>\r\n }\r\n\r\n</div>\r\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:2em;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:max-content}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "component", type: i5.IndexdataSummaryEntryComponent, selector: "eo-indexdata-summary-entry", inputs: ["label", "item", "value", "className"], outputs: ["onValueClicked"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.FileSizePipe, name: "fileSize" }, { kind: "pipe", type: i8.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
142
275
|
};
|
|
143
276
|
IndexdataSummaryComponent = IndexdataSummaryComponent_1 = __decorate([
|
|
144
277
|
UntilDestroy()
|
|
145
278
|
], IndexdataSummaryComponent);
|
|
146
279
|
export { IndexdataSummaryComponent };
|
|
147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
280
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: IndexdataSummaryComponent, decorators: [{
|
|
148
281
|
type: Component,
|
|
149
|
-
args: [{ selector: 'eo-indexdata-summary', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\n<div class=\"indexdata-summary\">\n\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n\n @if (item?.contextFolder) {\n <eo-simple-accordion [header]=\"item.contextFolder?.type?.label + ':'\"\n [item]=\"item\" [selected]=\"infoFolderAcc\" (selectChange)=\"onContextfolderToggle($event)\">\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues2\"\n [label]=\"item.label\" [value]=\"item.data\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </eo-simple-accordion>\n }\n </div>\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\n <eo-simple-accordion #dataAccordion\n [header]=\"('eo.indexdata.summary.more' | translate)\"\n [selected]=\"moreInfoAcc\"\n (selectChange)=\"onMoreInfoToggle($event)\">\n <div class=\"data\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modified' | translate\"\n [value]=\"baseparams.modifiedOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modifier' | translate\"\n [value]=\"baseparams.modifiedBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.created' | translate\"\n [value]=\"baseparams.createdOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.creator' | translate\"\n [value]=\"baseparams.createdBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.object.summary.version' | translate\"\n [value]=\"getVersionLink(baseparams.version)\"\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\n </eo-indexdata-summary-entry>\n\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filename' | translate\"\n [value]=\"baseparams.contentFileName\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filesize' | translate\"\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetypegroup' | translate\"\n [value]=\"baseparams.mimeGroup\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\n [value]=\"baseparams.mimeType\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.id' | translate\"\n [value]=\"baseparams.id\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.contentId' | translate\"\n [value]=\"baseparams.contentId\">\n </eo-indexdata-summary-entry>\n </div>\n\n @if(storageInfos?.length && isUserAllowedToShowStorageSection && !isChangesTab) {\n <div class=\"storageinfo\">\n <eo-simple-accordion [header]=\"('eo.state.settings.storageinfo' | translate)\"\n [selected]=\"dataInfoAcc\"\n (selectChange)=\"onStorageInfoToggle($event)\">\n\n <div class=\"storageinfo-entry baseparams-section\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.global.baseparam.digest' | translate\"\n [value]=\"baseparams.digest\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.retention' | translate\"\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\n [value]=\"stInfo.permanence\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.setname' | translate\"\n [value]=\"stInfo.setname\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\n [value]=\"stInfo.storagename\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.location' | translate\"\n [value]=\"stInfo.location\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n }\n\n</div>\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:2em;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:max-content}\n"] }]
|
|
282
|
+
args: [{ selector: 'eo-indexdata-summary', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\r\n<div class=\"indexdata-summary\">\r\n\r\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\r\n\r\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\r\n [label]=\"item.label\"\r\n [value]=\"item._value\"\r\n (onValueClicked)=\"onValueClick($event, item)\">\r\n </eo-indexdata-summary-entry>\r\n\r\n @if (item?.contextFolder) {\r\n <eo-simple-accordion [header]=\"item.contextFolder?.type?.label + ':'\"\r\n [item]=\"item\" [selected]=\"infoFolderAcc\" (selectChange)=\"onContextfolderToggle($event)\">\r\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues2\"\r\n [label]=\"item.label\" [value]=\"item.data\"\r\n (onValueClicked)=\"onValueClick($event, item)\">\r\n </eo-indexdata-summary-entry>\r\n </eo-simple-accordion>\r\n }\r\n </div>\r\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\r\n <eo-simple-accordion #dataAccordion\r\n [header]=\"('eo.indexdata.summary.more' | translate)\"\r\n [selected]=\"moreInfoAcc\"\r\n (selectChange)=\"onMoreInfoToggle($event)\">\r\n <div class=\"data\">\r\n\r\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\r\n [label]=\"item.label\"\r\n [value]=\"item._value\"\r\n (onValueClicked)=\"onValueClick($event, item)\">\r\n </eo-indexdata-summary-entry>\r\n </div>\r\n </eo-simple-accordion>\r\n </div>\r\n\r\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.modified' | translate\"\r\n [value]=\"baseparams.modifiedOn | localeDate\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.modifier' | translate\"\r\n [value]=\"baseparams.modifiedBy\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.created' | translate\"\r\n [value]=\"baseparams.createdOn | localeDate\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.creator' | translate\"\r\n [value]=\"baseparams.createdBy\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.object.summary.version' | translate\"\r\n [value]=\"getVersionLink(baseparams.version)\"\r\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\r\n </eo-indexdata-summary-entry>\r\n\r\n\r\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.filename' | translate\"\r\n [value]=\"baseparams.contentFileName\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.filesize' | translate\"\r\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.mimetypegroup' | translate\"\r\n [value]=\"baseparams.mimeGroup\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\r\n [value]=\"baseparams.mimeType\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.id' | translate\"\r\n [value]=\"baseparams.id\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\r\n [className]=\"'baseparams-section'\"\r\n [label]=\"'eo.global.baseparam.contentId' | translate\"\r\n [value]=\"baseparams.contentId\">\r\n </eo-indexdata-summary-entry>\r\n </div>\r\n\r\n @if(storageInfos?.length && isUserAllowedToShowStorageSection && !isChangesTab) {\r\n <div class=\"storageinfo\">\r\n <eo-simple-accordion [header]=\"('eo.state.settings.storageinfo' | translate)\"\r\n [selected]=\"dataInfoAcc\"\r\n (selectChange)=\"onStorageInfoToggle($event)\">\r\n\r\n <div class=\"storageinfo-entry baseparams-section\">\r\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\r\n [label]=\"'eo.global.baseparam.digest' | translate\"\r\n [value]=\"baseparams.digest\">\r\n </eo-indexdata-summary-entry>\r\n </div>\r\n\r\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\r\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\r\n [label]=\"'eo.object.storageinfo.retention' | translate\"\r\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\r\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\r\n [value]=\"stInfo.permanence\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\r\n [label]=\"'eo.object.storageinfo.setname' | translate\"\r\n [value]=\"stInfo.setname\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\r\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\r\n [value]=\"stInfo.storagename\">\r\n </eo-indexdata-summary-entry>\r\n\r\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\r\n [label]=\"'eo.object.storageinfo.location' | translate\"\r\n [value]=\"stInfo.location\">\r\n </eo-indexdata-summary-entry>\r\n </div>\r\n </eo-simple-accordion>\r\n </div>\r\n }\r\n\r\n</div>\r\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:2em;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:max-content}\n"] }]
|
|
150
283
|
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.GridService }, { type: i1.DmsService }, { type: i1.UserService }, { type: i0.ChangeDetectorRef }, { type: i1.LocalStorageService }], propDecorators: { baseparams: [{
|
|
151
284
|
type: Input
|
|
152
285
|
}], enableVersions: [{
|
|
@@ -160,4 +293,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
160
293
|
}], diff: [{
|
|
161
294
|
type: Input
|
|
162
295
|
}] } });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUF3RixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFMUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7QUFTNUQsSUFBTSx5QkFBeUIsR0FBL0IsTUFBTSx5QkFBeUI7O0lBc0JwQyxJQUNJLFNBQVMsQ0FBQyxFQUFhO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENB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LFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdGLFNBQVM7c0JBRFosS0FBSztnQkFRRixTQUFTO3NCQURaLEtBQUs7Z0JBV08sSUFBSTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXRpbGl0aWVzU2VydmljZX0gZnJvbSAnLi8uLi8uLi91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYXNlUGFyYW1zLCBEbXNPYmplY3QsIERtc1NlcnZpY2UsIExvY2FsU3RvcmFnZVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7R3JpZFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHtjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0lTdW1tYXJ5RW50cnlEaWZmVmFsdWV9IGZyb20gJy4vaW5kZXhkYXRhLXN1bW1hcnktZW50cnkuaW50ZXJmYWNlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1pbmRleGRhdGEtc3VtbWFyeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmRleGRhdGEtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2luZGV4ZGF0YS1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEluZGV4ZGF0YVN1bW1hcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGlzVXNlckFsbG93ZWRUb1Nob3dTdG9yYWdlU2VjdGlvbjogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfaW5kZXhEYXRhOiBJbmRleERhdGE7XG5cbiAgY29yZVZhbHVlczogYW55W107XG4gIGRhdGFWYWx1ZXM6IGFueVtdO1xuICBkYXRhVmFsdWVzMjogYW55W107XG4gIHN0b3JhZ2VJbmZvczogYW55W107XG4gIGl0ZW06IERtc09iamVjdDtcbiAgbW9yZUluZm9BY2MgPSBmYWxzZTtcbiAgZGF0YUluZm9BY2MgPSBmYWxzZTtcbiAgaW5mb0ZvbGRlckFjYyA9IGZhbHNlO1xuICBwcml2YXRlIGNhY2hlS2V5ID0gJ2FjY29yZGlvbi5zdGF0ZS0tJztcbiAgZGlmZkFjdGl2ZSA9IGZhbHNlO1xuICBlbXB0eVN0YXRlID0gZmFsc2U7XG5cblxuICBASW5wdXQoKSBiYXNlcGFyYW1zOiBCYXNlUGFyYW1zO1xuICBASW5wdXQoKSBlbmFibGVWZXJzaW9ucyA9IHRydWU7XG4gIEBJbnB1dCgpIGlzQ2hhbmdlc1RhYiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBpbmRleGRhdGEoaWQ6IEluZGV4RGF0YSkge1xuICAgIHRoaXMuX2luZGV4RGF0YSA9IGlkO1xuICAgIHRoaXMuY29yZVZhbHVlcyA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpZCwgMCkuZmlsdGVyKHZhbHVlID0+ICF2YWx1ZS5uYW1lLnN0YXJ0c1dpdGgoJ3l1dicpKTtcbiAgICB0aGlzLmRhdGFWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaWQsIDEpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRtc09iamVjdChpdGVtOiBEbXNPYmplY3QpIHtcbiAgICB0aGlzLml0ZW0gPSBpdGVtO1xuICAgIHRoaXMuZ2V0Rm9sZGVySW5mb3MoaXRlbSk7XG4gICAgdGhpcy5zdG9yYWdlSW5mb3MgPSBudWxsO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICB0aGlzLmdldFN0b3JhZ2VJbmZvcygpO1xuICAgIH1cbiAgICB0aGlzLmdldENhY2hlZEFjY29yZGlvblN0YXRlKCk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZGlmZih7aW5kZXhkYXRhLCBpbmRleGRhdGEyLCBiYXNlcGFyYW1zLCBiYXNlcGFyYW1zMn0pIHtcbiAgICB0aGlzLmRpZmZBY3RpdmUgPSB0cnVlO1xuXG4gICAgY29uc3QgZGlmZlZhbHVlID0gKHZhbDEsIHZhbDIpOiBJU3VtbWFyeUVudHJ5RGlmZlZhbHVlID0+ICEoVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHZhbDEpICYmIFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh2YWwyKSkgJiYgdmFsMSAhPT0gdmFsMiA/IHt2YWwxLCB2YWwyfSA6IG51bGw7XG5cbiAgICBpZiAoYmFzZXBhcmFtcyAmJiBiYXNlcGFyYW1zMikge1xuICAgICAgdGhpcy5iYXNlcGFyYW1zID0ge30gYXMgQmFzZVBhcmFtcztcbiAgICAgIFsnY29udGVudEZpbGVOYW1lJywgJ2NvbnRlbnRGaWxlU2l6ZScsICdtaW1lR3JvdXAnXVxuICAgICAgICAuZm9yRWFjaChrID0+IGRpZmZWYWx1ZShiYXNlcGFyYW1zW2tdLCBiYXNlcGFyYW1zMltrXSkgJiYgKHRoaXMuYmFzZXBhcmFtc1trXSA9IGRpZmZWYWx1ZShiYXNlcGFyYW1zW2tdLCBiYXNlcGFyYW1zMltrXSkpKTtcbiAgICB9XG5cbiAgICBpZiAoaW5kZXhkYXRhICYmIGluZGV4ZGF0YTIpIHtcbiAgICAgIGNvbnN0IGNvcmVWYWx1ZXMyID0gdGhpcy5wcm9jZXNzSW5kZXhEYXRhKGluZGV4ZGF0YTIsIDAsIHRydWUpLnJlZHVjZSgoYWNjLCBjdXIpID0+IChhY2NbY3VyLnFuYW1lXSA9IGN1ciwgYWNjKSwge30pO1xuICAgICAgY29uc3QgY29yZVZhbHVlcyA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpbmRleGRhdGEsIDAsIHRydWUpXG4gICAgICAgIC5tYXAoKHtsYWJlbCwgX3ZhbHVlLCBxbmFtZSwgcmVmZXJlbmNlfSkgPT4gKHtsYWJlbCwgcmVmZXJlbmNlLCBfdmFsdWU6IGRpZmZWYWx1ZShfdmFsdWUsIGNvcmVWYWx1ZXMyW3FuYW1lXS5fdmFsdWUpfSkpXG4gICAgICAgIC5maWx0ZXIodiA9PiB2Ll92YWx1ZSk7XG5cbiAgICAgIGNvbnN0IGRhdGFWYWx1ZXMyID0gdGhpcy5wcm9jZXNzSW5kZXhEYXRhKGluZGV4ZGF0YTIsIDEsIHRydWUpLnJlZHVjZSgoYWNjLCBjdXIpID0+IChhY2NbY3VyLnFuYW1lXSA9IGN1ciwgYWNjKSwge30pO1xuICAgICAgY29uc3QgZGF0YVZhbHVlcyA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpbmRleGRhdGEsIDEsIHRydWUpXG4gICAgICAgIC5tYXAoKHtsYWJlbCwgX3ZhbHVlLCBxbmFtZSwgcmVmZXJlbmNlfSkgPT4gKHtsYWJlbCwgcmVmZXJlbmNlLCBfdmFsdWU6IGRpZmZWYWx1ZShfdmFsdWUsIGRhdGFWYWx1ZXMyW3FuYW1lXS5fdmFsdWUpfSkpXG4gICAgICAgIC5maWx0ZXIodiA9PiB2Ll92YWx1ZSk7XG5cbiAgICAgIHRoaXMuY29yZVZhbHVlcyA9IGNvcmVWYWx1ZXM7XG4gICAgICB0aGlzLmRhdGFWYWx1ZXMgPSBkYXRhVmFsdWVzO1xuICAgICAgdGhpcy5tb3JlSW5mb0FjYyA9ICEhZGF0YVZhbHVlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgdGhpcy5lbXB0eVN0YXRlID0gVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHRoaXMuY29yZVZhbHVlcykgJiYgVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHRoaXMuZGF0YVZhbHVlcykgJiYgVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KE9iamVjdC5rZXlzKHRoaXMuYmFzZXBhcmFtcyB8fCB7fSkpO1xuICB9XG5cbiAgc3RhdGljIGNvbGxlY3QoZGF0YToge30sIGVsZW1lbnRzOiBhbnlbXSA9IFtdLCBjb2xsZWN0aW9uOiBhbnlbXSwgZm9yY2UgPSBmYWxzZSkge1xuICAgIGVsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xuICAgICAgaWYgKGVsLnR5cGUgIT09ICdUQUJMRScpIHtcbiAgICAgICAgaWYgKGVsLmVsZW1lbnRzKSB7XG4gICAgICAgICAgY29sbGVjdGlvbi5jb25jYXQoSW5kZXhkYXRhU3VtbWFyeUNvbXBvbmVudC5jb2xsZWN0KGRhdGEsIGVsLmVsZW1lbnRzLCBjb2xsZWN0aW9uLCBmb3JjZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBrZXkgPSBlbC5uYW1lO1xuICAgICAgICAgIGlmIChmb3JjZSB8fCAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIChBcnJheS5pc0FycmF5KGRhdGFba2V5XSkgPyBkYXRhW2tleV0ubGVuZ3RoIDogdHJ1ZSkpKSB7XG4gICAgICAgICAgICAvLyBvbmx5IGFkZCBhcnJheXMgd2hlbiB0aGV5IGNvbnRhaW4gYW55IHZhbHVlc1xuICAgICAgICAgICAgY29sbGVjdGlvbi5wdXNoKE9iamVjdC5hc3NpZ24oe30sIGVsLCB7XG4gICAgICAgICAgICAgIHZhbHVlOiBkYXRhW2tleV0sXG4gICAgICAgICAgICAgIG1ldGE6IGRhdGFba2V5ICsgJ19tZXRhJ11cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgfVxuXG5cbiAgY29uc3RydWN0b3IocHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwdWJsaWMgZ3JpZEFwaTogR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkbXNTZXJ2aWNlOiBEbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UpIHtcblxuICB9XG5cbiAgb25WYWx1ZUNsaWNrKGV2ZW50OiBhbnksIGl0ZW06IGFueSA9IHt9KSB7XG4gICAgaWYgKGl0ZW0ucmVmZXJlbmNlIHx8IGl0ZW0udmVyc2lvbikge1xuICAgICAgdGhpcy5ncmlkQXBpLm9wZW5Sb3V0ZXJMaW5rKGV2ZW50LCAnZW50cnknKTtcbiAgICB9XG4gIH1cblxuICBnZXRWZXJzaW9uTGluayh2ZXJzaW9uOiBudW1iZXIpIHtcbiAgICBjb25zdCBsaW5rID0gYHZlcnNpb25zLyR7dGhpcy5pdGVtLmlkfT90eXBlPSR7dGhpcy5pdGVtLnR5cGVOYW1lfSZ2ZXJzaW9uPSR7dmVyc2lvbn1gO1xuICAgIHJldHVybiBgPGEgY2xhc3M9XCJsaW5rIHJvdXRlci1saW5rXCIgaHJlZj1cIiR7bGlua31cIiB0YXJnZXQ9XCJfYmxhbmtcIiBvbmNsaWNrPVwicmV0dXJuIGZhbHNlO1wiPiR7dmVyc2lvbn08L2E+YDtcbiAgfVxuXG4gIHByb2Nlc3NJbmRleERhdGEoaWQ6IEluZGV4RGF0YSwgaW5kZXggPSAwLCBmb3JjZSA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIGlkICYmIGlkLmZvcm0gJiYgaWQuZGF0YSA/IHRoaXMuZ3JpZEFwaS5nZXRSZXNvbHZlZERlZnMoSW5kZXhkYXRhU3VtbWFyeUNvbXBvbmVudC5jb2xsZWN0KGlkLmRhdGEsIGlkLmZvcm0uZWxlbWVudHNbaW5kZXhdLmVsZW1lbnRzLCBbXSwgZm9yY2UpKSA6IFtdO1xuICB9XG5cbiAgb25Nb3JlSW5mb1RvZ2dsZShpbmZvOiBib29sZWFuKSB7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnbW9yZS1pbmZvJywgSlNPTi5zdHJpbmdpZnkoaW5mbykpO1xuICB9XG5cbiAgb25Db250ZXh0Zm9sZGVyVG9nZ2xlKGluZm86IGJvb2xlYW4pIHtcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0odGhpcy5jYWNoZUtleSArICdjb250ZXh0Zm9sZGVyJywgSlNPTi5zdHJpbmdpZnkoaW5mbykpO1xuICB9XG5cbiAgb25TdG9yYWdlSW5mb1RvZ2dsZShpbmZvOiBib29sZWFuKSB7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnc3RvcmFnZS1pbmZvJywgSlNPTi5zdHJpbmdpZnkoaW5mbykpO1xuICB9XG5cbiAgdHJhY2tCeUluZGV4KGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgZ2V0U3RvcmFnZUluZm9zKCkge1xuICAgIHRoaXMuZG1zU2VydmljZS5nZXREbXNPYmplY3RCeVBhcmFtcyh7aWQ6IHRoaXMuaXRlbS5pZCwgdHlwZTogdGhpcy5pdGVtLnR5cGVOYW1lLCB2ZXJzaW9uOiB0aGlzLml0ZW0udmVyc2lvbiwgcmVjeWNsZWJpbjogdHJ1ZSwgd2l0aFN0b3JhZ2VJbmZvOiB0cnVlfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSxcbiAgICAgICAgY2F0Y2hFcnJvcihVdGlscy5jYXRjaFNraXAoZXJyID0+IGVyci5zdGF0dXMgPT09IDQwNCkpXG4gICAgICApLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLnN0b3JhZ2VJbmZvcyA9IHJlcy5zdG9yYWdlSW5mbztcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0Rm9sZGVySW5mb3MoaXRlbTogRG1zT2JqZWN0KSB7XG4gICAgdGhpcy5kYXRhVmFsdWVzMiA9IGl0ZW0uY29udGV4dEZvbGRlcj8udHlwZT8uZWxlbWVudHMuZmlsdGVyKGl0ZW1zID0+IGl0ZW1zLnNlbGVjdGVkZm9yZW5yaWNobWVudCkubWFwKGl0ZW1zID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLml0ZW1zLFxuICAgICAgICBkYXRhOiBpdGVtLmNvbnRleHRGb2xkZXIuZGF0YVtpdGVtcy5uYW1lXVxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FjaGVkQWNjb3JkaW9uU3RhdGUoKSB7XG4gICAgdGhpcy5tb3JlSW5mb0FjYyA9IEpTT04ucGFyc2UodGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnbW9yZS1pbmZvJykpO1xuICAgIHRoaXMuaW5mb0ZvbGRlckFjYyA9IEpTT04ucGFyc2UodGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnY29udGV4dGZvbGRlcicpKTtcbiAgICB0aGlzLmRhdGFJbmZvQWNjID0gSlNPTi5wYXJzZSh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5jYWNoZUtleSArICdzdG9yYWdlLWluZm8nKSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmlzVXNlckFsbG93ZWRUb1Nob3dTdG9yYWdlU2VjdGlvbiA9IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5oYXNQcml2aWxlZ2UoJ01BTkFHRV9TVE9SQUdFUycpO1xuICAgIHRoaXMuZ2V0Q2FjaGVkQWNjb3JkaW9uU3RhdGUoKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4RGF0YSB7XG4gIGZvcm06IGFueTtcbiAgZGF0YTogYW55O1xufVxuIiwiPGRpdiBjbGFzcz1cImVtcHR5LWNvbnRhaW5lclwiICpuZ0lmPVwiZW1wdHlTdGF0ZVwiPnt7J2VvLmluZGV4ZGF0YS5zdW1tYXJ5Lm5vLmNoYW5nZScgfCB0cmFuc2xhdGV9fTwvZGl2PlxuPGRpdiBjbGFzcz1cImluZGV4ZGF0YS1zdW1tYXJ5XCI+XG5cbiAgPGRpdiBjbGFzcz1cImNvcmUtc2VjdGlvblwiICpuZ0lmPVwiY29yZVZhbHVlcz8ubGVuZ3RoXCI+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29yZVZhbHVlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0uX3ZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDbGlja2VkKT1cIm9uVmFsdWVDbGljaygkZXZlbnQsIGl0ZW0pXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIEBpZiAoaXRlbT8uY29udGV4dEZvbGRlcikge1xuICAgICAgPGVvLXNpbXBsZS1hY2NvcmRpb24gW2hlYWRlcl09XCJpdGVtLmNvbnRleHRGb2xkZXI/LnR5cGU/LmxhYmVsICsgJzonXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIiBbc2VsZWN0ZWRdPVwiaW5mb0ZvbGRlckFjY1wiIChzZWxlY3RDaGFuZ2UpPVwib25Db250ZXh0Zm9sZGVyVG9nZ2xlKCRldmVudClcIj5cbiAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFWYWx1ZXMyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsXCIgW3ZhbHVlXT1cIml0ZW0uZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNsaWNrZWQpPVwib25WYWx1ZUNsaWNrKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cbiAgICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGF0YS1zZWN0aW9uXCIgKm5nSWY9XCJkYXRhVmFsdWVzICYmIGRhdGFWYWx1ZXMubGVuZ3RoXCI+XG4gICAgPGVvLXNpbXBsZS1hY2NvcmRpb24gI2RhdGFBY2NvcmRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyXT1cIignZW8uaW5kZXhkYXRhLnN1bW1hcnkubW9yZScgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwibW9yZUluZm9BY2NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RDaGFuZ2UpPVwib25Nb3JlSW5mb1RvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0YVwiPlxuXG4gICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhVmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLl92YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNsaWNrZWQpPVwib25WYWx1ZUNsaWNrKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImJhc2VwYXJhbXMtc2VjdGlvblwiICpuZ0lmPVwiYmFzZXBhcmFtc1wiPlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiYmFzZXBhcmFtcy5tb2RpZmllZE9uICYmICFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5tb2RpZmllZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5tb2RpZmllZE9uIHwgbG9jYWxlRGF0ZVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCIhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0ubW9kaWZpZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMubW9kaWZpZWRCeVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCJiYXNlcGFyYW1zLmNyZWF0ZWRPbiAmJiAhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uY3JlYXRlZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5jcmVhdGVkT24gfCBsb2NhbGVEYXRlXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cIiFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5jcmVhdG9yJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLmNyZWF0ZWRCeVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCIhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdW1tYXJ5LnZlcnNpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldFZlcnNpb25MaW5rKGJhc2VwYXJhbXMudmVyc2lvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNsaWNrZWQpPVwib25WYWx1ZUNsaWNrKCRldmVudCwge3ZlcnNpb246IGJhc2VwYXJhbXMudmVyc2lvbn0pXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uZmlsZW5hbWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuY29udGVudEZpbGVOYW1lXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cImJhc2VwYXJhbXMuY29udGVudEZpbGVTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5maWxlc2l6ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGlmZkFjdGl2ZSA/IHt2YWwxOiBiYXNlcGFyYW1zLmNvbnRlbnRGaWxlU2l6ZVsndmFsMSddIHwgZmlsZVNpemUsIHZhbDI6IGJhc2VwYXJhbXMuY29udGVudEZpbGVTaXplWyd2YWwyJ10gfCBmaWxlU2l6ZX0gOiAoYmFzZXBhcmFtcy5jb250ZW50RmlsZVNpemUgfCBmaWxlU2l6ZSlcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0ubWltZXR5cGVncm91cCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5taW1lR3JvdXBcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0ubWltZXR5cGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMubWltZVR5cGVcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiIWRpZmZBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5nbG9iYWwuYmFzZXBhcmFtLmlkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLmlkXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cImJhc2VwYXJhbXMuY29udGVudElkICE9PSBiYXNlcGFyYW1zLmlkICYmICFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5jb250ZW50SWQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuY29udGVudElkXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cbiAgPC9kaXY+XG5cbiAgQGlmKHN0b3JhZ2VJbmZvcz8ubGVuZ3RoICYmIGlzVXNlckFsbG93ZWRUb1Nob3dTdG9yYWdlU2VjdGlvbiAmJiAhaXNDaGFuZ2VzVGFiKSB7XG4gICAgPGRpdiBjbGFzcz1cInN0b3JhZ2VpbmZvXCI+XG4gICAgICA8ZW8tc2ltcGxlLWFjY29yZGlvbiBbaGVhZGVyXT1cIignZW8uc3RhdGUuc2V0dGluZ3Muc3RvcmFnZWluZm8nIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiZGF0YUluZm9BY2NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdENoYW5nZSk9XCJvblN0b3JhZ2VJbmZvVG9nZ2xlKCRldmVudClcIj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmFnZWluZm8tZW50cnkgYmFzZXBhcmFtcy1zZWN0aW9uXCI+XG4gICAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ3N0b3JhZ2VpbmZvLXN1YmVudHJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5kaWdlc3QnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuZGlnZXN0XCI+XG4gICAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JhZ2VpbmZvLWVudHJ5IGJhc2VwYXJhbXMtc2VjdGlvblwiICpuZ0Zvcj1cImxldCBzdEluZm8gb2Ygc3RvcmFnZUluZm9zOyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIj5cbiAgICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8ucmV0ZW50aW9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdEluZm8ucmV0ZW50aW9uIHwgbG9jYWxlRGF0ZSA6ICdlb1Nob3J0RGF0ZSdcIj5cbiAgICAgICAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ3N0b3JhZ2VpbmZvLXN1YmVudHJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ub2JqZWN0LnN0b3JhZ2VpbmZvLnBlcm1hbmVuY2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInN0SW5mby5wZXJtYW5lbmNlXCI+XG4gICAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidzdG9yYWdlaW5mby1zdWJlbnRyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdG9yYWdlaW5mby5zZXRuYW1lJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdEluZm8uc2V0bmFtZVwiPlxuICAgICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8uc3RvcmFnZW5hbWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInN0SW5mby5zdG9yYWdlbmFtZVwiPlxuICAgICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8ubG9jYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInN0SW5mby5sb2NhdGlvblwiPlxuICAgICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9lby1zaW1wbGUtYWNjb3JkaW9uPlxuICAgIDwvZGl2PlxuICB9XG5cbjwvZGl2PlxuIl19
|
|
296
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUF3RixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFMUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7QUFVNUQsSUFBTSx5QkFBeUIsR0FBL0IsTUFBTSx5QkFBeUI7O0lBc0JwQyxJQUNJLFNBQVMsQ0FBQyxFQUFhO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENB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ZX0gZnJvbSAnLi8uLi8uLi91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcclxuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QmFzZVBhcmFtcywgRG1zT2JqZWN0LCBEbXNTZXJ2aWNlLCBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVc2VyU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcbmltcG9ydCB7R3JpZFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9ncmlkLnNlcnZpY2UnO1xyXG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtJU3VtbWFyeUVudHJ5RGlmZlZhbHVlfSBmcm9tICcuL2luZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5LmludGVyZmFjZSc7XHJcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcclxuaW1wb3J0IHtEYXRhVmFsdWVEaWZmZXJlbmNlLCBJbmRleERhdGFBcnJheURldGFpbHN9IGZyb20gJy4vaW5kZXhkYXRhLXN1bW1hcnkuaW50ZXJmYWNlJztcclxuXHJcbkBVbnRpbERlc3Ryb3koKVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VvLWluZGV4ZGF0YS1zdW1tYXJ5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2luZGV4ZGF0YS1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEluZGV4ZGF0YVN1bW1hcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBpc1VzZXJBbGxvd2VkVG9TaG93U3RvcmFnZVNlY3Rpb246IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfaW5kZXhEYXRhOiBJbmRleERhdGE7XHJcblxyXG4gIGNvcmVWYWx1ZXM6IGFueVtdO1xyXG4gIGRhdGFWYWx1ZXM6IGFueVtdO1xyXG4gIGRhdGFWYWx1ZXMyOiBhbnlbXTtcclxuICBzdG9yYWdlSW5mb3M6IGFueVtdO1xyXG4gIGl0ZW06IERtc09iamVjdDtcclxuICBtb3JlSW5mb0FjYyA9IGZhbHNlO1xyXG4gIGRhdGFJbmZvQWNjID0gZmFsc2U7XHJcbiAgaW5mb0ZvbGRlckFjYyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgY2FjaGVLZXkgPSAnYWNjb3JkaW9uLnN0YXRlLS0nO1xyXG4gIGRpZmZBY3RpdmUgPSBmYWxzZTtcclxuICBlbXB0eVN0YXRlID0gZmFsc2U7XHJcblxyXG5cclxuICBASW5wdXQoKSBiYXNlcGFyYW1zOiBCYXNlUGFyYW1zO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVZlcnNpb25zID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc0NoYW5nZXNUYWIgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgaW5kZXhkYXRhKGlkOiBJbmRleERhdGEpIHtcclxuICAgIHRoaXMuX2luZGV4RGF0YSA9IGlkO1xyXG4gICAgdGhpcy5jb3JlVmFsdWVzID0gdGhpcy5wcm9jZXNzSW5kZXhEYXRhKGlkLCAwKS5maWx0ZXIodmFsdWUgPT4gIXZhbHVlLm5hbWUuc3RhcnRzV2l0aCgneXV2JykpO1xyXG4gICAgdGhpcy5kYXRhVmFsdWVzID0gdGhpcy5wcm9jZXNzSW5kZXhEYXRhKGlkLCAxKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRtc09iamVjdChpdGVtOiBEbXNPYmplY3QpIHtcclxuICAgIHRoaXMuaXRlbSA9IGl0ZW07XHJcbiAgICB0aGlzLmdldEZvbGRlckluZm9zKGl0ZW0pO1xyXG4gICAgdGhpcy5zdG9yYWdlSW5mb3MgPSBudWxsO1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgdGhpcy5nZXRTdG9yYWdlSW5mb3MoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Q2FjaGVkQWNjb3JkaW9uU3RhdGUoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBkaWZmKHtpbmRleGRhdGEsIGluZGV4ZGF0YTIsIGJhc2VwYXJhbXMsIGJhc2VwYXJhbXMyfSkge1xyXG4gICAgdGhpcy5kaWZmQWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCBkaWZmVmFsdWUgPSAodmFsMSwgdmFsMik6IElTdW1tYXJ5RW50cnlEaWZmVmFsdWUgPT4gIShVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodmFsMSkgJiYgVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHZhbDIpKSAmJiB2YWwxICE9PSB2YWwyID8ge3ZhbDEsIHZhbDJ9IDogbnVsbDtcclxuXHJcbiAgICBpZiAoYmFzZXBhcmFtcyAmJiBiYXNlcGFyYW1zMikge1xyXG4gICAgICB0aGlzLmJhc2VwYXJhbXMgPSB7fSBhcyBCYXNlUGFyYW1zO1xyXG4gICAgICBbJ2NvbnRlbnRGaWxlTmFtZScsICdjb250ZW50RmlsZVNpemUnLCAnbWltZUdyb3VwJ11cclxuICAgICAgICAuZm9yRWFjaChrID0+IGRpZmZWYWx1ZShiYXNlcGFyYW1zW2tdLCBiYXNlcGFyYW1zMltrXSkgJiYgKHRoaXMuYmFzZXBhcmFtc1trXSA9IGRpZmZWYWx1ZShiYXNlcGFyYW1zW2tdLCBiYXNlcGFyYW1zMltrXSkpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaW5kZXhkYXRhICYmIGluZGV4ZGF0YTIpIHtcclxuICAgICAgY29uc3QgY29yZVZhbHVlczIgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaW5kZXhkYXRhMiwgMCwgdHJ1ZSkucmVkdWNlKChhY2MsIGN1cikgPT4gKGFjY1tjdXIucW5hbWVdID0gY3VyLCBhY2MpLCB7fSk7XHJcbiAgICAgIGNvbnN0IGNvcmVWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaW5kZXhkYXRhLCAwLCB0cnVlKVxyXG4gICAgICAgIC5tYXAoKHtsYWJlbCwgX3ZhbHVlLCBxbmFtZSwgcmVmZXJlbmNlfSkgPT4gKHtsYWJlbCwgcmVmZXJlbmNlLCBfdmFsdWU6IGRpZmZWYWx1ZShfdmFsdWUsIGNvcmVWYWx1ZXMyW3FuYW1lXS5fdmFsdWUpfSkpXHJcbiAgICAgICAgLmZpbHRlcih2ID0+IHYuX3ZhbHVlKTtcclxuXHJcbiAgICAgIGNvbnN0IGluZGV4RGF0YUFycmF5RGV0YWlsczogSW5kZXhEYXRhQXJyYXlEZXRhaWxzW10gPSB0aGlzLmdldEluZGV4RGF0YUFycmF5RGV0YWlscyhpbmRleGRhdGEpO1xyXG4gICAgICBjb25zdCBpbmRleERhdGEyQXJyYXlEZXRhaWxzOiBJbmRleERhdGFBcnJheURldGFpbHNbXSA9IHRoaXMuZ2V0SW5kZXhEYXRhQXJyYXlEZXRhaWxzKGluZGV4ZGF0YTIpO1xyXG4gICAgICBjb25zdCBkYXRhVmFsdWVzOiBEYXRhVmFsdWVEaWZmZXJlbmNlW10gPSB0aGlzLmV4dHJhY3REYXRhVmFsdWVzV2l0aERpZmZlcmVuY2VzKGluZGV4RGF0YUFycmF5RGV0YWlscywgaW5kZXhEYXRhMkFycmF5RGV0YWlscyk7XHJcblxyXG4gICAgICB0aGlzLmNvcmVWYWx1ZXMgPSBjb3JlVmFsdWVzO1xyXG4gICAgICB0aGlzLmRhdGFWYWx1ZXMgPSBkYXRhVmFsdWVzO1xyXG4gICAgICB0aGlzLm1vcmVJbmZvQWNjID0gISFkYXRhVmFsdWVzLmxlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVtcHR5U3RhdGUgPSBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodGhpcy5jb3JlVmFsdWVzKSAmJiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodGhpcy5kYXRhVmFsdWVzKSAmJiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkoT2JqZWN0LmtleXModGhpcy5iYXNlcGFyYW1zIHx8IHt9KSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY29sbGVjdChkYXRhOiB7fSwgZWxlbWVudHM6IGFueVtdID0gW10sIGNvbGxlY3Rpb246IGFueVtdLCBmb3JjZSA9IGZhbHNlKSB7XHJcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgaWYgKGVsLnR5cGUgIT09ICdUQUJMRScpIHtcclxuICAgICAgICBpZiAoZWwuZWxlbWVudHMpIHtcclxuICAgICAgICAgIGNvbGxlY3Rpb24uY29uY2F0KEluZGV4ZGF0YVN1bW1hcnlDb21wb25lbnQuY29sbGVjdChkYXRhLCBlbC5lbGVtZW50cywgY29sbGVjdGlvbiwgZm9yY2UpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGtleSA9IGVsLm5hbWU7XHJcbiAgICAgICAgICBpZiAoZm9yY2UgfHwgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSAmJiAoQXJyYXkuaXNBcnJheShkYXRhW2tleV0pID8gZGF0YVtrZXldLmxlbmd0aCA6IHRydWUpKSkge1xyXG4gICAgICAgICAgICAvLyBvbmx5IGFkZCBhcnJheXMgd2hlbiB0aGV5IGNvbnRhaW4gYW55IHZhbHVlc1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uLnB1c2goT2JqZWN0LmFzc2lnbih7fSwgZWwsIHtcclxuICAgICAgICAgICAgICB2YWx1ZTogZGF0YVtrZXldLFxyXG4gICAgICAgICAgICAgIG1ldGE6IGRhdGFba2V5ICsgJ19tZXRhJ11cclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY29sbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZ3JpZEFwaTogR3JpZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRtc1NlcnZpY2U6IERtc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSkge1xyXG5cclxuICB9XHJcblxyXG4gIG9uVmFsdWVDbGljayhldmVudDogYW55LCBpdGVtOiBhbnkgPSB7fSkge1xyXG4gICAgaWYgKGl0ZW0ucmVmZXJlbmNlIHx8IGl0ZW0udmVyc2lvbikge1xyXG4gICAgICB0aGlzLmdyaWRBcGkub3BlblJvdXRlckxpbmsoZXZlbnQsICdlbnRyeScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VmVyc2lvbkxpbmsodmVyc2lvbjogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBsaW5rID0gYHZlcnNpb25zLyR7dGhpcy5pdGVtLmlkfT90eXBlPSR7dGhpcy5pdGVtLnR5cGVOYW1lfSZ2ZXJzaW9uPSR7dmVyc2lvbn1gO1xyXG4gICAgcmV0dXJuIGA8YSBjbGFzcz1cImxpbmsgcm91dGVyLWxpbmtcIiBocmVmPVwiJHtsaW5rfVwiIHRhcmdldD1cIl9ibGFua1wiIG9uY2xpY2s9XCJyZXR1cm4gZmFsc2U7XCI+JHt2ZXJzaW9ufTwvYT5gO1xyXG4gIH1cclxuXHJcbiAgcHJvY2Vzc0luZGV4RGF0YShpZDogSW5kZXhEYXRhLCBpbmRleCA9IDAsIGZvcmNlID0gZmFsc2UpIHtcclxuICAgIHJldHVybiBpZCAmJiBpZC5mb3JtICYmIGlkLmRhdGEgPyB0aGlzLmdyaWRBcGkuZ2V0UmVzb2x2ZWREZWZzKEluZGV4ZGF0YVN1bW1hcnlDb21wb25lbnQuY29sbGVjdChpZC5kYXRhLCBpZC5mb3JtLmVsZW1lbnRzW2luZGV4XS5lbGVtZW50cywgW10sIGZvcmNlKSkgOiBbXTtcclxuICB9XHJcblxyXG4gIG9uTW9yZUluZm9Ub2dnbGUoaW5mbzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnbW9yZS1pbmZvJywgSlNPTi5zdHJpbmdpZnkoaW5mbykpO1xyXG4gIH1cclxuXHJcbiAgb25Db250ZXh0Zm9sZGVyVG9nZ2xlKGluZm86IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLmNhY2hlS2V5ICsgJ2NvbnRleHRmb2xkZXInLCBKU09OLnN0cmluZ2lmeShpbmZvKSk7XHJcbiAgfVxyXG5cclxuICBvblN0b3JhZ2VJbmZvVG9nZ2xlKGluZm86IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLmNhY2hlS2V5ICsgJ3N0b3JhZ2UtaW5mbycsIEpTT04uc3RyaW5naWZ5KGluZm8pKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJbmRleChpbmRleCwgaXRlbSkge1xyXG4gICAgcmV0dXJuIGluZGV4O1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmFnZUluZm9zKCkge1xyXG4gICAgdGhpcy5kbXNTZXJ2aWNlLmdldERtc09iamVjdEJ5UGFyYW1zKHtpZDogdGhpcy5pdGVtLmlkLCB0eXBlOiB0aGlzLml0ZW0udHlwZU5hbWUsIHZlcnNpb246IHRoaXMuaXRlbS52ZXJzaW9uLCByZWN5Y2xlYmluOiB0cnVlLCB3aXRoU3RvcmFnZUluZm86IHRydWV9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSxcclxuICAgICAgICBjYXRjaEVycm9yKFV0aWxzLmNhdGNoU2tpcChlcnIgPT4gZXJyLnN0YXR1cyA9PT0gNDA0KSlcclxuICAgICAgKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VJbmZvcyA9IHJlcy5zdG9yYWdlSW5mbztcclxuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldEZvbGRlckluZm9zKGl0ZW06IERtc09iamVjdCkge1xyXG4gICAgdGhpcy5kYXRhVmFsdWVzMiA9IGl0ZW0uY29udGV4dEZvbGRlcj8udHlwZT8uZWxlbWVudHMuZmlsdGVyKGl0ZW1zID0+IGl0ZW1zLnNlbGVjdGVkZm9yZW5yaWNobWVudCkubWFwKGl0ZW1zID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5pdGVtcyxcclxuICAgICAgICBkYXRhOiBpdGVtLmNvbnRleHRGb2xkZXIuZGF0YVtpdGVtcy5uYW1lXVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENhY2hlZEFjY29yZGlvblN0YXRlKCkge1xyXG4gICAgdGhpcy5tb3JlSW5mb0FjYyA9IEpTT04ucGFyc2UodGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnbW9yZS1pbmZvJykpO1xyXG4gICAgdGhpcy5pbmZvRm9sZGVyQWNjID0gSlNPTi5wYXJzZSh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5jYWNoZUtleSArICdjb250ZXh0Zm9sZGVyJykpO1xyXG4gICAgdGhpcy5kYXRhSW5mb0FjYyA9IEpTT04ucGFyc2UodGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnc3RvcmFnZS1pbmZvJykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcGFyZXMgdHdvIHZhbHVlcyBkZWVwbHkgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXHJcbiAgICpcclxuICAgKiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gdHdvIHZhbHVlcyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgZXF1aXZhbGVudC5cclxuICAgKiBJdCBjb21wYXJlcyBvYmplY3RzIHJlY3Vyc2l2ZWx5LCBpbmNsdWRpbmcgdGhlaXIgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHthbnl9IHZhbDEgLSBUaGUgZmlyc3QgdmFsdWUgdG8gY29tcGFyZS5cclxuICAgKiBAcGFyYW0ge2FueX0gdmFsMiAtIFRoZSBzZWNvbmQgdmFsdWUgdG8gY29tcGFyZS5cclxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBkZWVwbHkgZXF1YWwsIG90aGVyd2lzZSBgZmFsc2VgLlxyXG4gICAqL1xyXG4gIGNvbXBhcmVDb250ZW50VmFsdWVFcXVhbGl0eSA9ICh2YWwxOiBhbnksIHZhbDI6IGFueSk6IGJvb2xlYW4gPT4ge1xyXG4gICAgaWYgKHZhbDEgPT09IHZhbDIpIHJldHVybiB0cnVlO1xyXG5cclxuICAgIGlmICh0eXBlb2YgdmFsMSAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIHZhbDIgIT09ICdvYmplY3QnIHx8IHZhbDEgPT0gbnVsbCB8fCB2YWwyID09IG51bGwpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBjb25zdCB2YWwxa2V5cyA9IE9iamVjdC5rZXlzKHZhbDEpO1xyXG4gICAgY29uc3QgdmFsMmtleXMgPSBPYmplY3Qua2V5cyh2YWwyKTtcclxuXHJcbiAgICBpZiAodmFsMWtleXMubGVuZ3RoICE9PSB2YWwya2V5cy5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiB2YWwxa2V5cykge1xyXG4gICAgICBpZiAoIXZhbDJrZXlzLmluY2x1ZGVzKGtleSkgfHwgIXRoaXMuY29tcGFyZUNvbnRlbnRWYWx1ZUVxdWFsaXR5KHZhbDFba2V5XSwgdmFsMltrZXldKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBhcmVzIHR3byB2YWx1ZXMgYW5kIHJldHVybnMgYSBzdW1tYXJ5IG9mIHRoZWlyIGRpZmZlcmVuY2VzLlxyXG4gICAqIElmIHRoZSB2YWx1ZXMgYXJlIGFycmF5cywgaXQgY29tcGFyZXMgdGhlaXIgbGVuZ3RocyBhbmQsIGlmIGVxdWFsLCB0aGVpciBjb250ZW50cy5cclxuICAgKiBGb3Igbm9uLWFycmF5IHZhbHVlcywgaXQgY2hlY2tzIGZvciBlcXVhbGl0eSBvciBpZiBlaXRoZXIgaXMgY29uc2lkZXJlZCBcImVtcHR5XCIgYnkgYSB1dGlsaXR5IGZ1bmN0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZhbDEgVGhlIGZpcnN0IHZhbHVlIHRvIGNvbXBhcmUuXHJcbiAgICogQHBhcmFtIHZhbDIgVGhlIHNlY29uZCB2YWx1ZSB0byBjb21wYXJlLlxyXG4gICAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIGB2YWwxYCBhbmQgYHZhbDJgIHByb3BlcnRpZXMgcmVwcmVzZW50aW5nIHRoZSBkaWZmZXJlbmNlcywgb3IgYG51bGxgIGlmIG5vIGRpZmZlcmVuY2VzIGFyZSBmb3VuZC5cclxuICAgKiAgICAgICAgICBGb3IgYXJyYXlzLCB0aGUgZGlmZmVyZW5jZXMgYXJlIHRoZSBjb3VudCBvZiBkaWZmZXJpbmcgaXRlbXMgb3IgdGhlIGRpZmZlcmVuY2UgaW4gbGVuZ3Rocy5cclxuICAgKiAgICAgICAgICBGb3Igb3RoZXIgdmFsdWVzLCBpdCByZXR1cm5zIHRoZSB2YWx1ZXMgdGhlbXNlbHZlcyBpZiB0aGV5IGRpZmZlciwgb3IgYW4gZW1wdHkgc3RyaW5nIGZvciBcImVtcHR5XCIgdmFsdWVzLlxyXG4gICAqICAgICAgICAgIFJldHVybnMgYG51bGxgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWFsIG9yIGJvdGggXCJlbXB0eVwiLlxyXG4gICAqL1xyXG4gIGdldERhdGFWYWx1ZURpZmZlcmVuY2VzID0gKHZhbDE6IGFueSwgdmFsMjogYW55KTogSVN1bW1hcnlFbnRyeURpZmZWYWx1ZSA9PiB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwxKSAmJiBBcnJheS5pc0FycmF5KHZhbDIpKSB7XHJcbiAgICAgIGNvbnN0IGxlbmd0aDEgPSB2YWwxLmxlbmd0aDtcclxuICAgICAgY29uc3QgbGVuZ3RoMiA9IHZhbDIubGVuZ3RoO1xyXG5cclxuICAgICAgaWYgKGxlbmd0aDEgIT09IGxlbmd0aDIpIHtcclxuICAgICAgICByZXR1cm4ge3ZhbDE6IGxlbmd0aDEudG9TdHJpbmcoKSwgdmFsMjogbGVuZ3RoMi50b1N0cmluZygpfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ291bnQgY29udGVudCBkaWZmZXJlbmNlcyB3aGVuIGxlbmd0aHMgYXJlIHRoZSBzYW1lXHJcbiAgICAgIGxldCBkaWZmZXJlbmNlcyA9IDA7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoMTsgaSsrKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBhcmVDb250ZW50VmFsdWVFcXVhbGl0eSh2YWwxW2ldLCB2YWwyW2ldKSkge1xyXG4gICAgICAgICAgZGlmZmVyZW5jZXMrKztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChkaWZmZXJlbmNlcyA+IDApIHtcclxuICAgICAgICByZXR1cm4ge3ZhbDE6IGRpZmZlcmVuY2VzLnRvU3RyaW5nKCksIHZhbDI6IGRpZmZlcmVuY2VzLnRvU3RyaW5nKCl9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNFbXB0eVZhbDEgPSBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodmFsMSk7XHJcbiAgICBjb25zdCBpc0VtcHR5VmFsMiA9IFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh2YWwyKTtcclxuXHJcbiAgICBpZiAoaXNFbXB0eVZhbDEgJiYgaXNFbXB0eVZhbDIpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZhbDEgIT09IHZhbDIgfHwgaXNFbXB0eVZhbDEgfHwgaXNFbXB0eVZhbDIpIHtcclxuICAgICAgcmV0dXJuIHt2YWwxOiBpc0VtcHR5VmFsMSA/IFwiXCIgOiB2YWwxLCB2YWwyOiBpc0VtcHR5VmFsMiA/IFwiXCIgOiB2YWwyfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBFeHRyYWN0cyBwcm9wZXJ0aWVzIGZyb20gYW4gb2JqZWN0IHRoYXQgYXJlIGFycmF5cyBhbmQgcmV0dXJucyB0aGVpciBkZXRhaWxzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBUaGUgb2JqZWN0IHRvIGFuYWx5emUuXHJcbiAgICogQHJldHVybnMge0FycmF5fSBBbiBhcnJheSBvZiBvYmplY3RzLCBlYWNoIHJlcHJlc2VudGluZyBhIHByb3BlcnR5IG9mIHRoZSBpbnB1dCBvYmplY3RcclxuICAgKiB0aGF0IGlzIGFuIGFycmF5LiBFYWNoIG9iamVjdCBpbmNsdWRlcyB0aGUgcHJvcGVydHkgbmFtZSAoYGxhYmVsYCksIHRoZSBudW1iZXIgb2YgZWxlbWVudHNcclxuICAgKiBpbiB0aGUgYXJyYXkgKGBsZW5ndGhgKSwgdGhlIGFycmF5IGNvbnRlbnQgaXRzZWxmIChgY29udGVudGApLCBhbmQgdGhlIHR5cGUgb2YgdGhlIGFycmF5IChgdHlwZWApLlxyXG4gICAqL1xyXG4gIGdldEluZGV4RGF0YUFycmF5RGV0YWlscyA9IChpbmRleERhdGE6IHtba2V5OiBzdHJpbmddOiBhbnl9KTogSW5kZXhEYXRhQXJyYXlEZXRhaWxzW10gPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IGluZGV4RGF0YS5kYXRhO1xyXG4gICAgY29uc3QgZm9ybUVsZW1lbnRzID0gaW5kZXhEYXRhLmZvcm0uZWxlbWVudHM7XHJcblxyXG4gICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIHR5cGUgb2YgYW4gZWxlbWVudCBieSBpdHMgbGFiZWxcclxuICAgIGNvbnN0IGZpbmRUeXBlQW5kTGFiZWxCeU5hbWUgPSAoZWxlbWVudHMsIGxhYmVsKSA9PiB7XHJcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBlbGVtZW50cykge1xyXG4gICAgICAgIGlmIChlbGVtZW50Lm5hbWUgPT09IGxhYmVsKSB7XHJcbiAgICAgICAgICByZXR1cm4ge3R5cGU6IGVsZW1lbnQudHlwZSwgbGFiZWw6IGVsZW1lbnQubGFiZWx9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50cyAmJiBlbGVtZW50LmVsZW1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGNvbnN0IHR5cGVMYWJlbEluZm8gPSBmaW5kVHlwZUFuZExhYmVsQnlOYW1lKGVsZW1lbnQuZWxlbWVudHMsIGxhYmVsKTtcclxuICAgICAgICAgIGlmICh0eXBlTGFiZWxJbmZvKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0eXBlTGFiZWxJbmZvO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGRhdGEpXHJcbiAgICAgIC5maWx0ZXIoKGtleSkgPT4gQXJyYXkuaXNBcnJheShkYXRhW2tleV0pKVxyXG4gICAgICAubWFwKChrZXkpID0+IHtcclxuICAgICAgICBjb25zdCB7dHlwZSwgbGFiZWx9ID0gZmluZFR5cGVBbmRMYWJlbEJ5TmFtZShmb3JtRWxlbWVudHMsIGtleSk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgbGVuZ3RoOiBkYXRhW2tleV0ubGVuZ3RoLFxyXG4gICAgICAgICAgY29udGVudDogZGF0YVtrZXldLFxyXG4gICAgICAgICAgdHlwZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBDb21wYXJlcyB0aGUgY29udGVudCBvZiB0d28gc2V0cyBvZiBpbmRleCBkYXRhIGFycmF5IGRldGFpbHMgYW5kIGV4dHJhY3RzIHRoZSBkaWZmZXJlbmNlcy5cclxuICAgKlxyXG4gICAqIFRoaXMgZnVuY3Rpb24gbWFwcyB0aHJvdWdoIHRoZSBmaXJzdCBzZXQgb2YgaW5kZXggZGF0YSBhcnJheSBkZXRhaWxzLCBmaW5kcyB0aGUgbWF0Y2hpbmdcclxuICAgKiBjb250ZW50IGZyb20gdGhlIHNlY29uZCBzZXQgYnkgbGFiZWwsIGFuZCB0aGVuIGNhbGN1bGF0ZXMgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlbS5cclxuICAgKiBJdCByZXR1cm5zIGFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCBsYWJlbHMgYW5kIHRoZSBjYWxjdWxhdGVkIGRpZmZlcmVuY2VzLCBmaWx0ZXJpbmcgb3V0XHJcbiAgICogYW55IGVudHJpZXMgd2l0aG91dCBhIGRpZmZlcmVuY2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0luZGV4RGF0YUFycmF5RGV0YWlsW119IGluZGV4RGF0YUFycmF5RGV0YWlscyAtIFRoZSBmaXJzdCBzZXQgb2YgaW5kZXggZGF0YSBhcnJheSBkZXRhaWxzLlxyXG4gICAqIEBwYXJhbSB7SW5kZXhEYXRhQXJyYXlEZXRhaWxbXX0gaW5kZXhEYXRhMkFycmF5RGV0YWlscyAtIFRoZSBzZWNvbmQgc2V0IG9mIGluZGV4IGRhdGEgYXJyYXkgZGV0YWlscy5cclxuICAgKiBAcmV0dXJucyB7QXJyYXk8e2xhYmVsOiBzdHJpbmcsIF92YWx1ZTogYW55fT59IEFuIGFycmF5IG9mIG9iamVjdHMgY29udGFpbmluZyBsYWJlbHMgYW5kIHRoZWlyIGRpZmZlcmVuY2VzLlxyXG4gICAqL1xyXG4gIGV4dHJhY3REYXRhVmFsdWVzV2l0aERpZmZlcmVuY2VzID0gKGluZGV4RGF0YUFycmF5RGV0YWlscywgaW5kZXhEYXRhMkFycmF5RGV0YWlscyk6IERhdGFWYWx1ZURpZmZlcmVuY2VbXSA9PiB7XHJcbiAgICByZXR1cm4gaW5kZXhEYXRhQXJyYXlEZXRhaWxzLm1hcCgoe2xhYmVsLCB0eXBlLCBjb250ZW50fSkgPT4ge1xyXG4gICAgICBjb25zdCBtYXRjaGluZ1Byb3AgPSBpbmRleERhdGEyQXJyYXlEZXRhaWxzLmZpbmQocHJvcCA9PiBwcm9wLmxhYmVsID09PSBsYWJlbCk7XHJcbiAgICAgIGNvbnN0IGNvbnRlbnQyID0gbWF0Y2hpbmdQcm9wID8gbWF0Y2hpbmdQcm9wLmNvbnRlbnQgOiBbXTtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLmdldERhdGFWYWx1ZURpZmZlcmVuY2VzKGNvbnRlbnQsIGNvbnRlbnQyKTtcclxuICAgICAgaWYgKHR5cGUgPT09IFwiVEFCTEVcIiAmJiBuZXdWYWx1ZSAmJiBuZXdWYWx1ZS52YWwxICYmIG5ld1ZhbHVlLnZhbDIpIHtcclxuICAgICAgICBuZXdWYWx1ZS52YWwxID0gXCJcIjtcclxuICAgICAgICBuZXdWYWx1ZS52YWwyID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5kZXhkYXRhLnN1bW1hcnkudGFibGUuY2hhbmdlJyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBsYWJlbCxcclxuICAgICAgICB0eXBlLFxyXG4gICAgICAgIF92YWx1ZTogbmV3VmFsdWUsXHJcbiAgICAgIH07XHJcbiAgICB9KS5maWx0ZXIoKHY6IHtfdmFsdWU6IGFueTt9KSA9PiB2Ll92YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaXNVc2VyQWxsb3dlZFRvU2hvd1N0b3JhZ2VTZWN0aW9uID0gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmhhc1ByaXZpbGVnZSgnTUFOQUdFX1NUT1JBR0VTJyk7XHJcbiAgICB0aGlzLmdldENhY2hlZEFjY29yZGlvblN0YXRlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4RGF0YSB7XHJcbiAgZm9ybTogYW55O1xyXG4gIGRhdGE6IGFueTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZW1wdHktY29udGFpbmVyXCIgKm5nSWY9XCJlbXB0eVN0YXRlXCI+e3snZW8uaW5kZXhkYXRhLnN1bW1hcnkubm8uY2hhbmdlJyB8IHRyYW5zbGF0ZX19PC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJpbmRleGRhdGEtc3VtbWFyeVwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29yZS1zZWN0aW9uXCIgKm5nSWY9XCJjb3JlVmFsdWVzPy5sZW5ndGhcIj5cclxuXHJcbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29yZVZhbHVlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLl92YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDbGlja2VkKT1cIm9uVmFsdWVDbGljaygkZXZlbnQsIGl0ZW0pXCI+XHJcbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxyXG5cclxuICAgIEBpZiAoaXRlbT8uY29udGV4dEZvbGRlcikge1xyXG4gICAgICA8ZW8tc2ltcGxlLWFjY29yZGlvbiBbaGVhZGVyXT1cIml0ZW0uY29udGV4dEZvbGRlcj8udHlwZT8ubGFiZWwgKyAnOidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbV09XCJpdGVtXCIgW3NlbGVjdGVkXT1cImluZm9Gb2xkZXJBY2NcIiAoc2VsZWN0Q2hhbmdlKT1cIm9uQ29udGV4dGZvbGRlclRvZ2dsZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFWYWx1ZXMyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0ubGFiZWxcIiBbdmFsdWVdPVwiaXRlbS5kYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDbGlja2VkKT1cIm9uVmFsdWVDbGljaygkZXZlbnQsIGl0ZW0pXCI+XHJcbiAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cclxuICAgICAgPC9lby1zaW1wbGUtYWNjb3JkaW9uPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJkYXRhLXNlY3Rpb25cIiAqbmdJZj1cImRhdGFWYWx1ZXMgJiYgZGF0YVZhbHVlcy5sZW5ndGhcIj5cclxuICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uICNkYXRhQWNjb3JkaW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyXT1cIignZW8uaW5kZXhkYXRhLnN1bW1hcnkubW9yZScgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJtb3JlSW5mb0FjY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0Q2hhbmdlKT1cIm9uTW9yZUluZm9Ub2dnbGUoJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0YVwiPlxyXG5cclxuICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YVZhbHVlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0uX3ZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDbGlja2VkKT1cIm9uVmFsdWVDbGljaygkZXZlbnQsIGl0ZW0pXCI+XHJcbiAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJiYXNlcGFyYW1zLXNlY3Rpb25cIiAqbmdJZj1cImJhc2VwYXJhbXNcIj5cclxuXHJcbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCJiYXNlcGFyYW1zLm1vZGlmaWVkT24gJiYgIWRpZmZBY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5tb2RpZmllZCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLm1vZGlmaWVkT24gfCBsb2NhbGVEYXRlXCI+XHJcbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxyXG5cclxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cIiFkaWZmQWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0ubW9kaWZpZXInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5tb2RpZmllZEJ5XCI+XHJcbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxyXG5cclxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cImJhc2VwYXJhbXMuY3JlYXRlZE9uICYmICFkaWZmQWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uY3JlYXRlZCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLmNyZWF0ZWRPbiB8IGxvY2FsZURhdGVcIj5cclxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XHJcblxyXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiIWRpZmZBY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5jcmVhdG9yJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuY3JlYXRlZEJ5XCI+XHJcbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxyXG5cclxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cIiFkaWZmQWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdW1tYXJ5LnZlcnNpb24nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ2V0VmVyc2lvbkxpbmsoYmFzZXBhcmFtcy52ZXJzaW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDbGlja2VkKT1cIm9uVmFsdWVDbGljaygkZXZlbnQsIHt2ZXJzaW9uOiBiYXNlcGFyYW1zLnZlcnNpb259KVwiPlxyXG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cclxuXHJcblxyXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5maWxlbmFtZScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLmNvbnRlbnRGaWxlTmFtZVwiPlxyXG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cclxuXHJcbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCJiYXNlcGFyYW1zLmNvbnRlbnRGaWxlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5nbG9iYWwuYmFzZXBhcmFtLmZpbGVzaXplJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRpZmZBY3RpdmUgPyB7dmFsMTogYmFzZXBhcmFtcy5jb250ZW50RmlsZVNpemVbJ3ZhbDEnXSB8IGZpbGVTaXplLCB2YWwyOiBiYXNlcGFyYW1zLmNvbnRlbnRGaWxlU2l6ZVsndmFsMiddIHwgZmlsZVNpemV9IDogKGJhc2VwYXJhbXMuY29udGVudEZpbGVTaXplIHwgZmlsZVNpemUpXCI+XHJcbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxyXG5cclxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0ubWltZXR5cGVncm91cCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLm1pbWVHcm91cFwiPlxyXG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cclxuXHJcbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5nbG9iYWwuYmFzZXBhcmFtLm1pbWV0eXBlJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMubWltZVR5cGVcIj5cclxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XHJcblxyXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiIWRpZmZBY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5pZCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLmlkXCI+XHJcbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxyXG5cclxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cImJhc2VwYXJhbXMuY29udGVudElkICE9PSBiYXNlcGFyYW1zLmlkICYmICFkaWZmQWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uY29udGVudElkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuY29udGVudElkXCI+XHJcbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxyXG4gIDwvZGl2PlxyXG5cclxuICBAaWYoc3RvcmFnZUluZm9zPy5sZW5ndGggJiYgaXNVc2VyQWxsb3dlZFRvU2hvd1N0b3JhZ2VTZWN0aW9uICYmICFpc0NoYW5nZXNUYWIpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJzdG9yYWdlaW5mb1wiPlxyXG4gICAgICA8ZW8tc2ltcGxlLWFjY29yZGlvbiBbaGVhZGVyXT1cIignZW8uc3RhdGUuc2V0dGluZ3Muc3RvcmFnZWluZm8nIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJkYXRhSW5mb0FjY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RDaGFuZ2UpPVwib25TdG9yYWdlSW5mb1RvZ2dsZSgkZXZlbnQpXCI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yYWdlaW5mby1lbnRyeSBiYXNlcGFyYW1zLXNlY3Rpb25cIj5cclxuICAgICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidzdG9yYWdlaW5mby1zdWJlbnRyeSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5kaWdlc3QnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5kaWdlc3RcIj5cclxuICAgICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yYWdlaW5mby1lbnRyeSBiYXNlcGFyYW1zLXNlY3Rpb25cIiAqbmdGb3I9XCJsZXQgc3RJbmZvIG9mIHN0b3JhZ2VJbmZvczsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCI+XHJcbiAgICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdG9yYWdlaW5mby5yZXRlbnRpb24nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RJbmZvLnJldGVudGlvbiB8IGxvY2FsZURhdGUgOiAnZW9TaG9ydERhdGUnXCI+XHJcbiAgICAgICAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxyXG5cclxuICAgICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidzdG9yYWdlaW5mby1zdWJlbnRyeSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ub2JqZWN0LnN0b3JhZ2VpbmZvLnBlcm1hbmVuY2UnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RJbmZvLnBlcm1hbmVuY2VcIj5cclxuICAgICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XHJcblxyXG4gICAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ3N0b3JhZ2VpbmZvLXN1YmVudHJ5J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8uc2V0bmFtZScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdEluZm8uc2V0bmFtZVwiPlxyXG4gICAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cclxuXHJcbiAgICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdG9yYWdlaW5mby5zdG9yYWdlbmFtZScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdEluZm8uc3RvcmFnZW5hbWVcIj5cclxuICAgICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XHJcblxyXG4gICAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ3N0b3JhZ2VpbmZvLXN1YmVudHJ5J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8ubG9jYXRpb24nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RJbmZvLmxvY2F0aW9uXCI+XHJcbiAgICAgICAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcblxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhkYXRhLXN1bW1hcnkuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEluZGV4RGF0YUFycmF5RGV0YWlscyB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBsZW5ndGg6IG51bWJlcjtcclxuICBjb250ZW50OiBhbnlbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEYXRhVmFsdWVEaWZmZXJlbmNlIHtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIF92YWx1ZTogYW55O1xyXG59XHJcbiJdfQ==
|
|
@@ -6,21 +6,21 @@ export class LoadingSpinnerComponent {
|
|
|
6
6
|
}
|
|
7
7
|
ngOnInit() {
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
11
|
-
<div class="eo-loading">
|
|
12
|
-
<div class="eo-loader" [ngClass]="{small: size === 'small', medium: size === 'medium', large: size === 'large', dark: mode === 'dark'}"></div>
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: { size: "size", mode: "mode" }, ngImport: i0, template: `
|
|
11
|
+
<div class="eo-loading">
|
|
12
|
+
<div class="eo-loader" [ngClass]="{small: size === 'small', medium: size === 'medium', large: size === 'large', dark: mode === 'dark'}"></div>
|
|
13
13
|
</div>`, isInline: true, styles: [":host{--loader-color: var(--color-accent);--loader-background-color: rgba(var(--color-black-rgb), .1);--loader-color-light: rgba(var(--color-white-rgb), 1);--loader-background-color-light: rgba(var(--color-white-rgb), .2);--loader-border-width: 3px}:host .eo-loader{font-size:10px;position:relative;text-indent:-9999em;border:var(--loader-border-width) solid var(--loader-background-color);border-left-color:var(--loader-color);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.1s infinite linear;animation:load8 1.1s infinite linear}:host .eo-loader,:host .eo-loader:after{border-radius:50%;width:5em;height:5em;border-width:4px}:host .eo-loader.large{width:10em;height:10em;border-width:8px}:host .eo-loader.medium{width:6em;height:6em;border-width:4px}:host .eo-loader.small{width:2em;height:2em;border-width:2px}:host .eo-loader.dark{border-color:var(--loader-background-color-light);border-left-color:var(--loader-color)}:host-context(.dark) .eo-loader{border-color:var(--loader-background-color-light);border-left-color:var(--loader-color-light)}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LoadingSpinnerComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
|
-
args: [{ selector: 'eo-loading-spinner', template: `
|
|
18
|
-
<div class="eo-loading">
|
|
19
|
-
<div class="eo-loader" [ngClass]="{small: size === 'small', medium: size === 'medium', large: size === 'large', dark: mode === 'dark'}"></div>
|
|
17
|
+
args: [{ selector: 'eo-loading-spinner', template: `
|
|
18
|
+
<div class="eo-loading">
|
|
19
|
+
<div class="eo-loader" [ngClass]="{small: size === 'small', medium: size === 'medium', large: size === 'large', dark: mode === 'dark'}"></div>
|
|
20
20
|
</div>`, styles: [":host{--loader-color: var(--color-accent);--loader-background-color: rgba(var(--color-black-rgb), .1);--loader-color-light: rgba(var(--color-white-rgb), 1);--loader-background-color-light: rgba(var(--color-white-rgb), .2);--loader-border-width: 3px}:host .eo-loader{font-size:10px;position:relative;text-indent:-9999em;border:var(--loader-border-width) solid var(--loader-background-color);border-left-color:var(--loader-color);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.1s infinite linear;animation:load8 1.1s infinite linear}:host .eo-loader,:host .eo-loader:after{border-radius:50%;width:5em;height:5em;border-width:4px}:host .eo-loader.large{width:10em;height:10em;border-width:8px}:host .eo-loader.medium{width:6em;height:6em;border-width:4px}:host .eo-loader.small{width:2em;height:2em;border-width:2px}:host .eo-loader.dark{border-color:var(--loader-background-color-light);border-left-color:var(--loader-color)}:host-context(.dark) .eo-loader{border-color:var(--loader-background-color-light);border-left-color:var(--loader-color-light)}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}\n"] }]
|
|
21
21
|
}], ctorParameters: () => [], propDecorators: { size: [{
|
|
22
22
|
type: Input
|
|
23
23
|
}], mode: [{
|
|
24
24
|
type: Input
|
|
25
25
|
}] } });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1zcGlubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3VpL2xvYWRpbmctc3Bpbm5lci9sb2FkaW5nLXNwaW5uZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFVdkQsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQztJQUNBLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs4R0FUVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixrR0FOeEI7OztXQUdEOzsyRkFHRSx1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0Usb0JBQW9CLFlBQ3BCOzs7V0FHRDt3REFLQSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlby1sb2FkaW5nLXNwaW5uZXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiZW8tbG9hZGluZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZW8tbG9hZGVyXCIgW25nQ2xhc3NdPVwie3NtYWxsOiBzaXplID09PSAnc21hbGwnLCBtZWRpdW06IHNpemUgPT09ICdtZWRpdW0nLCBsYXJnZTogc2l6ZSA9PT0gJ2xhcmdlJywgZGFyazogbW9kZSA9PT0gJ2RhcmsnfVwiPjwvZGl2PlxyXG4gICAgPC9kaXY+YCxcclxuICBzdHlsZVVybHM6IFsnLi9sb2FkaW5nLXNwaW5uZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9hZGluZ1NwaW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBzaXplOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbW9kZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -36,14 +36,14 @@ let OutsideClickDirective = class OutsideClickDirective {
|
|
|
36
36
|
onOutsideEvent(event) {
|
|
37
37
|
this.eoOutsideClick.emit(event);
|
|
38
38
|
}
|
|
39
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
40
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OutsideClickDirective, deps: [{ token: i0.ElementRef }, { token: i1.EventService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
40
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: OutsideClickDirective, selector: "[eoOutsideClick]", outputs: { eoOutsideClick: "eoOutsideClick" }, host: { listeners: { "document:keydown": "keyboardInput($event,$event.target)", "document:mousedown": "onClick($event,$event.target)" } }, ngImport: i0 }); }
|
|
41
41
|
};
|
|
42
42
|
OutsideClickDirective = __decorate([
|
|
43
43
|
UntilDestroy()
|
|
44
44
|
], OutsideClickDirective);
|
|
45
45
|
export { OutsideClickDirective };
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OutsideClickDirective, decorators: [{
|
|
47
47
|
type: Directive,
|
|
48
48
|
args: [{
|
|
49
49
|
selector: '[eoOutsideClick]'
|
|
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
57
57
|
type: HostListener,
|
|
58
58
|
args: ['document:mousedown', ['$event', '$event.target']]
|
|
59
59
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0c2lkZS1jbGljay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay91aS9vdXRzaWRlLWNsaWNrL291dHNpZGUtY2xpY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxVQUFVLEVBQWUsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBRW5FOzs7O0dBSUc7QUFNSSxJQUFNLHFCQUFxQixHQUEzQixNQUFNLHFCQUFxQjtJQU9oQyxZQUFvQixXQUF1QixFQUFVLFlBQTBCO1FBQTNELGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFML0UsV0FBTSxHQUFHLElBQUksQ0FBQztRQUdQLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUk5QyxJQUFJLENBQUMsWUFBWTthQUNkLEVBQUUsQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQzFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN0QixTQUFTLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR00sYUFBYSxDQUFDLEtBQW9CLEVBQUUsYUFBMEI7UUFDbkUsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUdNLE9BQU8sQ0FBQyxLQUFpQixFQUFFLGFBQTBCO1FBQzFELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzFFLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7ZUFDckUsQ0FBQyxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0csSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFZO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OEdBbkNVLHFCQUFxQjtrR0FBckIscUJBQXFCOztBQUFyQixxQkFBcUI7SUFKakMsWUFBWSxFQUFFO0dBSUYscUJBQXFCLENBb0NqQzs7MkZBcENZLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3QjswR0FNUSxjQUFjO3NCQURwQixNQUFNO2dCQWNBLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDO2dCQVF0RCxPQUFPO3NCQURiLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtFbmFpb0V2ZW50LCBFdmVudFNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcclxuXHJcbi8qKlxyXG4gKiBUaGlzIGRpcmVjdGl2ZSBhZGRzIGFuIG91dHNpZGUgY2xpY2sgbGlzdGVuZXIgdG8gZWFjaCBlbGVtZW50IGl0IGlzIGFwcGxpZWQgdG8uXHJcbiAqIFRoZSBkaXJlY3RpdmUgd2lsbCBhbHNvIGV4ZWN1dGUgdGhlIHByb3ZpZGVkIGhhbmRsZXIgZnVuY3Rpb24sIHdoZW4gdGhlIHVzZXIgaGl0cyBFU0MuXHJcbiAqICAgPC4uLiAoZW9PdXRTaWRlQ2xpY2spPVwiZG9Tb21ldGhpbmdPbk91dHNpZGVDbGljaygkZXZlbnQpXCI+PC8uLi4+XHJcbiAqL1xyXG5cclxuQFVudGlsRGVzdHJveSgpXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2VvT3V0c2lkZUNsaWNrXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE91dHNpZGVDbGlja0RpcmVjdGl2ZSB7XHJcblxyXG4gIGFjdGl2ZSA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBlb091dHNpZGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlKSB7XHJcblxyXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcclxuICAgICAgLm9uKEVuYWlvRXZlbnQuRU9fRElBTE9HX1NUQUNLX0NIQU5HRUQpLnBpcGUoXHJcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcykpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFjdGl2ZSA9ICFldmVudC5kYXRhLmFjdGl2ZTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnLCAnJGV2ZW50LnRhcmdldCddKVxyXG4gIHB1YmxpYyBrZXlib2FyZElucHV0KGV2ZW50OiBLZXlib2FyZEV2ZW50LCB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkICYmIGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgdGhpcy5vbk91dHNpZGVFdmVudChldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZWRvd24nLCBbJyRldmVudCcsICckZXZlbnQudGFyZ2V0J10pXHJcbiAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XHJcbiAgICBjb25zdCBvdmVybGF5Q29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNkay1vdmVybGF5LWNvbnRhaW5lcicpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlICYmICF0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudClcclxuICAgICAgJiYgKG92ZXJsYXlDb250YWluZXIgJiYgb3ZlcmxheUNvbnRhaW5lci5oYXNDaGlsZE5vZGVzKCkgPyAhb3ZlcmxheUNvbnRhaW5lci5jb250YWlucyh0YXJnZXRFbGVtZW50KSA6IHRydWUpKSB7XHJcbiAgICAgIHRoaXMub25PdXRzaWRlRXZlbnQoZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbk91dHNpZGVFdmVudChldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMuZW9PdXRzaWRlQ2xpY2suZW1pdChldmVudCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|