{"version":3,"file":"eo-sdk-client.mjs","sources":["../../../../src/app/eo-framework-core/search/app-search.service.ts","../../../../src/app/eo-framework-core/agent/agent.service.ts","../../../../src/app/eo-framework-core/location/location.service.ts","../../../../src/app/eo-framework-core/selection/selection.service.ts","../../../../src/app/eo-framework-core/api/plugins.service.ts","../../../../src/app/eo-framework-core/pipes/locale-number.pipe.ts","../../../../src/app/eo-framework-core/pipes/filesize.pipe.ts","../../../../src/app/eo-framework-core/pipes/locale-date.pipe.ts","../../../../src/app/eo-framework/util/services/utilities.service.ts","../../../../src/app/eo-framework/util/sortable/order-by.pipe.ts","../../../../src/app/eo-framework/util/util.module.ts","../../../../src/app/eo-framework/util/directive/trap-focus.directive.ts","../../../../src/app/eo-framework/util/directive/prevent-double-click.directive.ts","../../../../src/app/eo-framework/grid/filters/filesize-filter.component.ts","../../../../src/app/eo-framework-core/api/grid.service.ts","../../../../src/app/eo-framework-core/pending-changes/pending-changes.service.ts","../../../../src/app/eo-framework-core/layout/layout.service.ts","../../../../src/app/eo-framework-core/references/reference.service.ts","../../../../src/app/eo-framework-core/pending-changes/pending-changes-guard.service.ts","../../../../src/app/eo-framework-core/error-handler/error-handler.service.ts","../../../../src/app/eo-framework-core/empty-state/empty-state.service.ts","../../../../src/app/eo-framework-core/route-guards/auth/auth-guard.service.ts","../../../../src/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.ts","../../../../src/app/eo-framework-core/title/page-title.service.ts","../../../../src/app/eo-framework/upload-overlay/upload-overlay-guard.service.ts","../../../../src/app/eo-framework-core/eo-framework-core.module.ts","../../../../src/app/eo-framework-core/error-handler/error-keys.ts","../../../../src/app/eo-framework-core/pipes/safe-html.pipe.ts","../../../../src/app/eo-framework-core/pipes/keys.pipe.ts","../../../../src/app/eo-framework-core/pipes/pipes.module.ts","../../../../src/app/eo-framework/accordion/simple-accordion/simple-accordion.component.ts","../../../../src/app/eo-framework/accordion/simple-accordion/simple-accordion.component.html","../../../../src/app/eo-framework/accordion/accordion.module.ts","../../../../src/app/eo-framework/actions/selection-range.enum.ts","../../../../src/app/eo-framework/ui/eo-icon/eo-icon.component.ts","../../../../src/app/eo-framework/ui/rtl-aware/rtl-aware.directive.ts","../../../../src/app/eo-framework/ui/eo-dialog/eo-dialog.component.ts","../../../../src/app/eo-framework/ui/eo-dialog/eo-dialog.component.html","../../../../src/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.ts","../../../../src/app/eo-framework/object-form/object-form/form-validation/form-validation.ts","../../../../src/app/eo-framework/object-form/object-form/object-form-control.ts","../../../../src/app/eo-framework/object-form/object-form/object-form-control-wrapper.ts","../../../../src/app/eo-framework/object-form/object-form/object-form-group.model.ts","../../../../src/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.ts","../../../../src/app/eo-framework/object-form/object-form-helper.service.ts","../../../../src/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.ts","../../../../src/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.ts","../../../../src/app/eo-framework/form-elements/form-input/form-input.component.ts","../../../../src/app/eo-framework/form-elements/form-input/form-input.component.html","../../../../src/app/eo-framework/tree/tree-node/tree-node.component.ts","../../../../src/app/eo-framework/tree/tree-node/tree-node.component.html","../../../../src/app/eo-framework/tree/tree.component.ts","../../../../src/app/eo-framework/tree/tree.component.html","../../../../src/app/eo-framework/form-elements/codesystem/codesystem.component.ts","../../../../src/app/eo-framework/form-elements/codesystem/codesystem.component.html","../../../../src/app/eo-framework/form-elements/date/date.component.ts","../../../../src/app/eo-framework/form-elements/date/date.component.html","../../../../src/app/eo-framework/form-elements/datetime-range/datetime-range.component.ts","../../../../src/app/eo-framework/form-elements/datetime-range/datetime-range.component.html","../../../../src/app/eo-framework/form-elements/number/number.component.ts","../../../../src/app/eo-framework/form-elements/number/number.component.html","../../../../src/app/eo-framework/form-elements/number-range/number-range.component.ts","../../../../src/app/eo-framework/form-elements/number-range/number-range.component.html","../../../../src/app/eo-framework/form-elements/organization/organization.component.ts","../../../../src/app/eo-framework/form-elements/organization/organization.component.html","../../../../src/app/eo-framework/form-elements/checkbox/checkbox.component.ts","../../../../src/app/eo-framework/form-elements/checkbox/checkbox.component.html","../../../../src/app/eo-framework/form-elements/string/string.component.ts","../../../../src/app/eo-framework/form-elements/string/string.component.html","../../../../src/app/eo-framework/ui/router-link/router-link.directive.ts","../../../../src/app/eo-framework/form-elements/reference/reference.component.ts","../../../../src/app/eo-framework/form-elements/reference/reference.component.html","../../../../src/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.ts","../../../../src/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.html","../../../../src/app/eo-framework/form-elements/id-reference/animation/reference-finder.animation.ts","../../../../src/app/eo-framework/form-elements/id-reference/service/reference-finder.service.ts","../../../../src/app/eo-framework/ui/loading-spinner/loading-spinner.component.ts","../../../../src/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.ts","../../../../src/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.html","../../../../src/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.ts","../../../../src/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.html","../../../../src/app/eo-framework/form-elements/id-reference/id-reference.component.ts","../../../../src/app/eo-framework/form-elements/id-reference/id-reference.component.html","../../../../src/app/eo-framework/object-form/object-form/form-element/form-element.component.ts","../../../../src/app/eo-framework/object-form/object-form/form-element/form-element.component.html","../../../../src/app/eo-framework/media/content-preview.service.ts","../../../../src/app/eo-framework/ui/outside-click/outside-click.directive.ts","../../../../src/app/eo-framework/media/media.component.ts","../../../../src/app/eo-framework/media/media.component.html","../../../../src/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.ts","../../../../src/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.html","../../../../src/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.ts","../../../../src/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.html","../../../../src/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.ts","../../../../src/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.html","../../../../src/app/eo-framework/object-form/object-form/object-form.component.ts","../../../../src/app/eo-framework/object-form/object-form/object-form.component.html","../../../../src/app/eo-framework/cta/component/cta.component.ts","../../../../src/app/eo-framework/cta/component/cta.component.html","../../../../src/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.ts","../../../../src/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.html","../../../../src/app/eo-framework/actions/action-target.ts","../../../../src/app/eo-framework/actions/actions/workflow-action/workflow-action.component.ts","../../../../src/app/eo-framework/actions/actions/custom-actions/custom-actions.component.ts","../../../../src/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.ts","../../../../src/app/eo-framework/actions/action-service/action.service.ts","../../../../src/app/eo-framework/actions/action-menu/action-component-anchor/action-component-anchor.directive.ts","../../../../src/app/eo-framework/actions/action-menu/action-menu.component.ts","../../../../src/app/eo-framework/actions/action-menu/action-menu.component.html","../../../../src/app/eo-framework/ui/clipboard/clipboard.component.ts","../../../../src/app/eo-framework/ui/clipboard/clipboard.component.html","../../../../src/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.ts","../../../../src/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.html","../../../../src/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.ts","../../../../src/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.html","../../../../src/app/eo-framework/ui/user-avatar/user-avatar.component.ts","../../../../src/app/eo-framework/ui/overlay/overlay.component.ts","../../../../src/app/eo-framework/ui/overlay/overlay.component.html","../../../../src/app/eo-framework/ui/error-message/error-message.component.ts","../../../../src/app/eo-framework/ui/error-message/error-message.component.html","../../../../src/app/eo-framework/ui/query-scope-select/query-scope-select.component.ts","../../../../src/app/eo-framework/ui/query-scope-select/query-scope-select.component.html","../../../../src/app/eo-framework/ui/signature-tab/signature-tab.component.ts","../../../../src/app/eo-framework/ui/signature-tab/signature-tab.component.html","../../../../src/app/eo-framework/ui/ui.module.ts","../../../../src/app/eo-framework/actions/actions/copy-action/copy-action.ts","../../../../src/app/eo-framework/actions/actions/open-context-action/open-context-action.ts","../../../../src/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.ts","../../../../src/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.html","../../../../src/app/eo-framework/actions/actions/download-action/download-action.ts","../../../../src/app/eo-framework/actions/actions/open-document-action/open-document-action.component.ts","../../../../src/app/eo-framework/actions/actions/open-document-action/open-document-action.component.html","../../../../src/app/eo-framework/actions/actions/open-document-action/open-document-action.ts","../../../../src/app/eo-framework/tree/tree.module.ts","../../../../src/app/eo-framework/form-elements/date/year-range/year-range.directive.ts","../../../../src/app/eo-framework/form-elements/password/password.component.ts","../../../../src/app/eo-framework/form-elements/password/password.component.html","../../../../src/app/eo-framework/form-elements/form-elements.module.ts","../../../../src/app/eo-framework/grid/filters/codesystem-filter.component.ts","../../../../src/app/eo-framework/grid/filters/datetime-filter.component.ts","../../../../src/app/eo-framework/grid/filters/dynamic-list-filter.component.ts","../../../../src/app/eo-framework/grid/extensions/filter/abstract-filter.component.ts","../../../../src/app/eo-framework/grid/extensions/services/list-settings.service.ts","../../../../src/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.ts","../../../../src/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.html","../../../../src/app/eo-framework/grid/filters/list-filter.component.ts","../../../../src/app/eo-framework/grid/filters/organization-filter.component.ts","../../../../src/app/eo-framework/grid/grid.component.ts","../../../../src/app/eo-framework/grid/grid.component.html","../../../../src/app/eo-framework/grid/column-configurator/column-configurator.component.ts","../../../../src/app/eo-framework/grid/column-configurator/column-configurator.component.html","../../../../src/app/eo-framework/grid/extensions/total-count/total-count.component.ts","../../../../src/app/eo-framework/grid/extensions/total-count/total-count.component.html","../../../../src/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.ts","../../../../src/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.ts","../../../../src/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.html","../../../../src/app/eo-framework/grid/extensions/filter/text/text-filter.component.ts","../../../../src/app/eo-framework/grid/extensions/filter/text/text-filter.component.html","../../../../src/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.ts","../../../../src/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.html","../../../../src/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.ts","../../../../src/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.html","../../../../src/app/eo-framework/cta/cta.module.ts","../../../../src/app/eo-framework/grid/extensions/empty/empty.component.ts","../../../../src/app/eo-framework/grid/extensions/empty/empty.component.html","../../../../src/app/eo-framework/grid/extensions/pagination/pagination.component.ts","../../../../src/app/eo-framework/grid/extensions/pagination/pagination.component.html","../../../../src/app/eo-framework/grid/grid.module.ts","../../../../src/app/eo-framework/list-container/list-container.component.ts","../../../../src/app/eo-framework/list-container/list-container.component.html","../../../../src/app/eo-framework/list-container/list-container.module.ts","../../../../src/app/eo-framework/media/media.module.ts","../../../../src/app/eo-framework/shortcuts/shortcuts.service.ts","../../../../src/app/eo-framework/shortcuts/shortcut.interface.ts","../../../../src/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.ts","../../../../src/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.html","../../../../src/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.ts","../../../../src/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.html","../../../../src/app/eo-framework/shortcuts/shortcuts.directive.ts","../../../../src/app/eo-framework/shortcuts/shortcuts.module.ts","../../../../src/app/eo-framework/object-form/object-form-edit/object-form-edit.component.ts","../../../../src/app/eo-framework/object-form/object-form-edit/object-form-edit.component.html","../../../../src/app/eo-framework/object-form/object-form.module.ts","../../../../src/app/eo-framework/actions/actions/email/email/email.component.ts","../../../../src/app/eo-framework/actions/actions/email/email/email.component.html","../../../../src/app/eo-framework/actions/actions/email/email-action.ts","../../../../src/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.ts","../../../../src/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.html","../../../../src/app/eo-framework/actions/actions/clipboard/clipboard-action.ts","../../../../src/app/eo-framework/actions/actions/favorite-action/favorite-action.ts","../../../../src/app/eo-framework/actions/actions/delete-action/delete/delete.component.ts","../../../../src/app/eo-framework/actions/actions/delete-action/delete/delete.component.html","../../../../src/app/eo-framework/actions/actions/delete-action/delete-action.ts","../../../../src/app/eo-framework/actions/actions/open-versions-action/open-versions-action.ts","../../../../src/app/eo-framework/actions/actions/restore-version-action/restore-version-action.ts","../../../../src/app/eo-framework/actions/actions/delete-action/delete-prepared-action.ts","../../../../src/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.ts","../../../../src/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.html","../../../../src/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.ts","../../../../src/app/eo-framework/actions/actions/remove-subscription-action/remove-subscription-action.ts","../../../../src/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.ts","../../../../src/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.html","../../../../src/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.ts","../../../../src/app/eo-framework/actions/actions/update-resubmission-action/update-resubmission-action.ts","../../../../src/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.ts","../../../../src/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.html","../../../../src/app/eo-framework/actions/actions/share-object-action/share-object-action.ts","../../../../src/app/eo-framework/actions/actions/cut-action/cut-action.ts","../../../../src/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.ts","../../../../src/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.html","../../../../src/app/eo-framework/actions/actions/finalize/finalize-action.ts","../../../../src/app/eo-framework/actions/actions/finalize/definalize-action.ts","../../../../src/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.ts","../../../../src/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.html","../../../../src/app/eo-framework/actions/actions/delete-content-action/delete-content-action.ts","../../../../src/app/eo-framework/actions/actions/unlock-action/unlock-action.ts","../../../../src/app/eo-framework/process-form/process-form.component.ts","../../../../src/app/eo-framework/process-form/process-form.component.html","../../../../src/app/eo-framework/process-form/process-form.module.ts","../../../../src/app/eo-framework/actions/actions/signature-action/signature.model.ts","../../../../src/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.ts","../../../../src/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.html","../../../../src/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.ts","../../../../src/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.html","../../../../src/app/eo-framework/actions/actions/signature-action/signature/signature.component.ts","../../../../src/app/eo-framework/actions/actions/signature-action/signature/signature.component.html","../../../../src/app/eo-framework/actions/actions/signature-action/signature-action.component.ts","../../../../src/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.ts","../../../../src/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.html","../../../../src/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.ts","../../../../src/app/eo-framework/actions/action.module.ts","../../../../src/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.ts","../../../../src/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.html","../../../../src/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.ts","../../../../src/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.html","../../../../src/app/eo-framework/app-shell/license-warning/license-warning.component.ts","../../../../src/app/eo-framework/app-shell/license-warning/license-warning.component.html","../../../../src/app/eo-framework/app-shell/app-bar/app-bar.component.ts","../../../../src/app/eo-framework/app-shell/app-bar/app-bar.component.html","../../../../src/app/eo-framework/app-shell/app-bar/context-search/context-search.component.ts","../../../../src/app/eo-framework/app-shell/app-bar/context-search/context-search.component.html","../../../../src/app/eo-framework/app-shell/app-bar/app-search/app-search.interface.ts","../../../../src/app/eo-framework/app-shell/app-bar/app-search/app-search.component.ts","../../../../src/app/eo-framework/app-shell/app-bar/app-search/app-search.component.html","../../../../src/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.ts","../../../../src/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.html","../../../../src/app/eo-framework/app-shell/app-bar/app-add/app-add.component.ts","../../../../src/app/eo-framework/app-shell/app-bar/app-add/app-add.component.html","../../../../src/app/eo-framework/app-shell/app-bar/app-process/app-process.component.ts","../../../../src/app/eo-framework/app-shell/app-bar/app-process/app-process.component.html","../../../../src/app/eo-framework/app-shell/app-shell-routing.module.ts","../../../../src/app/eo-framework/app-shell/app-shell.module.ts","../../../../src/app/eo-framework/error/error404/error404.component.ts","../../../../src/app/eo-framework/error/error404/error404.component.html","../../../../src/app/eo-framework/error/not-found/not-found.component.ts","../../../../src/app/eo-framework/error/error.module.ts","../../../../src/app/eo-framework/plugins/plugin.directive.ts","../../../../src/app/eo-framework/plugins/plugin.service.ts","../../../../src/app/eo-framework/plugins/plugin.component.ts","../../../../src/app/eo-framework/upload-overlay/upload-overlay.component.ts","../../../../src/app/eo-framework/upload-overlay/upload-overlay.component.html","../../../../src/app/eo-framework/frame/frame.component.ts","../../../../src/app/eo-framework/frame/frame.component.html","../../../../src/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.ts","../../../../src/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.html","../../../../src/app/eo-framework/object-details/object-history/history-filter/history-filter-pipe/history-filter.pipe.ts","../../../../src/app/eo-framework/process/history/process-history.component.ts","../../../../src/app/eo-framework/process/history/process-history.component.html","../../../../src/app/eo-framework/process/process-file/process-file.component.ts","../../../../src/app/eo-framework/process/process-file/process-file.component.html","../../../../src/app/eo-framework/inbox-details/inbox-details.component.ts","../../../../src/app/eo-framework/inbox-details/inbox-details.component.html","../../../../src/app/eo-framework/object-details/object-history/history-filter/history-filter.component.ts","../../../../src/app/eo-framework/object-details/object-history/history-filter/history-filter.component.html","../../../../src/app/eo-framework/object-details/object-history/object-history.component.ts","../../../../src/app/eo-framework/object-details/object-history/object-history.component.html","../../../../src/app/eo-framework/object-details/object-links/object-links.component.ts","../../../../src/app/eo-framework/object-details/object-links/object-links.component.html","../../../../src/app/eo-framework/object-details/favorite-icon/favorite-icon.component.ts","../../../../src/app/eo-framework/object-details/favorite-icon/favorite-icon.component.html","../../../../src/app/eo-client/settings/agent-lock-settings.enum.ts","../../../../src/app/eo-framework/object-details/edit-icon/edit-icon.component.ts","../../../../src/app/eo-framework/object-details/edit-icon/edit-icon.component.html","../../../../src/app/eo-framework/object-details/object-details.component.ts","../../../../src/app/eo-framework/object-details/object-details.component.html","../../../../src/app/eo-framework/recyclebin-details/recyclebin-details.component.ts","../../../../src/app/eo-framework/recyclebin-details/recyclebin-details.component.html","../../../../src/app/eo-framework/plugins/plugins.module.ts","../../../../src/app/eo-framework/object-details/object-details.module.ts","../../../../src/app/eo-framework/object-state-details/object-state-details.component.ts","../../../../src/app/eo-framework/object-state-details/object-state-details.component.html","../../../../src/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.ts","../../../../src/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.html","../../../../src/app/eo-framework/prepare-details/prepare-details.component.ts","../../../../src/app/eo-framework/prepare-details/prepare-details.component.html","../../../../src/app/eo-framework/process/details/process-details.component.ts","../../../../src/app/eo-framework/process/details/process-details.component.html","../../../../src/app/eo-framework/quick-search/quick-search/quick-search.component.ts","../../../../src/app/eo-framework/quick-search/quick-search/quick-search.component.html","../../../../src/app/eo-framework/quick-search/quick-search.module.ts","../../../../src/app/eo-framework/grid/grid-filter.model.ts","../../../../src/app/eo-framework/stored-query/stored-query/stored-query.component.ts","../../../../src/app/eo-framework/stored-query/stored-query/stored-query.component.html","../../../../src/app/eo-framework/result-list/result-list.component.ts","../../../../src/app/eo-framework/result-list/result-list.component.html","../../../../src/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.ts","../../../../src/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.html","../../../../src/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.ts","../../../../src/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.html","../../../../src/app/eo-framework/stored-query/stored-query.module.ts","../../../../src/app/eo-framework/result-list/result-list.module.ts","../../../../src/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.ts","../../../../src/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.html","../../../../src/app/eo-framework/settings/permissions/permissions.component.ts","../../../../src/app/eo-framework/settings/permissions/permissions.component.html","../../../../src/app/eo-framework/settings/settings.module.ts","../../../../src/app/eo-framework/eo-framework.module.ts","../../../../src/app/eo-framework/animations/animations.ts","../../../../src/app/eo-framework/stored-query/stored-query-type-filter.enum.ts","../../../../src/app/eo-framework/ui/animations/panel-loading.animation.ts","../../../../src/app/eo-client/about-state/about-state.component.ts","../../../../src/app/eo-client/about-state/about-state.component.html","../../../../src/app/eo-client/dashboard/widgets/search-widget/search-widget.component.ts","../../../../src/app/eo-client/dashboard/widgets/search-widget/search-widget.component.html","../../../../src/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.ts","../../../../src/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.html","../../../../src/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.ts","../../../../src/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.html","../../../../src/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.ts","../../../../src/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.html","../../../../src/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.ts","../../../../src/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.html","../../../../src/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.ts","../../../../src/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.html","../../../../src/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.ts","../../../../src/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.html","../../../../src/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.ts","../../../../src/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.html","../../../../src/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.ts","../../../../src/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.html","../../../../src/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.ts","../../../../src/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.html","../../../../src/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.ts","../../../../src/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.html","../../../../src/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.ts","../../../../src/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.html","../../../../src/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.ts","../../../../src/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.html","../../../../src/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.ts","../../../../src/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.html","../../../../src/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.ts","../../../../src/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.html","../../../../src/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.ts","../../../../src/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.html","../../../../src/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.ts","../../../../src/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.html","../../../../src/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.ts","../../../../src/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.html","../../../../src/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.ts","../../../../src/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.html","../../../../src/app/eo-client/dashboard/dashboard.component.ts","../../../../src/app/eo-client/dashboard/dashboard.component.html","../../../../src/app/eo-client/settings/settings.component.ts","../../../../src/app/eo-client/settings/settings.component.html","../../../../src/app/eo-client/login/login.component.ts","../../../../src/app/eo-client/login/login.component.html","../../../../src/app/eo-client/result-state/result-state.component.ts","../../../../src/app/eo-client/result-state/result-state.component.html","../../../../src/app/eo-client/favorite-state/favorite-state.component.ts","../../../../src/app/eo-client/favorite-state/favorite-state.component.html","../../../../src/app/eo-client/stored-queries-state/stored-queries-state.component.ts","../../../../src/app/eo-client/stored-queries-state/stored-queries-state.component.html","../../../../src/app/eo-client/process-state/process-state.component.ts","../../../../src/app/eo-client/process-state/process-state.component.html","../../../../src/app/eo-client/notifications-state/notifications-state.component.ts","../../../../src/app/eo-client/notifications-state/notifications-state.component.html","../../../../src/app/eo-client/version-state/version-state.component.ts","../../../../src/app/eo-client/version-state/version-state.component.html","../../../../src/app/eo-client/recyclebin-state/recyclebin-state.component.ts","../../../../src/app/eo-client/recyclebin-state/recyclebin-state.component.html","../../../../src/app/eo-client/eo-client-routing.module.ts","../../../../src/app/eo-client/inbox-state/inbox-state/inbox.types.enum.ts","../../../../src/app/eo-client/inbox-state/inbox-state/inbox-state.component.ts","../../../../src/app/eo-client/inbox-state/inbox-state/inbox-state.component.html","../../../../src/app/eo-client/inbox-state/inbox-state-routing.module.ts","../../../../src/app/eo-client/inbox-state/inbox-state.module.ts","../../../../src/app/eo-client/object-state/object-state-service/object-state.service.ts","../../../../src/app/eo-client/object-state/object-state/object-state.component.ts","../../../../src/app/eo-client/object-state/object-state/object-state.component.html","../../../../src/app/eo-client/object-state/object-state-routing.module.ts","../../../../src/app/eo-client/object-state/object-state.module.ts","../../../../src/app/eo-client/prepare-state/prepare-state/prepare-state.component.ts","../../../../src/app/eo-client/prepare-state/prepare-state/prepare-state.component.html","../../../../src/app/eo-client/prepare-state/prepare-state-routing.module.ts","../../../../src/app/eo-client/prepare-state/prepare-state.module.ts","../../../../src/app/eo-client/eo-client.module.ts","../../../../src/app/eo-client/process-state/filter-label.ts","../../../../src/public_api.ts","../../../../src/eo-sdk-client.ts"],"sourcesContent":["import {from as observableFrom, BehaviorSubject, ReplaySubject, Observable} from 'rxjs';\r\nimport {groupBy, reduce, mergeMap} from 'rxjs/operators';\r\nimport {Injectable} from '@angular/core';\r\nimport {\r\n  SearchFilter, SearchQuery, SearchState, SystemService,\r\n  ObjectType, SearchService, EventService, EnaioEvent, Utils, QueryScope\r\n} from '@eo-sdk/core';\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\n/**\r\n * AppSearchService is the apps main entry point for searching (used by the appBarSearch component).\r\n * It provides an `query$` observable components can subscribe to, to\r\n * stay in touch with updates to the query.\r\n */\r\n@Injectable()\r\nexport class AppSearchService {\r\n\r\n  private query = new SearchQuery();\r\n  private aggs: any;\r\n  private lastQuery = new SearchQuery();\r\n  private queryState = new SearchState();\r\n  // Holds the last aggregation properties sent to the server\r\n  // Used for preventing redundant calls\r\n  private lastAggCallComparator: string;\r\n\r\n  // Subject holding the current query (initial value is a new SearchQuery)\r\n  // @see: http://blog.angular-university.io/how-to-build-angular2-apps-using-rxjs-observable-data-services-pitfalls-to-avoid/#rxjssubjectandhowtouseit\r\n  // todo: maybe add support for holding a query history, so the user can reload older queries as well\r\n  private querySource = new ReplaySubject<SearchQuery>(1);\r\n  private queryStateSource = new BehaviorSubject<SearchState>(this.queryState);\r\n\r\n  // Expose an observable instead of the subject itself to prevent the service clients from\r\n  // themselves emitting store values directly instead of calling action methods, and therefore\r\n  // bypassing the store.\r\n  public query$: Observable<SearchQuery> = this.querySource.asObservable();\r\n  // Search service also exposes an observable that emits the state of the current query.\r\n  // We separate the state of the query from the query itself as otherwise changhing the queries\r\n  // state will trigger all subscribers of the query observale and lead to undesired behaviour\r\n  public queryState$: Observable<SearchState> = this.queryStateSource.asObservable();\r\n  public objectTypeGroups = [];\r\n  public typesAllowedUnderSysroot = [];\r\n\r\n  constructor(private searchService: SearchService,\r\n    private eventService: EventService,\r\n    private system: SystemService,\r\n    private translate: TranslateService) {\r\n\r\n    this.setDefaultAggs();\r\n    this.eventService.on(EnaioEvent.LOGOUT)\r\n      .subscribe(res => {\r\n        this.reset(true);\r\n      });\r\n\r\n    this.querySource.next(this.query);\r\n\r\n    // Fetch object types and groups that serve as search filter params.\r\n    // These groups are provided through the services `objectTypeGroups` property.\r\n    this.system.system$.subscribe((systemDefinition) => {\r\n\r\n      this.typesAllowedUnderSysroot = systemDefinition.types.filter(type => type.parenttypes.includes('sysroot'));\r\n\r\n      // translates labels for 'sysdmscontenttemplate' object types.\r\n      this.typesAllowedUnderSysroot = this.updateSysDmsContentTemplateLabel(systemDefinition.types);\r\n\r\n      let groups = [];\r\n      observableFrom(systemDefinition.types)\r\n        .pipe(\r\n          groupBy((type: any) => type.group || '0'),\r\n          mergeMap(g => g.pipe(reduce((acc, curr) => [...acc, curr], [])))\r\n        )\r\n        .subscribe(otg => {\r\n          groups.push({\r\n            label: otg[0].group || '0',\r\n            types: this.sortObjectTypeGroup(otg)\r\n          });\r\n        });\r\n      this.objectTypeGroups = groups.sort(Utils.sortValues('label'));\r\n    });\r\n  }\r\n\r\n  resetAggs() {\r\n    this.setDefaultAggs();\r\n    this.lastAggCallComparator = null;\r\n  }\r\n\r\n  private setDefaultAggs() {\r\n    this.aggs = {\r\n      type: {}\r\n    };\r\n  }\r\n\r\n  // helper method for sorting the entries of an object type group\r\n  private sortObjectTypeGroup(types) {\r\n    return types.sort((a, b) => {\r\n\r\n      if (a.isContextFolder && !b.isContextFolder) {\r\n        return -1;\r\n      }\r\n      if (!a.isContextFolder && b.isContextFolder) {\r\n        return 1;\r\n      }\r\n      if (a.isFolder && !b.isFolder) {\r\n        return -1;\r\n      }\r\n      if (!a.isFolder && b.isFolder) {\r\n        return 1;\r\n      }\r\n      if (a.isFolder && b.isFolder) {\r\n        return Utils.sortValues('label').call(this, a, b);\r\n      }\r\n      return Utils.sortValues('label').call(this, a, b);\r\n    });\r\n  }\r\n\r\n  // Extends the objectTypesGroups by the elements for each object type\r\n  // Used in expert search mode\r\n  public buildTypeGroupTree() {\r\n\r\n    let gTree = [];\r\n    let i = 0;\r\n    for (let group of this.objectTypeGroups) {\r\n      let g = {\r\n        id: i++,\r\n        label: group.label,\r\n        tree: []\r\n      };\r\n      let types = [];\r\n      for (let objectType of group.types) {\r\n\r\n        let t = {\r\n          id: objectType.id,\r\n          label: objectType.label,\r\n          children: []\r\n        };\r\n        let children = [];\r\n        for (let el of objectType.elements) {\r\n          children.push({\r\n            label: el.label,\r\n            type: el.type,\r\n            data: el.qname\r\n          });\r\n        }\r\n        // sort by label\r\n        t.children = children.sort(Utils.sortValues('label'));\r\n        types.push(t);\r\n      }\r\n      g.tree = types.sort(Utils.sortValues('label'));\r\n\r\n\r\n      gTree.push(g);\r\n    }\r\n    return gTree;\r\n  }\r\n\r\n  /**\r\n   * Override the current query by a different one.\r\n   * This could be done by for example loading a stored query.\r\n   *\r\n   * @param query - the query that should replace the current query, this may be either a SearchQuery instance,\r\n   * a JSON string of an object matching the search api\r\n   */\r\n  public setQuery(query: SearchQuery) {\r\n    if (this.isNewQuery(query)) {\r\n      this.setDefaultAggs();\r\n      this.query = query;\r\n      this.querySource.next(this.query);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Resets the current query.\r\n   */\r\n  public clearQuery() {\r\n    this.setQuery(new SearchQuery());\r\n  }\r\n\r\n  private isNewQuery(query: SearchQuery): boolean {\r\n    return JSON.stringify(query.getQueryJson()) !== JSON.stringify(this.query.getQueryJson());\r\n  }\r\n\r\n  /**\r\n   * toggles the searchmode from regular search to expert search and vice versa\r\n   */\r\n  public toggleExpertMode() {\r\n    if (!this.query.expertMode) {\r\n      this.lastQuery = this.query;\r\n      this.setDefaultAggs();\r\n      this.query = new SearchQuery();\r\n      this.query.expertMode = true;\r\n    } else {\r\n      this.query = this.lastQuery;\r\n    }\r\n    this.query.__updateCause = SearchQuery.UPDATE_CAUSE.TOGGLED_EXPERTMODE;\r\n    this.querySource.next(this.query);\r\n    this.aggregate();\r\n\r\n  }\r\n\r\n  public setTerm(term: string) {\r\n    this.query.term = term;\r\n    this.query.__updateCause = SearchQuery.UPDATE_CAUSE.TERM_SET;\r\n    this.querySource.next(this.query);\r\n    this.aggregate();\r\n  }\r\n\r\n  public setQueryScope(scope: QueryScope) {\r\n    this.query.scope = scope;\r\n    this.querySource.next(this.query);\r\n    this.aggregate();\r\n  }\r\n\r\n  // set aggregation properties to be applied to ONLY aggregate search queries\r\n  public setAggs(aggs: any, extend = false) {\r\n    this.aggs = extend ? {...this.aggs, ...aggs} : aggs;\r\n  }\r\n\r\n  /**\r\n   * Toggles a type filter.\r\n   * @param type - object type\r\n   */\r\n  public toggleQueryType(type: ObjectType) {\r\n    this.query.toggleType(type);\r\n    this.query.__updateCause = SearchQuery.UPDATE_CAUSE.TOGGLED_TYPE;\r\n    this.querySource.next(this.query);\r\n    this.aggregate(SearchQuery.BASE_PARAMS.TYPE);\r\n  }\r\n\r\n  /**\r\n   * Sets the queries target types.\r\n   *\r\n   * @param types - array of ObjectTypes\r\n   * @param silent If set to true aggregate won't be called\r\n   */\r\n  public setQueryTypes(types: ObjectType[], silent?: boolean) {\r\n    this.query.types = types;\r\n    this.aggs = {\r\n      type: {\r\n        sub: {\r\n          contextfoldertype: {}\r\n        }\r\n      }\r\n    };\r\n    this.query.__updateCause = SearchQuery.UPDATE_CAUSE.TYPES_SET;\r\n    this.querySource.next(this.query);\r\n    if (!silent) {\r\n      this.aggregate();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Sets the queries target context type.\r\n   *\r\n   * @param type The context type to be set or null for resetting\r\n   * @param silent If set to true aggregate won't be called\r\n   */\r\n  public setContextType(type: ObjectType, silent?: boolean) {\r\n\r\n    if (this.query.contextFolderTypes.length && !type) {\r\n      // clear context folder\r\n      this.emitNewContextFolderType(null);\r\n    } else if (this.query.contextFolderTypes.length && type.name !== this.query.contextFolderTypes[0].name) {\r\n      // got a type to be set up that differs from the current one\r\n      this.emitNewContextFolderType(type);\r\n    } else if (!this.query.contextFolderTypes.length) {\r\n      // nothing set up so far\r\n      this.emitNewContextFolderType(type);\r\n    }\r\n    // trying to setup the same type as the current on should not emit a new value\r\n  }\r\n\r\n  private emitNewContextFolderType(type, silent?: boolean) {\r\n    if (!type && this.query.contextFolderTypes.length === 0) {\r\n      return;\r\n    }\r\n    this.aggs = {\r\n      type: {\r\n        sub: {\r\n          contextfoldertype: {}\r\n        }\r\n      }\r\n    };\r\n    this.query.contextFolderTypes = type ? [type] : [];\r\n    this.query.__updateCause = SearchQuery.UPDATE_CAUSE.CONTEXT_FOLDER_SET;\r\n    this.querySource.next(this.query);\r\n    if (!silent) {\r\n      this.aggregate();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Toggles a created filter.\r\n   * @param filter - the filter to be toggled\r\n   */\r\n  public toggleQueryFilter(filter: SearchFilter, override?: boolean) {\r\n    this.query.toggleFilter(filter, override);\r\n    this.query.__updateCause = SearchQuery.UPDATE_CAUSE.TOGGLED_FILTER;\r\n    this.querySource.next(this.query);\r\n    this.aggregate(filter.property);\r\n  }\r\n\r\n  /**\r\n   * Toggles created filters and aggregates them together.\r\n   * @param filters - the filters to be toggled\r\n   */\r\n  public toggleQueryFilters(filters: SearchFilter[], override?: boolean) {\r\n    let baseParam = '';\r\n    filters.forEach(filter => {\r\n      this.query.toggleFilter(filter, override);\r\n      this.query.__updateCause = SearchQuery.UPDATE_CAUSE.TOGGLED_FILTER;\r\n      baseParam += filter.property + ' ';\r\n    });\r\n\r\n    this.querySource.next(this.query);\r\n    this.aggregate(baseParam.trim());\r\n  }\r\n\r\n  /**\r\n   * Adds a filter to the query.\r\n   * @param filter - the filter to be added\r\n   */\r\n  public addQueryFilter(filter: SearchFilter) {\r\n    this.query.addFilter(filter);\r\n    this.query.__updateCause = SearchQuery.UPDATE_CAUSE.ADDED_FILTER;\r\n    this.querySource.next(this.query);\r\n    this.aggregate(filter.property);\r\n  }\r\n\r\n  /**\r\n   * Removes a filter to the query.\r\n   * @param filter - the filter to be removed\r\n   */\r\n  public removeQueryFilter(filter: SearchFilter) {\r\n    this.query.removeFilter(filter.property);\r\n    this.query.__updateCause = SearchQuery.UPDATE_CAUSE.REMOVED_FILTER;\r\n    this.querySource.next(this.query);\r\n    this.aggregate(filter.property);\r\n  }\r\n\r\n  /**\r\n   * Sets the filters for an indexdata search.\r\n   * Setting them will also remove all indexdata filters set before.\r\n   *\r\n   * @param filters - the filters to be set\r\n   * @param silent If set to true aggregate won't be called\r\n   */\r\n  public setIndexSearchQueryFilters(filters: SearchFilter[], silent?: boolean) {\r\n\r\n    // remove previous filters (all filters that are not baseparam filters)\r\n    this.query.filters = this.query.filters.filter((f) => this.isBaseParamFilter(f));\r\n    for (let f of filters) {\r\n      this.query.addFilter(f);\r\n    }\r\n    if (!silent) {\r\n      this.aggregate();\r\n    }\r\n  }\r\n\r\n  public getIndexSearchQueryFilters(query?: SearchQuery): SearchFilter[] {\r\n    let q = query || this.query;\r\n    return q.filters.filter((f) => !this.isBaseParamFilter(f));\r\n  }\r\n\r\n  /**\r\n   * Determines whether or not the provided search filter belongs to a base param.\r\n   *\r\n   * @param filter - the filter to be checked\r\n   */\r\n  public isBaseParamFilter(filter: SearchFilter): boolean {\r\n    //return Object.values(SearchQuery.BASE_PARAMS).some((bp) => filter.property === bp);\r\n    return Object.keys(SearchQuery.BASE_PARAMS).some((bpKey) => filter.property === SearchQuery.BASE_PARAMS[bpKey]);\r\n  }\r\n\r\n  /**\r\n   * Executes the current query as aggregate search\r\n   */\r\n  public aggregate(baseParam = '') {\r\n\r\n    const aggQuery = {aggs: this.aggs, ...this.query.getQueryJson()};\r\n    // compare the call to be made with a former request\r\n    if (this.lastAggCallComparator !== JSON.stringify(aggQuery)) {\r\n      this.lastAggCallComparator = JSON.stringify(aggQuery);\r\n      this.getSearchState(aggQuery)\r\n        .subscribe((queryState: SearchState) => {\r\n          queryState.lastChange = baseParam;\r\n          this.queryState = queryState;\r\n          this.queryStateSource.next(this.queryState);\r\n        });\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  /**\r\n   * Reset the query\r\n   */\r\n  public reset(silent?: boolean) {\r\n    this.query = new SearchQuery();\r\n    this.setDefaultAggs();\r\n    this.querySource.next(this.query);\r\n    if (!silent) {\r\n      this.aggregate();\r\n    }\r\n  }\r\n\r\n  exitIndexdataSearch() {\r\n    this.setIndexSearchQueryFilters([], true);\r\n    this.setQueryTypes([], true);\r\n    this.setContextType(null, true);\r\n    this.aggregate();\r\n  }\r\n\r\n  /**\r\n   * Executes the current query as aggregate search\r\n   */\r\n  public getSearchState(queryJson: any) {\r\n    return this.searchService.getSearchState(queryJson);\r\n  }\r\n\r\n  public autocomplete(term: string) {\r\n    return this.searchService.autocomplete(term);\r\n  }\r\n\r\n  /**\r\n   * Finds the object type element inside of the queries target types\r\n   * for a form elements name. Used e.g. for the search summary panel.\r\n   *\r\n   * @param formElementName - the name of the form element\r\n   * @return the object type element matching the form elements name\r\n   */\r\n  public getTargetTypeElementByName(formElementName: string): any {\r\n    let i = 0;\r\n    let match;\r\n    while (!match && i < this.query.types.length) {\r\n      match = this.query.types[i].elements.find((element) => element.qname === formElementName);\r\n      i++;\r\n    }\r\n    return match;\r\n  }\r\n\r\n  /**\r\n   * Updates the label of `sysdmscontenttemplate` object types using translations.\r\n   *\r\n   * This method is useful for ensuring that the displayed labels for these object types are localized.\r\n   *\r\n   * @param {ObjectType[]} types - An array of object types to update.\r\n   * @returns {ObjectType[]} The updated array of object types with translated labels for `sysdmscontenttemplate` types.\r\n   */\r\n  private updateSysDmsContentTemplateLabel(types: ObjectType[]): ObjectType[] {\r\n    return types.map((type: ObjectType) => {\r\n      if (type.qname === 'sysdmscontenttemplate') {\r\n        type.actualLabel = type.actualLabel || type.label;\r\n        type.label = this.translate.instant(`eo.type.label.${type.actualLabel.toLowerCase()}`);\r\n      }\r\n      return type;\r\n    });\r\n  }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport {Inject, Injectable} from '@angular/core';\r\nimport {AppCacheService, BackendService, CoreConfig, CORE_CONFIG, DmsObject, Logger, NotificationsService, SystemService, TranslateService, UserService, Utils} from '@eo-sdk/core';\r\nimport {BehaviorSubject, forkJoin, Observable, of, ReplaySubject} from 'rxjs';\r\nimport {catchError, map, tap} from 'rxjs/operators';\r\nimport {TreeNode} from '../../eo-framework/tree/tree.component.interface';\r\nimport {LockSettings} from './../../eo-client/settings/agent-lock-settings.enum';\r\nimport {CustomEmail} from './agent.interface';\r\n\r\nexport enum agentConfigKeys {\r\n  AUTOCONNECT = 'autoconnect',\r\n  LOCKSETTINGS = 'locksettings'\r\n}\r\nexport interface ExtendedConfig {\r\n  agent: {\r\n    [agentConfigKeys.AUTOCONNECT]?: boolean;\r\n    [agentConfigKeys.LOCKSETTINGS]?: LockSettings\r\n  }\r\n}\r\nexport type AgentConnectionConfig = ExtendedConfig['agent']\r\n\r\n\r\n@Injectable()\r\nexport class AgentService {\r\n\r\n  private ENAIO_PROTOCOL = 'yuuvis://';\r\n\r\n  agentAvailability = {\r\n    CONNECTED: 'eo.agent.availability.connected',\r\n    AVAILABLE: 'eo.agent.availability.available',\r\n    UNAVAILABLE: 'eo.agent.availability.unavailable'\r\n  };\r\n\r\n  private _isConnected = false;\r\n  private isConnectedSource = new ReplaySubject<boolean>(1);\r\n  public isConnected$: Observable<boolean> = this.isConnectedSource.asObservable();\r\n  private agentConfig = new BehaviorSubject<AgentConnectionConfig>(null);\r\n  public agentConfig$: Observable<AgentConnectionConfig> = this.agentConfig.asObservable();\r\n\r\n  constructor(\r\n    @Inject(CORE_CONFIG) public coreConfig: CoreConfig,\r\n    private logger: Logger,\r\n    private http: HttpClient,\r\n    private systemService: SystemService,\r\n    private backendService: BackendService,\r\n    private userService: UserService,\r\n    private translate: TranslateService,\r\n    private notifications: NotificationsService,\r\n    private appCacheService: AppCacheService) {\r\n    this.getAgentConnectionStatus();\r\n  }\r\n\r\n  private getAgentConnectionStatus() {\r\n    forkJoin([this.appCacheService.getItem('eo.agent.connected'), this.getAgentConfig()])\r\n      .pipe(\r\n        tap(([storage, config]) => this.isConnected = (config && config.hasOwnProperty(agentConfigKeys.AUTOCONNECT) ? config.autoconnect : storage !== null ? storage : null))\r\n      ).subscribe();\r\n  }\r\n\r\n  getAgentConfig(): Observable<AgentConnectionConfig> {\r\n    return this.http.get<ExtendedConfig>('assets/_default/config/extend.json', {withCredentials: this.coreConfig.withCredentials}).pipe(\r\n      catchError(() => of(null)),\r\n      tap((config: ExtendedConfig) => this.agentConfig.next({...config?.agent})),\r\n      map((config: ExtendedConfig) => config?.agent))\r\n  }\r\n\r\n  set isConnected(isConnected: boolean) {\r\n    this._isConnected = isConnected;\r\n    this.isConnectedSource.next(isConnected);\r\n    this.appCacheService.setItem('eo.agent.connected', isConnected);\r\n  }\r\n\r\n  get isConnected(): boolean {\r\n    return this._isConnected;\r\n  }\r\n\r\n  setAgentStatus(connectagent): Observable<boolean> {\r\n    if (typeof connectagent !== 'undefined') {\r\n      this.isConnected = connectagent;\r\n      return of(true);\r\n    } else {\r\n      return of(false);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Adds a location entry to the agent services location history.\r\n   * @param contextFolder The locations context folder\r\n   * @param treeNode Node from the context folders structure tree\r\n   */\r\n  updateUserLocation(contextFolder: DmsObject, treeNode?: TreeNode) {\r\n\r\n    if (treeNode && treeNode.data && treeNode.data.type) {\r\n\r\n      // if a given treeNode contains a target type, we'll only add a user location\r\n      // when the type is able to accept content (otherwise useless for office AddIns)\r\n      const targetType = this.systemService.getObjectType(treeNode.data.type);\r\n      if (targetType.maxFiles === 0) {\r\n        return;\r\n      }\r\n    }\r\n\r\n    let title = contextFolder.title;\r\n    if (treeNode) {\r\n      title += ' > ' + treeNode.path.join(' > ');\r\n    }\r\n\r\n    let id = contextFolder.id;\r\n    if (treeNode) {\r\n      id += '_' + treeNode.data.key;\r\n    }\r\n\r\n    this.backendService.post('/locations', {\r\n      id: id,\r\n      title: title,\r\n      type: contextFolder.type.name,\r\n      childType: (treeNode && treeNode.data) ? treeNode.data.type : undefined,\r\n      data: (treeNode && treeNode.data) ? treeNode.data.data : undefined\r\n    }, this.backendService.getAgentBase()).subscribe(r => {\r\n      this.logger.debug(`added location '${title}' to agent service`);\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Open a document via agent.\r\n   *\r\n   * @param document A document to open.\r\n   * @param lock Boolean, if the dms item should be locked.\r\n   */\r\n  openDocument(document, lock) {\r\n    const id = document.id;\r\n    if (lock) {\r\n      this.backendService.put('/dms/lock/' + id).subscribe(() => {\r\n        document.lock = {\r\n          by: {\r\n            me: true,\r\n            name: this.userService.getCurrentUser().name,\r\n            other: false\r\n          },\r\n          on: new Date().toISOString()\r\n        };\r\n        this.sendMessage('openDocument', id);\r\n      });\r\n    } else {\r\n      this.sendMessage('openDocument', id);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Download content via agent.\r\n   * On completion, the agent will visualize the downloaded items.\r\n   *\r\n   * @param documents A document to open.\r\n   */\r\n  downloadContent(documents) {\r\n    let docs = documents.map(doc => {\r\n      return {id: doc.id, title: doc.title, type: doc.type.name || '', version: doc.version};\r\n    });\r\n    this.sendMessage('downloadContent', docs);\r\n  }\r\n\r\n  /**\r\n   * Copy items to clipboard.\r\n   *\r\n   * @param documents List of documents with id, title, type and rendition.\r\n   */\r\n  copyToClipboard(documents) {\r\n    if (!documents || documents.length < 1) {\r\n      this.logger.error('Agent copyToClipboard error: documents does not contain elements');\r\n      return Utils.throw(null, 'documents does not contain elements').call(this, {});\r\n    } else {\r\n      this.sendMessage('copyToClipboard', documents);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Send items as email.\r\n   *\r\n   * @param CustomEmail contain attachemnts and message. Message my contains details about the mail.\r\n   */\r\n  sendAsMail({attachments, message}: CustomEmail) {\r\n    if (!attachments?.length) {\r\n      this.logger.error('Agent sendAsMail error: documents array does not contain elements. Attachments could not be found.');\r\n      this.notifications.error(this.translate.instant('eo.document.open.error.title'), this.translate.instant('eo.document.open.error.message'));\r\n      return Utils.throw(null, 'documents array does not contain elements').call(this, {});\r\n    } else {\r\n      this.sendMessage('sendAsMail', {attachments, message});\r\n    }\r\n  }\r\n\r\n  sendExternalAction(executable, args) {\r\n    this.sendMessage('external', {executable, args});\r\n  }\r\n\r\n  private sendMessage(action, data) {\r\n    const payload = {\r\n      data: data,\r\n      user: this.userService.getCurrentUser().name,\r\n      host: this.getHost()\r\n    };\r\n    window.location.href = this.ENAIO_PROTOCOL + action + '/' + encodeURIComponent(JSON.stringify(payload));\r\n  }\r\n\r\n  private getHost() {\r\n    return window.location.origin;\r\n  }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, ReplaySubject} from 'rxjs';\r\nimport {Router} from '@angular/router';\r\nimport {AgentService} from '../agent/agent.service';\r\nimport {AppCacheService, UploadRegistryService, DmsObject, Utils, UploadTarget} from '@eo-sdk/core';\r\nimport {TreeNode} from '../../eo-framework/tree/tree.component.interface';\r\n\r\nexport interface EoLocation {\r\n  id: string;\r\n  type: string;\r\n  title?: string;\r\n  subFolder?: any;\r\n}\r\n\r\n/**\r\n * LocationService keeps track of the location a user visits inside enaio.\r\n * This service will be used by the AppAdd component for fetching objects allowed\r\n * to be added, because they may be restricted to a certain location.\r\n *\r\n * For components that display a location inside enaio use `LocationService.enter(id, type)`\r\n * in the components `OnInit` method and `LocationService.leave()` in its `OnDestroy` method.\r\n * See applications `ObjectStateComponent` for an example.\r\n */\r\n\r\n@Injectable()\r\nexport class LocationService {\r\n\r\n  // number of entries to keep in the history\r\n  public HISTORY_SIZE = 5;\r\n\r\n  // location that is active (currently opened by the user)\r\n  private activeLocation: EoLocation;\r\n  private locationSource = new ReplaySubject<EoLocation>(1);\r\n  public activeLocation$: Observable<any> = this.locationSource.asObservable();\r\n\r\n  // history of locations visited by the user\r\n  private locationHistory: EoLocation[] = [];\r\n\r\n  private currentUploadTargets: UploadTarget[] = [];\r\n\r\n  constructor(private appCache: AppCacheService,\r\n              private agentService: AgentService,\r\n              private uploadRegistry: UploadRegistryService,\r\n              private router: Router) {\r\n    // load history from local storage\r\n    appCache\r\n      .getItem(appCache.LOCATION_HISTORY)\r\n      .subscribe(h => this.locationHistory = h || []);\r\n    // if (this.activeLocation) {\r\n    //   // if we already hav an active location we'll add it to the history right away\r\n    //   this.addHistoryEntry(this.activeLocation);\r\n    // }\r\n  }\r\n\r\n  /**\r\n   * Enter a specific location. This will add the location to the local history\r\n   * and set the active location.\r\n   * @param dmsObject\r\n   * @param treeNode Node from the context folders structure tree\r\n   */\r\n  // enter(id: string, type: string, item?: DmsObject, treeNode?: TreeNode) {\r\n  enter(dmsObject: DmsObject, treeNode?: TreeNode) {\r\n    let loc;\r\n    this.currentUploadTargets = [];\r\n    // having a context folder means we could add an upload target for it\r\n    if (dmsObject.isContextFolder) {\r\n      let contextTarget = new UploadTarget(Utils.uuid(), UploadTarget.CONTEXT);\r\n      contextTarget.referenceObject = dmsObject;\r\n      contextTarget.onUploadSuccess = (target) => this.router.navigate([target]);\r\n      this.currentUploadTargets.push(contextTarget);\r\n    }\r\n\r\n\r\n    if (treeNode && dmsObject.isContextFolder) {\r\n\r\n      // having an additional tree node means, that a dynamic folder was selected\r\n      // so we'll add an upload target for that as well\r\n      let treeNodeTarget = new UploadTarget(Utils.uuid(), UploadTarget.CONTEXT_TREE);\r\n      treeNodeTarget.referenceObject = dmsObject;\r\n      treeNodeTarget.subFolder = treeNode;\r\n      treeNodeTarget.onUploadSuccess = (target) => this.router.navigate([target]);\r\n      this.currentUploadTargets.push(treeNodeTarget);\r\n      loc = {id: dmsObject.id, title: dmsObject.title, type: dmsObject.type.name, subFolder: treeNode.data};\r\n\r\n    } else if (dmsObject.isContextFolder) {\r\n      loc = {id: dmsObject.id, title: dmsObject.title, type: dmsObject.type.name};\r\n    } else {\r\n      loc = {id: dmsObject.id, title: dmsObject.title, type: dmsObject.type.name};\r\n    }\r\n\r\n    if (this.currentUploadTargets.length) {\r\n      this.currentUploadTargets.forEach(ut => {\r\n        this.uploadRegistry.register(ut);\r\n      })\r\n    }\r\n\r\n    this.activeLocation = loc;\r\n    this.locationSource.next(this.activeLocation);\r\n    this.addHistoryEntry(dmsObject, treeNode);\r\n    this.appCache.setItem(this.appCache.LOCATION_HISTORY, this.locationHistory).subscribe();\r\n  }\r\n\r\n  /**\r\n   * Leave a location. This will remove the active location.\r\n   */\r\n  leave() {\r\n    if (this.currentUploadTargets.length) {\r\n      this.currentUploadTargets.forEach(ut => {\r\n        this.uploadRegistry.unregister(ut.id);\r\n      });\r\n    }\r\n    this.activeLocation = null;\r\n    this.locationSource.next(this.activeLocation);\r\n  }\r\n\r\n  /**\r\n   * Returns the location history\r\n   * @return\r\n   */\r\n  getHistory(): EoLocation[] {\r\n    return this.locationHistory.reverse();\r\n  }\r\n\r\n  getActiveLocation() {\r\n    return this.activeLocation;\r\n  }\r\n\r\n  /**\r\n   * Adds a location entry to the history.\r\n   * @param contextFolder The locations context folder\r\n   * @param treeNode Node from the context folders structure tree\r\n   */\r\n  private addHistoryEntry(contextFolder: DmsObject, treeNode?: TreeNode) {\r\n\r\n    // if the last history entry equals the one that should be added, we'll skip it\r\n    if (this.isSameAsPrevious(contextFolder, treeNode)) {\r\n      return false;\r\n    }\r\n\r\n// remove the first item if we would exceed the configured history size\r\n    if (this.locationHistory.length === this.HISTORY_SIZE) {\r\n      this.locationHistory.pop();\r\n    }\r\n    this.locationHistory.push({\r\n      id: contextFolder.id,\r\n      type: contextFolder.type.name,\r\n      subFolder: treeNode ? treeNode.data : null\r\n    });\r\n\r\n// also send location to agent service\r\n    this.agentService.updateUserLocation(contextFolder, treeNode);\r\n  }\r\n\r\n  private isSameAsPrevious(contextFolder: DmsObject, treeNode?: TreeNode): boolean {\r\n\r\n    if (!this.locationHistory.length) {\r\n      return false\r\n    }\r\n    const lastEntry = this.locationHistory[this.locationHistory.length - 1];\r\n    if (lastEntry.id === contextFolder.id) {\r\n\r\n      const treeLeaf = treeNode ? treeNode.data.key : null;\r\n      const subFolder = lastEntry.subFolder ? lastEntry.subFolder.key : null;\r\n      return treeLeaf === subFolder;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {debounceTime} from 'rxjs/operators';\r\nimport {Observable, ReplaySubject} from 'rxjs';\r\nimport {EnaioEvent, EventService} from '@eo-sdk/core';\r\n\r\nexport interface SelectionConfig {\r\n  in?: string;\r\n  out?: string;\r\n  useSelection?: boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class SelectionService {\r\n\r\n  private children: any = {};\r\n\r\n  private selection: any[] = [];\r\n  private selectionSource = new ReplaySubject<any[]>(1);\r\n  public selection$: Observable<any[]> = this.selectionSource.asObservable().pipe(debounceTime(200));\r\n\r\n  private _focus: any = {};\r\n  private focusSource = new ReplaySubject<any>(1);\r\n  public focus$: Observable<any> = this.focusSource.asObservable().pipe(debounceTime(200));\r\n\r\n  private _disabled = false;\r\n\r\n  constructor(private eventService: EventService) {\r\n    this.eventService\r\n      .on(EnaioEvent.LOGOUT)\r\n      .subscribe(() => {\r\n        this.clear();\r\n        Object.keys(this.children).forEach(k => this.children[k].clear());\r\n      });\r\n  }\r\n\r\n  public focus(focus: any) {\r\n    if (!this._disabled) {\r\n      this._focus = focus;\r\n      this.focusSource.next(this._focus);\r\n    }\r\n  }\r\n\r\n  public set(selection: any[]) {\r\n    if (!this._disabled) {\r\n      this.selection = selection;\r\n      this.selectionSource.next(this.selection);\r\n    }\r\n  }\r\n\r\n  public disable(val = true) {\r\n    this._disabled = val;\r\n  }\r\n\r\n  public get() {\r\n    return this.selection;\r\n  }\r\n\r\n  public clear() {\r\n    this.set([]);\r\n    this.focus({});\r\n  }\r\n\r\n  public getFocus() {\r\n    return this._focus;\r\n  }\r\n\r\n  public find(id: string): SelectionService {\r\n    return (this.children[id] || this) as SelectionService;\r\n  }\r\n\r\n  public createNew(id: string): SelectionService {\r\n    this.children[id] = new SelectionService(this.eventService);\r\n    return this.find(id);\r\n  }\r\n\r\n}\r\n","import {map} from 'rxjs/operators';\r\nimport {ApplicationRef, Injectable, NgZone} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {AgentService} from '../agent/agent.service';\r\nimport {\r\n  EoUser, Logger, NotificationsService, BackendService, ClipboardService,\r\n  DmsService, EventService, UserService, DmsObject, ClipboardAction, Utils,\r\n  TranslateService, HttpOptions, EnaioEvent\r\n} from '@eo-sdk/core';\r\nimport {Subject} from 'rxjs';\r\n\r\ndeclare global {\r\n  interface Window { api: any; }\r\n}\r\n\r\nexport function onLoad() {\r\n  window.addEventListener('message', (e) => {\r\n\r\n      if (!e || !e.data || !e.data.match || !e.data.match('MessageId')) return;\r\n      var data = JSON.parse(e.data);\r\n\r\n      if (!data) return;\r\n\r\n      if (data.MessageId === 'Host_PostmessageObjectUpdating' || data.MessageId === 'Host_PostmessageObjectConverted') {\r\n          setTimeout(() => {\r\n              var btn = window['api'].util.$('eo-object-details .refresh-button');\r\n              \r\n              btn && btn.click();\r\n          }, 3500)\r\n      } else if (data.MessageId === 'UI_EditClick' && data.Values.url) {\r\n          var w = window.open(decodeURIComponent(data.Values.url));\r\n\r\n          var http = window['api'].http;\r\n\r\n          w.addEventListener('message', (e) => {\r\n              if (!e || !e.data || !e.data.match || !e.data.match('MessageId')) return;\r\n\r\n              if (e.data.match('User_Activity')) {\r\n                  http.get('auth/info', '/').then(() => {\r\n                  })\r\n              };\r\n          });\r\n          window['api'].content.windows = (window['api'].content.windows || []).concat([\r\n              w\r\n          ]);\r\n      }\r\n  });\r\n\r\n  return () => {\r\n      (window['api'].content.windows || []).forEach(w => w && !w.closed && w.close());\r\n  };\r\n}\r\n\r\nexport const UNDOCK_WINDOW_NAME = 'eoViewer';\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class PluginsService {\r\n\r\n  private user: EoUser;\r\n  private services: any;\r\n  private agentAction = {\r\n    OPEN: 'eo.agent.action.open',\r\n    MAIL: 'eo.agent.action.mail',\r\n    MAIL_AS_PDF: 'eo.agent.action.mail-pdf',\r\n    CLIPBOARD: 'eo.agent.action.clipboard',\r\n    CLIPBOARD_AS_PDF: 'eo.agent.action.clipboard-pdf',\r\n    EXTERNAL: 'eo.agent.action.external'\r\n  };\r\n\r\n  public get currentUrl() {\r\n    return this.router.url;\r\n  }\r\n\r\n  public get api() {\r\n    return this.getApi();\r\n  }\r\n  \r\n  public get availableServices() {\r\n    return this.services || [];\r\n  }\r\n\r\n  public applyFunction(value: string | Function | any, params?: string, args?: any) {\r\n    const fnc = value?.toString().trim();\r\n    if (!fnc) return;\r\n    const f = fnc.match(/^function|^\\(.*\\)\\s*=>/)\r\n      ? `return (${fnc}).apply(this,arguments)`\r\n      : typeof value === 'string' && !fnc.startsWith(\"'\")\r\n      ? `return '${fnc}'`\r\n      : `return ${fnc}`;\r\n      try {\r\n        return new Function(...(params || 'api').split(',').map((a) => a.trim()), f).apply(this.api, args || [this.api]);\r\n      } catch(e) {\r\n        return;\r\n      }\r\n  }\r\n\r\n  unload = () => {};\r\n\r\n  isReady = new Subject();\r\n\r\n  constructor(private backend: BackendService,\r\n    private notifications: NotificationsService,\r\n    private clipboard: ClipboardService,\r\n    private logger: Logger,\r\n    public translate: TranslateService,\r\n    private dmsService: DmsService,\r\n    private router: Router,\r\n    private agentService: AgentService,\r\n    private eventService: EventService,\r\n    private userService: UserService,\r\n    private appRef: ApplicationRef,\r\n    private ngZone: NgZone) {\r\n\r\n    window['api'] = this.api;\r\n\r\n    this.userService\r\n      .user$\r\n      .subscribe((user) => this.user = user);\r\n\r\n    this.backend.get(`config/services`, '/').subscribe((services) => (this.services = services)).add(() => this.isReady.next(1));\r\n    this.unload = onLoad();\r\n    this.eventService.on(EnaioEvent.LOGOUT).subscribe(() => this.unload());\r\n  }\r\n\r\n  // todo: create inreface for API\r\n\r\n  public getApi(): any {\r\n    return {\r\n      detectChanges: () => {\r\n        setTimeout(() => {\r\n          this.appRef.tick();\r\n        }, 500);\r\n      },\r\n      router: {\r\n        get: () => this.router\r\n      },\r\n      events: {\r\n        enaioEventType: EnaioEvent,\r\n        on: (type: string) => this.ngZone.run(() => this.eventService.on(type)),\r\n        trigger: (type: string, data?: any) => this.ngZone.run(() => this.eventService.trigger(type, data))\r\n      },\r\n      session: {\r\n        getUser: () => this.getCurrentUser()\r\n      },\r\n      dms: {\r\n        getObject: (id, type, version) => this.getDmsObject(id, type, version),\r\n        getResult: (fields, type) => this.getResult(fields, type),\r\n        downloadContent: (dmsObjects: DmsObject[], rendition?: 'PDF'\r\n          | 'TIFF'\r\n          | 'TEXT'\r\n          | 'JPEG') => this.backend.downloadContent(dmsObjects, rendition)\r\n      },\r\n      http: {\r\n        get: (uri, base, options) => this.get(uri, base, options),\r\n        post: (uri, data, base, options) => this.post(uri, data, base, options),\r\n        del: (uri, base, options) => this.del(uri, base, options),\r\n        put: (uri, data, base, options) => this.put(uri, data, base, options)\r\n      },\r\n      config: {\r\n        get: () => this.getConfig()\r\n      },\r\n      content: {\r\n        viewer: () => window[UNDOCK_WINDOW_NAME] || (window.document.querySelector('eo-media iframe[src]') || {})['contentWindow'],\r\n        triggerError: (err, win, parameters) => this.ngZone.run(() => this.eventService.trigger(UNDOCK_WINDOW_NAME + 'Error', { err, win, parameters })),\r\n        catchError: () => this.ngZone.run(() => this.eventService.on(UNDOCK_WINDOW_NAME + 'Error'))\r\n      },\r\n      util: {\r\n        $: (selectors, element) => (element || window.document).querySelector(selectors),\r\n        $$: (selectors, element) => (element || window.document).querySelectorAll(selectors),\r\n        styles: (styles, id = '__styles', win: any = window) => {\r\n          let s = win.document.head.querySelector('#' + id);\r\n          if (!s) {\r\n            s = win.document.createElement('style');\r\n            s.setAttribute('id', id);\r\n            win.document.head.appendChild(s);\r\n          }\r\n          s.innerHTML = styles;\r\n        },\r\n        translate: (key, data) => this.translate.instant(key, data),\r\n        encodeFileName: (filename) => this.encodeFileName(filename),\r\n        decodeHtmlCharCodes: (filename) => this.decodeHtmlCharCodes(filename),\r\n        notifier: {\r\n          success: (text, title) => this.notifications.success(title, text),\r\n          error: (text, title) => this.notifications.error(title, text),\r\n          info: (text, title) => this.notifications.info(title, text),\r\n          warning: (text, title) => this.notifications.warning(title, text)\r\n        }\r\n      },\r\n      clipboard: {\r\n        set: (elements: DmsObject[], action: ClipboardAction) => this.clipboard.set(elements, action),\r\n        get: () => this.clipboard.get(),\r\n        clear: () => this.clipboard.clear()\r\n      },\r\n      // Agent\r\n      agent: {\r\n        getAvailability: () => this.getAgentAvailability(),\r\n        executeAction: (action, args) => this.executeAgentAction(action, args),\r\n        action: this.agentAction\r\n      }\r\n    };\r\n  }\r\n\r\n\r\n  public getAgentAvailability(): Promise<string> {\r\n    return new Promise((resolve, reject) => {\r\n      if (this.agentService.isConnected) {\r\n        resolve(this.agentService.agentAvailability.CONNECTED);\r\n      } else {\r\n        resolve(this.agentService.agentAvailability.UNAVAILABLE);\r\n      }\r\n    });\r\n  }\r\n\r\n  public executeAgentAction(action, args) {\r\n\r\n    switch (action) {\r\n      case this.agentAction.CLIPBOARD:\r\n        this.agentService.copyToClipboard(args);\r\n        break;\r\n      case this.agentAction.CLIPBOARD_AS_PDF:\r\n        this.agentService.copyToClipboard(args);\r\n        break;\r\n      case this.agentAction.EXTERNAL:\r\n        if (!args.executable) {\r\n          this.logger.error('Missing field args.executable');\r\n        } else if ((args.args && args.args.length === 0) && !Array.isArray(args.args)) {\r\n          this.logger.error('Field args.args must be empty or array.');\r\n        } else {\r\n          this.agentService.sendExternalAction(args.executable, args.args || []);\r\n        }\r\n        break;\r\n      case this.agentAction.MAIL:\r\n      case this.agentAction.MAIL_AS_PDF:\r\n        this.agentService.sendAsMail(args);\r\n        break;\r\n      case this.agentAction.OPEN:\r\n        this.agentService.openDocument(args, args.lock);\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n  }\r\n\r\n  public get(uri, base = '', options?: HttpOptions) {\r\n    return this.backend\r\n      .get(uri, this.backend.getHost() + base, options || {observe: 'response'}).pipe(\r\n        map((res: any) => {\r\n          return options ? res : { status: res.status, data: res.body };\r\n        })).toPromise();\r\n  }\r\n\r\n  public put(uri, data, base = '', options?: HttpOptions) {\r\n    return this.backend.put(uri, data, this.backend.getHost() + base, options).toPromise();\r\n  }\r\n\r\n  public post(uri, data, base = '', options?: HttpOptions) {\r\n    return this.backend.post(uri, data, this.backend.getHost() + base, options).toPromise();\r\n  }\r\n\r\n  public del(uri, base = '', options?: HttpOptions) {\r\n    return this.backend.del(uri, this.backend.getHost() + base, options).toPromise();\r\n  }\r\n\r\n  public getCurrentUser(): EoUser {\r\n    return this.user;\r\n  }\r\n\r\n  public encodeFileName(filename) {\r\n    return Utils.encodeFileName(filename);\r\n  }\r\n\r\n  public decodeHtmlCharCodes(str) { \r\n    return str.replace(/(&#(\\d+);)/g, (match, capture, charCode) => String.fromCharCode(charCode));\r\n  }\r\n\r\n  public getConfig() {\r\n    return {\r\n      serviceBase: this.backend.getServiceBase()\r\n\r\n      // todo: do we have to provide the plugin developers with these informations?\r\n      // after speaking to Andreas also removed from documentation\r\n      // pluginsBase: $eoConfig.getPluginBase(),\r\n      // pluginStatesBase: $eoConfig.getPluginStatesBase(),\r\n      // themeBase: $eoConfig.getThemeBase()\r\n    };\r\n  }\r\n\r\n  /**\r\n   * fetches dms objects from the server that match the given params\r\n   *\r\n   * @param fields - the fields to matched. example: {name: 'max', plz: '47111}\r\n   * @param type - the target object type\r\n   *\r\n   * @returns which will be resolved by an array of DmsObjects matching the given params\r\n   */\r\n  public getResult(fields, type): Promise<DmsObject[]> {\r\n\r\n    let q = Object.keys(fields).filter(k => (fields[k] !== undefined && fields[k] !== null)).map(k => k + '=' + fields[k]).join(';');\r\n\r\n    return this.backend\r\n      .getJson(`/result/query?query=${encodeURIComponent(q)}&type=${type}`)\r\n      .toPromise()\r\n      .then((response: any) => {\r\n        let resObjects = [];\r\n        for (let item of response) {\r\n          resObjects.push(new DmsObject(item));\r\n        }\r\n        return Promise.resolve(resObjects);\r\n      })\r\n      .catch(this.handleError);\r\n  }\r\n\r\n  /**\r\n   * Loads a DMS object from the backend.\r\n   *\r\n   * @param id - The id of the DMS-Object to be fetched.\r\n   * @param [type] - The object type of the selected DMS-Object. Will improve performance if set.\r\n   * @param [version] - retrieve a specific version of the dms object\r\n   * @param [intent] - used for server side logging. If you provide an intent, the\r\n   *\r\n   * @returns which will be resolved by the DMS object fetched from the server\r\n   */\r\n  public getDmsObject(id, type, version, intent?): Promise<DmsObject> {\r\n\r\n    return this.dmsService.getDmsObject(id, type, version, intent)\r\n      .toPromise()\r\n      .then(response => {\r\n        return Promise.resolve(response);\r\n      })\r\n      .catch(this.handleError);\r\n  }\r\n\r\n  private handleError(error: any): Promise<any> {\r\n    return Promise.reject(error.message || error);\r\n  }\r\n}\r\n","import {CurrencyPipe, DecimalPipe, PercentPipe} from '@angular/common';\r\nimport {Pipe, PipeTransform} from '@angular/core';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\n\r\n@Pipe({\r\n  name: 'localeDecimal',\r\n  pure: false\r\n})\r\nexport class LocaleDecimalPipe extends DecimalPipe implements PipeTransform {\r\n\r\n  constructor(public translate: TranslateService) {\r\n    super(translate.currentLang || 'en');\r\n  }\r\n\r\n  public transform(value: any, digits?: string, locale?: string): string | null | any {\r\n    return super.transform(value, digits, locale || this.translate.currentLang || 'en');\r\n  }\r\n\r\n}\r\n\r\n@Pipe({\r\n  name: 'localePercent',\r\n  pure: false\r\n})\r\nexport class LocalePercentPipe extends PercentPipe implements PipeTransform {\r\n\r\n  constructor(public translate: TranslateService) {\r\n    super(translate.currentLang || 'en');\r\n  }\r\n\r\n  public transform(value: any, digits?: string, locale?: string): string | null | any {\r\n    return super.transform(value, digits, locale || this.translate.currentLang || 'en');\r\n  }\r\n\r\n}\r\n\r\n@Pipe({\r\n  name: 'localeCurrency',\r\n  pure: false\r\n})\r\nexport class LocaleCurrencyPipe extends CurrencyPipe implements PipeTransform {\r\n\r\n  constructor(public translate: TranslateService) {\r\n    super(translate.currentLang || 'en');\r\n  }\r\n\r\n  public transform(value: any, currencyCode?: string, display?: 'code' | 'symbol' | 'symbol-narrow' | boolean, digits?: string, locale?: string): string | null | any {\r\n    return super.transform(value, currencyCode, display, digits, locale || this.translate.currentLang || 'en');\r\n  }\r\n\r\n}\r\n\r\n@UntilDestroy()\r\n@Pipe({\r\n  name: 'localeNumber',\r\n  pure: false\r\n})\r\nexport class LocaleNumberPipe implements PipeTransform {\r\n\r\n  decimalPipe;\r\n  decimalSeparator = '.';\r\n  separator = ',';\r\n\r\n  constructor(public translate: TranslateService) {\r\n    this.decimalPipe = new LocaleDecimalPipe(this.translate);\r\n    this.updateSeparators(this.translate.currentLang);\r\n    this.translate.onLangChange.pipe(untilDestroyed(this)).subscribe(currLang => this.updateSeparators(currLang.lang));\r\n  }\r\n\r\n  public transform(value: any, grouping?: boolean, pattern?: string, scale?: number, digits?: string, locale?: string): string | null | any {\r\n    let number = this.decimalPipe.transform(value, digits || `1.${scale || 0}-${scale || 0}`, locale);\r\n    if (number && !grouping) {\r\n      number = number.replace(new RegExp('\\\\' + this.separator, 'g'), '');\r\n    }\r\n    return number ? (pattern || '{{number}}').replace('{{number}}', number) : number;\r\n  }\r\n\r\n  private updateSeparators(lang: string) {\r\n    if (lang) {\r\n      const pattern = this.decimalPipe.transform(1111.11, '1.2-2', lang);\r\n      this.decimalSeparator = pattern[5];\r\n      this.separator = pattern[1];\r\n    }\r\n  }\r\n\r\n  stringToNumber(value: string) {\r\n    value = (value || '').replace(new RegExp('\\\\' + this.separator, 'g'), '').replace(this.decimalSeparator, '.');\r\n    if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {\r\n      return Number(value);\r\n    }\r\n    return NaN;\r\n  }\r\n\r\n  numberToString(value: number, grouping?: boolean, pattern?: string, scale?: number) {\r\n    scale = typeof scale === 'number' ? scale : 2;\r\n    return this.transform(value, grouping, pattern, scale);\r\n  }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {LocaleNumberPipe} from './locale-number.pipe';\r\n\r\n@Pipe({name: 'fileSize'})\r\nexport class FileSizePipe extends LocaleNumberPipe implements PipeTransform {\r\n\r\n  private k = 1024;\r\n  private sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\r\n\r\n  transform(bytes = 0): string {\r\n    if (bytes <= 1) {\r\n      return bytes === 1 ? '1 Byte' : '0 Bytes';\r\n    }\r\n    let i: number = Math.floor(Math.log(bytes) / Math.log(this.k));\r\n    return super.transform(parseFloat((bytes / Math.pow(this.k, i)).toFixed(2))) + ' ' + this.sizes[i];\r\n  }\r\n\r\n  stringToNumber(value: string) {\r\n    const sizes = this.sizes.map(s => s.toLowerCase());\r\n    const match = value.toLowerCase().match(new RegExp(`(.*)(${sizes.join('|')})`));\r\n    const number = super.stringToNumber((match ? match[1] : value).trim());\r\n    return isNaN(number) ? number : (number * Math.pow(1024, match ? sizes.indexOf(match[2]) : 0));\r\n  }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {\r\n  DatePipe, FormatWidth, getLocaleDateFormat, getLocaleDateTimeFormat, getLocaleTimeFormat\r\n} from '@angular/common';\r\nimport {TranslateService} from '@eo-sdk/core';\r\n\r\n@Pipe({\r\n  name: 'localeDate',\r\n  pure: false\r\n})\r\nexport class LocaleDatePipe extends DatePipe implements PipeTransform {\r\n\r\n  constructor(private translate: TranslateService) {\r\n    super(translate.currentLang);\r\n  }\r\n\r\n  get lang() {\r\n    return this.translate.currentLang ? this.translate.currentLang : 'en';\r\n  }\r\n\r\n  transform(value: any, format: string = '', timezone?: string, locale?: string): string | null | any  {\r\n    if (format === 'eoNiceShort') {\r\n      const diff = (new Date(value).setHours(0, 0, 0, 0) - new Date().setHours(0, 0, 0, 0)) / 1000 / 3600 / 24;\r\n      format = diff === 0 ? 'eoShortTime' : diff > -7 && diff < 0 ? 'eoShortDayTime' : format;\r\n    }\r\n    return super.transform(value, this.format(format || 'eoShort'), timezone, locale || this.lang);\r\n  }\r\n\r\n  format(format?: string) {\r\n    let formatValue = '';\r\n    switch (format) {\r\n      case 'eoNiceShort':\r\n      case 'eoShortDate':\r\n        formatValue = getLocaleDateFormat(this.lang, FormatWidth.Short)\r\n          .replace(/[d]+/, 'dd')\r\n          .replace(/[M]+/, 'MM')\r\n          .replace(/[y]+/, 'yyyy');\r\n        break;\r\n      case 'eoShortDay':\r\n        formatValue = 'EE';\r\n        break;\r\n      case 'eoShortTime':\r\n        formatValue = getLocaleTimeFormat(this.lang, FormatWidth.Short)\r\n          .replace(/[h]+/, 'hh')\r\n          .replace(/[H]+/, 'HH')\r\n          .replace(/[m]+/, 'mm')\r\n          .replace(/[a]+/, 'aa');\r\n        break;\r\n      case 'eoShort':\r\n        formatValue = getLocaleDateTimeFormat(this.lang, FormatWidth.Short)\r\n          .replace('{0}', this.format('eoShortTime'))\r\n          .replace('{1}', this.format('eoShortDate'));\r\n        break;\r\n      case 'eoShortDayTime':\r\n        formatValue = getLocaleDateTimeFormat(this.lang, FormatWidth.Short).replace(',', '')\r\n          .replace('{0}', this.format('eoShortTime'))\r\n          .replace('{1}', this.format('eoShortDay'));\r\n        break;\r\n    }\r\n\r\n    return formatValue || format;\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { assign, bind, camelCase, capitalize, ceil, chunk, clone, cloneDeep, concat, debounce, each, endsWith, entries, escape, every, extend, filter, find, findIndex, findKey, first, flatMap, floor, forEach, forOwn, get, groupBy, has, includes, indexOf, isArray, isDate, isEmpty, isNaN, isNumber, isObject, isString, join, keys, map, orderBy, reduce, remove, replace, reverse, round, set, slice, some, sortBy, split, startsWith, sum, take, uniqBy, values } from 'lodash-es';\r\n\r\n@Injectable()\r\nexport class UtilitiesService {\r\n  public static isEdge(): boolean {\r\n    return !!navigator.userAgent && navigator.userAgent.indexOf('Edge') > -1;\r\n  }\r\n\r\n  public static isEmpty(obj) {\r\n    if (obj == null || obj === '') {\r\n      return true;\r\n    }\r\n\r\n    if (typeof obj === 'number') {\r\n      return isNaN(obj);\r\n    }\r\n\r\n    return typeof obj === 'boolean' ? false : !Object.keys(obj).length;\r\n  }\r\n\r\n  public static isEmptyOrFalse(val) {\r\n    return typeof val === 'boolean' ? !val : UtilitiesService.isEmpty(val);\r\n  }\r\n\r\n  // minimal selection of lodash functions\r\n  public static lodash: {\r\n    assign: typeof assign,\r\n    bind: typeof bind,\r\n    camelCase: typeof camelCase,\r\n    capitalize: typeof capitalize,\r\n    ceil: typeof ceil,\r\n    chunk: typeof chunk,\r\n    clone: typeof clone,\r\n    cloneDeep: typeof cloneDeep,\r\n    concat: typeof concat,\r\n    debounce: typeof debounce,\r\n    each: typeof each,\r\n    endsWith: typeof endsWith,\r\n    entries: typeof entries,\r\n    escape: typeof escape,\r\n    every: typeof every,\r\n    extend: typeof extend,\r\n    filter: typeof filter,\r\n    find: typeof find,\r\n    findIndex: typeof findIndex,\r\n    findKey: typeof findKey,\r\n    first: typeof first,\r\n    flatMap: typeof flatMap,\r\n    floor: typeof floor,\r\n    forEach: typeof forEach,\r\n    forOwn: typeof forOwn,\r\n    get: typeof get,\r\n    groupBy: typeof groupBy,\r\n    has: typeof has,\r\n    includes: typeof includes,\r\n    indexOf: typeof indexOf,\r\n    isArray: typeof isArray,\r\n    isDate: typeof isDate,\r\n    isEmpty: typeof isEmpty,\r\n    isNaN: typeof isNaN,\r\n    isNumber: typeof isNumber,\r\n    isObject: typeof isObject,\r\n    isString: typeof isString,\r\n    join: typeof join,\r\n    keys: typeof keys,\r\n    map: typeof map,\r\n    orderBy: typeof orderBy,\r\n    reduce: typeof reduce,\r\n    remove: typeof remove,\r\n    replace: typeof replace,\r\n    reverse: typeof reverse,\r\n    round: typeof round,\r\n    set: typeof set,\r\n    slice: typeof slice,\r\n    some: typeof some,\r\n    sortBy: typeof sortBy,\r\n    split: typeof split,\r\n    startsWith: typeof startsWith,\r\n    sum: typeof sum,\r\n    take: typeof take,\r\n    uniqBy: typeof uniqBy,\r\n    values: typeof values\r\n  } = {\r\n    assign,\r\n    bind,\r\n    camelCase,\r\n    capitalize,\r\n    ceil,\r\n    chunk,\r\n    clone,\r\n    cloneDeep,\r\n    concat,\r\n    debounce,\r\n    each,\r\n    endsWith,\r\n    entries,\r\n    escape,\r\n    every,\r\n    extend,\r\n    filter,\r\n    find,\r\n    findIndex,\r\n    findKey,\r\n    first,\r\n    flatMap,\r\n    floor,\r\n    forEach,\r\n    forOwn,\r\n    get,\r\n    groupBy,\r\n    has,\r\n    includes,\r\n    indexOf,\r\n    isArray,\r\n    isDate,\r\n    isEmpty,\r\n    isNaN,\r\n    isNumber,\r\n    isObject,\r\n    isString,\r\n    join,\r\n    keys,\r\n    map,\r\n    orderBy,\r\n    reduce,\r\n    remove,\r\n    replace,\r\n    reverse,\r\n    round,\r\n    set,\r\n    slice,\r\n    some,\r\n    sortBy,\r\n    split,\r\n    startsWith,\r\n    sum,\r\n    take,\r\n    uniqBy,\r\n    values,\r\n  };\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'orderBy'\r\n})\r\nexport class OrderByPipe implements PipeTransform {\r\n\r\n  transform(values: number[]|string[]|object[], key?: string, isDesc = false) {\r\n    if (!Array.isArray(values) || values.length <= 0) {\r\n      return null;\r\n    }\r\n    return this.sort(values, key, isDesc);\r\n  }\r\n\r\n  private sort(value: any[], key?: any, isDesc?): any[] {\r\n    const isInside = key && key.indexOf('.') !== -1;\r\n\r\n    if (isInside) {\r\n      key = key.split('.');\r\n    }\r\n\r\n    const array: any[] = value.sort((a: any, b: any): number => {\r\n      if (!key) {\r\n        return a > b ? 1 : -1;\r\n      }\r\n\r\n      if (!isInside) {\r\n        return a[key] > b[key] ? 1 : -1;\r\n      }\r\n\r\n      return this.getValue(a, key) > this.getValue(b, key) ? 1 : -1;\r\n    });\r\n\r\n    if (isDesc) {\r\n      return array.reverse();\r\n    }\r\n\r\n    return array;\r\n  }\r\n\r\n  private getValue(object: any, key: string[]) {\r\n    for (let i = 0, n = key.length; i < n; ++i) {\r\n      const k = key[i];\r\n      if (!(k in object)) {\r\n        return;\r\n      }\r\n      object = object[k];\r\n    }\r\n\r\n    return object;\r\n  }\r\n\r\n}\r\n","import {CommonModule} from '@angular/common';\r\nimport {NgModule} from '@angular/core';\r\nimport {UtilitiesService} from './services/utilities.service';\r\nimport {OrderByPipe} from './sortable/order-by.pipe';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  declarations: [OrderByPipe],\r\n  providers: [UtilitiesService],\r\n  exports: [OrderByPipe]\r\n})\r\nexport class UtilModule {\r\n}\r\n","import {Directive, ElementRef, HostListener, Renderer2} from '@angular/core';\r\n\r\n/**\r\n * This directive traps the focus inside the element it is applied to.\r\n * When applied, a users can't \"tab out\" of the element.\r\n * You need at least two focusable children in the element for it to work properly.\r\n * See the querySelector in the trapFocus method to know which elements count as focusable.\r\n * Additionally you can add the attribute \"focusable\" to an element if you are unsure.\r\n */\r\n\r\n@Directive({\r\n  selector: '[eoTrapFocus]'\r\n})\r\nexport class TrapFocusDirective {\r\n\r\n  focusableSelectors = 'a[href], a, button, textarea, input[type=\"text\"],' +\r\n  'input[type=\"radio\"], input[type=\"checkbox\"], select, [focusable]';\r\n\r\n  constructor(private el: ElementRef) { }\r\n\r\n  ngAfterViewInit() {\r\n    this.trapFocus(this.el.nativeElement);\r\n  }\r\n\r\n  trapFocus(element: any) {\r\n    let focusableElements = element.querySelectorAll(\r\n      this.focusableSelectors\r\n    );\r\n    focusableElements = Array.from(focusableElements)\r\n      .filter((el: any) => !el.disabled && !el.classList.contains('disabled'));\r\n    const firstFocusableElement: any = focusableElements[0];\r\n    const lastFocusableElement: any = focusableElements[focusableElements.length - 1];\r\n\r\n    element.addEventListener('keydown', ((event: any) => {\r\n      const isTabPressed = event.keyCode === 9; // tab key code\r\n      if (!isTabPressed) return;\r\n\r\n      if (event.shiftKey) /* shift + tab */ {\r\n        if (document.activeElement === firstFocusableElement) {\r\n          lastFocusableElement.focus();\r\n          event.preventDefault();\r\n        }\r\n      } else /* tab */ {\r\n        if (document.activeElement === lastFocusableElement) {\r\n          firstFocusableElement.focus();\r\n          event.preventDefault();\r\n        }\r\n      }\r\n    }));\r\n  }\r\n\r\n  @HostListener('keydown', ['$event'])\r\n  isArrowUpOrDownPressed(event: KeyboardEvent) {\r\n\r\n    const key = event.key\r\n    if (key === 'ArrowUp' || key === 'ArrowDown') {\r\n\r\n      event.preventDefault();\r\n      let focusableElements = this.el.nativeElement.parentElement.querySelectorAll(\r\n        this.focusableSelectors\r\n      );\r\n      const currentIndex = Array.from(focusableElements).indexOf(document.activeElement)\r\n      if (key === 'ArrowDown' && currentIndex < focusableElements.length - 1) {\r\n        focusableElements[currentIndex + 1].focus();\r\n      }\r\n      else if (key === 'ArrowUp' && currentIndex > 0) {\r\n        focusableElements[currentIndex - 1].focus();\r\n\r\n      }\r\n    }\r\n  }\r\n}\r\n","import {Directive, EventEmitter, HostListener, OnInit, Output, Input, OnDestroy} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { throttleTime } from 'rxjs/operators';\r\nimport {Subscription} from 'rxjs';\r\n\r\n@Directive({\r\n  selector: '[eoPreventDoubleClick]'\r\n})\r\nexport class PreventDoubleClickDirective implements OnInit, OnDestroy {\r\n  @Input() debounceTime = 500;\r\n  @Output() debounceClick = new EventEmitter();\r\n  private clicks = new Subject();\r\n  private subscription: Subscription;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n    this.subscription = this.clicks.pipe(throttleTime(this.debounceTime)).subscribe(e => this.debounceClick.emit(e));\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.subscription.unsubscribe();\r\n  }\r\n\r\n  @HostListener('click', ['$event'])\r\n  clickEvent(event) {\r\n    //TODO: does not support LinkAction (ctrl + click)\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    this.clicks.next(event);\r\n  }\r\n\r\n  @HostListener('keydown.enter', ['$event'])\r\n  onkeyDown(event: KeyboardEvent) {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    this.clicks.next(event);\r\n  }\r\n}\r\n\r\n","import {NumberFilter} from '@ag-grid-community/core';\r\n\r\nexport class FilesizeFilter extends NumberFilter {\r\n  filter = 'eoFilesizeFilter';\r\n}\r\n\r\nFilesizeFilter.prototype['stringToFloat'] = function(value) {\r\n  const number = this.numberFilterParams.context.fileSizePipe.stringToNumber(value || '');\r\n  return isNaN(number) ? null : number;\r\n};\r\n","import {Injectable} from '@angular/core';\r\nimport {SimpleFilter, ColDef, CsvExportParams, _, RowNode, Column, GridOptions, IRowNode} from '@ag-grid-community/core';\r\nimport {TranslateService, EnvironmentEnaio, SearchQuery} from '@eo-sdk/core';\r\nimport {FileSizePipe} from '../pipes/filesize.pipe';\r\nimport {LocaleNumberPipe} from '../pipes/locale-number.pipe';\r\nimport {LocaleDatePipe} from '../pipes/locale-date.pipe';\r\nimport {Router} from '@angular/router';\r\nimport {AppSearchService} from '../search/app-search.service';\r\nimport {\r\n  SystemService,\r\n  BackendService,\r\n  UserService,\r\n  EoUser,\r\n  Utils,\r\n  RangeValue,\r\n  SearchFilter,\r\n  SearchState\r\n} from '@eo-sdk/core';\r\nimport {UtilitiesService} from '../../eo-framework/util';\r\nimport {FilesizeFilter} from '../../eo-framework/grid/filters/filesize-filter.component';\r\nimport {AgGridAngular} from '@ag-grid-community/angular';\r\n\r\n@Injectable()\r\nexport class GridService {\r\n  context: any;\r\n\r\n  get csvExportParams(): CsvExportParams {\r\n    return {\r\n      fileName: 'export',\r\n      columnSeparator: this.context?.numberPipe.decimalSeparator === ',' ? ';' : ',',\r\n      processCellCallback: (params) => {\r\n        return (params.column.getColDef().cellClass as any || '').includes('col-number')\r\n          ? (params.column.getColDef().cellRenderer as any)(params).replace(new RegExp(`\\\\` + this.context?.numberPipe.separator, 'g'), '') // removed grouping\r\n          : params.value;\r\n      }\r\n    };\r\n  }\r\n\r\n  static escapeHtml(str) {\r\n    str = str ? str : '';\r\n    const entityMap = {\r\n      '&': '&amp;',\r\n      '<': '&lt;',\r\n      '>': '&gt;',\r\n      '\"': '&quot;',\r\n      '\\'': '&#39;',\r\n      '/': '&#x2F;'\r\n    };\r\n    return String(str).replace(/[&<>\"'\\/]/g, s => entityMap[s]);\r\n  }\r\n\r\n  static qnameFormatter(qname: string) {\r\n    return (qname || '').replace(new RegExp('sysobject.|sysdocument.'), '');\r\n  }\r\n\r\n  static qnameMatch(qname: string, qname2: string) {\r\n    return GridService.qnameFormatter(qname) === GridService.qnameFormatter(qname2);\r\n  }\r\n\r\n  constructor(\r\n    public translate: TranslateService,\r\n    private router: Router,\r\n    private appSearchService: AppSearchService,\r\n    private system: SystemService,\r\n    private backend: BackendService,\r\n    private userService: UserService\r\n  ) {\r\n    this.context = {\r\n      translate,\r\n      system,\r\n      backend,\r\n      router,\r\n      fileSizePipe: new FileSizePipe(translate),\r\n      numberPipe: new LocaleNumberPipe(translate),\r\n      datePipe: new LocaleDatePipe(translate),\r\n      cr: CellRenderer,\r\n      baseHref: EnvironmentEnaio.isWebEnvironment() ? this.backend.getHost() : './',\r\n      mimetypegroupOpts: Object.keys(SearchQuery.MIMETYPEGROUP_BUCKETS).map(k => k.toLowerCase()),\r\n      typeOpts: []\r\n    };\r\n\r\n    this.userService.user$.subscribe(\r\n      (user: EoUser) =>\r\n        (this.context.defaultPosition =\r\n          user.uiDirection === 'rtl' ? 'right' : 'left')\r\n    );\r\n\r\n    this.appSearchService.queryState$.subscribe((state: SearchState) => this.updateContext(Array.from(state.aggregations.type.keys())));\r\n  }\r\n\r\n  // copy content of either row or table cell to clipboard\r\n  public copyToClipboard(event: KeyboardEvent, grid: AgGridAngular, gridOptions?: GridOptions) {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n\r\n    const viewport = grid.api['gridBodyCtrl'].bodyScrollFeature.centerRowContainerCtrl.eViewport;\r\n    const scrollLeft = viewport.scrollLeft;\r\n\r\n    const focusedCell = grid.api.getFocusedCell();\r\n    const rows: IRowNode[] = event.shiftKey ? grid.api.getSelectedNodes() : [grid.api.getDisplayedRowAtIndex(focusedCell.rowIndex)];\r\n    const cols: Column[] = event.shiftKey ? grid.api.getAllGridColumns().filter((c: any) => c.colId !== '__selectionField') : [focusedCell.column];\r\n    const getCell = (col, row) => viewport.querySelector(`div[row-index=\"${row.rowIndex}\"] [col-id=\"${col.colId}\"]`);\r\n    const value = (col, row) => {\r\n      grid.api.ensureColumnVisible(col);\r\n      const cell = getCell(col, row);\r\n      if (!cell) return '';\r\n      const chips = cell.querySelectorAll('.chip') || [];\r\n      const val = Array.from(chips.length ? chips : [cell]).map((c: any) => (c && c.textContent && c.textContent.trim()) || '');\r\n      const value = val.toString() || grid.api.getValue(col, row);\r\n      return !UtilitiesService.isEmpty(value) ? value.toString().replace(new RegExp('\\n', 'g'), ' ') : '';\r\n    };\r\n\r\n    let content = '';\r\n    if (event.altKey) content += cols.map((col: Column) => col.getColDef().headerName).join('\t') + '\\n';\r\n    content += rows.map((row) => cols.map((col: Column) => value(col, row)).join('\t')).join('\\n');\r\n\r\n    grid.api.ensureColumnVisible(focusedCell.column);\r\n    viewport.scrollLeft = scrollLeft;\r\n    setTimeout(\r\n      () =>\r\n        rows.map((row) =>\r\n          cols.map((col: Column) => {\r\n            const cell = getCell(col, row);\r\n            cell && cell.classList.add('copy-cell');\r\n            cell && setTimeout(() => cell && cell.classList.remove('copy-cell'), 4000);\r\n          })\r\n        ),\r\n      100\r\n    );\r\n\r\n    // navigator.clipboard.writeText(content); // only if client runs https\r\n    const textArea = document.createElement('textarea');\r\n    textArea.value = content;\r\n    document.body.appendChild(textArea);\r\n    textArea.select();\r\n    const copySuccess = document.execCommand('copy');\r\n    document.body.removeChild(textArea);\r\n  }\r\n\r\n  public openLink(uri: string, newTab = false) {\r\n    if (newTab) {\r\n      window.open(CellRenderer.windowURI(uri));\r\n    } else {\r\n      // force reload in case of same URL\r\n      const extras = CellRenderer.windowURI(this.router.url) === CellRenderer.windowURI(uri) ? `${uri.includes('?') ? '&' : '?'}reload=true` : '';\r\n      this.router.navigateByUrl(uri + extras);\r\n    }\r\n  }\r\n\r\n  public getRowIndex(el, parentClass: string) {\r\n    return el && !el.classList.contains(parentClass)\r\n      ? el.getAttribute('row-index')\r\n        ? parseInt(el.getAttribute('row-index'), 10)\r\n        : this.getRowIndex(el.parentElement, parentClass)\r\n      : null;\r\n  }\r\n\r\n  public getRouterLink(el, parentClass) {\r\n    return el && !el.classList.contains(parentClass)\r\n      ? el.localName === 'a' && el.classList.contains('router-link')\r\n        ? el\r\n        : this.getRouterLink(el.parentElement, parentClass)\r\n      : null;\r\n  }\r\n\r\n  public openRouterLink(event: MouseEvent, parentClass: string) {\r\n    const link = this.getRouterLink(\r\n      event.target,\r\n      parentClass\r\n    ) as HTMLAnchorElement;\r\n    if (link && link.href) {\r\n      this.openLink(link.getAttribute('href'), event.ctrlKey);\r\n    }\r\n  }\r\n\r\n  public getContext() {\r\n    return {...this.context, count: 0, rowCount: 0};\r\n  }\r\n\r\n  public updateContext(typeOpts: string[], options = {}) {\r\n    Object.assign(this.context, {typeOpts: (typeOpts && typeOpts.length ? typeOpts : this.system.getObjectTypes().map(o => o.qname))}, options);\r\n  }\r\n\r\n  public getColumnDefs(\r\n    elements: any[],\r\n    sortorder: any[] = [],\r\n    grouporder: any[] = [],\r\n    pinned: any[] = [],\r\n    alignmentx: {qname: string, value: string}[] = [],\r\n    enableRowGroup = true,\r\n    cachedColumns = [],\r\n    mode?\r\n  ): ColDef[] {\r\n    return elements.map(f =>\r\n      this.getColumnDefinition(\r\n        f,\r\n        sortorder,\r\n        grouporder,\r\n        pinned,\r\n        alignmentx,\r\n        enableRowGroup,\r\n        cachedColumns,\r\n        mode\r\n      )\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Renders the visual output of form elements based on its type etc. (see IndexdataSummaryComponent for usage details)\r\n   * @param elements - The form elements to be rendered\r\n   * @returns The rendered HTML for the given elements\r\n   */\r\n  public getResolvedDefs(elements: any[]) {\r\n    return elements.map(el => {\r\n      let colDef: ColDef = this.getColumnDefinition(el);\r\n      let value = el.value;\r\n      let data = {};\r\n      data[colDef.field] = value;\r\n      if (el.meta) {\r\n        data[colDef.field + '_meta'] = el.meta;\r\n      }\r\n      // invoke valueGetter if provided\r\n      if (colDef.valueGetter) {\r\n        value = (colDef.valueGetter as Function).call(this, {\r\n          context: this.context,\r\n          data: data,\r\n          node: {},\r\n          colDef: colDef\r\n        });\r\n      }\r\n      // run the cell renderer with the output generated by the valueGetter\r\n      if (colDef.cellRenderer) {\r\n        let params = {\r\n          context: this.context,\r\n          value: value,\r\n          node: {},\r\n          colDef: colDef,\r\n          data: data\r\n        };\r\n        el._value = (colDef.cellRenderer as Function).call(this, params);\r\n      } else {\r\n        el._value = value;\r\n      }\r\n      return el;\r\n    });\r\n  }\r\n\r\n  /**\r\n   * creates the column definition for a given result field.\r\n   *\r\n   * @param resultField - the result field (as retrieved from ../user/config/result/*) to create the\r\n   * column definition object for\r\n   *\r\n   * @param sortFields - Array of fields to be sorted\r\n   */\r\n  public getColumnDefinition(\r\n    resultField,\r\n    sortFields: any[] = [],\r\n    groupFields: any[] = [],\r\n    pinnedFields: any[] = [],\r\n    alignmentFields: {qname: string, value: string}[] = [],\r\n    enableRowGroup = false,\r\n    cachedColumns = [],\r\n    mode?\r\n  ) {\r\n    let colDef = <ColDef>{};\r\n    colDef.headerName = resultField.label;\r\n    colDef.field = resultField.hitname || resultField.name;\r\n    colDef.sortable = true;\r\n    colDef.resizable = true;\r\n    colDef.filter = 'agTextColumnFilter';\r\n    colDef.filterParams = {buttons: ['reset']};\r\n    colDef.cellRenderer = params => GridService.escapeHtml(params.value);\r\n    colDef.valueGetter = params => {\r\n      return params.node.group || !params.data ? '' : params.data[colDef.field];\r\n    };\r\n    colDef.refData = {qname: resultField.qname || ''};\r\n\r\n    /**\r\n     * headerClass\r\n     * add special header class for fields from the contextfolder\r\n     */\r\n    if (resultField.selectedforenrichment && mode !== 'COMMON') {\r\n      colDef.headerClass = 'contextfolder';\r\n    }\r\n    this.addColDefAttrsByType(colDef, resultField);\r\n    this.addColDefAttrsByField(colDef, colDef.field);\r\n\r\n    colDef.filterParams = {\r\n      ...colDef.filterParams,\r\n      debounceMs: 800,\r\n      clearButton: false,\r\n      newRowsAction: 'keep',\r\n      filterOptions: []\r\n    };\r\n\r\n    if (colDef.filter === 'agTextColumnFilter') {\r\n      colDef.filterParams.filterOptions = colDef.refData.qname.match(/(^sysobject\\.|^sysdocument\\.)(title$|description$)/) ? ['equals'] : [\r\n        'contains',\r\n        'equals',\r\n        'startsWith',\r\n        'endsWith'\r\n      ];\r\n\r\n    } else if (\r\n      colDef.filter === 'agNumberColumnFilter' ||\r\n      colDef.filter === 'agDateColumnFilter'\r\n    ) {\r\n      colDef.filterParams.filterOptions = [\r\n        'equals',\r\n        'lessThanOrEqual',\r\n        'greaterThan',\r\n        'greaterThanOrEqual',\r\n        'inRange'\r\n      ];\r\n    }\r\n\r\n    // mimetype filter supports only equals option\r\n    if (colDef.field === 'mimetype') {\r\n      colDef.filterParams.defaultOption = 'equals';\r\n      colDef.filterParams.filterOptions = ['equals'];\r\n    }\r\n\r\n    // filesize filter supports only interval options\r\n    if (colDef.field === 'filesize') {\r\n      colDef.filterParams.defaultOption = 'lessThanOrEqual';\r\n      colDef.filterParams.filterOptions = [\r\n        'lessThanOrEqual',\r\n        'greaterThanOrEqual',\r\n        'inRange'\r\n      ];\r\n    }\r\n\r\n    if (!resultField.sortable) {\r\n      colDef.sortable = false;\r\n    }\r\n    if (!resultField.searchable) {\r\n      colDef.suppressMenu = true;\r\n      colDef.filter = false;\r\n    }\r\n\r\n    let sortField = sortFields.find(f => f.qname === resultField.qname);\r\n    if (sortField) {\r\n      colDef.sort = sortField.direction.toLowerCase();\r\n    }\r\n\r\n    if (enableRowGroup) {\r\n      let groupFieldIndex = groupFields.findIndex(\r\n        f => f.qname === resultField.qname\r\n      );\r\n      if (~groupFieldIndex) {\r\n        colDef.rowGroupIndex = groupFieldIndex;\r\n      }\r\n    }\r\n\r\n    let pinnedField = pinnedFields.find(f => f.qname === resultField.qname);\r\n    if (pinnedField) {\r\n      colDef.pinned = pinnedField.position || this.context.defaultPosition;\r\n    }\r\n\r\n    let cachedColumn = cachedColumns.find(f => f.qname === resultField.qname);\r\n    if (cachedColumn) {\r\n      colDef.width = cachedColumn.width;\r\n    }\r\n\r\n    let alignmentField = alignmentFields.find(f => f.qname === resultField.qname);\r\n    if (alignmentField && alignmentField.value) {\r\n      colDef.cellStyle = {'justify-content': alignmentField.value};\r\n    } else {\r\n      colDef.cellStyle = {'justify-content': resultField.alignmentx ? resultField.alignmentx : ''};\r\n    }\r\n\r\n    return colDef;\r\n  }\r\n\r\n  /**\r\n   * add type specific column definition attributes\r\n   *\r\n   * @param colDef - the column definition object to be extended by type specific attributes\r\n   * @param resultField - object defining the result field\r\n   *\r\n   * @returns enriched column definition object\r\n   */\r\n  public addColDefAttrsByType(colDef: ColDef, resultField) {\r\n    switch (resultField.type) {\r\n      case 'REFERENCE': {\r\n        colDef.filter = 'agTextColumnFilter';\r\n        colDef.cellClass = resultField.multiselect\r\n            ? 'multiCell router-link-cell'\r\n            : 'router-link-cell';\r\n        colDef.cellRenderer = this.customContext(\r\n          CellRenderer.referenceCellRenderer,\r\n          {reference: resultField.reference || {}, colDef: colDef}\r\n        );\r\n        colDef.valueGetter = param => {\r\n          const value =\r\n            param.node.group || !param.data ? '' : param.data[colDef.field];\r\n\r\n          const refMeta = param && param.data && param.data._references;\r\n          // use object type label when meta is missing (search svc does not support meta)\r\n          return UtilitiesService.isEmpty(value)\r\n            ? '' : refMeta\r\n              ? refMeta[colDef.field]\r\n              : this.metaValueGetter(v => v.title)(param);\r\n        };\r\n        break;\r\n      }\r\n      case 'STRING': {\r\n        colDef.filter = 'agTextColumnFilter';\r\n        colDef.cellRenderer = CellRenderer.stringCellrenderer;\r\n        if (resultField.multiselect) {\r\n          colDef.cellRenderer = CellRenderer.multiSelectCellRenderer;\r\n        }\r\n        colDef.cellClass = resultField.multiselect\r\n          ? 'multiCell string'\r\n          : 'string';\r\n        this.addColDefAttrsByClassification(colDef, resultField.classification);\r\n        if (resultField.reference) {\r\n          colDef.cellClass = resultField.multiselect\r\n              ? 'multiCell router-link-cell'\r\n              : 'router-link-cell';\r\n          colDef.cellRenderer = this.customContext(\r\n            CellRenderer.linkCellRenderer,\r\n            {reference: resultField.reference}\r\n          );\r\n        }\r\n        colDef.comparator = (a, b) => _.defaultComparator(a, b, true);\r\n        break;\r\n      }\r\n      case 'DATETIME': {\r\n        colDef.width = 150;\r\n        colDef.filter = 'agDateColumnFilter';\r\n        colDef.cellRenderer = this.customContext(\r\n          CellRenderer.dateTimeCellRenderer,\r\n          {pattern: resultField.withtime ? 'eoShort' : 'eoShortDate'}\r\n        );\r\n        colDef.getQuickFilterText = this.customContext(\r\n          CellRenderer.dateTimeCellRenderer,\r\n          {pattern: resultField.withtime ? 'eoShort' : 'eoShortDate'}\r\n        );\r\n        colDef.filterParams = {\r\n          ...colDef.filterParams,\r\n          comparator: this.dateComparator(this.context.datePipe, resultField.withtime),\r\n          withTime: resultField.withtime,\r\n          inRangeInclusive: true\r\n        };\r\n        break;\r\n      }\r\n      case 'CODESYSTEM': {\r\n        colDef.filter = 'CodesystemFilterComponent';\r\n        colDef.colId = resultField.field;\r\n        colDef.filterParams = {...colDef.filterParams, multi: resultField.multiselect};\r\n        colDef.cellRenderer = CellRenderer.stringCellrenderer;\r\n        if (resultField.multiselect) {\r\n          colDef.cellRenderer = CellRenderer.multiSelectCellRenderer;\r\n        }\r\n        colDef.valueGetter = this.metaValueGetter(v => v.defaultrepresentation);\r\n        colDef.cellClass = resultField.multiselect\r\n          ? 'multiCell codesystem'\r\n          : 'codesystem';\r\n        break;\r\n      }\r\n      case 'NUMBER': {\r\n        colDef.cellClass = 'col-number';\r\n        colDef.headerClass = 'col-header-number';\r\n        colDef.filter = 'agNumberColumnFilter';\r\n        colDef.width = 150;\r\n        const {scale, grouping, pattern} = resultField;\r\n        colDef.cellRenderer = this.customContext(\r\n          CellRenderer.numberCellRenderer,\r\n          {scale, grouping, pattern}\r\n        );\r\n        colDef.getQuickFilterText = this.customContext(\r\n          CellRenderer.numberCellRenderer,\r\n          {scale, grouping, pattern}\r\n        );\r\n        colDef.filterParams = {...colDef.filterParams, inRangeInclusive : true};\r\n        break;\r\n      }\r\n      case 'ORGANIZATION': {\r\n        colDef.filter = 'OrganizationFilterComponent';\r\n        colDef.colId = resultField.qname;\r\n        colDef.filterParams = {...colDef.filterParams, multi: resultField.multiselect};\r\n        colDef.cellRenderer = CellRenderer.stringCellrenderer;\r\n        if (resultField.multiselect) {\r\n          colDef.cellRenderer = CellRenderer.multiSelectCellRenderer;\r\n        }\r\n        colDef.valueGetter = this.metaValueGetter(v =>\r\n          v.title && v.name ? `${v.title} (${v.name})` : `${v.id}`\r\n        );\r\n        colDef.cellClass = resultField.multiselect\r\n          ? 'multiCell organization'\r\n          : 'organization';\r\n        break;\r\n      }\r\n      case 'BOOLEAN': {\r\n        colDef.filter = 'ListFilterComponent';\r\n        colDef.cellClass = 'col-boolean';\r\n        colDef.cellRenderer = CellRenderer.booleanCellRenderer;\r\n        colDef.filterParams = {\r\n          ...colDef.filterParams,\r\n          cellRenderer: this.customContext(CellRenderer.booleanCellRenderer),\r\n          cellHeight: 30,\r\n          values: [false, true, undefined],\r\n          suppressMiniFilter: true\r\n        };\r\n        colDef.width = 100;\r\n        colDef.getQuickFilterText = () => '';\r\n        break;\r\n      }\r\n    }\r\n    return colDef;\r\n  }\r\n\r\n  /**\r\n   * add classification specific column definition attributes\r\n   *\r\n   * @param colDef - the column definition object to be extended\r\n   * @param classification - the classification to evaluate\r\n   *\r\n   * @returns enriched column definition object\r\n   */\r\n  private addColDefAttrsByClassification(colDef: ColDef, classification) {\r\n    switch (classification) {\r\n      case 'email': {\r\n        colDef.cellRenderer = CellRenderer.emailCellRenderer;\r\n        break;\r\n      }\r\n      case 'url': {\r\n        colDef.cellRenderer = CellRenderer.urlCellRenderer;\r\n        break;\r\n      }\r\n    }\r\n    return colDef;\r\n  }\r\n\r\n  private addColDefAttrsByField(colDef: ColDef, resultFieldName) {\r\n    switch (resultFieldName) {\r\n      case 'type': {\r\n        colDef.filter = 'ListFilterComponent';\r\n        colDef.cellRenderer = CellRenderer.typeCellRenderer;\r\n        colDef.width = 80;\r\n        colDef.cellClass = 'res-ico';\r\n        colDef.getQuickFilterText = () => '';\r\n        colDef.filterParams = {\r\n          ...colDef.filterParams,\r\n          cellRenderer: this.customContext(CellRenderer.typeCellRenderer),\r\n          values: this.context.typeOpts\r\n        };\r\n        break;\r\n      }\r\n      case 'mimetypegroup': {\r\n        colDef.filter = 'ListFilterComponent';\r\n        colDef.width = 101;\r\n        colDef.filterParams = {\r\n          ...colDef.filterParams,\r\n          values: this.context.mimetypegroupOpts\r\n        };\r\n        break;\r\n      }\r\n      case 'version': {\r\n        colDef.width = 80;\r\n        break;\r\n      }\r\n      case 'filesize': {\r\n        colDef.headerClass = 'col-header-filesize';\r\n        colDef.filter = FilesizeFilter;\r\n        colDef.width = 100;\r\n        colDef.cellRenderer = CellRenderer.filesizeCellRenderer;\r\n        colDef.getQuickFilterText = this.customContext(\r\n          CellRenderer.filesizeCellRenderer\r\n        );\r\n        break;\r\n      }\r\n    }\r\n    return colDef;\r\n  }\r\n\r\n  private customContext(fnc, mixin?) {\r\n    return param => {\r\n      return fnc(Object.assign({}, param, {context: this.context}, mixin));\r\n    };\r\n  }\r\n\r\n  public metaValueGetter(titleFnc: Function, mapFnc: Function = v => v) {\r\n    return params => {\r\n      // data could be empty on first rendering a cell while infinite scrolling\r\n      if (params.node.group || !params.data) {\r\n        return '';\r\n      }\r\n\r\n      // todo: super hotfix - COOL-8989 - solves problem with resolving of ORGANIZATION value (via qname)\r\n      const fieldMeta = params.colDef.field + '_meta';\r\n      const value = !params.data.hasOwnProperty(fieldMeta)\r\n        ? mapFnc(\r\n          (params.data[params.colDef.field] !== undefined) ? params.data[params.colDef.field] :\r\n          params.data[params.colDef.refData.qname]\r\n        )\r\n        : Array.isArray(params.data[fieldMeta])\r\n          ? params.data[fieldMeta].map(v => titleFnc(v || {}))\r\n          : titleFnc(params.data[fieldMeta] || {});\r\n      return value;\r\n    };\r\n  }\r\n\r\n  public dateComparator(datePipe, withTime = false) {\r\n    return (a: Date, b) => {\r\n      if (!b) {\r\n        return null;\r\n      }\r\n\r\n      const pattern = withTime ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\r\n      let date = b.length === (withTime ? 16 : 10) ? b : datePipe.transform(b, pattern);\r\n      return (\r\n        _.defaultComparator(datePipe.transform(a, pattern), date) *\r\n        -1\r\n      );\r\n    };\r\n  }\r\n\r\n}\r\n\r\nexport class CellRenderer {\r\n\r\n  static situation = '';\r\n\r\n  static windowURI(uri: any) {\r\n    return uri.toString().replace(new RegExp('^\\/|^\\\\\\\\'), '');\r\n  }\r\n\r\n  static render(type: string, param: any, newParam?: any) {\r\n    return CellRenderer[type + 'CellRenderer'](\r\n      Object.assign({}, param, newParam)\r\n    );\r\n  }\r\n\r\n  static filesizeCellRenderer(param) {\r\n    if (param.value === null && CellRenderer.situation === 'SEARCH') {\r\n      return CellRenderer.noValueRenderer(param);\r\n    }\r\n    return param.value ? param.context.fileSizePipe.transform(param.value) : '';\r\n  }\r\n\r\n  static numberCellRenderer(param) {\r\n    if (param.value === null && CellRenderer.situation === 'SEARCH') {\r\n      return CellRenderer.noValueRenderer(param);\r\n    }\r\n    if (param.value || param.value === 0) {\r\n      if (param.value.operator) {\r\n        // range value from search form table\r\n        return param.value.operator ===\r\n          SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH\r\n          ? CellRenderer.numberCellRendererTemplate(\r\n            param.value.firstValue,\r\n            param.context,\r\n            param.grouping,\r\n            param.pattern,\r\n            param.scale\r\n          ) +\r\n          ' ' +\r\n          RangeValue.getOperatorLabel(param.value.operator) +\r\n          ' ' +\r\n          CellRenderer.numberCellRendererTemplate(\r\n            param.value.secondValue,\r\n            param.context,\r\n            param.grouping,\r\n            param.pattern,\r\n            param.scale\r\n          )\r\n          : RangeValue.getOperatorLabel(param.value.operator) +\r\n          ' ' +\r\n          CellRenderer.numberCellRendererTemplate(\r\n            param.value.firstValue,\r\n            param.context,\r\n            param.grouping,\r\n            param.pattern,\r\n            param.scale\r\n          );\r\n      } else {\r\n        return CellRenderer.numberCellRendererTemplate(\r\n          param.value,\r\n          param.context,\r\n          param.grouping,\r\n          param.pattern,\r\n          param.scale\r\n        );\r\n      }\r\n    } else {\r\n      return '';\r\n    }\r\n  }\r\n\r\n  static numberCellRendererTemplate(\r\n    value,\r\n    context,\r\n    grouping?,\r\n    pattern?,\r\n    scale?\r\n  ) {\r\n    return context.numberPipe.transform(\r\n      value,\r\n      grouping,\r\n      pattern,\r\n      scale\r\n    );\r\n  }\r\n\r\n  static stringCellrenderer(param) {\r\n    if (param.value === null && CellRenderer.situation === 'SEARCH') {\r\n      return CellRenderer.noValueRenderer(param);\r\n    }\r\n    return GridService.escapeHtml(param.value);\r\n  }\r\n\r\n  static typeCellRenderer(param) {\r\n    if (param.value === null && CellRenderer.situation === 'SEARCH') {\r\n      return CellRenderer.noValueRenderer(param);\r\n    }\r\n    let val = '';\r\n    if (param.value) {\r\n      let objectType = param.context.system.getObjectType(param.value);\r\n      if (!objectType) {\r\n        return val;\r\n      }\r\n      return CellRenderer.iconCellRenderer(\r\n        Object.assign({}, param, {value: objectType})\r\n      );\r\n    }\r\n    return val;\r\n  }\r\n\r\n  static iconCellRenderer(param) {\r\n    if (param.value === null && CellRenderer.situation === 'SEARCH') {\r\n      return CellRenderer.noValueRenderer(param);\r\n    }\r\n    let val = '';\r\n    if (param.value && (param.value.url || param.value.iconId)) {\r\n      let iconUrl = param.value.url\r\n        ? param.context.baseHref + param.value.url\r\n        : param.context.backend.getBaseWithContext(param.context.backend.getServiceBase()) +\r\n        '/ui/icon/' +\r\n        param.value.iconId +\r\n        '.svg';\r\n      let label = param.value.label;\r\n      val = `<img class=\"object-type\" src=\"${iconUrl}\" title=\"${label}\"><span class=\"object-type-label\">${label}</span>`;\r\n    }\r\n    return val;\r\n  }\r\n\r\n  static emailCellRenderer(param) {\r\n    if (param.value === null && CellRenderer.situation === 'SEARCH') {\r\n      return CellRenderer.noValueRenderer(param);\r\n    }\r\n    return param.value\r\n      ? `<a href=\"mailto:${param.value}\">${GridService.escapeHtml(\r\n        param.value\r\n      )}</a>`\r\n      : '';\r\n  }\r\n\r\n  static urlCellRenderer(param) {\r\n    if (param.value === null && CellRenderer.situation === 'SEARCH') {\r\n      return CellRenderer.noValueRenderer(param);\r\n    }\r\n    return param.value\r\n      ? `<a target=\"_blank \" href=\"${param.value}\">${GridService.escapeHtml(\r\n        param.value\r\n      )}</a>`\r\n      : '';\r\n  }\r\n\r\n  static dateTimeCellRenderer(param) {\r\n    if (param.value === null && CellRenderer.situation === 'SEARCH') {\r\n      return CellRenderer.noValueRenderer(param);\r\n    }\r\n    if (param.value) {\r\n      if (param.value.operator) {\r\n        // range value from search form table\r\n        return param.value.operator ===\r\n          SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH\r\n          ? CellRenderer.dateTimeCellRendererTemplate(\r\n            param.value.firstValue,\r\n            param.context,\r\n            param.pattern\r\n          ) +\r\n          ' ' +\r\n          RangeValue.getOperatorLabel(param.value.operator) +\r\n          ' ' +\r\n          CellRenderer.dateTimeCellRendererTemplate(\r\n            param.value.secondValue,\r\n            param.context,\r\n            param.pattern\r\n          )\r\n          : RangeValue.getOperatorLabel(param.value.operator) +\r\n          ' ' +\r\n          CellRenderer.dateTimeCellRendererTemplate(\r\n            param.value.firstValue,\r\n            param.context,\r\n            param.pattern\r\n          );\r\n      } else {\r\n        return CellRenderer.dateTimeCellRendererTemplate(\r\n          param.value,\r\n          param.context,\r\n          param.pattern\r\n        );\r\n      }\r\n    } else {\r\n      return '';\r\n    }\r\n  }\r\n\r\n  static dateTimeCellRendererTemplate(value, context, pattern) {\r\n    if (value === null && CellRenderer.situation === 'SEARCH') {\r\n      return `<span class=\"no-value\">${context.translate.instant('eo.form.input.null')}</span>`;\r\n    }\r\n    return `<span date=\"${value}\">${context.datePipe.transform(\r\n      value,\r\n      pattern\r\n    )}</span>`;\r\n  }\r\n\r\n  static booleanCellRenderer(param) {\r\n    if (param.value === null && CellRenderer.situation === 'SEARCH') {\r\n      return CellRenderer.noValueRenderer(param);\r\n    }\r\n    let val = `<path class=\"outline\" d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"/>\r\n                      <path d=\"M 5,19 L 19,5\" stroke=\"rgba(0, 0, 0, 0.54)\" stroke-width=\"2\"/>`;\r\n\r\n    if (param.value === true || param.value === 'true') {\r\n      val = `<path class=\"outline\" d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"/>\r\n             <polyline class=\"checkmark\" points=\"6.3,11.8 7.8,10.3 10.8,13.3 16.3,7.8 17.8,9.3 10.8,16.3 6.3,11.8\"/>`;\r\n    } else if (param.value === false || param.value === 'false') {\r\n      val = `<path class=\"outline\" d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"/>`;\r\n    }\r\n    return `<svg class=\"checkbox\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">${val}</svg>`;\r\n  }\r\n\r\n  static multiSelectCellRenderer(param) {\r\n    if (param.value === null && CellRenderer.situation === 'SEARCH') {\r\n      return CellRenderer.noValueRenderer(param);\r\n    }\r\n    let val = '';\r\n    if (param.value) {\r\n      (Array.isArray(param.value) ? param.value : [param.value]).forEach(\r\n        value => {\r\n          val += `<div class=\"chip\">${GridService.escapeHtml(value)}</div>`;\r\n        }\r\n      );\r\n    }\r\n    return val;\r\n  }\r\n\r\n  static linkCellRenderer(param) {\r\n    if (param.value === null && CellRenderer.situation === 'SEARCH') {\r\n      return CellRenderer.noValueRenderer(param);\r\n    }\r\n    let val = '';\r\n    if (param.value) {\r\n      (Array.isArray(param.value) ? param.value : [param.value]).forEach(\r\n        value => {\r\n          const query = {\r\n            types: [param.reference.type],\r\n            filters: {}\r\n          };\r\n          query.filters[param.reference.element] = {\r\n            o: 'eq',\r\n            v1: value\r\n          };\r\n          const link = Utils.buildUri('result', {\r\n            query: encodeURIComponent(JSON.stringify(query))\r\n          });\r\n          val += `<div class=\"chip\">` +\r\n          `<a class=\"link router-link\" href=\"${link}\" target=\"_blank\" onclick=\"return false;\">` +\r\n          `<svg focusable=\"false\" class=\"ref-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">` +\r\n          `<path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 ` +\r\n          `13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"></path>` +\r\n          `</svg></a><span>${GridService.escapeHtml(value)}</span></div>`;\r\n        }\r\n      );\r\n    }\r\n    return val;\r\n  }\r\n\r\n  static referenceCellRenderer(param) {\r\n    if (param.value === null && CellRenderer.situation === 'SEARCH') {\r\n      return CellRenderer.noValueRenderer(param);\r\n    }\r\n    let text = '';\r\n    const value = param.data ? param.data[param.colDef.field] : '';\r\n    const type = param.context.system.getObjectType(param.reference.type);\r\n    if (!UtilitiesService.isEmpty(value) && type) {\r\n      (Array.isArray(value) ? value : [value]).forEach((val, index) => {\r\n        const link = 'object/' + val + '?type=' + param.reference.type;\r\n        const iconUrl =\r\n          param.context.backend.getBaseWithContext(param.context.backend.getServiceBase()) +\r\n          '/ui/icon/' +\r\n          type.iconId +\r\n          '.svg';\r\n        let title = Array.isArray(param.value)\r\n          ? param.value[index]\r\n          : param.value;\r\n\r\n        // If the user is not allowed to see the reference object or the object was deleted, we don't show the link.\r\n        text += `<div class=\"chip\">` +\r\n          (!title ? '' : `<a class=\"link router-link\" href=\"${link}\" target=\"_blank\" onclick=\"return false;\">` +\r\n            `<svg focusable=\"false\" class=\"ref-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">` +\r\n            `<path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 ` +\r\n            `13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"></path>` +\r\n            `</svg></a>`) +\r\n\r\n        `<img class=\"type-icon\" src=\"${iconUrl}\" title=\"${type.label}\">` +\r\n        `<span>${GridService.escapeHtml(title || type.label)}</span></div>`;\r\n      });\r\n    }\r\n\r\n    return text || param.value;\r\n  }\r\n\r\n  static noValueRenderer(param) {\r\n    return `<span class=\"no-value\">${param.context.translate.instant('eo.form.input.null')}</span>`;\r\n  }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {PendingChangesComponent} from './pending-changes-component.interface';\r\nimport {Observable, ReplaySubject} from 'rxjs';\r\nimport {Utils, Logger} from '@eo-sdk/core';\r\n\r\n/**\r\n * EditingObserver service is used to track changes made inside the application, that should prevent\r\n * doing something or going somewhere before the changes are persisted or ignored. For example when\r\n * the user starts editing form data and tries to navigate away before saving the changes, this service\r\n * will take care of notifying the user.\r\n *\r\n * It is working kind of like a registry for ongoing tasks that need to be monitored. Every component\r\n * that needs to be aware of changes to be persisted can start a task and finish it when everything is done.\r\n *\r\n * Other components can ask the service for pending tasks to know whether or not to execute an action\r\n * (e.g. list component will subscribe and prevent selecting another list item, if changes to the previous one haven't be finished)\r\n *\r\n * app.component will prevent relevant route changes while tasks are pending.\r\n */\r\n\r\n@Injectable()\r\nexport class PendingChangesService {\r\n\r\n  private tasks: string[] = [];\r\n  private tasksSource = new ReplaySubject<string[]>();\r\n  public tasks$: Observable<string[]> = this.tasksSource.asObservable();\r\n\r\n  constructor(private logger: Logger, private translate: TranslateService) {\r\n  }\r\n\r\n  /**\r\n   * Registers a task to be pending.\r\n   * @returns Unique id to be used for finishing this task\r\n   */\r\n  startTask(): string {\r\n    const taskId = Utils.uuid();\r\n    this.tasks.push(taskId);\r\n    this.logger.debug('started pending task: ' + taskId);\r\n    this.tasksSource.next(this.tasks);\r\n    return taskId;\r\n  }\r\n\r\n  /**\r\n   * Finishes a task\r\n   * @param id The id of the task to be finished. This is the one the component got from startTask()\r\n   */\r\n  finishTask(id: string) {\r\n    if (id) {\r\n      this.tasks = this.tasks.filter(t => t !== id);\r\n      this.tasksSource.next(this.tasks);\r\n      this.logger.debug('finished pending task: ' + id);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Returns whether or not the service has pending tasks.\r\n   * If an id is provided, the method will check existence of one specific task.\r\n   *\r\n   * @param id The id of the task to be checked\r\n   * @returns\r\n   */\r\n  hasPendingTask(id?: string | string[]): boolean {\r\n    return !id ? !!this.tasks.length :\r\n    (Array.isArray(id) ? this.tasks.some(value => id.includes(value)) : this.tasks.includes(id));\r\n  }\r\n\r\n  /**\r\n   * Returns whether or not the component|service has pending tasks.\r\n   * Checks via confirm dialog\r\n   * @param component\r\n   * @returns\r\n   */\r\n  check(component?: PendingChangesComponent): boolean {\r\n    if (component ? !component.hasPendingChanges() : !this.hasPendingTask()) {\r\n      return false;\r\n    } else {\r\n      const confirmed = confirm(this.translate.instant('eo.object.indexdata.save.browsernav'));\r\n      if (confirmed) {\r\n        this.clear();\r\n      }\r\n      return !confirmed;\r\n    }\r\n  }\r\n\r\n  checkForPendingTasks(taskIds: string | string[]):boolean {\r\n    if(taskIds && this.hasPendingTask(taskIds)) {\r\n      const confirmed = confirm(this.translate.instant('eo.object.indexdata.save.browsernav'));\r\n      if (confirmed) {\r\n        this.removeTasks(Array.isArray(taskIds) ? taskIds : [taskIds]);\r\n      }\r\n      return !confirmed;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Removes pending tasks from the list\r\n   * @param taskIds the ids of the tasks to remove\r\n   */\r\n  removeTasks(taskIds: string[]) {\r\n    this.tasks = this.tasks.filter(task => !taskIds.includes(task));\r\n    this.tasksSource.next(this.tasks);\r\n  }\r\n\r\n  /**\r\n   * Clear list of pending tasks\r\n   */\r\n  clear() {\r\n    this.tasks = [];\r\n    this.tasksSource.next(this.tasks);\r\n  }\r\n}\r\n","import {EventEmitter, Injectable} from '@angular/core';\r\nimport {NavigationStart, Router} from '@angular/router';\r\nimport {AppCacheService} from '@eo-sdk/core';\r\nimport {filter} from 'rxjs/operators';\r\n// import {SplitAreaComponent} from '../../eo-framework/split/split-area/split-area.component';\r\nimport {PendingChangesService} from '../pending-changes/pending-changes.service';\r\n\r\n// export class AreaState {\r\n\r\n//   hidden;\r\n//   dock;\r\n\r\n//   constructor(public area: SplitAreaComponent, visible = true, hidden = false, dock = true) {\r\n//     this.visible = visible;\r\n//     this.hidden = hidden;\r\n//     this.dock = dock;\r\n//   }\r\n\r\n//   get visible() {\r\n//     return this.area.visible;\r\n//   }\r\n\r\n//   set visible(v: boolean) {\r\n//     this.area.visible = v;\r\n//   }\r\n\r\n// }\r\n\r\n@Injectable()\r\nexport class LayoutService {\r\n\r\n  // public onUndockAreaChanged = new EventEmitter<AreaState>();\r\n\r\n  private CACHE_DISABLED_KEY = 'eo.layout.cache.disabled';\r\n  private _disableCache = false;\r\n  private _history = {};\r\n\r\n  set disableCache(cache: boolean) {\r\n    this._disableCache = cache;\r\n    if (this._disableCache) {\r\n      this.clearHistory();\r\n    } else {\r\n      Object.keys(this._history).forEach(k => this.cacheLayout(k, this._history[k]));\r\n    }\r\n    this.cache.setItem(this.CACHE_DISABLED_KEY, this._disableCache).subscribe();\r\n  }\r\n\r\n  get disableCache() {\r\n    return this._disableCache;\r\n  }\r\n\r\n  // private _undockArea: AreaState;\r\n  // private areas: AreaState[] = [];\r\n  // private areasSource = new ReplaySubject<AreaState[]>(1);\r\n  // public areas$: Observable<AreaState[]> = this.areasSource.asObservable();\r\n\r\n  constructor(private pendingChanges: PendingChangesService, private cache: AppCacheService, private router: Router) {\r\n    this.cache.getItem(this.CACHE_DISABLED_KEY).subscribe(val => this.disableCache = typeof val === 'boolean' ? val : false);\r\n    this.router.events.pipe(filter(r => r instanceof NavigationStart))\r\n      .subscribe(() => this.clearHistory());\r\n  }\r\n\r\n  // getUndockArea() {\r\n  //   return this._undockArea;\r\n  // }\r\n\r\n  clearHistory() {\r\n    this._history = {};\r\n  }\r\n\r\n  // updateArea(area: AreaState, props: any) {\r\n  //   let _area = this.areas.find(a => a === area);\r\n  //   if (_area) {\r\n  //     Object.assign(_area, props);\r\n  //     this.areasSource.next(this.areas);\r\n  //   }\r\n  // }\r\n\r\n  // setAreas(areas: AreaState[], undockArea: AreaState = null) {\r\n  //   this._undockArea = undockArea;\r\n  //   this.areas = areas;\r\n  //   this.areasSource.next(this.areas);\r\n  // }\r\n\r\n  // hideAreas(condition: (area, index) => {}) {\r\n  //   this.areas.forEach((a, i) => Object.assign(a, {visible: !condition.call(this, a, i), hidden: condition.call(this, a, i)}));\r\n  //   this.areasSource.next(this.areas);\r\n  // }\r\n\r\n  // toggleArea(area: AreaState) {\r\n  //   this.updateArea(area, {visible: !area.visible});\r\n  // }\r\n\r\n  // undockArea() {\r\n  //   if (this._undockArea && !this.pendingChanges.check()) {\r\n  //     this.updateArea(this._undockArea, {dock: !this._undockArea.dock});\r\n  //     this.onUndockAreaChanged.emit(this._undockArea);\r\n  //   }\r\n  // }\r\n\r\n  // visibilityUpdate() {\r\n  //   this.areasSource.next(this.areas);\r\n  // }\r\n\r\n  cacheLayout(key: string, layout: any) {\r\n    // if (!this.isUndocked()) {\r\n      if (this.disableCache) {\r\n        this._history[key] = layout;\r\n      } else {\r\n        this.cache.setItem(key, layout).subscribe();\r\n      }\r\n    // }\r\n  }\r\n\r\n  getLayout(key: string) {\r\n    return this.cache.getItem(key);\r\n  }\r\n\r\n  // isUndocked() {\r\n  //   return this._undockArea && !this._undockArea.dock;\r\n  // }\r\n\r\n}\r\n","import {map, mergeMap} from 'rxjs/operators';\r\nimport {Injectable} from '@angular/core';\r\nimport {Observable, forkJoin, of as observableOf} from 'rxjs';\r\nimport {SearchService, SystemService, DmsObject} from '@eo-sdk/core';\r\nimport {UtilitiesService} from '../../eo-framework/util/services/utilities.service';\r\n\r\n@Injectable()\r\nexport class ReferenceService {\r\n\r\n  constructor(private searchService: SearchService,\r\n              private systemService: SystemService) {\r\n  }\r\n\r\n\r\n  getQueries(dmsObject: DmsObject): Observable<any> {\r\n    const result = [this.getOutReferenceQueries(dmsObject), this.getInReferenceQueries(dmsObject)];\r\n    return forkJoin(result).pipe(map(([outReferenceQueries, inReferenceQueries]) => ({outReferenceQueries, inReferenceQueries})));\r\n  }\r\n\r\n  private getOutReferenceQueries(dmsObject: DmsObject): Observable<any> {\r\n    return this.getOutReferenceMetaDatas(dmsObject).pipe(\r\n      map(res => res.map(metaData => {\r\n          let query = this.createOutReferenceQuery(metaData);\r\n          delete query.fields;\r\n          return query;\r\n        })));\r\n  }\r\n\r\n  private getInReferenceQueries(dmsObject: DmsObject) {\r\n    return this.getInReferenceMetaDatas(dmsObject)\r\n      .pipe(\r\n        map(refTypes => refTypes.map(referencedType => {\r\n            let query = this.createInReferenceQuery(dmsObject, referencedType);\r\n            delete query.fields;\r\n            return query;\r\n          })));\r\n  }\r\n\r\n  getOutReferences(dmsObject: DmsObject): Observable<any> {\r\n    let obs = [];\r\n    let outReferenceMetaDatas;\r\n    return this.getOutReferenceMetaDatas(dmsObject).pipe(\r\n      mergeMap(response => {\r\n          outReferenceMetaDatas = response;\r\n          outReferenceMetaDatas.forEach(metaData => {\r\n            let query = this.createOutReferenceQuery(metaData);\r\n            let promise = this.executeQuery(query);\r\n            obs.push(promise);\r\n          });\r\n          return obs.length > 0 ? forkJoin(obs) : observableOf([]);\r\n        }\r\n      ),\r\n      map(results => this.mergeQueryResults(results, outReferenceMetaDatas)));\r\n  }\r\n\r\n  private mergeQueryResults(results, metaDatas) {\r\n    let mergedResult = [];\r\n    results.forEach((result, index) => {\r\n      result.forEach((hit) => hit._source.metaData = metaDatas[index]);\r\n      mergedResult = mergedResult.concat(result);\r\n    });\r\n    return mergedResult.map(mR => mR._source);\r\n  }\r\n\r\n  private createOutReferenceQuery(outReferenceMetaData) {\r\n    let query;\r\n    if (outReferenceMetaData.remoteElement) {\r\n      query = {\r\n        filters: {},\r\n        fields: ['title', 'description', 'type'],\r\n        types: [outReferenceMetaData.objectType.name],\r\n        options: {\r\n          suggest: true,\r\n          searchmode: 'idxs'\r\n        }\r\n      };\r\n\r\n      query.filters[outReferenceMetaData.remoteElement.qname] = {\r\n        o: Array.isArray(outReferenceMetaData.value) ? 'in' : 'eq',\r\n        v1: outReferenceMetaData.value\r\n      };\r\n    } else {\r\n      query = {\r\n        term: '',\r\n        fields: ['title', 'description'],\r\n        options: {expertmode: true},\r\n        types: [outReferenceMetaData.objectType.name]\r\n      };\r\n      outReferenceMetaData.value.forEach((value, index, arr) => {\r\n        query.term += '_id:' + value + (index === arr.length - 1 ? '' : ' || ');\r\n      });\r\n    }\r\n    return query;\r\n  }\r\n\r\n  private getOutReferenceMetaDatas(dmsObject: DmsObject): Observable<any> {\r\n    let metaDatas = [];\r\n    let types = this.systemService.getObjectTypes();\r\n\r\n    let formElements = types.find(t => t.name === dmsObject.typeName).elements;\r\n    let outReferenceFields = this.getOutReferenceFields(formElements);\r\n\r\n    outReferenceFields.forEach(field => {\r\n      let objectType = types.find(t => t.qname === field.reference.type);\r\n      if (objectType && objectType.isAbstract) {\r\n        let subTypes = this.getSubTypes(objectType.name, types);\r\n        subTypes.forEach(subType => {\r\n            let remoteElement = field.type === 'STRING' ? subType.elements.find(el => el.qname === field.reference.element) : null;\r\n            let values = dmsObject.data[field.name];\r\n            if (values) {\r\n              if (!Array.isArray(values)) {\r\n                values = [values];\r\n              }\r\n              let metaData = {\r\n                groupField: objectType.name + (remoteElement ? remoteElement.label : 'ID'),\r\n                remoteElement: remoteElement,\r\n                objectType: subType,\r\n                element: field,\r\n                value: values\r\n              };\r\n              metaDatas.push(metaData);\r\n            }\r\n          }\r\n        )\r\n      } else if (objectType) {\r\n        let remoteElement = field.type === 'STRING' ? objectType.elements.find(el => el.qname === field.reference.element) : null;\r\n        let values = dmsObject.data[field.name];\r\n        if (values) {\r\n          if (!Array.isArray(values)) {\r\n            values = [values];\r\n          }\r\n          let metaData = {\r\n            groupField: objectType.name + (remoteElement ? remoteElement.label : 'ID'),\r\n            remoteElement: remoteElement,\r\n            objectType: objectType,\r\n            element: field,\r\n            value: values\r\n          };\r\n          metaDatas.push(metaData);\r\n        }\r\n      }\r\n    });\r\n\r\n    return observableOf(metaDatas.filter(metaData => !UtilitiesService.isEmpty(metaData.value)));\r\n  }\r\n\r\n  private getOutReferenceFields(elements) {\r\n    let outReferenceFields = [];\r\n    elements.forEach(elem => {\r\n      if (elem.reference) {\r\n        outReferenceFields.push(elem);\r\n      }\r\n    });\r\n    return outReferenceFields;\r\n  }\r\n\r\n  getInReferences(dmsObject: DmsObject): Observable<any> {\r\n    let obs = [];\r\n    let inReferenceMetaDatas = [];\r\n    return this.getInReferenceMetaDatas(dmsObject)\r\n      .pipe(\r\n        mergeMap(metaDatas => {\r\n            metaDatas.forEach(metaData => {\r\n              if (metaData.remoteElement.type === 'REFERENCE' || dmsObject.data[metaData.remoteElement.reference.element.split('.')[1]]) {\r\n                let query = this.createInReferenceQuery(dmsObject, metaData);\r\n                let ob = this.executeQuery(query);\r\n                inReferenceMetaDatas.push(metaData);\r\n                obs.push(ob);\r\n              }\r\n            });\r\n            return obs.length > 0 ? forkJoin(obs) : observableOf([]);\r\n          }\r\n        ),\r\n        map(results => this.mergeQueryResults(results, inReferenceMetaDatas))\r\n      );\r\n  }\r\n\r\n  private executeQuery(query: object) {\r\n    return this.searchService\r\n      .executeQuery(query, undefined, 10000)\r\n      .pipe(map(res => res.hits.hits));\r\n  }\r\n\r\n  private createInReferenceQuery(dmsObject: DmsObject, referencedType) {\r\n    let query;\r\n    query = {\r\n      filters: {},\r\n      fields: ['title', 'description', 'type'],\r\n      types: [referencedType.objectType.qname],\r\n      options: {\r\n        suggest: true,\r\n        searchmode: 'idxs'\r\n      }\r\n    };\r\n\r\n    const {multiselect, qname} = referencedType.remoteElement;\r\n    if (referencedType.remoteElement.type === 'STRING') {\r\n      const reference = referencedType.remoteElement.reference.element.split('.')[1];\r\n      query.filters[qname] = {\r\n        o: multiselect ? 'in' : 'eq',\r\n        v1: multiselect && !Array.isArray(dmsObject.data[reference]) ? [dmsObject.data[reference]] : dmsObject.data[reference]\r\n      };\r\n    } else {\r\n      query.filters[qname] = {\r\n        o: multiselect ? 'in' : 'eq',\r\n        v1: multiselect ? [dmsObject.id] : dmsObject.id\r\n      };\r\n    }\r\n    return query;\r\n  }\r\n\r\n  private getInReferenceMetaDatas(dmsObject: DmsObject): Observable<any> {\r\n    let types = this.systemService.getObjectTypes();\r\n    let superTypes = this.getSuperTypes(dmsObject.typeName, types);\r\n    let metaDatas = [];\r\n\r\n    types.forEach(objectType => {\r\n      if (!objectType.isAbstract) {\r\n        objectType.elements\r\n          .forEach(element => {\r\n            if (element.reference && (element.reference.type === dmsObject.type.name || this.isReferenceOnSuperType(element.reference.type, superTypes))) {\r\n              let metaData = {\r\n                groupField: objectType.name + element.label,\r\n                objectType: objectType,\r\n                remoteElement: element\r\n              };\r\n              metaDatas.push(metaData);\r\n            }\r\n          });\r\n      }\r\n    });\r\n    return observableOf(metaDatas);\r\n  }\r\n\r\n  private isReferenceOnSuperType(typeName, superTypes) {\r\n    let isReferenceOnSuperType = false;\r\n    superTypes.forEach(superType => {\r\n        if (superType.qname === typeName) {\r\n          isReferenceOnSuperType = true;\r\n        }\r\n      }\r\n    );\r\n    return isReferenceOnSuperType;\r\n  }\r\n\r\n  private getSuperTypes(typeName, types) {\r\n    let superTypes = [];\r\n    let typeDefinition = types.find(t => t.qname === typeName);\r\n\r\n    if (typeDefinition && typeDefinition.supertypes) {\r\n      typeDefinition.supertypes\r\n        .forEach(sType => {\r\n          superTypes = superTypes.concat(this.getSuperTypes(sType, types));\r\n          let superType = types.find(t => t.qname === sType);\r\n          if (superType) {\r\n            superTypes.push(superType);\r\n          }\r\n        });\r\n    }\r\n    return superTypes;\r\n  }\r\n\r\n  private getSubTypes(typeName, types) {\r\n    let subTypes = [];\r\n    types.forEach(objectType => {\r\n      if (!!objectType.supertypes.find(sT => sT === typeName)) {\r\n        subTypes.push(objectType);\r\n      }\r\n    });\r\n    return subTypes;\r\n  }\r\n\r\n  fetchIDReferenceMetaData(values): Observable<any> {\r\n    let query = {\r\n      term: '',\r\n      fields: ['title', 'description', 'type'],\r\n      options: {expertmode: true}\r\n    };\r\n    values.forEach((val, index, arr) => {\r\n      query.term += '_id:' + val + (index === arr.length - 1 ? '' : ' || ');\r\n    });\r\n    return !query.term ? observableOf([]) : this.executeQuery(query).pipe(\r\n      map(hits => {\r\n        return hits.map(hit => {\r\n          return {\r\n            id: hit._source.id,\r\n            title: hit._source.title,\r\n            description: hit._source.description,\r\n            type: hit._source.type\r\n          };\r\n        });\r\n      })\r\n    );\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {PendingChangesComponent} from './pending-changes-component.interface';\r\nimport {PendingChangesService} from './pending-changes.service';\r\n\r\n@Injectable()\r\nexport class PendingChangesGuard  {\r\n\r\n  constructor(private pendingChanges: PendingChangesService) {\r\n  }\r\n\r\n  canDeactivate(component: PendingChangesComponent): boolean {\r\n    // if there are no pending changes, just allow deactivation; else confirm first\r\n    return !this.pendingChanges.check(component);\r\n  }\r\n}\r\n","import {tap} from 'rxjs/operators';\r\nimport {ErrorHandler, Injectable, Injector} from '@angular/core';\r\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport {NavigationExtras, Router} from '@angular/router';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {AuthService, Logger, NotificationsService, EoError} from '@eo-sdk/core';\r\nimport {Observable} from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ErrorHandlerService implements ErrorHandler, HttpInterceptor {\r\n\r\n  constructor(private injector: Injector) {\r\n  }\r\n\r\n  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n    const auth = this.injector.get(AuthService);\r\n    const router = this.injector.get(Router);\r\n    // need to use location here, because the router may not be ready\r\n    const currentRouteUrl = location.href.substr(location.origin.length);\r\n\r\n    return next.handle(req).pipe(tap((event: HttpEvent<any>) => {\r\n      if (event instanceof HttpResponse) {\r\n        // do stuff with response if you want\r\n      }\r\n    }, (error: any) => {\r\n      if (error instanceof HttpErrorResponse || error.isHttpErrorResponse) {\r\n        if (error.status === 401) {\r\n          auth.logout();\r\n          if (!currentRouteUrl.includes('/enter')) {\r\n            const returnUrl = currentRouteUrl;\r\n            const uriParamQuery: NavigationExtras = {queryParams: returnUrl ? {returnUrl} : {}};\r\n            router.navigate(['/enter'], uriParamQuery).then(() => {\r\n              router.navigate([{outlets: {modal: null}}], <NavigationExtras>{queryParamsHandling: 'preserve'});\r\n            });\r\n          }\r\n        }\r\n      }\r\n    }));\r\n  }\r\n\r\n  handleError(error) {\r\n    if (error) {\r\n      const logger = this.injector.get(Logger);\r\n      const notificationsService = this.injector.get(NotificationsService);\r\n      const translate = this.injector.get(TranslateService);\r\n\r\n      const title = error.name ? error.name : error.toString();\r\n      const message = error.message ? error.message : '';\r\n\r\n      if (!message.includes('ExpressionChangedAfterItHasBeenCheckedError')) {\r\n        logger.error(error);\r\n      } else {\r\n        logger.warn(error);\r\n      }\r\n\r\n      if (error instanceof EoError && error.skipNotification) {\r\n        // do nothing: error is logged in console\r\n      } else if (error instanceof HttpErrorResponse || error.isHttpErrorResponse) {\r\n\r\n        if (error.status === 401) {\r\n          // do nothing: interceptor handles the error\r\n        } else if (error.status === 503 || error.status === 500) {\r\n\r\n          // todo: is there a better way (Searchservice should not return 500)\r\n          if (error.url.match(/\\/aggregate|\\/autocomplete|\\/attachments/)) {\r\n            // notificationsService.error(title, message);\r\n          } else {\r\n            notificationsService.error(\r\n              translate.instant('eo.error.connection.interrupted.title'),\r\n              translate.instant('eo.error.connection.interrupted.text'), true);\r\n          }\r\n        } else if (error.originalError?.error.key === 'LICENSE_VALID_REQUIRED') {\r\n          notificationsService.error(\r\n              '',\r\n              translate.instant('eo.error.license.expired.message'), true);\r\n\r\n        } else {\r\n          notificationsService.error(title, message, true);\r\n        }\r\n\r\n      } else if (error instanceof EoError) {\r\n        notificationsService.error(title, message, true);\r\n      } else if (error instanceof TypeError) {\r\n        // notificationsService.error(title, message);\r\n      } else if (error instanceof Error && !message.includes('ExpressionChangedAfterItHasBeenCheckedError')) {\r\n        // notificationsService.error(title, message);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {EmptyState} from './empty-state.interface';\r\n\r\n/**\r\n * Handles empty states. Empty states are special objects that can be passed to some\r\n * components indicating an empty state (error while fetching data, empty data, ...)\r\n */\r\n\r\n@Injectable()\r\nexport class EmptyStateService {\r\n\r\n  constructor() {\r\n  }\r\n\r\n  /**\r\n   * Creates a new EmptyState.\r\n   * @param listSize The number of items inside the lists result set (if)\r\n   * @param message Optional message to be displayed\r\n   * @param icon If a special icon should be used provide its uri here otherwise\r\n   * the default icons will be used\r\n   * @returns an empty state or null in case of a listSize > 0\r\n   */\r\n  getEmptyState(listSize: number, message?: string, icon?: string): EmptyState {\r\n\r\n    if (listSize === -1) {\r\n      // error while fetching data\r\n      return {\r\n        icon: icon || 'ic_error.svg',\r\n        text: message || '',\r\n        className: 'error'\r\n      }\r\n\r\n    } else if (listSize === 0) {\r\n      // empty result\r\n      return {\r\n        icon: icon || 'ic_no-file.svg',\r\n        text: message || '',\r\n        className: 'empty'\r\n      }\r\n\r\n    } else {\r\n      // no empty state\r\n      return EmptyStateService.defaultEmptyState();\r\n    }\r\n  }\r\n\r\n  static defaultEmptyState(): EmptyState {\r\n    return {\r\n      icon: undefined,\r\n      text: undefined,\r\n      className: undefined\r\n    }\r\n  }\r\n}\r\n","import {AgentService} from './../../agent/agent.service';\r\n\r\nimport {map} from 'rxjs/operators';\r\nimport {Injectable} from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot, NavigationExtras } from '@angular/router';\r\nimport {AuthService} from '@eo-sdk/core';\r\nimport {Observable} from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AuthGuard  {\r\n\r\n  constructor(private authService: AuthService, private agentService: AgentService, private router: Router) {\r\n  }\r\n\r\n  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {\r\n\r\n    this.agentService.setAgentStatus(route.queryParams['connectagent']).subscribe();\r\n    return this.authService.authenticated$.pipe(\r\n      map((authenticated: boolean) => {\r\n        if (!authenticated) {\r\n          const uriParamQuery: NavigationExtras = {queryParams: {returnUrl: state.url}};\r\n          this.router.navigate(['/enter'], uriParamQuery);\r\n        }\r\n        return authenticated;\r\n      })\r\n    );\r\n  }\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport {Injectable} from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\r\nimport {Observable} from 'rxjs';\r\nimport {AuthService, CapabilitiesService} from '@eo-sdk/core';\r\n\r\n@Injectable()\r\nexport class CapabilitiesGuard  {\r\n\r\n  constructor(private auth: AuthService,\r\n              private router: Router,\r\n              private capabilities: CapabilitiesService) {\r\n  }\r\n\r\n  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {\r\n\r\n    const notFoundRoute = '/not-found';\r\n    return this.auth.authenticated$.pipe(map(\r\n      (authenticated) => {\r\n\r\n        if (authenticated) {\r\n          if (!this.capabilities.hasCapability('intray') && state.url === '/prepare') {\r\n            this.router.navigate([notFoundRoute]);\r\n            return (false);\r\n          } else if (!this.capabilities.hasCapability('inbox') && state.url === '/inbox') {\r\n            this.router.navigate([notFoundRoute]);\r\n            return (false);\r\n          } else if (!this.capabilities.hasCapability('notifications') && state.url === '/notifications') {\r\n            this.router.navigate([notFoundRoute]);\r\n            return (false);\r\n          } else if (!this.capabilities.hasCapability('bpm') && state.url === '/process') {\r\n            this.router.navigate([notFoundRoute]);\r\n            return (false);\r\n          } else if (!this.capabilities.hasCapability('favorites') && state.url === '/favorites') {\r\n            this.router.navigate([notFoundRoute]);\r\n            return (false);\r\n          } else if (!this.capabilities.hasCapability('storedqueries') && state.url === '/stored-queries') {\r\n            this.router.navigate([notFoundRoute]);\r\n            return (false);\r\n          } else {\r\n            return (true);\r\n          }\r\n        } else {\r\n          return (true);\r\n        }\r\n      }\r\n    ));\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {DmsObject, Config} from '@eo-sdk/core';\r\nimport {Title} from '@angular/platform-browser';\r\nimport {SelectionService} from '../selection/selection.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class PageTitleService {\r\n\r\n  baseTitle: string;\r\n  private DEFAULT_TITLE: string;\r\n\r\n  constructor(private titleService: Title, private selection: SelectionService, private config: Config) {\r\n    this.DEFAULT_TITLE = this.config.getRaw('dashboardTitle') || 'yuuvis® RAD client';\r\n    this.selection.focus$\r\n      .subscribe((item: DmsObject) => {\r\n        if (this.baseTitle) {\r\n          this.titleService.setTitle((item && item.title) ? `${this.baseTitle}: ${item.title}` : this.baseTitle);\r\n        } else if (item && item.title) {\r\n          this.titleService.setTitle(item.title);\r\n        } else {\r\n          this.setDefaultTitle();\r\n        }\r\n      });\r\n  }\r\n\r\n  setBaseTitle(base: string) {\r\n    this.baseTitle = base;\r\n    this.titleService.setTitle(this.baseTitle || this.DEFAULT_TITLE);\r\n  }\r\n\r\n  setDefaultTitle() {\r\n    this.baseTitle = null;\r\n    this.titleService.setTitle(this.DEFAULT_TITLE);\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport {UploadRegistryService} from '@eo-sdk/core';\r\nimport {Observable} from 'rxjs';\r\n\r\n@Injectable()\r\nexport class UploadOverlayGuard  {\r\n\r\n  constructor(private uploadRegistry: UploadRegistryService) {\r\n  }\r\n\r\n  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {\r\n    return !this.uploadRegistry.isOverlayActive()\r\n  }\r\n}\r\n","import {ErrorHandler, ModuleWithProviders, NgModule, Optional, SkipSelf} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport {AppSearchService} from './search/app-search.service';\r\nimport {LocationService} from './location/location.service';\r\nimport {SelectionService} from './selection/selection.service';\r\nimport {PluginsService} from './api/plugins.service';\r\nimport {GridService} from './api/grid.service';\r\nimport {LayoutService} from './layout/layout.service';\r\nimport {AgentService} from './agent/agent.service';\r\nimport {ReferenceService} from './references/reference.service';\r\nimport {PendingChangesGuard} from './pending-changes/pending-changes-guard.service';\r\nimport {PendingChangesService} from './pending-changes/pending-changes.service';\r\nimport {ErrorHandlerService} from './error-handler/error-handler.service';\r\nimport {EmptyStateService} from './empty-state/empty-state.service';\r\nimport {AuthGuard} from './route-guards/auth/auth-guard.service';\r\nimport {CapabilitiesGuard} from './route-guards/capabilities/capabilities-guard.service';\r\nimport {PageTitleService} from './title/page-title.service';\r\nimport {UploadOverlayGuard} from '../eo-framework/upload-overlay/upload-overlay-guard.service';\r\n\r\n@NgModule({ imports: [CommonModule], providers: [\r\n        AppSearchService,\r\n        AuthGuard,\r\n        PluginsService,\r\n        GridService,\r\n        LocationService,\r\n        SelectionService,\r\n        LayoutService,\r\n        CapabilitiesGuard,\r\n        PendingChangesService,\r\n        PendingChangesGuard,\r\n        AgentService,\r\n        UploadOverlayGuard,\r\n        ReferenceService,\r\n        EmptyStateService,\r\n        PageTitleService,\r\n        {\r\n            provide: HTTP_INTERCEPTORS,\r\n            useClass: ErrorHandlerService,\r\n            multi: true\r\n        },\r\n        {\r\n            // provide a error handling for the current platform\r\n            provide: ErrorHandler,\r\n            useClass: ErrorHandlerService\r\n        },\r\n        provideHttpClient(withInterceptorsFromDi())\r\n    ] })\r\nexport class EoFrameworkCoreModule {\r\n\r\n  static forRoot(): ModuleWithProviders<EoFrameworkCoreModule> {\r\n    return {\r\n      ngModule: EoFrameworkCoreModule,\r\n      providers: []\r\n    };\r\n  }\r\n\r\n  constructor(@Optional() @SkipSelf() parentModule: EoFrameworkCoreModule) {\r\n    if (parentModule) {\r\n      throw new Error(\r\n        'EoFrameworkCoreModule is already loaded. Import it in the AppModule only');\r\n    }\r\n  }\r\n}\r\n","export const EnaioErrorKeys = {\r\n  FAVORITE_TITLE_TOO_LONG: 'USER_FAVORITE_TITLE_TOO_LONG'\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'safeHtml' })\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n  constructor(private sanitizer: DomSanitizer) {}\r\n\r\n  transform(style): SafeHtml {\r\n    return style ? this.sanitizer.bypassSecurityTrustHtml(style) : style;\r\n    // return this.sanitizer.bypassSecurityTrustStyle(style);\r\n    // return this.sanitizer.bypassSecurityTrustXxx(style); - see docs\r\n  }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({name: 'keys', pure: false})\r\nexport class KeysPipe implements PipeTransform {\r\n  transform(value: any, args: any[] = null): any {\r\n    return Object.keys(value); //.map(key => value[key]);\r\n  }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {SafeHtmlPipe} from './safe-html.pipe';\r\nimport {KeysPipe} from './keys.pipe';\r\nimport {LocaleCurrencyPipe, LocalePercentPipe, LocaleDecimalPipe, LocaleNumberPipe} from './locale-number.pipe';\r\nimport {LocaleDatePipe} from './locale-date.pipe';\r\nimport {FileSizePipe} from './filesize.pipe';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  declarations: [\r\n    FileSizePipe,\r\n    LocaleDatePipe,\r\n    LocaleDecimalPipe,\r\n    LocalePercentPipe,\r\n    LocaleCurrencyPipe,\r\n    LocaleNumberPipe,\r\n    KeysPipe,\r\n    SafeHtmlPipe\r\n  ],\r\n  exports: [\r\n    FileSizePipe,\r\n    LocaleDatePipe,\r\n    LocaleDecimalPipe,\r\n    LocalePercentPipe,\r\n    LocaleCurrencyPipe,\r\n    LocaleNumberPipe,\r\n    KeysPipe,\r\n    SafeHtmlPipe\r\n  ]\r\n})\r\nexport class PipesModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'eo-simple-accordion',\r\n  templateUrl: './simple-accordion.component.html',\r\n  styleUrls: ['./simple-accordion.component.scss'],\r\n})\r\nexport class SimpleAccordionComponent {\r\n\r\n  @HostBinding('attr.role') role = 'tablist';\r\n  _selected: boolean;\r\n  link: string;\r\n\r\n  @Input() header: string;\r\n  @Input() item?: any;\r\n  @Input() styles: string;\r\n  @Input() headerClass: string;\r\n\r\n  @HostBinding('class.selected')\r\n  @Input()\r\n  set selected(val: boolean) {\r\n    this._selected = val;\r\n    this.link = `object/${this.item?.contextFolder?.id}?type=${this.item?.contextFolder?.typeName}`;\r\n  }\r\n\r\n  get selected(): boolean {\r\n    return this._selected;\r\n  }\r\n\r\n  @Output() selectChange: EventEmitter<boolean> = new EventEmitter();\r\n  // index: number = null;\r\n  // lastIndex = -1;\r\n\r\n  toggleOpen() {\r\n    this.selected = !this.selected;\r\n    this.selectChange.emit(this.selected);\r\n  }\r\n\r\n  onLinkClick(event: MouseEvent) {\r\n    event.stopPropagation();\r\n  }\r\n\r\n  // onTabOpen(e) {\r\n  //   const index = e.index;\r\n  //   this.selected = true;\r\n  //   this.onOpen.emit(this.selected);\r\n  // }\r\n\r\n  // onTabClose(e = false) {\r\n  //   this.index = this.lastIndex--;\r\n  //   this.selected = false;\r\n  //   this.onOpen.emit(this.selected);\r\n  // }\r\n}\r\n","<button class=\"accordion-btn\" (click)=\"toggleOpen()\">\r\n  <div>\r\n    {{header}}\r\n    <a class=\"link router-link\" (click)=\"onLinkClick($event)\" [href]=\"link\">{{ this.item?.contextFolder?.title ||\r\n      this.item?.contextFolder?.id }}</a>\r\n  </div>\r\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\">\r\n    <path d=\"M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z\"></path>\r\n  </svg>\r\n</button>\r\n<section *ngIf=\"selected\"><ng-content></ng-content></section>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {SimpleAccordionComponent} from './simple-accordion/simple-accordion.component';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  declarations: [SimpleAccordionComponent],\r\n  exports: [SimpleAccordionComponent]\r\n})\r\nexport class AccordionModule {\r\n}\r\n","export enum SelectionRange {\r\n  SINGLE_SELECT,\r\n  MULTI_SELECT,\r\n  MULTI_SELECT_ONLY\r\n}\r\n","import {Component, ElementRef, Input, Renderer2, ViewEncapsulation} from '@angular/core';\r\nimport {Logger, ObjectType, BackendService} from '@eo-sdk/core';\r\n\r\n/**\r\n * Component to display an icon.\r\n *\r\n * Specify `iconSrc` attribute to set the src of the icon to be displayed:\r\n *   <eo-icon [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\r\n *\r\n * Adding the `badge` property will show a tiny badge on top of the icon:\r\n *   <eo-icon [iconSrc]=\"{{src}}\" [badge]=\"15\"></eo-icon>\r\n *\r\n * Adding a `button` class to the component, will style the svg icon more like a button:\r\n *   <eo-icon class=\"button\" [iconSrc]=\"{{src}}\"></eo-icon>\r\n *\r\n * By default all svg-icons will be rendered as kind of black on white. If you like them\r\n * to be placed on a dark background (and colored white) then add the class `white` to the\r\n * component:\r\n *   <eo-icon class=\"white\" [iconSrc]=\"{{src}}\"></eo-icon>\r\n *\r\n * You may also provide the component with an `objectType` attribute which expects an\r\n * `ObjectType` as input. This will then display the svg icon of this ObjectType.\r\n *\r\n */\r\n@Component({\r\n  selector: 'eo-icon',\r\n  template: '',\r\n  styleUrls: ['./eo-icon.component.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class EoIconComponent {\r\n\r\n  // an ObjectType to display its icon for\r\n  @Input('objectType')\r\n  set objectType(objectType: ObjectType) {\r\n    if (objectType) {\r\n      this.backend\r\n        .getViaCache(this.backend.getIconBase(objectType.iconId))\r\n        .subscribe((svg) => this.render(svg));\r\n    }\r\n  }\r\n\r\n  // id of the icon\r\n  @Input('iconId')\r\n  set iconId(iconId: string) {\r\n    if (iconId) {\r\n      this.backend\r\n        .getViaCache(this.backend.getIconBase(iconId))\r\n        .subscribe((svg) => this.render(svg));\r\n    }\r\n  }\r\n\r\n  // path to the icon\r\n  @Input('iconSrc')\r\n  set iconSrc(iconSrc: string) {\r\n    if (iconSrc) {\r\n      const icon = iconSrc.includes('/') ? iconSrc : `assets/_default/svg/${iconSrc}`;\r\n\r\n      this.backend\r\n        .getViaCache(icon)\r\n        .subscribe((svg) => this.render(svg));\r\n    }\r\n  }\r\n\r\n  // badge content\r\n  @Input('badge')\r\n  set badge(badge: string) {\r\n    if (badge) {\r\n      this._renderer\r\n        .setAttribute(\r\n          this.elementRef.nativeElement,\r\n          'data-badge',\r\n          badge\r\n        );\r\n      this._renderer\r\n        .addClass(\r\n          this.elementRef.nativeElement,\r\n          'badged'\r\n        );\r\n    } else {\r\n      this._renderer\r\n        .removeClass(\r\n          this.elementRef.nativeElement,\r\n          'badged'\r\n        );\r\n    }\r\n  }\r\n\r\n  @Input('iconTitle')\r\n  set title(title: string) {\r\n    if (title) {\r\n      this._renderer\r\n        .setAttribute(\r\n          this.elementRef.nativeElement,\r\n          'title',\r\n          title\r\n        );\r\n    }\r\n  }\r\n\r\n  constructor(private backend: BackendService,\r\n              private elementRef: ElementRef,\r\n              private _renderer: Renderer2,\r\n              private logger: Logger) {\r\n  }\r\n\r\n  // renders the actual svg string by adding it to the DOM\r\n  private render(svg: string) {\r\n    const svgElement: SVGElement = this.svgElementFromString(svg);\r\n    if (svgElement && svgElement instanceof SVGElement) {\r\n      this.elementRef.nativeElement.innerHTML = '';\r\n      this.elementRef.nativeElement.appendChild(svgElement);\r\n    } else {\r\n      this.logger.error('Icon is not a valid SVGElement: ' + svg);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Transforms a string to an SVGElement.\r\n   * @param str - the string to be converted\r\n   * @return the SVGElement created from the input or NULL if conversion failed\r\n   */\r\n  private svgElementFromString(str: string): SVGElement {\r\n    const div = document.createElement('DIV');\r\n    div.innerHTML = str;\r\n    return div.querySelector('svg') as SVGElement;\r\n  }\r\n}\r\n","import {AfterViewInit, Directive, ElementRef, Renderer2, Input} from '@angular/core';\r\nimport {UserService, EoUser} from '@eo-sdk/core';\r\n\r\n/**\r\n * Apply this directive to elements or components that should be aware of the apps direction.\r\n * This can be either 'ltr' or 'rtl'. Using this directive will add a class of 'ltr' or 'rtl'\r\n * to the host element, which then can be used to apply special stylings for each direction.\r\n */\r\n\r\n@Directive({\r\n  selector: '[eoRtlAware]'\r\n})\r\nexport class RtlAwareDirective implements AfterViewInit {\r\n\r\n  // define what to do: Choose from `class`, `dir` or `full`\r\n  // `class` (default): set the direction as a css class\r\n  // `dir`: set the direction as dir attribute\r\n  // `full`: set dir attribute as well as class\r\n  @Input() eoRtlAware: string;\r\n\r\n  constructor(private _elementRef: ElementRef,\r\n              private _renderer: Renderer2,\r\n              private userService: UserService) {\r\n  }\r\n\r\n  // set direction as dir attribute on the html element\r\n  private setDir(dir: string) {\r\n    this._renderer.setAttribute(this._elementRef.nativeElement, 'dir', dir);\r\n  }\r\n\r\n  // add direction as a css class on the html element\r\n  private setClass(dir: string) {\r\n    if (dir === 'rtl') {\r\n      this._renderer.addClass(this._elementRef.nativeElement, 'rtl');\r\n    } else {\r\n      this._renderer.removeClass(this._elementRef.nativeElement, 'rtl');\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.userService.user$.subscribe((user: EoUser) => {\r\n\r\n      switch (this.eoRtlAware) {\r\n        case 'dir': {\r\n          this.setDir(user.uiDirection);\r\n          break;\r\n        }\r\n        case 'full': {\r\n          this.setDir(user.uiDirection);\r\n          this.setClass(user.uiDirection);\r\n          break;\r\n        }\r\n        default: {\r\n          this.setClass(user.uiDirection);\r\n        }\r\n      }\r\n\r\n    });\r\n  }\r\n\r\n}\r\n","import {CdkPortalOutlet} from '@angular/cdk/portal';\r\nimport {\r\n  AfterViewInit,\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  Output,\r\n  TemplateRef,\r\n  ViewChild,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport {PendingChangesService} from '../../../eo-framework-core/pending-changes/pending-changes.service';\r\n\r\nimport {YvcOverlayRef, YvcOverlayService} from '@yuuvis/components/overlay';\r\n\r\n@Component({\r\n  selector: 'eo-dialog',\r\n  templateUrl: './eo-dialog.component.html',\r\n  styleUrls: ['./eo-dialog.component.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class EoDialogComponent\r\n  implements AfterViewInit, OnDestroy {\r\n\r\n  @ViewChild(CdkPortalOutlet) portalOutlet: CdkPortalOutlet;\r\n  @ViewChild('dialogContent') dialogContent: TemplateRef<any>;\r\n\r\n  private overlayRef: YvcOverlayRef;\r\n  private _visible = false;\r\n\r\n  @Input() hasPreviewFile = false;\r\n  @Input() title: string;\r\n  @Input() subtitle: string;\r\n  @Input() styleClass = '';\r\n\r\n  // array of pendingTask IDs to be checked before the dialog closes\r\n  @Input() dirtyCheck: string | string[] = [];\r\n\r\n  @Input() minWidth: number | string = 200;\r\n  @Input() minHeight = 'auto';\r\n  @Input() height: string;\r\n  @Input() width: string;\r\n  @Input() focusOnShow = true;\r\n  @Input() align: 'center' | 'start' = 'center';\r\n  @Input() isFormTable = false;\r\n  @Input() showPreview = false;\r\n\r\n  @Output() onTogglePreview: EventEmitter<any> = new EventEmitter();\r\n  @Output() visibleChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() hide: EventEmitter<any> = new EventEmitter();\r\n  @Output() show: EventEmitter<any> = new EventEmitter();\r\n\r\n  @Input()\r\n  get visible(): boolean {\r\n    return this._visible;\r\n  }\r\n\r\n  set visible(val) {\r\n    if (val !== this._visible && val) this.open()\r\n    if (val !== this._visible && this._visible) this.closeDialog()\r\n    this._visible = !!val;\r\n    this.visibleChange.emit(this._visible);\r\n    this._visible ? this.show.emit(val) : this.hide.emit(val);\r\n  }\r\n\r\n\r\n\r\n  canClose = (): boolean => {\r\n    if (this.dirtyCheck) {\r\n      return !this.pendingChanges.checkForPendingTasks(this.dirtyCheck)\r\n    } else {\r\n      return true;\r\n    }\r\n  }\r\n\r\n  constructor(\r\n    private pendingChanges: PendingChangesService,\r\n    private overlay: YvcOverlayService,\r\n  ) { }\r\n\r\n  private open() {\r\n    if(!this.dialogContent) return;\r\n    // We create the overlay\r\n    this.overlayRef = this.overlay.open(this.dialogContent, null, {\r\n      disposeOnNavigation: true,\r\n      minHeight: this.minHeight,\r\n      minWidth: this.minWidth,\r\n      height: this.height,\r\n      width: this.width,\r\n      canClose: this.canClose\r\n    })\r\n    this.overlayRef.afterClosed$.subscribe(() => this.hide.emit())\r\n  }\r\n\r\n  closeDialog() {\r\n    if(this.overlayRef) this.overlayRef.close();\r\n  }\r\n\r\n  togglePreview() {\r\n    this.showPreview = !this.showPreview;\r\n    this.onTogglePreview.emit();\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    if (this._visible) {this.open();}\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n      this.closeDialog()\r\n  }\r\n}\r\n","<ng-template #dialogContent>\r\n  <div class=\"eo-dialog\" [ngClass]=\"styleClass || ''\" eoRtlAware=\"dir\">\r\n    <header class=\"eo-dialog-header\" [ngClass]=\"styleClass ? styleClass + '--header ' : ''\">\r\n      <h5 class=\"headline\">{{title}}</h5>\r\n      <h6 *ngIf=\"subtitle\" class=\"subtitle\">{{subtitle}}</h6>\r\n      <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"closeDialog()\"\r\n        class=\"button white eo-dialog-close\"></eo-icon>\r\n      <ng-container *ngIf=\"isFormTable && hasPreviewFile\">\r\n        <button *ngIf=\"showPreview\" (click)=\"togglePreview()\" class=\"button-preview-toggle\">\r\n          <div>\r\n            <eo-icon [iconSrc]=\"'assets/_default/svg/ic_preview_close.svg'\">\r\n            </eo-icon>\r\n            <span class=\"title-preview-toggle\" translate>\r\n              eo.form.table.dialog.preview.hide\r\n            </span>\r\n          </div>\r\n        </button>\r\n        <button *ngIf=\"!showPreview\" (click)=\"togglePreview()\" class=\"button-preview-toggle\">\r\n          <div>\r\n            <eo-icon [iconSrc]=\"'assets/_default/svg/ic_preview_show.svg'\"></eo-icon>\r\n            <span class=\"title-preview-toggle\" translate>\r\n              eo.form.table.dialog.preview.show\r\n            </span>\r\n          </div>\r\n        </button>\r\n      </ng-container>\r\n    </header>\r\n    <div class=\"eo-dialog-content\" [ngClass]=\"styleClass ? styleClass + '--content ' : ''\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </div>\r\n</ng-template>\r\n","\r\nimport {forkJoin as observableForkJoin, Observable} from 'rxjs';\r\n\r\nimport {map} from 'rxjs/operators';\r\nimport {Injectable} from '@angular/core';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport {ObjectFormScriptingScope} from './object-form-scripting-scope';\r\nimport moment from 'moment';\r\nimport {Logger, BackendService} from '@eo-sdk/core';\r\nimport {UtilitiesService} from '../../../util/services/utilities.service';\r\n\r\n@Injectable()\r\nexport class ObjectFormScriptService {\r\n\r\n  constructor(private logger: Logger,\r\n              private backend: BackendService) {\r\n  }\r\n\r\n  /**\r\n   * Run a form script.\r\n   * @param scope - the current scripting scope\r\n   * @param script - the script to be executed\r\n   * @param [scriptName] - the scripts name\r\n   */\r\n  public runFormScript(scope: ObjectFormScriptingScope, script: any, scriptName?: string) {\r\n\r\n    try {\r\n      // Define form script the function\r\n      let formScriptFunction = this.defineFunction('Formscript/' + scriptName, script);\r\n      // run the form script\r\n      let formScriptReturn = formScriptFunction(\r\n        scope, UtilitiesService.lodash, moment\r\n      );\r\n      // Check if the form script returns something and may export global scripts\r\n      if (formScriptReturn) {\r\n        this.importGlobalScriptsAndCallInit(scope, formScriptReturn);\r\n      }\r\n    } catch (e) {\r\n      if (e instanceof SyntaxError) {\r\n        alert('Syntax error in Form-Script. See console log for details.');\r\n      }\r\n      this.logger.error('Got script error', e);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Define form script function, appending source url as comment.\r\n   * Enables debugging using browser debugging tools (Chrome+Firefox)\r\n   * @see: https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Debug_eval_sources\r\n   *\r\n   * @param name - the name of the script\r\n   * @param script - script to be wrapped in a function\r\n   * @returns the function\r\n   */\r\n  private defineFunction(name: string, script: any): Function {\r\n    // Appending source url as comment. See https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Debug_eval_sources\r\n    // Enables debugging using browser debugging tools (Chrome+Firefox)\r\n    // The line feed is needed, if the script has a comment in the last line\r\n    return new Function('scope', '_', 'moment', script + '\\n;//# sourceURL=' + name + '.js');\r\n  }\r\n\r\n  /**\r\n   * If the script contains global script, this function will import and run them\r\n   * before running the actual script.\r\n   *\r\n   * @param scope - the current scripting scope\r\n   * @param formScriptReturn - the return value of the actual form script\r\n   */\r\n  private importGlobalScriptsAndCallInit(scope: ObjectFormScriptingScope, formScriptReturn: any) {\r\n\r\n    if (!formScriptReturn.init) {\r\n      return;\r\n    }\r\n\r\n    if (formScriptReturn.uses) {\r\n      // collect the global script exports promises\r\n      let exports = [];\r\n      let globals = [];\r\n\r\n      // collect Observables for fetching global scripts\r\n      for (let use of formScriptReturn.uses) {\r\n        globals.push(this.resolveGlobalScript(use, scope));\r\n      }\r\n\r\n      observableForkJoin(globals).subscribe((globalReturns) => {\r\n\r\n        for (let scriptReturn of globalReturns) {\r\n          exports.push(scriptReturn['exports']);\r\n        }\r\n        // Invoke init function on form script return with the\r\n        // collected exports using javascript apply magic\r\n        formScriptReturn.init.apply(this, exports);\r\n      });\r\n    } else {\r\n      // invoke init direct (no use of global scripts)\r\n      formScriptReturn.init();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Fetch global scripts.\r\n   * @param name - the name of the global script\r\n   * @param scope - the current scripting scope\r\n   * @returns\r\n   */\r\n  private resolveGlobalScript(name: string, scope: ObjectFormScriptingScope): Observable<any> {\r\n\r\n    const requestOptions = {\r\n      headers: new HttpHeaders({\r\n        'Accept': 'text/plain'\r\n      }),\r\n      responseType: 'text'\r\n    };\r\n\r\n    return this.backend\r\n      .get(`/script/${name}/script`, null, requestOptions).pipe(\r\n      map((res: any) => {\r\n        // define the global function ...\r\n        let globalScript = this.defineFunction('Global/' + name, res);\r\n        // ... and run it\r\n        return globalScript(scope, UtilitiesService.lodash, moment);\r\n      }));\r\n  }\r\n}\r\n","import {ObjectFormControl} from '../object-form-control';\r\nimport {ValidatorFn, Validators} from '@angular/forms';\r\n\r\nexport class FormValidation {\r\n\r\n  /**\r\n   * Build validators for the given form element to be attached to\r\n   * a reactive formControl.\r\n   *\r\n   * @param formElement - form element object\r\n   * @param situation - form situation to fetch validators for\r\n   */\r\n  static getValidators(formElement: any, situation: string): ValidatorFn[] {\r\n\r\n    let elmValidators: ValidatorFn[] = [];\r\n    let {minlen, maxlen, required, regex} = formElement;\r\n\r\n    // apply situation based validations\r\n    switch (situation) {\r\n      case 'SEARCH': {\r\n        // todo: implement general validators for SEARCH situation\r\n        break;\r\n      }\r\n      default: {\r\n\r\n        if (required) {\r\n          elmValidators.push(Validators.required);\r\n        }\r\n        if (regex && !formElement.multiselect) {\r\n          elmValidators.push(Validators.pattern(regex));\r\n        }\r\n        break;\r\n      }\r\n    }\r\n    return elmValidators;\r\n  }\r\n\r\n  /**\r\n   *\r\n   * @param control - from object control\r\n   * @returns Validation object {eoformScript: {valid: boolean}} or null\r\n   */\r\n  static customScriptingValidation(control: ObjectFormControl): Object | null {\r\n    return (control._eoFormElement && control._eoFormElement.error) ? {eoformScript: {valid: false}} : null;\r\n  }\r\n\r\n}\r\n","import {UntypedFormControl} from '@angular/forms';\r\n\r\n// extensions of the default angular form control\r\n\r\nexport class ObjectFormControl extends UntypedFormControl {\r\n  private __eoFormElement;\r\n\r\n  public set _eoFormElement(v) {\r\n    this.__eoFormElement = v;\r\n  };\r\n\r\n  public get _eoFormElement() {\r\n    return this.__eoFormElement;\r\n  }\r\n}\r\n","import {UntypedFormGroup} from '@angular/forms';\r\n\r\nexport interface EoFormGroupWrapper {\r\n  // form control situation (CREATE, EDIT, SEARCH)\r\n  situation: string;\r\n  // the name of the wrapped form control\r\n  controlName: string;\r\n}\r\n\r\n/**\r\n * Extend angulars default UntypedFormGroup for implementation of a form group wrapping\r\n * a form control.\r\n */\r\nexport class ObjectFormControlWrapper extends UntypedFormGroup {\r\n  _eoFormControlWrapper: EoFormGroupWrapper;\r\n}\r\n","import {UntypedFormGroup} from '@angular/forms';\r\n\r\nexport interface EoFormGroup {\r\n  id?: string;\r\n  // the label for the form group\r\n  label?: string;\r\n  // object holding properties defining layout properties of the group\r\n  layout: any;\r\n  // type of group indicating if the form is a stack, a fieldset or a simple group\r\n  type: string;\r\n  // object containing the groups child form components\r\n  // key is the controls name, value the actual form control or -group\r\n  //controls?: any;\r\n}\r\n\r\n// extensions of the default angular form groups\r\n\r\nexport class ObjectFormGroup extends UntypedFormGroup {\r\n  public _eoFormGroup: EoFormGroup;\r\n}\r\n","import {cloneDeep} from 'lodash-es';\r\n\r\n// This class will be injected as scope into form scripts\r\nexport class ObjectFormScriptingScope {\r\n\r\n  // List of all form fields (elements)\r\n  public model: any = {};\r\n\r\n  // all data values including invisible elements (READONLY)\r\n  public data: any = {};\r\n\r\n  // The id of the current DMS-Object (READONLY)\r\n  public objectId: string;\r\n\r\n  // actions passed by BPM forms\r\n  public actions: any = {};\r\n  // additional objects provided by the object form\r\n  // used for example to pass dms objects attached to a work item\r\n  // to the script (READONLY)\r\n  // may contain: FormScriptDmsObject, FileEntry\r\n  public objects: any[] = [];\r\n  public context: { id: string, title: string, typeName: string } = {id: '', title: '', typeName: ''};\r\n\r\n\r\n  /**\r\n   * Constructor\r\n   * @param situation - Current form model situation (could be CREATE, SEARCH or EDIT)\r\n   * @param onScriptingModelChange - callback function to be called when the scripting model changed\r\n   * Be aware to provide an instance method as callback for the scripting scope.\r\n   * @see: https://blog.johnnyreilly.com/2014/04/typescript-instance-methods.html\r\n   *\r\n   * @param api - Plugin API reference\r\n   * @param isTableRowScope - set this to true if the current scripting scope is created for a\r\n   * row editing form from a table element. It will then provide the right parameters for the scripting functions\r\n   */\r\n  constructor(public situation: string,\r\n              private onScriptingModelChange,\r\n              public api: any,\r\n              private isTableRowScope?: boolean) {\r\n  }\r\n\r\n  /**\r\n   * Sets the internal model and wraps every model element with an observer to be\r\n   * able to track their changes from within a form script\r\n   * @param model\r\n   */\r\n  public setModel(model: any) {\r\n    this.model = {};\r\n    for (let k of Object.keys(model)) {\r\n      this.model[k] = new ScopeElement(model[k], this.onScriptingModelChange);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Returns the observed model. Used for row editing forms of table elements that\r\n   * create their own scripting scope in context of their parent form.\r\n   * @returns the observed scripting scope model\r\n   */\r\n  public getModel() {\r\n    return this.model;\r\n  }\r\n\r\n  /**\r\n   * Called by the object form when the form model changes.\r\n   * @param change - object with key equals name of the element\r\n   * that changes and value of the new value\r\n   */\r\n  public modelChanged(change: any) {\r\n\r\n    // find the changed element in the scopes model\r\n    let propertyName = Object.keys(change)[0];\r\n    if (change[propertyName] === undefined) {\r\n      return;\r\n    }\r\n\r\n    if (this.model[propertyName]) {\r\n      let el = this.model[propertyName];\r\n      el.update(change[propertyName], this.model);\r\n    }\r\n  }\r\n}\r\n\r\nclass ScopeElement {\r\n  private element;\r\n\r\n  constructor(private originalElement: any, private onScriptingModelChange: Function) {\r\n    this.element = cloneDeep(originalElement);\r\n    if (this.element.value === undefined) {\r\n      this.element.value = null;\r\n    }\r\n    if (this.isProxyable(this.element.value)) {\r\n      this.element.value = this.createProxy(this.element.value);\r\n    }\r\n  }\r\n\r\n  private isProxyable(value, key?: string) {\r\n    return (typeof value === 'object' || Array.isArray(value))\r\n      && value !== null\r\n      && !(value instanceof Date)\r\n      && !value.isProxy\r\n      && (key ? !key.includes('_meta') : true);\r\n  }\r\n\r\n  private createProxy(value) {\r\n    const handler = {\r\n      set: (target, key, val) => {\r\n        const previousValue = cloneDeep(this.element.value);\r\n        target[key] = val;\r\n        if (this.hasValueChanged(this.element.value, previousValue) && !key.includes('_meta')) {\r\n          this.onScriptingModelChange(this.element.name, {newValue: cloneDeep(this.element.value), name: 'value'});\r\n        }\r\n        return true;\r\n      },\r\n      // This get trap is only used to find out, if an object is a proxy or not.\r\n      get: (target, key) => {\r\n        if (key === 'isProxy') {\r\n          return true;\r\n        }\r\n        return target[key];\r\n      }\r\n    };\r\n\r\n    return new Proxy(value, handler);\r\n  }\r\n\r\n  private hasValueChanged(value1, value2) {\r\n    let v1 = value1;\r\n    let v2 = value2;\r\n    if(Array.isArray(value1) && typeof value1[0] === 'object' && Array.isArray(value2) && typeof value2[0] === 'object'){// this is only the case in tables\r\n      v1 = value1.map(entry => this.createEntryWithoutMetadata(entry));// removing metadata from every row, because it's insignificant for change detection\r\n      v2 = value2.map(entry => this.createEntryWithoutMetadata(entry));// and can cause false \"true\"-results\r\n    }\r\n    return JSON.stringify(v1) !== JSON.stringify(v2);\r\n  }\r\n\r\n  private createEntryWithoutMetadata(entry){\r\n    let entryWithoutMetadata = {...entry};\r\n    Object.keys(entryWithoutMetadata).forEach(key => {\r\n      delete entryWithoutMetadata[key + '_meta'];\r\n    });\r\n    return entryWithoutMetadata;\r\n  }\r\n\r\n  update(value, model) {\r\n    const newValue = cloneDeep(value);\r\n    if (this.hasValueChanged(this.element.value, value)) {\r\n      if (this.isProxyable(newValue)) {\r\n        this.element.value = this.createProxy(newValue);\r\n      } else {\r\n        this.element.value = newValue;\r\n      }\r\n      if (this.element.onchange) {\r\n        this.element.onchange(this, model);\r\n      }\r\n    }\r\n  }\r\n\r\n  set value(value) {\r\n    if (this.isProxyable(value)) {\r\n      this.element.value = this.createProxy(value);\r\n    } else {\r\n      this.element.value = value;\r\n    }\r\n    this.onScriptingModelChange(this.element.name, {newValue: cloneDeep(this.element.value), name: 'value'});\r\n  }\r\n\r\n  get value() {\r\n    return this.element.value;\r\n  }\r\n\r\n  set onchange(onchange) {\r\n    this.element.onchange = onchange;\r\n    this.onScriptingModelChange(this.element.name, {newValue: onchange, name: 'onchange'});\r\n  }\r\n\r\n  get onchange() {\r\n    return this.element.onchange;\r\n  }\r\n\r\n  set required(required) {\r\n    if(this.hasValueChanged(this.element.required, required)){\r\n      this.element.required = required;\r\n      this.onScriptingModelChange(this.element.name, {newValue: required, name: 'required'});\r\n    }\r\n  }\r\n\r\n  get required() {\r\n    return this.element.required;\r\n  }\r\n\r\n  set readonly(readonly) {\r\n    this.element.readonly = readonly;\r\n    this.onScriptingModelChange(this.element.name, {newValue: readonly, name: 'readonly'});\r\n  }\r\n\r\n  get readonly() {\r\n    return this.element.readonly;\r\n  }\r\n\r\n  set error(error) {\r\n    if(this.hasValueChanged(this.element.error, error)){\r\n      this.element.error = error;\r\n      this.onScriptingModelChange(this.element.name, {newValue: error, name: 'error'});\r\n    }\r\n  }\r\n\r\n  get error() {\r\n    return this.element.error;\r\n  }\r\n\r\n  set onrowedit(onrowedit) {\r\n    this.element.onrowedit = onrowedit;\r\n    this.onScriptingModelChange(this.element.name, {newValue: onrowedit, name: 'onrowedit'});\r\n  }\r\n\r\n  get onrowedit() {\r\n    return this.element.onrowedit;\r\n  }\r\n\r\n  set contextId(contextId) {\r\n    this.element.contextId = contextId;\r\n    this.onScriptingModelChange(this.element.name, {newValue: contextId, name: 'contextId'});\r\n  }\r\n\r\n  get contextId() {\r\n    return this.element.contextId;\r\n  }\r\n\r\n  setList(obj) {\r\n    if (this.originalElement.setList) {\r\n      this.originalElement.setList(obj);\r\n    }\r\n  }\r\n\r\n  applyFilter(func) {\r\n    if (this.originalElement.applyFilter) {\r\n      this.originalElement.applyFilter(func);\r\n    }\r\n  }\r\n\r\n  applyDisablingFilter(func) {\r\n    if (this.originalElement.applyDisablingFilter) {\r\n      this.originalElement.applyDisablingFilter(func);\r\n    }\r\n  }\r\n\r\n  setFilter(obj) {\r\n    if (this.originalElement.setFilter) {\r\n      this.originalElement.setFilter(obj);\r\n    }\r\n  }\r\n\r\n  setQueryFilters(queryFiltersObject: {[fieldQname: string]: {o: string, v1: any, v2: any}}, objectTypes?: string[]) {\r\n    if (this.originalElement.setQueryFilters) {\r\n      this.originalElement.setQueryFilters(queryFiltersObject, objectTypes);\r\n    }\r\n  }\r\n\r\n  get name() {\r\n    return this.element.name;\r\n  }\r\n\r\n  get qname() {\r\n    return this.element.qname;\r\n  }\r\n\r\n  get label() {\r\n    return this.element.label;\r\n  }\r\n\r\n  set description(description) {\r\n    this.element.description = description;\r\n    this.onScriptingModelChange(this.element.name, {newValue: description, name: 'description'});\r\n  }\r\n\r\n  get description() {\r\n    return this.element.description;\r\n  }\r\n\r\n  get type() {\r\n    return this.element.type;\r\n  }\r\n\r\n  get multiselect() {\r\n    return this.element.multiselect;\r\n  }\r\n\r\n  get codesystem() {\r\n    return this.element.codesystem;\r\n  }\r\n\r\n  get minlen() {\r\n    return this.element.minlen;\r\n  }\r\n\r\n  get maxlen() {\r\n    return this.element.maxlen;\r\n  }\r\n\r\n  get classification() {\r\n    return this.element.classification;\r\n  }\r\n\r\n  get scale() {\r\n    return this.element.scale;\r\n  }\r\n\r\n  get precision() {\r\n    return this.element.precision;\r\n  }\r\n\r\n  get withtime() {\r\n    return this.element.withtime;\r\n  }\r\n\r\n  get elements() {\r\n    return this.element.elements;\r\n  }\r\n\r\n  get aliases() {\r\n    return this.element.aliases;\r\n  }\r\n}\r\n","import {DatePipe} from '@angular/common';\r\nimport {Injectable} from '@angular/core';\r\nimport {ValidatorFn, Validators} from '@angular/forms';\r\nimport {Logger, RangeValue, SearchFilter, SearchService, SystemService, Utils} from '@eo-sdk/core';\r\nimport {forkJoin, Observable, of, Subscription} from 'rxjs';\r\nimport {debounceTime, tap} from 'rxjs/operators';\r\n\r\nimport {PluginsService} from '../../eo-framework-core/api/plugins.service';\r\nimport {ReferenceService} from '../../eo-framework-core/references/reference.service';\r\nimport {ObjectFormOptions} from './object-form-options.interface';\r\nimport {FormValidation} from './object-form/form-validation/form-validation';\r\nimport {ObjectFormControl} from './object-form/object-form-control';\r\nimport {ObjectFormControlWrapper} from './object-form/object-form-control-wrapper';\r\nimport {ObjectFormGroup} from './object-form/object-form-group.model';\r\nimport {ObjectFormScriptService} from './object-form/object-form-script/object-form-script.service';\r\nimport {ObjectFormScriptingScope} from './object-form/object-form-script/object-form-scripting-scope';\r\nimport {ObjectFormModel} from './object-form/object-form.model';\r\n\r\nexport interface FormGenScope {\r\n  gCount: number;\r\n  formOptions: ObjectFormOptions;\r\n  isInnerTableForm: boolean;\r\n  initialValidators: {[name: string]: ValidatorFn | null};\r\n  formGenResult: FormGenResult;\r\n}\r\nexport interface FormGenResult {\r\n  // Form controls generated from the model as 'Quick access object'\r\n  // Form elements name is key and the value is the form control itself\r\n  formControls: {[name: string]: ObjectFormControl};\r\n  formModel: any,\r\n  // Subscriptions to value changes of the generated form controls\r\n  // You should always unsubscribe from all of them when consuming\r\n  // component is destroyed\r\n  controlValueSubscriptions: Subscription[];\r\n  scriptingScope: ObjectFormScriptingScope;\r\n  scriptModel: {[name: string]: any};\r\n  form: ObjectFormGroup;\r\n}\r\n\r\n@Injectable()\r\nexport class ObjectFormHelperService {\r\n\r\n  private datePipe = new DatePipe('en');\r\n\r\n  constructor(private logger: Logger,\r\n    private referenceService: ReferenceService,\r\n    private searchService: SearchService,\r\n    private pluginService: PluginsService,\r\n    private systemService: SystemService) {\r\n    this._clearTemporaryStorageEntries();\r\n  }\r\n\r\n  /**\r\n   * Generates a reactive form based on a form model that may also include form scripts.\r\n   * @param formOptions `ObjectFormOptions` defining the form\r\n   * @param formScriptService Instance of a `ObjectFormScriptService`. This service is supposed to be\r\n   * scoped to the component rendering the form (providers array in component decorator).\r\n   * @param isInnerTableForm whether or not the form is part of another form (as is with table edit forms)\r\n   * @returns An `FormGenResult` object\r\n   */\r\n  buildReactiveForm(\r\n    formOptions: ObjectFormOptions,\r\n    formScriptService: ObjectFormScriptService,\r\n    isInnerTableForm?: boolean): FormGenResult {\r\n\r\n    const _scope: FormGenScope = {\r\n      gCount: 0,\r\n      formOptions,\r\n      isInnerTableForm,\r\n      initialValidators: {},\r\n      formGenResult: {\r\n        formControls: {},\r\n        formModel: {},\r\n        controlValueSubscriptions: [],\r\n        scriptingScope: undefined,\r\n        scriptModel: {},\r\n        form: null\r\n      }\r\n    }\r\n\r\n    const formModel = this._dataToForm(_scope, formOptions.formModel, formOptions.data);\r\n    _scope.formGenResult.formModel = formModel;\r\n    if (!formModel) return;\r\n\r\n    // if a script is available, we'll init the form scripting for the\r\n    // current form\r\n    let scriptingScope: ObjectFormScriptingScope;\r\n    if (_scope.isInnerTableForm || (formModel.script && formModel.script.length > 0)) {\r\n      this.logger.debug('adding form scripting scope');\r\n      scriptingScope = new ObjectFormScriptingScope(\r\n        formModel.situation,\r\n        this._getScriptingModelChanged(_scope),\r\n        this.pluginService.getApi(),\r\n        _scope.isInnerTableForm\r\n      );\r\n      scriptingScope.objectId = formOptions.objectId;\r\n    }\r\n    _scope.formGenResult.scriptingScope = scriptingScope;\r\n\r\n\r\n    let form = new ObjectFormGroup({});\r\n    if (formModel.elements[0] && formModel.elements[0].elements) {\r\n      this._addFormControl(_scope, form, formModel.elements[0], 'core');\r\n    }\r\n    if (formModel.elements[1] && formModel.elements[1].elements) {\r\n      this._addFormControl(_scope, form, formModel.elements[1], 'data');\r\n    }\r\n    _scope.formGenResult.form = form;\r\n    this._initValidators(_scope.formGenResult.form, _scope);\r\n    this._initScriptingScope(_scope, formScriptService);\r\n    return _scope.formGenResult;\r\n  }\r\n\r\n\r\n\r\n  /**\r\n   * Converts a form element object to an ObjectFormControlWrapper which then can be used to\r\n   * render a from control. Result can be used as input for FormElementComponent.\r\n   *\r\n   * @param element - the element object or a json string\r\n   * @param situation - optional property to set up a form situation for the control (default is EDIT)\r\n   * @return the converted ObjectFormControlWrapper or null in case of an error\r\n   */\r\n  elementToFormControl(element: any, situation?: string): ObjectFormControlWrapper {\r\n\r\n    let formElement;\r\n    if (typeof element === 'string') {\r\n      try {\r\n        formElement = JSON.parse(element);\r\n      } catch (e) {\r\n        this.logger.error('Unable to parse form element from json ', formElement);\r\n      }\r\n    } else {\r\n      formElement = element;\r\n    }\r\n\r\n    if (!formElement) {\r\n      return null;\r\n    }\r\n\r\n    // Create the ObjectFormControlWrapper\r\n    let wrapper = new ObjectFormControlWrapper({});\r\n    let formSituation = situation ? situation : 'EDIT';\r\n\r\n    wrapper._eoFormControlWrapper = {\r\n      controlName: formElement.name,\r\n      situation: formSituation\r\n    };\r\n\r\n    // for codesystem elements add entries if not yet provided\r\n    if (formElement.type === 'CODESYSTEM' && (!formElement.codesystem || !formElement.codesystem.entries)) {\r\n      formElement.codesystem = this.systemService.getCodesystem(formElement.codesystem.id);\r\n    }\r\n    // create the actual form control\r\n    let controlDisabled = !!formElement.readonly;\r\n    let formControl = new ObjectFormControl({\r\n      value: formElement.value,\r\n      disabled: controlDisabled\r\n    }, FormValidation.getValidators(formElement, formSituation));\r\n\r\n    // Form elements in SEARCH situation may arrive with a value set to NULL (explicit search for\r\n    // fields that are NOT set). In that case we need to prepare the form control\r\n    if (formSituation === 'SEARCH' && formElement.value === null) {\r\n      formElement.isNotSetValue = true;\r\n    }\r\n\r\n    formControl._eoFormElement = formElement;\r\n    wrapper.addControl(formElement.name, formControl);\r\n\r\n    return wrapper;\r\n  }\r\n\r\n  /**\r\n   * Extract data from an object form based on situation.\r\n   *\r\n   * @param form - form to extract data from\r\n   * @param situation - form situation\r\n   * @param [initialData] - optional form data to match the current values against\r\n   * This is required for editig indexdata (EDIT situation), because we have to compare new values\r\n   * against the initial values. If a property that is contained in the forms initial data is removed\r\n   * (e.g. set to null) then we have to set this null value, because otherwise the server would\r\n   * ignore the changes.\r\n   * @param isTableRowEditForm Flag indicating that the provided form is an inline form used by\r\n   * a forms table element for editing rows. Those need a special handling.\r\n   * @return extracted data as object\r\n   */\r\n  extractFormData(form: ObjectFormGroup, situation: string, initialData?: any, isTableRowEditForm?: boolean) {\r\n    let extractedData = {};\r\n    this.getElementValues(extractedData, form, situation || 'EDIT', initialData, isTableRowEditForm);\r\n    return extractedData;\r\n  }\r\n\r\n  // Recursive method to get the values from each form control.\r\n  private getElementValues(data: any, formControl: ObjectFormModel, situation: string, initialData?: any, isTableRowEditForm?: boolean) {\r\n\r\n    if (!formControl || !formControl.controls) {\r\n      return;\r\n    }\r\n\r\n    if (formControl instanceof ObjectFormControlWrapper) {\r\n\r\n      const fc: any = formControl.controls[formControl._eoFormControlWrapper.controlName];\r\n\r\n      if (fc._eoFormElement.isNotSetValue === true) {\r\n        // form elements may explicitly set to have NULL value (e.g. from Search form if values are requested that have no values)\r\n        if (isTableRowEditForm) {\r\n          this.setDataValue(fc._eoFormElement.name, null, data, fc._eoFormElement, isTableRowEditForm);\r\n        } else {\r\n          this.setDataValue(fc._eoFormElement.qname, null, data, fc._eoFormElement, isTableRowEditForm);\r\n        }\r\n\r\n      } else if (fc.value !== undefined) {\r\n        let val = fc.value;\r\n\r\n        // make sure that meta data are also up to date\r\n        if (fc._eoFormElement.type === 'CODESYSTEM') {\r\n          const cs = this.systemService.getCodesystem(fc._eoFormElement.codesystem.id);\r\n          fc._eoFormElement.dataMeta = cs.entries.find(e => e.data === val);\r\n        }\r\n\r\n        switch (situation) {\r\n          case 'SEARCH': {\r\n            if (val !== null) {\r\n              // row editing forms use the name instead of the qname because otherwise the\r\n              // tables grid isn't able to map the fields\r\n              if (!isTableRowEditForm) {\r\n                this.setDataValue(fc._eoFormElement.qname, val, data, fc._eoFormElement, isTableRowEditForm)\r\n              } else {\r\n                this.setDataValue(fc._eoFormElement.name, val, data, fc._eoFormElement, isTableRowEditForm)\r\n              }\r\n            }\r\n            break;\r\n          }\r\n          case 'CREATE': {\r\n            // also add NULL values (override existing defaultvalues)\r\n            this.setDataValue(fc._eoFormElement.name, val, data, fc._eoFormElement, isTableRowEditForm)\r\n            break;\r\n          }\r\n          case 'EDIT': {\r\n            // in edit situation we have to compare new values against the initial values\r\n            // If a property that is contained in the forms initial data is removed (e.g. set to null)\r\n            // then we have to set this null value, because otherwise the server will ignore the changes\r\n            if (val !== null || (initialData && initialData[fc._eoFormElement.name] !== undefined)) {\r\n              // data[fc._eoFormElement.name] = val;\r\n              this.setDataValue(fc._eoFormElement.name, val, data, fc._eoFormElement, isTableRowEditForm)\r\n            }\r\n            break;\r\n          }\r\n        }\r\n      }\r\n    } else {\r\n      Object.keys(formControl.controls)\r\n        .forEach(controlKey => {\r\n          let formControlKeyed = <ObjectFormGroup>formControl.controls[controlKey];\r\n          this.getElementValues(data, formControlKeyed, situation, initialData, isTableRowEditForm);\r\n        });\r\n    }\r\n  }\r\n\r\n  private setDataValue(key, value, data, formElement, isTableRowEditForm) {\r\n    data[key] = this.formatValue(value, formElement);\r\n\r\n    if (isTableRowEditForm && formElement.dataMeta) {\r\n      // inner tables need to set up the meta data as well\r\n      data[key + '_meta'] = formElement.dataMeta;\r\n    }\r\n  }\r\n\r\n  formatValue(value, formElement) {\r\n    if (formElement.type === 'DATETIME' && !formElement.withtime) {\r\n      if (typeof value === 'string' || (value instanceof Date && !isNaN(value.getTime()))) {\r\n        return this.datePipe.transform(value, 'yyyy-MM-dd');\r\n      } else if (value instanceof RangeValue) {\r\n        return new RangeValue(\r\n          value.operator,\r\n          value.firstValue && this.datePipe.transform(value.firstValue, 'yyyy-MM-dd'),\r\n          value.secondValue && this.datePipe.transform(value.secondValue, 'yyyy-MM-dd')\r\n        );\r\n      }\r\n    }\r\n\r\n    if (formElement.type === 'TABLE') {\r\n      (formElement.elements || []).forEach(el => {\r\n        (value || []).forEach(v => v[el.name] = this.formatValue(v[el.name], el));\r\n      });\r\n    }\r\n    return value;\r\n  }\r\n\r\n\r\n  // Functions involved in building an object form\r\n\r\n  /**\r\n   * Recursive method adding a new UntypedFormControl (group or control) to a parent form group\r\n   *\r\n   * @param parentGroup - the parent group to add the control to\r\n   * @param formElement - the enaio form model element to create the child control from\r\n   * @param [useName] - use this name instead of the one from the model\r\n   */\r\n  private _addFormControl(scope: FormGenScope, parentGroup: ObjectFormGroup, formElement: any, useName?: string) {\r\n\r\n    let ctrl;\r\n    let name;\r\n\r\n    // add a form group\r\n    if (formElement.type === 'o2mGroup' || formElement.type === 'o2mGroupStack') {\r\n\r\n      // do not add groups that are empty\r\n      if (!formElement.elements || formElement.elements.length === 0) {\r\n        this.logger.error('Found empty form group', formElement);\r\n        return;\r\n      }\r\n\r\n      ctrl = new ObjectFormGroup({});\r\n      ctrl._eoFormGroup = {\r\n        label: formElement.label,\r\n        layout: formElement.layout,\r\n        type: formElement.type\r\n      };\r\n\r\n      if (useName === 'core' || useName === 'data') {\r\n        ctrl._eoFormGroup.label = useName;\r\n      }\r\n\r\n      for (let e of formElement.elements) {\r\n        this._addFormControl(scope, ctrl, e);\r\n      }\r\n      name = useName || 'fg' + scope.gCount++;\r\n      ctrl._eoFormGroup.id = `${scope.formOptions.layoutSettingsID || scope.formOptions.formModel.name}.${name}`;\r\n    } else {\r\n      // add form control\r\n      // To be able to integrate recursive form controls into the main form,\r\n      // we have to wrap them in a form group\r\n      ctrl = new ObjectFormControlWrapper({});\r\n      ctrl._eoFormControlWrapper = {\r\n        // the name of the wrapped UntypedFormControl\r\n        controlName: formElement.name,\r\n        situation: scope.formOptions.formModel.situation\r\n      };\r\n      if (scope.formOptions.formModel.situation === 'SEARCH' && formElement.value === null) {\r\n        formElement.isNotSetValue = true;\r\n      }\r\n      // do not set a reference as the form controls value\r\n      // otherwise we could not reset the form\r\n      let value: any;\r\n      if (Array.isArray(formElement.value)) {\r\n        // copy by value for arrays of objects (e.g. table data)\r\n        value = [];\r\n        formElement.value.forEach((o) => {\r\n          value.push(Utils.formDataParse(Utils.formDataStringify(o)));\r\n        });\r\n      } else {\r\n        value = formElement.value;\r\n      }\r\n\r\n      // for codesystem elements add entries if not yet provided\r\n      if (formElement.type === 'CODESYSTEM' && !formElement.codesystem.entries) {\r\n        formElement.codesystem = this.systemService.getCodesystem(formElement.codesystem.id);\r\n      }\r\n\r\n      // create the actual form control\r\n      let controlDisabled = scope.formOptions.disabled || !!formElement.readonly;\r\n      let formControl = new ObjectFormControl({\r\n        value: value,\r\n        disabled: controlDisabled\r\n      });\r\n\r\n      formElement.readonly = controlDisabled;\r\n\r\n      formControl._eoFormElement = formElement;\r\n      scope.formGenResult.formControls[formElement.name] = formControl;\r\n\r\n      if (formElement.type === 'CODESYSTEM' || (formElement.type === 'STRING' && formElement.classification === 'selector')) {\r\n        formControl._eoFormElement.applyFilter = (func: Function) => {\r\n          formControl._eoFormElement.filterFunction = func;\r\n        };\r\n        formControl._eoFormElement.applyDisablingFilter = (func: Function) => {\r\n          formControl._eoFormElement.disablingFilterFunction = func;\r\n        };\r\n      }\r\n\r\n      if (formElement.type === 'STRING' && formElement.classification === 'selector') {\r\n        formControl._eoFormElement.setList = (listObject: any) => {\r\n          formControl._eoFormElement.list = listObject;\r\n        };\r\n      }\r\n\r\n      if (formElement.type === 'ORGANIZATION') {\r\n        formControl._eoFormElement.setFilter = (filterObject: any) => {\r\n          formControl._eoFormElement.filter = filterObject;\r\n        };\r\n      }\r\n\r\n      if (formElement.type === 'TABLE') {\r\n        formControl._eoFormElement.object = scope.formOptions.object;\r\n      }\r\n\r\n      if (formElement.type === 'REFERENCE') {\r\n        formControl._eoFormElement.setQueryFilters = (queryFiltersObject: {[fieldQname: string]: {o: string, v1: any, v2: any}}, objectTypes?: string[]) => {\r\n          formControl._eoFormElement.queryFilters = queryFiltersObject;\r\n          formControl._eoFormElement.objectTypesFilter = objectTypes;\r\n        };\r\n      }\r\n\r\n      if (scope.formOptions.formModel.situation === 'SEARCH') {\r\n        // in search situation even readonly fields should be editable ...\r\n        formControl._eoFormElement.readonly = false;\r\n        // ... and required makes no sense here\r\n        formControl._eoFormElement.required = false;\r\n      }\r\n\r\n      // remove empty descriptions\r\n      let desc = formControl._eoFormElement.description;\r\n      if (desc && desc.trim().length === 0) {\r\n        formControl._eoFormElement.description = null;\r\n      }\r\n\r\n      // add the form element to the script model that will be injected into\r\n      // the forms scripting scope later on\r\n      scope.formGenResult.scriptModel[formElement.name] = formControl._eoFormElement;\r\n\r\n      // apply change listener to the form control, that will trigger\r\n      // the form elements onChange listener\r\n      let controlWatch = ctrl.valueChanges.pipe(debounceTime(formElement.type === 'TABLE' ? 0 : 500));\r\n      controlWatch.subscribe((v) => {\r\n        if (formControl._eoFormElement.type === 'REFERENCE') {\r\n          this._getDataMeta(formControl._eoFormElement, v[formControl._eoFormElement.name]).subscribe(m => {\r\n            if (m) {\r\n              formControl._eoFormElement.dataMeta = formControl._eoFormElement.multiselect ? m : m[0];\r\n            } else {\r\n              delete formControl._eoFormElement.dataMeta;\r\n            }\r\n          });\r\n        }\r\n        if (scope.formGenResult.scriptingScope) {\r\n          scope.formGenResult.scriptingScope.modelChanged(v);\r\n        }\r\n      });\r\n      scope.formGenResult.controlValueSubscriptions.push(controlWatch);\r\n\r\n      ctrl.addControl(formElement.name, formControl);\r\n      name = 'fg_' + formElement.name;\r\n    }\r\n    parentGroup.addControl(name, ctrl);\r\n  }\r\n\r\n  /**\r\n   * Merge data into a form model.\r\n   *\r\n   * @param model - form model\r\n   * @param data - data object or array of SearchFilter objects in case of a search form\r\n   */\r\n  private _dataToForm(scope: FormGenScope, model: any, data: any) {\r\n    if (model && data) {\r\n      this._setElementValues(scope, model.elements, data);\r\n    }\r\n    return model;\r\n  }\r\n\r\n  // recursive method for adding values to model elements\r\n  private _setElementValues(scope: FormGenScope, elements, data) {\r\n\r\n    elements.forEach(element => {\r\n      if (this._hasValue(data, element)) {\r\n\r\n        element.value = this._getValue(scope, data, element);\r\n        if (element.value) {\r\n          // add meta data for some of the types\r\n          this._fetchMetaData(scope, data, element);\r\n        }\r\n      } else {\r\n        delete element.value;\r\n      }\r\n      if (element.type !== 'TABLE' && element.elements && element.elements.length > 0) {\r\n        this._setElementValues(scope, element.elements, data);\r\n      }\r\n    });\r\n  }\r\n\r\n  // in some cases required meta data may not be available on the element itself\r\n  // so they have to be fetched and added to the element for the form to be able\r\n  // to render the element correctly\r\n  private _fetchMetaData(scope: FormGenScope, data, element) {\r\n\r\n    if (scope.formOptions.formModel.situation === 'SEARCH') {\r\n      // todo: how to fetch meta data in search situation\r\n    } else {\r\n      if (element.type === 'ORGANIZATION' && data[element.name + '_meta']) {\r\n        element.dataMeta = data[element.name + '_meta'];\r\n      } else if (element.type === 'CODESYSTEM' && data[element.name + '_meta']) {\r\n        element.dataMeta = data[element.name + '_meta'];\r\n        element.defaultrepresentation = data[element.name + '_meta'].defaultrepresentation;\r\n      } else if (element.type === 'REFERENCE' && data[element.name + '_meta']) {\r\n        element.dataMeta = data[element.name + '_meta'];\r\n      }\r\n    }\r\n  }\r\n\r\n  private _getDataMeta(formElement: any, newValue: any): Observable<any> {\r\n\r\n    if (newValue) {\r\n      switch (formElement.type) {\r\n        case 'ORGANIZATION': {\r\n          if (typeof newValue === 'string') {\r\n            return this.systemService.getOrganizationObject(newValue);\r\n          } else if (newValue.length === 1) {\r\n            return this.systemService.getOrganizationObject(newValue[0]);\r\n          } else if (newValue.length > 1) {\r\n            return this.systemService.getOrganizationObjects(newValue);\r\n          }\r\n          break;\r\n        }\r\n        case 'REFERENCE': {\r\n          return this.referenceService.fetchIDReferenceMetaData(Array.isArray(newValue) ? newValue : [newValue]);\r\n        }\r\n        case 'CODESYSTEM': {\r\n          return of(this.systemService.getCodesystem(formElement.codesystem.id).entries.find((entry) => {\r\n            return entry.defaultrepresentation === newValue;\r\n          }));\r\n        }\r\n      }\r\n    }\r\n    return of(null);\r\n  }\r\n\r\n  private _hasValue(data, element) {\r\n\r\n    // differ between array of SearchFilters and a form data object\r\n    if (Array.isArray(data)) {\r\n      if (element.type === 'TABLE') {\r\n        return !!(data.find((filter) => filter.property.startsWith(element.qname)));\r\n      } else {\r\n        return !!(data.find((filter) => filter.property === element.qname));\r\n      }\r\n    } else {\r\n      return data.hasOwnProperty(element.name);\r\n    }\r\n  }\r\n\r\n  private _getValue(scope: FormGenScope, data, element) {\r\n\r\n    let value;\r\n    if (scope.formOptions.formModel.situation === 'SEARCH') {\r\n      if (scope.isInnerTableForm) {\r\n        if (element.type === 'DATETIME' || element.type === 'NUMBER') {\r\n          value = SearchService.toRangeValue(data[element.name]);\r\n        } else {\r\n          value = data[element.name];\r\n        }\r\n      } else if (element.type === 'TABLE') {\r\n        value = this.searchService.tableFiltersToElementValue(this._getTableFilters(data, element.qname), element.elements);\r\n      } else {\r\n        const filter = data.find(f => f.property === element.qname);\r\n        value = this.searchService.filterToElementValue(filter, element.type);\r\n      }\r\n    } else {\r\n\r\n      if (element.type === 'DATETIME' && data[element.name]) {\r\n        value = new Date(`${data[element.name]}${(typeof data[element.name] === 'string' ? data[element.name].indexOf('T') : data[element.name].toISOString().indexOf('T')) !== -1 ? '' : 'T00:00:00'}`);\r\n      } else {\r\n        value = data[element.name];\r\n      }\r\n    }\r\n    return value;\r\n  }\r\n\r\n  private _getTableFilters(filters: SearchFilter[], propertyName: string): SearchFilter[] {\r\n    return filters.filter(f => f.property.startsWith(propertyName + '.'));\r\n  }\r\n\r\n  private _initValidators(formControl: ObjectFormGroup, scope: FormGenScope) {\r\n    if (formControl) {\r\n      for (let key in formControl.controls) {\r\n        const control = formControl.controls[key] as any;\r\n        if (control.controls) {\r\n          this._initValidators(control, scope);\r\n        } else {\r\n          scope.initialValidators[control._eoFormElement.name] = control.validator;\r\n          control.setValidators(Validators.compose(\r\n            this._getValidators(scope, control._eoFormElement).concat(\r\n              [scope.initialValidators[control._eoFormElement.name]])\r\n          ));\r\n          control.updateValueAndValidity();\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n  * Build validators for the given form element to be attached to\r\n  * a reactive formControl.\r\n  *\r\n  * @param formElement - form element object\r\n  */\r\n  private _getValidators(scope: FormGenScope, formElement: any): ValidatorFn[] {\r\n    let elmValidators = FormValidation.getValidators(formElement, scope.formOptions.formModel.situation);\r\n    // add custom validator for script enabled forms\r\n    if (scope.formGenResult.scriptingScope) {\r\n      elmValidators.push(FormValidation.customScriptingValidation);\r\n    }\r\n\r\n    return elmValidators;\r\n  }\r\n\r\n  private _initScriptingScope(scope: FormGenScope, formScriptService: ObjectFormScriptService) {\r\n    let {data, actions, objects, context} = <ObjectFormOptions>(scope.formOptions || {});\r\n\r\n    if (scope.formGenResult.scriptingScope) {\r\n      scope.formGenResult.scriptingScope.setModel(scope.formGenResult.scriptModel);\r\n      /** provide access to actions (used inside of BPM-Forms) */\r\n      scope.formGenResult.scriptingScope.actions = actions;\r\n      /** provide access to additional objects (used for example in BPM-Start-Forms to\r\n       * add data of DMS-Objects to start the process for)\r\n       */\r\n      scope.formGenResult.scriptingScope.objects = objects;\r\n      scope.formGenResult.scriptingScope.context = context;\r\n      /** provide readonly access to initial form data (which may also contain values that\r\n       * are not rendered as form elements (invisible values))\r\n       */\r\n      scope.formGenResult.scriptingScope.data = data;\r\n\r\n      /** by default, scripting scopes are applied to forms. But table elements create their own scope\r\n       * for editing rows. Being one of those inner forms should not run the form script again, but\r\n       * instead just provide the observing abilities of the scripting scope.\r\n       */\r\n      if (!scope.formOptions.disabled && !scope.isInnerTableForm && scope.formGenResult.formModel) {\r\n        const scriptName = scope.formGenResult.formModel.name + '_' + scope.formGenResult.formModel.situation;\r\n        this.logger.debug('executing form script ' + scriptName);\r\n        formScriptService.runFormScript(\r\n          scope.formGenResult.scriptingScope,\r\n          scope.formGenResult.formModel.script,\r\n          scriptName\r\n        );\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n     * This method will be called each time the script changes its internal model.\r\n     * It is used to transfer the script changes to the actual form model.\r\n     *\r\n     * To ensure the right context, we define an instance method as callback for the scripting scope\r\n     * @see: https://blog.johnnyreilly.com/2014/04/typescript-instance-methods.html\r\n     *\r\n     * @param formControlName\r\n     * @param change\r\n     */\r\n\r\n  private _getScriptingModelChanged(scope: FormGenScope): Function {\r\n    return (formControlName, change) => {\r\n\r\n      // find the target control\r\n      let fc: ObjectFormControl = scope.formGenResult.formControls[formControlName] as ObjectFormControl;\r\n      if (fc) {\r\n\r\n        // change only allowed properties\r\n        switch (change.name) {\r\n          case 'value': {\r\n            if (Array.isArray(change.newValue)) {\r\n              this._processArrayValueChange(fc, change);\r\n            } else {\r\n              fc._eoFormElement.value = change.newValue;\r\n              if (fc.value !== change.newValue) {\r\n                fc.patchValue(change.newValue);\r\n                fc.updateValueAndValidity();\r\n                fc.markAsDirty();\r\n              }\r\n            }\r\n            scope.formGenResult.form.markAsDirty();\r\n            break;\r\n          }\r\n          case 'required': {\r\n            if (fc._eoFormElement.required !== change.newValue) {\r\n              fc._eoFormElement.required = change.newValue;\r\n              // apply new validators\r\n              // @see: https://scotch.io/tutorials/how-to-implement-conditional-validation-in-angular-2-model-driven-forms\r\n              fc.setValidators(Validators.compose(this._getValidators(scope, fc._eoFormElement).concat([scope.initialValidators[fc._eoFormElement.name]])));\r\n              // need to mark form control as touched because otherwise form validation will not show\r\n              // error messages\r\n              fc.markAsTouched();\r\n              fc.updateValueAndValidity();\r\n            }\r\n            break;\r\n          }\r\n          case 'readonly': {\r\n            fc._eoFormElement.readonly = change.newValue;\r\n            if (change.newValue === true) {\r\n              fc.disable();\r\n            } else {\r\n              fc.enable();\r\n            }\r\n            break;\r\n          }\r\n          case 'error': {\r\n            if (JSON.stringify(fc._eoFormElement.error) !== JSON.stringify(change.newValue)) {\r\n              fc._eoFormElement.error = change.newValue;\r\n              fc.markAsTouched();\r\n              fc.updateValueAndValidity();\r\n            }\r\n            break;\r\n          }\r\n          // new onrowedit function was applied by the script\r\n          case 'onrowedit': {\r\n            fc._eoFormElement.onrowedit = change.newValue;\r\n            break;\r\n          }\r\n          // new onchange function was applied by the script\r\n          case 'onchange': {\r\n            fc._eoFormElement.onchange = change.newValue;\r\n            break;\r\n          }\r\n          // new contextId was applied by the script\r\n          case 'contextId': {\r\n            fc._eoFormElement.contextId = change.newValue;\r\n            break;\r\n          }\r\n          // new description was applied by the script\r\n          case 'description': {\r\n            fc._eoFormElement.description = change.newValue;\r\n            break;\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  private _processArrayValueChange(fc, change) {\r\n    const newVal = change.newValue;\r\n    const targetType = fc._eoFormElement.type;\r\n    // for some types we have to ensure that meta data are provided as well\r\n    switch (targetType) {\r\n      case 'ORGANIZATION': {\r\n        this._getDataMeta(fc._eoFormElement, newVal).subscribe(m => {\r\n          fc._eoFormElement.dataMeta = m;\r\n        });\r\n        break;\r\n      }\r\n      case 'CODESYSTEM': {\r\n        if (!fc._eoFormElement.codesystem.entries) {\r\n          fc._eoFormElement.codesystem = this.systemService.getCodesystem(fc._eoFormElement.codesystem.id);\r\n        }\r\n        break;\r\n      }\r\n      case 'TABLE': {\r\n        const dataToBeProcessed = {};\r\n        fc._eoFormElement.elements.forEach(e => {\r\n          if (e.type === 'ORGANIZATION' || e.type === 'CODESYSTEM') {\r\n            dataToBeProcessed[e.name] = e;\r\n          }\r\n        });\r\n        if (Object.keys(dataToBeProcessed).length) {\r\n          let obs = [];\r\n          newVal.forEach(rowData => {\r\n            Object.keys(rowData).forEach(key => {\r\n              if (dataToBeProcessed[key]) {\r\n                obs.push(this._getDataMeta(dataToBeProcessed[key], rowData[key]).pipe(\r\n                  tap(m => {\r\n                    if (m) {\r\n                      rowData[key + '_meta'] = m;\r\n                    } else {\r\n                      delete rowData[key + '_meta'];\r\n                    }\r\n                  })\r\n                ));\r\n              }\r\n            });\r\n          });\r\n          forkJoin(obs).subscribe(() => this._updateArrayValue(fc, newVal));\r\n        }\r\n        break;\r\n      }\r\n    }\r\n    this._updateArrayValue(fc, newVal);\r\n  }\r\n\r\n  private _updateArrayValue(fc, newValue) {\r\n    fc._eoFormElement.value = [].concat(newValue);\r\n    fc.patchValue([].concat(newValue));\r\n    fc.updateValueAndValidity();\r\n    fc.markAsDirty();\r\n  }\r\n\r\n  private TEMP_STORAGE_ENTRIES_KEY = 'eo.cmp.objectform.tmpstorage.entries';\r\n\r\n  /**\r\n   * Add a reference to a temporary localstorage entry that should be cleared when a\r\n   * new browser session starts. In context of forms this will be used to cleanup the\r\n   * layout state of forms (selected tabs etc.) that are stored locally but should only\r\n   * be pesisted for one browser session.\r\n   * @param storageKey Key of the localstorage item\r\n   */\r\n  addTemporaryStorageEntry(storageKey: string) {\r\n    // entries will themselves be stored in localstorage so we can check for entries\r\n    // to be removed once the application starts\r\n    const current = this._getTemporaryStorageEntries();\r\n    if(!current.includes(storageKey))\r\n    localStorage.setItem(this.TEMP_STORAGE_ENTRIES_KEY, JSON.stringify([...current, storageKey]))\r\n  }\r\n\r\n  private _clearTemporaryStorageEntries() {\r\n    this._getTemporaryStorageEntries().forEach(e => localStorage.removeItem(e));\r\n    localStorage.removeItem(this.TEMP_STORAGE_ENTRIES_KEY);\r\n  }\r\n\r\n  private _getTemporaryStorageEntries(): string[] {\r\n    let res = [];\r\n    try {\r\n      const entries: string[] = JSON.parse(localStorage.getItem(this.TEMP_STORAGE_ENTRIES_KEY));\r\n      if (Array.isArray(entries)) res = entries;\r\n    } catch (e) {\r\n      console.debug(e)\r\n    }\r\n    console.debug(`Found ${res.length} tmp entries to be removed`);\r\n    return res;\r\n  }\r\n}\r\n","import {Directive, Input, TemplateRef} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[eoFormElementTemplate]'\r\n})\r\nexport class FormElementTemplate {\r\n\r\n  @Input() propertyType: string;\r\n  constructor(public template: TemplateRef<any>) { }\r\n\r\n}\r\n","import {Directive, Renderer2, ElementRef, HostListener, Input} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[eoInputFocus]'\r\n})\r\nexport class InputFocusDirective {\r\n  formInput: ElementRef = this.element.nativeElement;\r\n  @Input() disabled = false;\r\n\r\n  constructor(private renderer: Renderer2, private element: ElementRef) {\r\n  }\r\n\r\n  @HostListener('focusin', ['$event'])\r\n  onFocusIn(evt) {\r\n    if (!this.disabled) {\r\n      this.renderer.addClass(this.formInput, 'focused');\r\n    }\r\n  }\r\n\r\n  @HostListener('focusout', ['$event'])\r\n  onFocusOut(evt) {\r\n    this.renderer.removeClass(this.formInput, 'focused');\r\n  }\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\r\n\r\n// Wrapper for base functionality of form fields\r\n\r\n@Component({\r\n  selector: 'eo-form-input',\r\n  templateUrl: './form-input.component.html',\r\n  styleUrls: ['./form-input.component.scss']\r\n})\r\nexport class FormInputComponent {\r\n\r\n  toggled = false;\r\n  _label: string;\r\n\r\n  @Input('label')\r\n  set label(val: string) {\r\n    this._label = val;\r\n  }\r\n\r\n  @Input() tag: { label: string, title: string };\r\n  @Input() description: string;\r\n  @Input() skipToggle: boolean;\r\n\r\n  @Input('isNull')\r\n  set isNull(n: boolean) {\r\n    this.toggled = n;\r\n  };\r\n\r\n  @Input('invalid')\r\n  set invalid(iv: boolean) {\r\n    this.isInvalid = iv;\r\n  }\r\n\r\n  @Input('disabled')\r\n  set disabled(d: boolean) {\r\n    this.isDisabled = d;\r\n  }\r\n\r\n  @Input('required')\r\n  set required(d: boolean) {\r\n    this.isRequired = d;\r\n  }\r\n\r\n  @HostBinding('class.disabled') isDisabled;\r\n  @HostBinding('class.invalid') isInvalid;\r\n  @HostBinding('class.required') isRequired;\r\n\r\n  @Output() onToggleLabel = new EventEmitter<boolean>();\r\n\r\n  toggle() {\r\n    if (!this.skipToggle && !this.disabled) {\r\n      this.toggled = !this.toggled;\r\n      this.onToggleLabel.emit(this.toggled);\r\n    }\r\n  }\r\n}\r\n","<div class=\"fe-wrapper\" eoInputFocus [disabled]=\"isDisabled\">\r\n  <div class=\"tag\" *ngIf=\"tag\" title=\"{{tag.title}}\">{{tag.label}}</div>\r\n  <label class=\"form-input__label\" (click)=\"toggle()\">{{_label}}</label>\r\n  <div class=\"control\">\r\n    <ng-content *ngIf=\"!toggled; else tplnull\"></ng-content>\r\n\r\n    <ng-template #tplnull><span translate>eo.form.input.null</span></ng-template>\r\n  </div>\r\n</div>\r\n<div class=\"description\" *ngIf=\"description\" translate>{{description}}</div>\r\n\r\n","import { Component, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';\r\nimport {TreeNode} from '../tree.component.interface';\r\n\r\n@Component({\r\n  selector: 'eo-tree-node',\r\n  templateUrl: './tree-node.component.html',\r\n  styleUrls: ['./tree-node.component.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class TreeNodeComponent {\r\n  @Input() node: TreeNode;\r\n  @Output() onNodeSelected = new EventEmitter();\r\n  @Output() onNodeExpandedChanged = new EventEmitter();\r\n\r\n  constructor() {\r\n  }\r\n\r\n  trackById(index, item) {\r\n    return item.id;\r\n  }\r\n}\r\n","<div class=\"tree-node\"\r\n     [ngClass]=\"{selected: node.selected,\r\n          expanded: node.expanded,\r\n          notSelectable: !node.selectable && !(node.children?.length),\r\n          branch: node.children && node.children.length > 0}\">\r\n  <div class=\"node-line\"></div>\r\n  <div class=\"node-content\">\r\n\r\n    <div class=\"node-item\">\r\n      <div class=\"spacer\"></div>\r\n      <div class=\"ico\" (click)=\"node.children?.length ? onNodeExpandedChanged.emit(node) : onNodeSelected.emit(node)\"></div>\r\n      <div class=\"values\">\r\n        <div class=\"label\" (click)=\"onNodeSelected.emit(node)\" [ngClass]=\"{focused: node.focused}\">\r\n          <span>{{node.name}}</span>\r\n        </div>\r\n        <div class=\"badge\" *ngIf=\"node.badges && node.badges.length > 0\">\r\n              <span *ngFor=\"let badge of node.badges\"\r\n                    class=\"{{badge.cssClass}}\"\r\n                    [ngClass]=\"{highlighted: node.highlighted}\">\r\n                    {{badge.value}}\r\n              </span>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"node-children\" *ngIf=\"node.children?.length\">\r\n      <eo-tree-node [node]=\"_node\" *ngFor=\"let _node of node.children; trackBy: trackById\"\r\n                    (onNodeExpandedChanged)=\"onNodeExpandedChanged.emit($event)\"\r\n                    (onNodeSelected)=\"onNodeSelected.emit($event)\"></eo-tree-node>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component,\r\n  HostListener,\r\n  forwardRef,\r\n  ViewEncapsulation,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  HostBinding, ElementRef, OnInit\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {TreeNode, TreeOptions} from './tree.component.interface';\r\n\r\n\r\n\r\n@Component({\r\n  selector: 'eo-tree',\r\n  templateUrl: './tree.component.html',\r\n  styleUrls: ['./tree.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => TreeComponent),\r\n      multi: true\r\n    }\r\n  ],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class TreeComponent implements ControlValueAccessor, OnInit {\r\n\r\n  @HostBinding('attr.tabindex') _tabIndex = 0;\r\n\r\n  private _expandedNodes: string[] = [];\r\n  private _highlightedNodes: string[] = [];\r\n  private selectedNodes: any[] = [];\r\n  private visibleNodes: any[] = [];\r\n  private focusedNode: TreeNode;\r\n\r\n  tree: TreeNode[];\r\n\r\n  @Input() options: TreeOptions = {};\r\n  @Input() isDisplayed: boolean;\r\n  @Input() readonly: boolean;\r\n  @Input() emptyMessage = 'eo.error.structure.tree.not.available';\r\n\r\n  @Input() selectionKey = ' '; // default is Space\r\n\r\n  // the nodes that are selected. In case of `multiselect` set to true, this will be an\r\n  @Output() expandedNodesChanged = new EventEmitter();\r\n  @Output() onSelected = new EventEmitter();\r\n\r\n  propagateChange = (_: any) => {\r\n  }\r\n\r\n  constructor(public elementRef: ElementRef) {\r\n  }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n  @Input('highlightedNodes')\r\n  set highlightedNodes(nodes: string[]) {\r\n    this._highlightedNodes = nodes || [];\r\n    this.visibleNodes.forEach(n => (n.highlighted = !!this._highlightedNodes.find(id => id === n.id)));\r\n  }\r\n\r\n  @Input('tree')\r\n  set treeInput(tree: TreeNode[]) {\r\n    // this.tree = tree;\r\n    this.selectedNodes = [];\r\n    this._expandedNodes = [];\r\n    this.focusedNode = null;\r\n    this.updateTree(tree);\r\n  }\r\n\r\n  @Input('treeUpdate')\r\n  set treeUpdate(tree: TreeNode[]) {\r\n    if (tree) {\r\n      this.updateTree(tree);\r\n    }\r\n  }\r\n\r\n\r\n  @HostListener('focusin', ['$event.target'])\r\n  onFocusIn(target: any) {\r\n    if (!this.focusedNode || !this.focusedNode.focused) {\r\n      let node = this.selectedNodes[0] || this.visibleNodes[0];\r\n      this.updateFocus(node);\r\n    }\r\n  }\r\n\r\n    @HostListener('focusout')\r\n    onFocusOut() {\r\n      this.updateFocus();\r\n    }\r\n\r\n  onFocus(evt) {\r\n  }\r\n\r\n  onBlur(evt) {\r\n  }\r\n\r\n  onToggle(evt) {\r\n\r\n  }\r\n\r\n  @HostListener('keydown', ['$event'])\r\n  onKey(event: KeyboardEvent) {\r\n    switch (event.key) {\r\n      case 'ArrowUp': {\r\n        this.focusNode(false);\r\n        this._ensureVisible();\r\n        break;\r\n      }\r\n      case 'ArrowDown': {\r\n        this.focusNode(true);\r\n        this._ensureVisible();\r\n        break;\r\n      }\r\n      case 'ArrowRight': {\r\n        this.toggleExpanded(this.focusedNode);\r\n        break;\r\n      }\r\n      case 'ArrowLeft': {\r\n        this.toggleExpanded(this.focusedNode);\r\n        break;\r\n      }\r\n      case this.selectionKey: {\r\n        // toggle selection of the focused node\r\n        if (this.focusedNode.selectable) {\r\n          // this.focusedNode.selected = !this.focusedNode.selected;\r\n          this.onNodeSelected(this.focusedNode);\r\n        }\r\n        break;\r\n      }\r\n      case 'Enter': {\r\n        // toggle selection of the focused node\r\n        if (this.focusedNode.selectable) {\r\n          // this.focusedNode.selected = !this.focusedNode.selected;\r\n          this.onNodeSelected(this.focusedNode);\r\n        }\r\n        break;\r\n      }\r\n    }\r\n\r\n    if (['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft'].includes(event.key)) {\r\n      event.stopPropagation();\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n\r\n  writeValue(selectedNodes: TreeNode[]): void {\r\n    let _selectedNodes = !selectedNodes || Array.isArray(selectedNodes) ? selectedNodes || [] : [selectedNodes];\r\n\r\n    if (this.selectedNodes.length !== _selectedNodes.length || this.selectedNodes.some((n, i) => n.id !== _selectedNodes[i].id)) {\r\n      this.selectedNodes = _selectedNodes;\r\n      this.updateTree(this.tree);\r\n    }\r\n\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n  }\r\n\r\n  onNodeSelected(node) {\r\n    // if the selected node isn't allowed to be selected, we'll instead try to\r\n    // toggle expanded flag for parent nodes\r\n    this.onSelected.emit(node);\r\n    this.updateFocus(node, this.focusedNode);\r\n\r\n    if (!node.selectable) {\r\n      this.toggleExpanded(node);\r\n    } else {\r\n      node.selected = !node.selected;\r\n      if (node.selected) {\r\n        if (!this.options.multiselect && this.selectedNodes.length) {\r\n          this.selectedNodes[0].selected = false;\r\n          this.selectedNodes = [];\r\n        }\r\n        this.selectedNodes.push(node);\r\n      } else {\r\n        if (!this.options.disableDeselection) {\r\n          this.selectedNodes = this.selectedNodes.filter(\r\n            n => n.id !== node.id\r\n          );\r\n        } else {\r\n          node.selected = true;\r\n        }\r\n      }\r\n      this.propagateChange(this.options.multiselect ? this.selectedNodes : this.selectedNodes[0]);\r\n    }\r\n  }\r\n\r\n\r\n  public onNodeExpanded(node: TreeNode) {\r\n    this.collectVisibleNodes(node);\r\n    this.expandedNodesChanged.emit(this._expandedNodes);\r\n  }\r\n\r\n\r\n  public toggleExpanded(node: TreeNode) {\r\n    if (node.children && node.children.length) {\r\n      node.expanded = !node.expanded;\r\n      this.onNodeExpanded(node);\r\n    }\r\n  }\r\n\r\n\r\n  // Update the tree according to the selected nodes\r\n  private updateTree(tree?: any) {\r\n    if (tree || this.tree) {\r\n      this.tree = (tree || this.tree).map(node => this.updateTreeNode(node, []));\r\n      this.collectVisibleNodes();\r\n    }\r\n  }\r\n\r\n\r\n  // Recursive function walking the tree nodes and setting the nodes `selected` flags\r\n  private updateTreeNode(node: TreeNode, parents: TreeNode[]) {\r\n    node.selected = !!this.selectedNodes.find(n => node.id === n.id || (!n.id && node.data?.value === n.value));\r\n    node.expanded = this._expandedNodes.length ? !!this._expandedNodes.find(id => id === node.id) : node.expanded;\r\n    node.highlighted = !!this._highlightedNodes.find(id => id === node.id);\r\n    node.focused = this.focusedNode && this.focusedNode.id === node.id ? this.focusedNode.focused : false;\r\n    // node.level = parents.length;\r\n\r\n    // expand all parent nodes as well\r\n    if (node.selected && parents.length) {\r\n      parents.forEach(p => (p.expanded = true));\r\n    }\r\n    if (node.children) {\r\n      node.children.forEach(n => this.updateTreeNode(n, parents.concat([node])));\r\n    }\r\n    return node;\r\n  }\r\n\r\n  // Collect all visible nodes in the right order to be used to fetch the previous or\r\n  // next node using keyboard navigation.\r\n  private collectVisibleNodes(node?: TreeNode) {\r\n    this.visibleNodes = this.collectVisibleChildren(this.tree);\r\n    this.selectedNodes = this.visibleNodes.filter(n => n.selected);\r\n  }\r\n\r\n  // recursive part of collectChildNodes()\r\n  private collectVisibleChildren(nodes: TreeNode[] = []) {\r\n    let flat = [];\r\n    this._expandedNodes = [];\r\n    nodes.forEach(node => {\r\n      flat.push(node);\r\n      if (node.expanded) {\r\n        this._expandedNodes.push(node.id);\r\n        flat = flat.concat(this.collectVisibleChildren(node.children));\r\n      }\r\n    });\r\n    return flat;\r\n  }\r\n\r\n  private updateFocus(node?: TreeNode, old?: TreeNode) {\r\n    if (old) {\r\n      if (node !== old) {\r\n        old.focused = false;\r\n      }\r\n    } else {\r\n      this.visibleNodes.forEach(n => (n.focused = false));\r\n    }\r\n    if (node) {\r\n      node.focused = true;\r\n      this.focusedNode = node;\r\n    }\r\n  }\r\n\r\n  private _ensureVisible() {\r\n    setTimeout(() => {\r\n      const container: HTMLElement = this.elementRef.nativeElement;\r\n      const el = container.querySelector('eo-tree-node .label.focused');\r\n      const containerRect = container.getBoundingClientRect();\r\n      const elRect = el.getBoundingClientRect();\r\n      /* The first one checks the structure tree for scroll down\r\n       * The second one checks the structure tree for scroll up\r\n       * The third one checks the trees in selection dialogs for scroll down\r\n       * The fourth one checks the trees in selection dialogs for scroll up\r\n       */\r\n      if (elRect.bottom >= window.innerHeight\r\n        || elRect.top < 50\r\n        || elRect.bottom >= containerRect.height\r\n        || elRect.top - containerRect.top <= 30) {\r\n        el.scrollIntoView();\r\n      }\r\n    },  200)\r\n  }\r\n\r\n  private focusNode(next?: boolean) {\r\n    if (this.visibleNodes.length) {\r\n      let index = 0, shift = next ? 1 : -1;\r\n      const node = this.visibleNodes.find((n, i) => {\r\n        index = i;\r\n        return n.focused;\r\n      });\r\n\r\n      const nextIdx = node ? index + shift : 0;\r\n      const idx = nextIdx >= this.visibleNodes.length ? 0 : (nextIdx < 0 ? this.visibleNodes.length - 1 : nextIdx);\r\n      this.updateFocus(this.visibleNodes[idx], node);\r\n    }\r\n  }\r\n}\r\n","<div class=\"eo-tree\" eoRtlAware *ngIf=\"tree.length; else noTrees\">\r\n  <eo-tree-node *ngFor=\"let node of tree\" [node]=\"node\"\r\n                (onNodeExpandedChanged)=\"toggleExpanded($event)\"\r\n                (onNodeSelected)=\"onNodeSelected($event)\"></eo-tree-node>\r\n</div>\r\n\r\n<ng-template #noTrees>\r\n  <div class=\"tree tree-panel-error eo-body error\">\r\n    <eo-icon class=\"error error__icon\" [iconSrc]=\"'ic_error.svg'\"></eo-icon>\r\n    <p translate>{{emptyMessage}}</p>\r\n  </div>\r\n</ng-template>\r\n","import {Component, forwardRef, Input, OnInit, ViewChild} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, UntypedFormControl, Validator} from '@angular/forms';\r\nimport {ICodeSystem, SystemService} from '@eo-sdk/core';\r\nimport {AutoComplete} from '@yuuvis/components/autocomplete';\r\n\r\nimport {TreeNode} from '../../tree/tree.component.interface';\r\n\r\n@Component({\r\n  selector: 'eo-codesystem',\r\n  templateUrl: './codesystem.component.html',\r\n  styleUrls: ['./codesystem.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => CodesystemComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => CodesystemComponent),\r\n      multi: true\r\n    }\r\n  ]\r\n})\r\nexport class CodesystemComponent\r\n  implements OnInit, ControlValueAccessor, Validator {\r\n  @ViewChild('autocomplete') autoCompleteInput: AutoComplete;\r\n  @ViewChild('button') autoCompleteButton;\r\n\r\n  display = false;\r\n  private dirty = false;\r\n  private isValid = true;\r\n  value;\r\n  //codesystemElement;\r\n  tree: TreeNode[];\r\n  private _selectedNodes: any;\r\n  set selectedNodes(n: any) {\r\n    this._selectedNodes = structuredClone(n);\r\n  }\r\n  get selectedNodes() {\r\n    return this._selectedNodes;\r\n  }\r\n\r\n  autocompleteRes;\r\n  autocompleteValues: TreeNode[] = [];\r\n\r\n  /** filter function that can be set by form script developers. When set this function will be private filterFunction: Function; */\r\n\r\n  /** current form situation */\r\n  @Input() situation: string;\r\n  @Input() pickerTitle: string;\r\n  @Input() placeholder: string;\r\n  @Input() codesystem: ICodeSystem;\r\n  @Input() multiselect: boolean;\r\n  @Input() readonly: boolean;\r\n  @Input() inputStyleClass = '';\r\n  @Input() emptyMessage = 'eo.error.structure.tree.not.available';\r\n\r\n  private _filterFunc: Function;\r\n  private _disablingFilterFunc: Function;\r\n\r\n  @Input('filterFunction')\r\n  set filterFunction(func: Function) {\r\n    this._filterFunc = func;\r\n    this.buildTree();\r\n  }\r\n\r\n  @Input('disablingFilterFunction')\r\n  set disablingFilterFunction(func: Function) {\r\n    this._disablingFilterFunc = func;\r\n    this.buildTree();\r\n  }\r\n\r\n  constructor(private systemService: SystemService) {\r\n  }\r\n\r\n  protected _getCodesystemByQname(qname: string): ICodeSystem {\r\n    const cs: Partial<ICodeSystem> = {};\r\n    const objectType = this.systemService.getObjectType(qname.split('.')[0]);\r\n    if (objectType && objectType.elements) {\r\n      const el = objectType.elements.find(e => e.qname === qname) || {};\r\n      Object.assign(cs, el.codesystem);\r\n    }\r\n    if (this.codesystem) {\r\n      cs.entries = this.systemService.getCodesystem(this.codesystem.id).entries;\r\n    }\r\n    return (cs as ICodeSystem);\r\n  }\r\n\r\n  ngOnInit() {\r\n    /** load codesystem entries if they aren't attached */\r\n    if (this.codesystem && !this.codesystem.entries) {\r\n      this.codesystem.entries = this.systemService.getCodesystem(this.codesystem.id).entries;\r\n    }\r\n    // in search situation codesystems are always multiselectable\r\n    if (this.situation === 'SEARCH') {\r\n      this.multiselect = true;\r\n    }\r\n    this.buildTree();\r\n  }\r\n\r\n  propagateChange = (_: any) => {\r\n  };\r\n\r\n  writeValue(value: any): void {\r\n    this.dirty = false;\r\n    this.value = value || null;\r\n    const values = !this.value || Array.isArray(this.value) ? this.value || [] : [this.value];\r\n    if (value === null || value === undefined) {\r\n      if (this.multiselect) {\r\n        this.selectedNodes = [];\r\n      } else {\r\n        this.selectedNodes = null;\r\n      }\r\n    }\r\n    const nodes = !this.selectedNodes || Array.isArray(this.selectedNodes) ? this.selectedNodes || [] : [this.selectedNodes];\r\n\r\n    if (this.codesystem && (nodes.length !== values.length || nodes.some((n, i) => n.data.data !== values[i]))) {\r\n      this.buildTree();\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n  }\r\n\r\n  // handler invoked when an entry was selected using the autocomplete input\r\n  onAutoCompleteSelect(node?) {\r\n    const wasInvalid = !this.isValid;\r\n    this.isValid = true;\r\n    //this.updateTree();\r\n    this.setFormControlValue(wasInvalid);\r\n  }\r\n\r\n  onAutocompleteValueChange(v: any) {\r\n    if (v === undefined) {\r\n      this.selectedNodes = null\r\n      this.setFormControlValue();\r\n    }\r\n  }\r\n\r\n  // handler invoked when an entry was deselected using the autocomplete input\r\n  onAutoCompleteUnselect(node?) {\r\n    this.selectedNodes = this.selectedNodes.filter(\r\n      sNode => sNode.id !== node.id\r\n    );\r\n    //this.updateTree();\r\n    this.setFormControlValue();\r\n  }\r\n\r\n  // triggered when the selection was changed by\r\n  onTreeSelectionChanged(evt) {\r\n    if (!this.multiselect) {\r\n      // hide the dialog\r\n      this.setDialogVisible(false);\r\n    }\r\n    const wasInvalid = !this.isValid;\r\n    this.isValid = true;\r\n    this.setFormControlValue(wasInvalid);\r\n  }\r\n\r\n  onClear() {\r\n    if (!this.multiselect) {\r\n      this.selectedNodes = null;\r\n    }\r\n    this.setFormControlValue();\r\n  }\r\n\r\n  /**\r\n   * Sets and propagates the form controls value based on the components inner values. Propagates only\r\n   * when the value has changed.\r\n   * @param forcePropagation - forces propagation even if the value hasn't been changed\r\n   */\r\n  private setFormControlValue(forcePropagation?: boolean) {\r\n    let v;\r\n    let changed: boolean;\r\n    if (this.multiselect) {\r\n      v = this.selectedNodes.map(node => node.data.data);\r\n      changed =\r\n        !this.value ||\r\n        !(\r\n          v.length === this.value.length &&\r\n          v.every(val => this.value.some(curVal => curVal === val))\r\n        );\r\n    } else {\r\n      v = this.selectedNodes ? this.selectedNodes.data.data : null;\r\n      changed = v !== this.value;\r\n    }\r\n    // only propagate the change if the value is different from the current one\r\n    // otherwise we would always set the dirty flag although nothing changed\r\n    if (changed || forcePropagation) {\r\n      this.value = v;\r\n      this.propagateChange(this.value);\r\n    }\r\n  }\r\n\r\n  // build the tree for the dialog\r\n  private buildTree() {\r\n\r\n    this.selectedNodes = this.multiselect ? [] : null;\r\n    this.autocompleteValues = [];\r\n    let tree: TreeNode[] = [];\r\n    for (let i = 0; i < this.codesystem.entries.length; i++) {\r\n      this.addTreeNode(tree, this.codesystem.entries[i]);\r\n    }\r\n    this.tree = tree;\r\n    this.autocompleteRes = this.autocompleteValues.slice(0, 10);\r\n  }\r\n\r\n  private addTreeNode(parentNode: TreeNode[], codesystemEntry) {\r\n    if (this._filterFunc && !this._filterFunc(codesystemEntry)) {\r\n      return;\r\n    }\r\n    let node: TreeNode = this.csEntryToTreeNode(codesystemEntry);\r\n    if (node.selectable) {\r\n      /** add selectable nodes to autocomplete values */\r\n      this.autocompleteValues.push(node);\r\n    }\r\n    if (codesystemEntry.subentries) {\r\n      node.children = [];\r\n\r\n      for (let i = 0; i < codesystemEntry.subentries.length; i++) {\r\n        this.addTreeNode(node.children, codesystemEntry.subentries[i]);\r\n      }\r\n    }\r\n    this.checkSelected(node);\r\n    parentNode.push(node);\r\n  }\r\n\r\n  // some nodes are only visible in some cases.\r\n  private isHidden(codesystemEntry) {\r\n    return (\r\n      (this.situation === 'CREATE' && !codesystemEntry.allowedonnew) ||\r\n      (this.situation === 'EDIT' && !codesystemEntry.allowedonupdate) ||\r\n      (this._disablingFilterFunc && this._disablingFilterFunc(codesystemEntry))\r\n    );\r\n  }\r\n\r\n  private checkSelected(node: TreeNode) {\r\n    if (!this.value) {\r\n      return;\r\n    }\r\n    if (this.multiselect) {\r\n      for (let i = 0; i < this.value.length; i++) {\r\n        if (node.data.data === this.value[i]) {\r\n          node.selected = true;\r\n          this.selectedNodes.push(node);\r\n        }\r\n      }\r\n    } else {\r\n      if (node.data.data === this.value) {\r\n        node.selected = true;\r\n        this.selectedNodes = node;\r\n      }\r\n    }\r\n  }\r\n\r\n  autocompleteFn(term: string) {\r\n    this.autocompleteRes = this.autocompleteValues.filter(acNode => {\r\n      if (this._filterFunc && !this._filterFunc(acNode.data)) {\r\n        return false;\r\n      }\r\n      // skip nodes that are already selected\r\n      if (this.multiselect) {\r\n        if (\r\n          this.selectedNodes.find(node => acNode.data.data === node.data.data)\r\n        ) {\r\n          return false;\r\n        }\r\n      }\r\n      return acNode.name.toLowerCase().indexOf(term.toLowerCase()) !== -1;\r\n    }).slice(0, 10);\r\n  }\r\n\r\n  // transform codesystem entry to tree node\r\n  private csEntryToTreeNode(codesystemEntry): TreeNode {\r\n    // determine whether or not the tree node should be selectable\r\n    let selectable = false;\r\n    if (this.codesystem.allelementsselectable) {\r\n      // case: all elements are selectable. This means that not only leaf nodes\r\n      // are selectable but also their parent nodes\r\n      selectable = true;\r\n    } else {\r\n      // case: only leaf nodes are selectable\r\n      selectable = !(\r\n        codesystemEntry.subentries && codesystemEntry.subentries.length > 0\r\n      );\r\n    }\r\n    return {\r\n      id: codesystemEntry.id,\r\n      name: codesystemEntry.defaultrepresentation,\r\n      children: [],\r\n      expanded: false,\r\n      selected: false,\r\n      selectable: selectable && !this.isHidden(codesystemEntry),\r\n      data: codesystemEntry\r\n    };\r\n  }\r\n\r\n  setDialogVisible(visible: boolean, event?: Event) {\r\n    if (event) {\r\n      event.stopPropagation();\r\n      event.preventDefault();\r\n      //ignore synthetized events on enter\r\n      if (event.type === 'click' && (event as PointerEvent).detail === 0) {\r\n        return;\r\n      }\r\n    }\r\n    this.display = visible;\r\n  }\r\n\r\n  // returns null when valid else the validation object\r\n  public validate(c: UntypedFormControl) {\r\n    return this.isValid\r\n      ? null\r\n      : {\r\n        codesystem: {\r\n          valid: false\r\n        }\r\n      };\r\n  }\r\n}\r\n","<div class=\"eo-codesystem\" *ngIf=\"codesystem\"\r\n  [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length, readonly: readonly}\">\r\n\r\n  <yvc-autocomplete #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\r\n    (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [autocompleteValues]=\"autocompleteRes\" field=\"name\"\r\n    [disabled]=\"readonly\" [placeholder]=\"placeholder\" [forceSelection]=\"true\" (autocompleteFnc)=\"autocompleteFn($event)\"\r\n    [multiple]=\"multiselect\" (ngModelChange)=\"onAutocompleteValueChange($event)\" [(ngModel)]=\"selectedNodes\">\r\n  </yvc-autocomplete>\r\n  <button type=\"button\" #button *ngIf=\"!readonly\"\r\n  (click)=\"setDialogVisible(true, $event)\" \r\n  (keydown.enter)=\"setDialogVisible(true, $event)\" \r\n  >\r\n    <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\r\n  </button>\r\n</div>\r\n\r\n<eo-dialog [title]=\"pickerTitle || ''\" [visible]=\"display\" (hide)=\"display = false\">\r\n  <eo-tree [tree]=\"tree\" [isDisplayed]=\"display\" *ngIf=\"display\" [options]=\"{multiselect: multiselect}\"\r\n    [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" [readonly]=\"readonly\"\r\n    [emptyMessage]=\"emptyMessage\">\r\n  </eo-tree>\r\n</eo-dialog>","import {AfterViewInit, Component, forwardRef, Input, OnDestroy, ViewChild} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel, UntypedFormControl, ValidationErrors, Validator} from '@angular/forms';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {DatepickerLabels} from '@yuuvis/components/datepicker';\r\nimport {Subscription} from 'rxjs';\r\nimport {LocaleDatePipe} from '../../../eo-framework-core/pipes/locale-date.pipe';\r\n\r\n@Component({\r\n  selector: 'eo-date',\r\n  templateUrl: './date.component.html',\r\n  styleUrls: ['./date.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => DateComponent),\r\n      multi: true,\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => DateComponent),\r\n      multi: true,\r\n    }\r\n  ],\r\n})\r\nexport class DateComponent implements ControlValueAccessor, Validator,\r\n  AfterViewInit,\r\n  OnDestroy {\r\n\r\n  @ViewChild('picker', {read: NgModel}) picker: NgModel;\r\n  @Input() withTime: boolean = false;\r\n  @Input() readonly: boolean = false;\r\n  @Input() onlyFutureDates: boolean = false;\r\n\r\n  private _subs: Subscription[] = [];\r\n  private datePipe: LocaleDatePipe;\r\n  value: Date | null = null;\r\n  labels?: DatepickerLabels;\r\n  locale: string = this.translate.currentLang;\r\n\r\n\r\n  constructor(private translate: TranslateService) {\r\n    this.datePipe = new LocaleDatePipe(translate);\r\n    this._setLabels(this.locale)\r\n    this._subs.push(this.translate.onLangChange.subscribe({\r\n      next: (lang) => {\r\n        this.locale = lang.lang;\r\n        this._setLabels(this.locale)\r\n      }\r\n    }))\r\n  }\r\n\r\n  propagateChange = (_: any) => { };\r\n  validationChange = () => { };\r\n\r\n  writeValue(value: any): void {\r\n    this.value = value || null;\r\n  }\r\n\r\n  registerOnChange(fn: () => void): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnValidatorChange?(fn: () => void): void {\r\n    this.validationChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: () => void): void { }\r\n\r\n  onValueChange(e) {\r\n    this.propagateChange(e);\r\n  }\r\n\r\n  formatDate(value: Date) {\r\n    return !value ? null :\r\n      this.withTime ? value.toISOString().replace(':00.000', '') : this.datePipe.transform(value, 'yyyy-MM-dd');\r\n  }\r\n\r\n  private _setLabels(iso: string) {\r\n    this.labels = {\r\n      calendarApply: this.translate.instant('eo.datepicker.calendar.select'),\r\n      calendarCancel: this.translate.instant('eo.cta.button.cancel'),\r\n      shortcut: {today: this.translate.instant('eo.datepicker.calendar.today'), }\r\n    }\r\n  }\r\n\r\n  validate(c: UntypedFormControl): ValidationErrors | null {\r\n    return this.picker?.invalid ? {\r\n      datecontrol: 'invalidDate'\r\n    } : null\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this._subs.push(this.picker.statusChanges.subscribe(() => this.validationChange()))\r\n\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this._subs.forEach((s) => s.unsubscribe());\r\n  }\r\n}\r\n","<yvc-datepicker #picker [calendar]=\"true\" [disabled]=\"readonly\" [locale]=\"locale\" [withTime]=\"withTime\" [labels]=\"labels\"\r\n    [hour12]=\"locale === 'en'\" \r\n    [onlyFutureDates]=\"onlyFutureDates\"\r\n    [ngModelOptions]=\"{standalone: true}\" [(ngModel)]=\"value\"\r\n    (ngModelChange)=\"onValueChange($event)\"></yvc-datepicker>","import {Component, Input, OnInit, forwardRef, HostBinding} from '@angular/core';\r\nimport {\r\n  FormGroup,\r\n  UntypedFormControl,\r\n  ControlValueAccessor,\r\n  Validator,\r\n  UntypedFormBuilder,\r\n  NG_VALUE_ACCESSOR,\r\n  NG_VALIDATORS\r\n} from '@angular/forms';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {RangeValue, SearchFilter, TranslateService} from '@eo-sdk/core';\r\nimport {LocaleDatePipe} from '../../../eo-framework-core/pipes/locale-date.pipe';\r\n\r\n@Component({\r\n  selector: 'eo-datetime-range',\r\n  templateUrl: './datetime-range.component.html',\r\n  styleUrls: ['./datetime-range.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => DatetimeRangeComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => DatetimeRangeComponent),\r\n      multi: true,\r\n    }\r\n  ],\r\n  host: {\r\n    class: 'form-element-range'\r\n  }\r\n})\r\nexport class DatetimeRangeComponent implements OnInit, ControlValueAccessor, Validator {\r\n\r\n  @Input() withTime: boolean;\r\n  @Input() pickerTitle: string;\r\n  @Input() operator = 'eq';\r\n\r\n  @HostBinding('class.swap') swapInputs: boolean = false;\r\n\r\n  rangeForm: FormGroup = this.fb.group({\r\n    dateValue: [],\r\n    dateValueFrom: []\r\n  });\r\n  value: RangeValue;\r\n  private isValid = true;\r\n\r\n  // options for search situation\r\n  public availableSearchOptions = [\r\n    {label: RangeValue.getOperatorLabel(SearchFilter.OPERATOR.EQUAL), value: SearchFilter.OPERATOR.EQUAL},\r\n    {label: RangeValue.getOperatorLabel(SearchFilter.OPERATOR.GREATER_OR_EQUAL), value: SearchFilter.OPERATOR.GREATER_OR_EQUAL},\r\n    {label: RangeValue.getOperatorLabel(SearchFilter.OPERATOR.LESS_OR_EQUAL), value: SearchFilter.OPERATOR.LESS_OR_EQUAL},\r\n    {label: RangeValue.getOperatorLabel(SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH), value: SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH}\r\n  ];\r\n  // the selected search option\r\n  public searchOption: string;\r\n  datePipe: LocaleDatePipe;\r\n  previousDateValue = null;\r\n  previousDateValueFrom = null;\r\n\r\n  constructor(private fb: UntypedFormBuilder, public translate: TranslateService) {\r\n    this.datePipe = new LocaleDatePipe(translate);\r\n    this.rangeForm.valueChanges.pipe(\r\n      takeUntilDestroyed()\r\n    ).subscribe(() => this.onValueChange());\r\n  }\r\n\r\n  propagateChange = (_: any) => { }\r\n  validationChange = () => { };\r\n\r\n  writeValue(value: RangeValue): void {\r\n    this._setValue(value);\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnValidatorChange?(fn: () => void): void {\r\n    this.validationChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n  }\r\n\r\n  reset() {\r\n    this._setValue(new RangeValue(\r\n      this.searchOption,\r\n      null, null\r\n    ));\r\n  }\r\n\r\n  onValueChange(searchOption = this.searchOption) {\r\n    let dateValue = this.formatDate(this.rangeForm.get('dateValue').value);\r\n    if (searchOption === SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH) {\r\n      const dateValueFrom = this.formatDate(this.rangeForm.get('dateValueFrom').value);\r\n\r\n      if (dateValueFrom && dateValue) {\r\n        this.isValid = this.rangeForm.valid && !!dateValueFrom && !!dateValue;\r\n        this.swapInputs = dateValueFrom && dateValue && dateValueFrom > dateValue;\r\n        this._setValue(new RangeValue(\r\n          searchOption,\r\n          this.swapInputs ? dateValue : dateValueFrom,\r\n          this.swapInputs ? dateValueFrom : dateValue\r\n        ));\r\n        if (this.previousDateValue !== dateValue || this.previousDateValueFrom !== dateValueFrom || this.searchOption !== searchOption) {\r\n          this.propagateChange(this.value);\r\n          this.previousDateValue = dateValue;\r\n          this.previousDateValueFrom = dateValueFrom;\r\n        }\r\n      }\r\n    } else {\r\n      this.swapInputs = false;\r\n      this.isValid = this.rangeForm.valid;\r\n      if (searchOption === SearchFilter.OPERATOR.LESS_OR_EQUAL && dateValue) {\r\n        const newDateValue = new Date(dateValue);\r\n        if (!this.withTime) newDateValue.setHours(23, 59);\r\n        dateValue = newDateValue.toISOString();\r\n      } else if (searchOption === SearchFilter.OPERATOR.GREATER_OR_EQUAL && dateValue) {\r\n        const newDateValue = new Date(dateValue);\r\n        if (!this.withTime) newDateValue.setHours(0, 0);\r\n        dateValue = newDateValue.toISOString();\r\n      }\r\n      if (this.isValid) {\r\n        this._setValue(!dateValue ? null : new RangeValue(searchOption, dateValue));\r\n        if (this.previousDateValue !== dateValue || this.searchOption !== searchOption) {\r\n          this.propagateChange(this.value);\r\n          this.previousDateValue = dateValue;\r\n        }\r\n      }\r\n    }\r\n    this.searchOption = searchOption;\r\n  }\r\n\r\n  private _setValue(value: RangeValue, emitEvent = false) {\r\n    if (JSON.stringify(this.value) === JSON.stringify(value)) return;\r\n    if (value && value instanceof RangeValue && (value.firstValue || value.secondValue)) {\r\n\r\n      const fV = value.firstValue ? new Date(value.firstValue) : null;\r\n      const sV = value.secondValue ? new Date(value.secondValue) : null;\r\n      this.value = value;\r\n\r\n      if (!value.secondValue) {\r\n        if (JSON.stringify(this.rangeForm.value.dateValue) !== JSON.stringify(fV)) {\r\n          this.rangeForm.patchValue({\r\n            dateValue: fV\r\n          }, {emitEvent});\r\n        }\r\n      } else {\r\n        if (JSON.stringify(this.rangeForm.value.dateValueFrom) !== JSON.stringify(fV)) {\r\n          this.rangeForm.patchValue({\r\n            dateValueFrom: fV\r\n          }, {emitEvent});\r\n        }\r\n        if (JSON.stringify(this.rangeForm.value.dateValue) !== JSON.stringify(sV)) {\r\n          this.rangeForm.patchValue({\r\n            dateValue: sV\r\n          }, {emitEvent});\r\n        }\r\n      }\r\n\r\n    } else {\r\n      this.value = null;\r\n      this.rangeForm.reset();\r\n    }\r\n  }\r\n\r\n  formatDate(value: Date): string {\r\n    return !value ? null :\r\n      this.withTime ? value.toISOString().replace(':00.000', '') : this.datePipe.transform(value, 'yyyy-MM-dd');\r\n  }\r\n\r\n  // returns null when valid else the validation object\r\n  public validate(c: UntypedFormControl) {\r\n\r\n    let err;\r\n    if (this.searchOption === SearchFilter.OPERATOR.EQUAL) {\r\n      err = {\r\n        datecontrol: {\r\n          valid: false,\r\n        }\r\n      };\r\n    } else {\r\n      err = {\r\n        daterange: {\r\n          valid: false,\r\n        }\r\n      };\r\n    }\r\n    return (this.isValid) ? null : err;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.searchOption = this.operator;\r\n  }\r\n}\r\n","<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\r\n  <eo-date *ngIf=\"searchOption === 'gtelte'\" [withTime]=\"withTime\"\r\n    formControlName=\"dateValueFrom\"></eo-date>\r\n\r\n  <yvc-dropdown [ngModel]=\"searchOption\" (ngModelChange)=\"onValueChange($event)\" [ngModelOptions]=\"{standalone: true}\"\r\n    [options]=\"availableSearchOptions\"></yvc-dropdown>\r\n\r\n  <eo-date [withTime]=\"withTime\" formControlName=\"dateValue\"></eo-date>\r\n</form>\r\n\r\n<div class=\"errors\" *ngIf=\"rangeForm.invalid\">\r\n  <div class=\"err-msg\" translate>eo.form.property.date.invalid</div>\r\n  <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"reset()\"></eo-icon>\r\n</div>\r\n","import {Component, forwardRef, Input} from '@angular/core';\r\nimport {ControlValueAccessor, UntypedFormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator} from '@angular/forms';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {LocaleNumberPipe} from '../../../eo-framework-core/pipes/locale-number.pipe';\r\nimport {UtilitiesService} from '../../util/services/utilities.service';\r\n\r\n@Component({\r\n  selector: 'eo-number',\r\n  templateUrl: './number.component.html',\r\n  styleUrls: ['./number.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NumberComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => NumberComponent),\r\n      multi: true,\r\n    }\r\n  ]\r\n})\r\nexport class NumberComponent implements ControlValueAccessor, Validator {\r\n\r\n  // model value\r\n  value: number;\r\n  // inner value\r\n  innerValue: string;\r\n  _scale: number;\r\n  _precision: number;\r\n  _pattern: string;\r\n  _grouping: boolean;\r\n  validationErrors = [];\r\n  numberPipe: LocaleNumberPipe;\r\n\r\n  /**\r\n   * Number of digits allowed after the comma\r\n   */\r\n  @Input() set scale(val) {\r\n    this._scale = Math.min(val || 0, 30);\r\n  };\r\n\r\n  /**\r\n   * Number of digits allowed before the comma\r\n   */\r\n  @Input() set precision(val) {\r\n    this._precision = Math.min(val || 100, 100);\r\n  };\r\n\r\n  /**\r\n   * Display localized separators (e.g. 1.000.000) in the number value\r\n   */\r\n  @Input() set grouping(val: boolean) {\r\n    this._grouping = val;\r\n  };\r\n\r\n  @Input() set pattern(val) {\r\n    this._pattern = val;\r\n  };\r\n\r\n  @Input() readonly: boolean;\r\n\r\n  constructor(private translate: TranslateService) {\r\n    this.numberPipe = new LocaleNumberPipe(this.translate);\r\n  }\r\n\r\n  get scale() {\r\n    return this._scale;\r\n  }\r\n\r\n  get precision() {\r\n    return this._precision;\r\n  }\r\n\r\n  get grouping() {\r\n    return this._grouping;\r\n  }\r\n\r\n  get pattern() {\r\n    return this._pattern;\r\n  }\r\n\r\n  propagateChange = (_: any) => {\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    this.value = value != null ? value : null;\r\n    this.innerValue = value != null ? this.numberPipe.numberToString(value, this.grouping, this.pattern, this.scale) : null;\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n  }\r\n\r\n  onValueChange(evt) {\r\n    this.validationErrors = [];\r\n\r\n    if (UtilitiesService.isEmpty(evt)) {\r\n      this.value = null;\r\n      this.propagateChange(this.value);\r\n      return;\r\n    }\r\n\r\n    // validate input\r\n    const val = this.numberPipe.stringToNumber(evt);\r\n    // general number validation\r\n    if (isNaN(val) || typeof val !== 'number') {\r\n      this.validationErrors.push({\r\n        key: 'number'\r\n      });\r\n    } else {\r\n\r\n      // check precision\r\n      const prePointDigits = this.precision - this.scale;\r\n      if (val.toFixed(0).length > prePointDigits) {\r\n        this.validationErrors.push({\r\n          key: 'precision',\r\n          translateKey: 'eo.form.property.number.precision',\r\n          translateValues: {\r\n            prepointdigits: prePointDigits\r\n          }\r\n        });\r\n      }\r\n      // check scale\r\n      if (val % 1 && val.toString().split('.')[1].length > this.scale) {\r\n        this.validationErrors.push({\r\n          key: 'scale',\r\n          translateKey: 'eo.form.property.number.scale',\r\n          translateValues: {\r\n            scale: this.scale\r\n          }\r\n        });\r\n      }\r\n\r\n      if (!this.validationErrors.length) {\r\n        this.value = val;\r\n      }\r\n    }\r\n    this.propagateChange(this.value);\r\n  }\r\n\r\n  // called when the input looses focus\r\n  public format() {\r\n    if (!this.readonly && typeof this.value === 'number' && this.validationErrors.length === 0) {\r\n      this.innerValue = this.numberPipe.numberToString(this.value, this.grouping, this.pattern, this.scale);\r\n    }\r\n  }\r\n\r\n  // called when the input get focus\r\n  public unformat() {\r\n    if (!this.readonly && typeof this.value === 'number' && this.validationErrors.length === 0) {\r\n      this.innerValue = this.numberPipe.transform(this.value, false, this.pattern, this.scale);\r\n    }\r\n  }\r\n\r\n  // returns null when valid else the validation object\r\n  public validate(c: UntypedFormControl) {\r\n\r\n    let ret = null;\r\n    if (this.validationErrors.length > 0) {\r\n      ret = {};\r\n      for (let e of this.validationErrors) {\r\n        ret[e.key] = {\r\n          valid: false,\r\n          translateKey: e.translateKey,\r\n          translateValues: e.translateValues\r\n        };\r\n      }\r\n    }\r\n    return ret;\r\n  }\r\n}\r\n","<input type=\"text\" [(ngModel)]=\"innerValue\" (focus)=\"unformat()\" (blur)=\"format()\"\r\n       [readonly]=\"readonly\"\r\n       (ngModelChange)=\"onValueChange($event)\">\r\n\r\n","import {Component, forwardRef, HostBinding, Input} from '@angular/core';\r\nimport {\r\n  UntypedFormGroup,\r\n  UntypedFormControl,\r\n  ControlValueAccessor,\r\n  Validator,\r\n  NG_VALUE_ACCESSOR,\r\n  NG_VALIDATORS\r\n} from '@angular/forms';\r\nimport {RangeValue, SearchFilter} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-number-range',\r\n  templateUrl: './number-range.component.html',\r\n  styleUrls: ['./number-range.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NumberRangeComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => NumberRangeComponent),\r\n      multi: true,\r\n    }\r\n  ],\r\n  host: {\r\n    class: 'form-element-range'\r\n  }\r\n})\r\nexport class NumberRangeComponent implements ControlValueAccessor, Validator {\r\n\r\n  @Input() scale;\r\n  @Input() precision;\r\n  @Input() grouping;\r\n  @Input() pattern;\r\n  @Input() readonly: boolean;\r\n\r\n  @HostBinding('class.swap') swapInputs: boolean = false;\r\n\r\n  public rangeForm = new UntypedFormGroup({\r\n    numberValue: new UntypedFormControl(),\r\n    numberValueFrom: new UntypedFormControl()\r\n  });\r\n\r\n  value: RangeValue;\r\n  private isValid = true;\r\n\r\n  // options for search situation\r\n  public availableSearchOptions = [\r\n    {label: RangeValue.getOperatorLabel(SearchFilter.OPERATOR.EQUAL), value: SearchFilter.OPERATOR.EQUAL},\r\n    {label: RangeValue.getOperatorLabel(SearchFilter.OPERATOR.GREATER_OR_EQUAL), value: SearchFilter.OPERATOR.GREATER_OR_EQUAL},\r\n    {label: RangeValue.getOperatorLabel(SearchFilter.OPERATOR.LESS_OR_EQUAL), value: SearchFilter.OPERATOR.LESS_OR_EQUAL},\r\n    {label: RangeValue.getOperatorLabel(SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH), value: SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH}\r\n  ];\r\n  // the selected search option\r\n  public searchOption = this.availableSearchOptions[0].value;\r\n\r\n  constructor() {\r\n    this.rangeForm.valueChanges.forEach(() => {\r\n        this.onValueChange();\r\n      }\r\n    );\r\n  }\r\n\r\n  propagateChange = (_: any) => {\r\n  }\r\n\r\n  writeValue(value: RangeValue): void {\r\n    if (value && value instanceof RangeValue && (value.firstValue != null || value.secondValue != null)) {\r\n\r\n      let match = this.availableSearchOptions.find((o) => o.value === value.operator);\r\n      this.searchOption = match ? match.value : this.availableSearchOptions[0].value;\r\n\r\n      this.value = value;\r\n      if (value.secondValue == null) {\r\n        this.rangeForm.setValue({\r\n          numberValueFrom: null,\r\n          numberValue: value.firstValue ? value.firstValue : null\r\n        });\r\n      } else {\r\n        this.rangeForm.setValue({\r\n          numberValueFrom: value.firstValue ? value.firstValue : null,\r\n          numberValue: value.secondValue ? value.secondValue : null\r\n        });\r\n      }\r\n\r\n    } else {\r\n      this.value = null;\r\n      this.rangeForm.reset();\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n  }\r\n\r\n  onValueChange() {\r\n\r\n    this.isValid = this.rangeForm.valid;\r\n    if (this.searchOption === SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH) {\r\n      this.isValid = this.rangeForm.valid && this.rangeForm.get('numberValueFrom').value != null && this.rangeForm.get('numberValue').value != null;\r\n      \r\n      const fromVal = this.rangeForm.get('numberValueFrom').value;\r\n      const toVal = this.rangeForm.get('numberValue').value;      \r\n      this.swapInputs = fromVal && toVal && parseFloat(fromVal) > parseFloat(toVal);      \r\n      this.value = !this.isValid ? null : new RangeValue(\r\n        this.searchOption,\r\n        this.swapInputs ? toVal : fromVal,\r\n        this.swapInputs ? fromVal : toVal\r\n      );\r\n    } else {\r\n      this.swapInputs = false;\r\n      this.value = !this.isValid || this.rangeForm.get('numberValue').value === null ? null : new RangeValue(\r\n        this.searchOption,\r\n        this.rangeForm.get('numberValue').value\r\n      );\r\n    }\r\n    this.propagateChange(this.value);\r\n  }\r\n\r\n  // returns null when valid else the validation object\r\n  public validate(c: UntypedFormControl) {\r\n    let err;\r\n    if (this.searchOption === SearchFilter.OPERATOR.EQUAL) {\r\n      err = {\r\n        number: {\r\n          valid: false,\r\n        }\r\n      };\r\n    } else {\r\n      err = {\r\n        numberrange: {\r\n          valid: false,\r\n        }\r\n      };\r\n    }\r\n    return (this.isValid) ? null : err;\r\n  }\r\n}\r\n","<form class=\"eo-number-range\" [formGroup]=\"rangeForm\">\r\n\r\n  <eo-number *ngIf=\"searchOption === 'gtelte'\"\r\n             [readonly]=\"readonly\"\r\n             [scale]=\"scale\"\r\n             [precision]=\"precision\"\r\n             [grouping]=\"grouping\"\r\n             [pattern]=\"pattern\"\r\n             formControlName=\"numberValueFrom\"></eo-number>\r\n\r\n  <yvc-dropdown class=\"no-trigger\" [(ngModel)]=\"searchOption\"\r\n              (ngModelChange)=\"onValueChange()\"\r\n              [disabled]=\"readonly\"\r\n              [disableClearButton]=\"true\"\r\n              [ngModelOptions]=\"{standalone: true}\"\r\n              [options]=\"availableSearchOptions\"></yvc-dropdown>\r\n\r\n  <eo-number [scale]=\"scale\"\r\n             [readonly]=\"readonly\"\r\n             [precision]=\"precision\"\r\n             [grouping]=\"grouping\"\r\n             [pattern]=\"pattern\"\r\n             formControlName=\"numberValue\"></eo-number>\r\n\r\n</form>\r\n","import {\r\n  AfterContentChecked,\r\n  Component,\r\n  EventEmitter,\r\n  forwardRef,\r\n  HostBinding,\r\n  Input,\r\n  Output,\r\n  ViewChild\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator} from '@angular/forms';\r\nimport {BackendService, SystemService, TranslateService, UserService, Utils} from '@eo-sdk/core';\r\nimport {AutoComplete} from '@yuuvis/components/autocomplete';\r\nimport {forkJoin as observableForkJoin, of as observableOf, Subscription} from 'rxjs';\r\n\r\nexport interface OrganizationFilter {\r\n  type?: string;        // The type of the organization unit ('USER' or 'GROUP') to be displayed\r\n  groups?: string[];    // an array of group names to filter autocomplete results with\r\n  roles?: string[];     // an array of role names to filter autocomplete results with\r\n  activeonly?: boolean; // whether or not to fetch only active organization objects\r\n}\r\n\r\n@Component({\r\n  selector: 'eo-organization',\r\n  templateUrl: './organization.component.html',\r\n  styleUrls: ['./organization.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => OrganizationComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => OrganizationComponent),\r\n      multi: true\r\n    }\r\n  ]\r\n})\r\nexport class OrganizationComponent implements ControlValueAccessor, AfterContentChecked, Validator {\r\n\r\n  @ViewChild('autocomplete') autoCompleteInput: AutoComplete;\r\n\r\n  icon = {\r\n    user: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 -960 960 960\" width=\"20\"><path d=\"M480-480q-60 0-102-42t-42-102q0-60 42-102t102-42q60 0 102 42t42 102q0 60-42 102t-102 42ZM192-192v-96q0-23 12.5-43.5T239-366q55-32 116.5-49T480-432q63 0 124.5 17T721-366q22 13 34.5 34t12.5 44v96H192Z\"/></svg>',\r\n    group: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 -960 960 960\" width=\"20\"><path d=\"M96-192v-92q0-26 12.5-47.5T143-366q54-32 114.5-49T384-432q66 0 126.5 17T625-366q22 13 34.5 34.5T672-284v92H96Zm648 0v-92q0-42-19.5-78T672-421q39 8 75.5 21.5T817-366q22 13 34.5 34.5T864-284v92H744ZM384-480q-60 0-102-42t-42-102q0-60 42-102t102-42q60 0 102 42t42 102q0 60-42 102t-102 42Zm336-144q0 60-42 102t-102 42q-8 0-15-.5t-15-2.5q25-29 39.5-64.5T600-624q0-41-14.5-76.5T546-765q8-2 15-2.5t15-.5q60 0 102 42t42 102Z\"/></svg>'\r\n  }\r\n\r\n  remoteUrl = '/organization/query?q=';\r\n  minLength = 2;\r\n  wildCard = '*';\r\n  @HostBinding('class.readonly') _readonly: boolean;\r\n\r\n  @Output()\r\n  onValueResolved = new EventEmitter();\r\n  // emitted when value changed holding the resolved data_meta\r\n  @Output()\r\n  onDataMetaChanged = new EventEmitter();\r\n\r\n  autocompleteRes: any[];\r\n  // model value\r\n  value;\r\n  currentUserId: string;\r\n  // inner ng-model value\r\n  innerValue: any[] = [];\r\n  error: any = {};\r\n  deletedItemID: string;\r\n  private _removeCurrentUser: boolean = false;\r\n  @Input() set removeCurrentUser(b: boolean) {\r\n    this._removeCurrentUser = b;\r\n    this.currentUserId = b ? this.userService.getCurrentUser()?.id : undefined;\r\n  }\r\n  get removeCurrentUser() {\r\n    return this._removeCurrentUser\r\n  }\r\n  @Input() situation: string;\r\n  @Input() multiselect: boolean;\r\n  @Input() set readonly(r: boolean) {\r\n    this._readonly = r;\r\n  }\r\n  get readonly() {\r\n    return this._readonly;\r\n  }\r\n  @Input() set dataMeta(dM: any) {\r\n    if (dM) {\r\n      this.innerValue = Array.isArray(dM) ? dM : [dM];\r\n    }\r\n  }\r\n  autocompleteTimeout: any\r\n  @Input() placeholder: string;\r\n  // list of values that should not be selectable\r\n  @Input() exceptions: string[] = [];\r\n  @Input() filterObject: OrganizationFilter;\r\n\r\n  constructor(private backend: BackendService,\r\n    private translate: TranslateService,\r\n    private systemService: SystemService,\r\n    public userService: UserService,\r\n  ) { }\r\n\r\n  public validate() {\r\n    return null;\r\n  }\r\n\r\n  private buildAutocompleteUri(query: string): string {\r\n    const params = {\r\n      q: query,\r\n      activeonly: (this.situation !== 'SEARCH') ? 'true' : 'false',\r\n      details: true\r\n    };\r\n\r\n    if (this.filterObject) {\r\n      if (this.filterObject.type) {\r\n        params['scope'] = this.filterObject.type;\r\n      }\r\n      if (this.filterObject.groups) {\r\n        params['groupfilter'] = this.filterObject.groups;\r\n      }\r\n      if (this.filterObject.roles) {\r\n        params['rolefilter'] = this.filterObject.roles;\r\n      }\r\n      if (this.filterObject.hasOwnProperty('activeonly')) {\r\n        params['activeonly'] = this.filterObject.activeonly ? 'true' : 'false' ;\r\n      }\r\n    }\r\n    return Utils.buildUri('/organization/query', params);\r\n  }\r\n\r\n  propagateChange = (_: any) => {\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    if (value) {\r\n      this.value = value;\r\n      this.resolveFn(value);\r\n    } else {\r\n      this.value = null;\r\n      this.innerValue = [];\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n  }\r\n\r\n  private propagate() {\r\n    this.propagateChange(this.value);\r\n    this.onDataMetaChanged.emit(this.innerValue);\r\n  }\r\n\r\n  autocompleteFn(term: string) {\r\n    clearTimeout(this.autocompleteTimeout);\r\n    this.autocompleteTimeout = setTimeout(() => {\r\n      if (term.length >= this.minLength || term === this.wildCard) {\r\n        if (this.multiselect || (!this.multiselect && this.innerValue.length === 0)) {\r\n          this.backend.getJson(this.buildAutocompleteUri(term))\r\n            .subscribe((res) => {\r\n              // autocomplete values should be unique and not part of the exceptions\r\n              this.autocompleteRes = res.filter(v => (!this.value || this.value.indexOf(v.name) === -1) && this.exceptions.indexOf(v.name) === -1 && (!this.removeCurrentUser || this.currentUserId !== v.id))\r\n                .sort(Utils.sortValues('title')).slice(0, 10);\r\n              },\r\n              Utils.throw(null,\r\n                this.translate.instant('eo.form.property.organization.request.error.title'),\r\n                this.translate.instant('eo.form.property.organization.request.error.msg')\r\n              )\r\n            );\r\n        } else {\r\n          this.autocompleteRes = [];\r\n        }\r\n      } else {\r\n        this.autocompleteRes = [];\r\n      }\r\n    }, 1000);\r\n  }\r\n\r\n  resolveFn(value: any): Subscription {\r\n    let map = (value instanceof Array ? value : [value]).map(v => {\r\n      let match = this.innerValue.find(iv => iv.name === v);\r\n      return match ? observableOf(match) : this.systemService.getOrganizationObject(v);\r\n    });\r\n\r\n    if (map.length === 0) {\r\n      this.innerValue = [];\r\n      this.onValueResolved.emit(this.innerValue);\r\n    } else {\r\n      return observableForkJoin(map).subscribe(data => {\r\n        this.innerValue = data;\r\n        this.onValueResolved.emit(this.innerValue);\r\n      });\r\n    }\r\n  }\r\n\r\n  // handle selection changes to the model\r\n  onUnselect(value) {\r\n    this.innerValue = this.innerValue.filter(v => v.name !== value.name);\r\n    let _value = this.innerValue.map(v => v.name);\r\n    this.value = this.multiselect ? _value : null;\r\n    if (!this.multiselect) {\r\n      this.clearInnerInput();\r\n    }\r\n    this.autoCompleteInput.focusInput();\r\n    this.propagate();\r\n  }\r\n\r\n  // handle selection changes to the model\r\n  onSelect(value) {\r\n    if (this.multiselect) {\r\n      this.value = this.innerValue.map(v => v.name);\r\n    } else {\r\n      // internal autocomplete control is always set to multiselect\r\n      // so the resolved value is always an array\r\n      this.value = this.innerValue[0].name;\r\n    }\r\n    this.propagate();\r\n  }\r\n\r\n  onAutoCompleteBlur() {\r\n    this.clearInnerInput();\r\n  }\r\n\r\n  private clearInnerInput() {\r\n    this.autoCompleteInput.clearInput();\r\n  }\r\n\r\n  ngAfterContentChecked() {\r\n    if (this.situation === 'SEARCH') {\r\n      this.multiselect = true;\r\n    }\r\n  }\r\n}\r\n","<div class=\"eo-organization\" [ngClass]=\"{acInputHidden: !multiselect && innerValue.length}\">\r\n\r\n  <yvc-autocomplete [(ngModel)]=\"innerValue\" #autocomplete (suggestionSelect)=\"onSelect($event)\"\r\n    [placeholder]=\"placeholder\" (suggestionUnselect)=\"onUnselect($event)\" (blur)=\"onAutoCompleteBlur()\"\r\n    [disabled]=\"readonly\" [autocompleteValues]=\"autocompleteRes\" field=\"id\"\r\n    [forceSelection]=\"true\"\r\n    (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"true\">\r\n\r\n    <ng-template #autocompleteOptionTemplate let-item>\r\n      <div class=\"org-item\">\r\n        <yvc-icon [svg]=\"item.type === 'group' ?  icon.group : icon.user\"></yvc-icon>\r\n        <span *ngIf=\"(item.firstname?.length && item.lastname?.length) || item.type === 'group'\">{{item.title}}\r\n          ({{item.name}})</span>\r\n        <span *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.type !== 'group'\">({{item.name}})</span>\r\n        <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\r\n        <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\r\n      </div>\r\n    </ng-template>\r\n\r\n    <ng-template #chipTemplate let-item>\r\n      <div class=\"org-item\">\r\n        <yvc-icon [svg]=\"item.type === 'group' ?  icon.group : icon.user\"></yvc-icon>\r\n        <span\r\n          *ngIf=\"(item.firstname?.length && item.lastname?.length && item.active) || item.type === 'group'\">{{item.title}}\r\n          ({{item.name}})</span>\r\n        <span class=\"inactive\"\r\n          *ngIf=\"(item.firstname?.length && item.lastname?.length && !item.active)\">{{item.title}}\r\n          ({{item.name}})</span>\r\n        <span *ngIf=\"(!item.firstname?.length && !item.lastname?.length && !item.active && !item.type)\"\r\n          class=\"deleted-user-label\">{{'eo.form.property.organization.error.usernotfound'|translate}}</span>\r\n        <span\r\n          *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.active && item.type !== 'group'\">({{item.name}})</span>\r\n        <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\r\n        <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\r\n      </div>\r\n    </ng-template>\r\n\r\n  </yvc-autocomplete>\r\n</div>\r\n","import {Component, forwardRef, Input} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'eo-checkbox',\r\n  templateUrl: './checkbox.component.html',\r\n  styleUrls: ['./checkbox.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => CheckboxComponent),\r\n      multi: true\r\n    }\r\n  ]\r\n})\r\nexport class CheckboxComponent implements ControlValueAccessor {\r\n\r\n  value: boolean | null;\r\n\r\n  @Input() required = false;\r\n  @Input() tristate = false;\r\n  @Input() readonly: boolean;\r\n\r\n  reset(): void {\r\n    this.value = null;\r\n    this.propagateChange(this.value);\r\n  }\r\n\r\n  propagateChange = (_: any) => {\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    if (typeof value === 'undefined') {\r\n      this.value = null;\r\n    } else {\r\n      this.value = value;\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n  }\r\n\r\n  onChange(value) {\r\n    if (this.tristate && this.required && value === null) {\r\n      this.value = true;\r\n    }\r\n    this.propagateChange(this.value);\r\n  }\r\n\r\n}\r\n","<yvc-checkbox [title]=\"value === null ? ('eo.form.property.checkbox.indefinite.tooltip' | translate) : ''\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange($event)\" [tristate]=\"tristate\"\r\n    [readonly]=\"readonly\"></yvc-checkbox>\r\n","import {Component, forwardRef, Input} from '@angular/core';\r\nimport {\r\n  UntypedFormControl,\r\n  ControlValueAccessor,\r\n  Validator,\r\n  NG_VALUE_ACCESSOR,\r\n  NG_VALIDATORS\r\n} from '@angular/forms';\r\nimport {BackendService, Utils, FormatedMailTo} from '@eo-sdk/core';\r\n\r\n\r\n@Component({\r\n  selector: 'eo-string',\r\n  templateUrl: './string.component.html',\r\n  styleUrls: ['./string.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => StringComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => StringComponent),\r\n      multi: true\r\n    }\r\n  ]\r\n})\r\nexport class StringComponent implements ControlValueAccessor, Validator {\r\n\r\n  private _autocomplete: boolean;\r\n  @Input()\r\n  set autocomplete(autoCom: boolean) {\r\n    this._autocomplete = autoCom;\r\n  }\r\n\r\n  get autocomplete() {\r\n    return this._autocomplete;\r\n  }\r\n\r\n  @Input() multiselect: boolean;\r\n  @Input() multiline: boolean;\r\n  @Input() readonly: boolean;\r\n  @Input() autofocus: boolean;\r\n\r\n  @Input() classification: string;\r\n  @Input() situation: string;\r\n  @Input() regex: string;\r\n  @Input() qname: string;\r\n  // could be small, medium, large\r\n  @Input() size: string;\r\n  @Input() minLength: number;\r\n  @Input() maxLength: number;\r\n\r\n  autocompleteRes: any[];\r\n  formatedValue: FormatedMailTo;\r\n  // model value\r\n  value;\r\n  valid: boolean;\r\n\r\n  constructor(private backend: BackendService) {\r\n  }\r\n\r\n  private _propagate() {\r\n    this.propagateChange(this.value?.length ? this.value : null);\r\n  }\r\n\r\n  propagateChange = (_: any) => {\r\n  };\r\n\r\n  onKeyUpEnter(event) {\r\n    // applies to multiselect and autocomplete\r\n    const input = event.target.value.trim();\r\n    if (input) {\r\n      this.value = this.value ? this.value : [];\r\n      this.value = [...this.value, input];\r\n      this._propagate();\r\n      event.target.value = '';\r\n    }\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    this.formatedValue = Utils.formatMailTo(value, this.classification === 'email');\r\n    this.value = value || null;\r\n    this._validate();\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n  }\r\n\r\n  onValueChange(evt) {\r\n    this.formatedValue = Utils.formatMailTo(evt, this.classification === 'email');\r\n    this.value = evt;\r\n    this._propagate()\r\n  }\r\n\r\n  onBlur() {\r\n    if (this.trimValue()) {\r\n      this._propagate()\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Trims the current value and returns wether or not it has been trimmed\r\n   */\r\n  private trimValue(): boolean {\r\n    if (this.value) {\r\n      if (this.multiselect) {\r\n        const lengthBefore = this.value.join('').length;\r\n        this.value = this.value.map(v => v.trim());\r\n        return this.value.join('').length !== lengthBefore;\r\n      } else {\r\n        const lengthBefore = this.value.length;\r\n        this.value = this.value.trim();\r\n        return this.value.length !== lengthBefore;\r\n      }\r\n    }\r\n    return false;\r\n  }\r\n\r\n  autocompleteFn(term: string) {\r\n    const uri = `/autocomplete/element?prefix=${encodeURIComponent(term)}&qname=${this.qname}`;\r\n    const base = this.backend.getSearchBase();\r\n    this.backend\r\n      .getJson(uri, base)\r\n      .subscribe(res => {\r\n        let r = [];\r\n        res.forEach(i => {\r\n          if ((!Array.isArray(this.value) && this.value !== i.value) || (Array.isArray(this.value) && !this.value.find(v => v === i.value))) {\r\n            r.push(i.value);\r\n          }\r\n        });\r\n        this.autocompleteRes = r.slice(0, 10);\r\n      });\r\n  }\r\n\r\n  private validateClassification(string): boolean {\r\n\r\n    if (this.situation === 'SEARCH') {\r\n      return true;\r\n    } else {\r\n      let pattern;\r\n      if (this.classification === 'email') {\r\n        pattern = /^(?:(.+?)\\s*<(\\w+)([\\-+.][\\w]+)*@(\\w[\\-\\w]*\\.){1,5}([A-Za-z]{2,6})>|[\"']{1}(.+?)[\"']{1}\\s*<(\\w+)([\\-+.][\\w]+)*@(\\w[\\-\\w]*\\.){1,5}([A-Za-z]{2,6})>|(\\w+)([\\-+.][\\w]+)*@(\\w[\\-\\w]*\\.){1,5}([A-Za-z]{2,6}))$/;\r\n      } else if (this.classification === 'url') {\r\n        pattern = /(http|ftp|https):\\/\\/[\\w-]+(\\.[\\w-]+)+([\\w.,@?^=%&amp;:\\/~+#-]*[\\w@?^=%&amp;\\/~+#-])?/;\r\n      }\r\n      return pattern ? pattern.test(string) : true;\r\n    }\r\n  }\r\n\r\n  private _validate() {\r\n    let err;\r\n    // validate regular expression\r\n    if (this.value && this.regex) {\r\n      if (this.multiselect) {\r\n        if (this.value.length > 0 && !!this.value.find(v => !RegExp(this.regex).test(v))) {\r\n          err = {};\r\n          err['regex'] = {\r\n            valid: false\r\n          }\r\n        }\r\n      } else {\r\n        if (!RegExp(this.regex).test(this.value)) {\r\n          err = {};\r\n          err['regex'] = {\r\n            valid: false\r\n          }\r\n        }\r\n      }\r\n    }\r\n    // validate classification settings\r\n    if (this.value && this.classification) {\r\n      if (this.multiselect) {\r\n        for (let v of this.value) {\r\n          if (!this.validateClassification(v)) {\r\n            err = {};\r\n            err['classification' + this.classification] = {\r\n              valid: false\r\n            };\r\n          }\r\n        }\r\n      } else {\r\n        if (!this.validateClassification(this.value)) {\r\n          err = {};\r\n          err['classification' + this.classification] = {\r\n            valid: false\r\n          };\r\n        }\r\n      }\r\n    }\r\n    // validate length here when multiselect\r\n    if (this.value && this.value !== null) {\r\n      if (this.multiselect) {\r\n        if (this.value.length > 0 && !!this.value.find(v => v.length < this.minLength)) {\r\n          err = {};\r\n          err['minlength'] = {\r\n            valid: false\r\n          }\r\n        }\r\n        if (this.value.length > 0 && !!this.value.find(v => v.length > this.maxLength)) {\r\n          err = {};\r\n          err['maxlength'] = {\r\n            valid: false\r\n          }\r\n        }\r\n      } else {\r\n        if (this.value.length > 0 && this.value.length < this.minLength) {\r\n          err = {};\r\n          err['minlength'] = {\r\n            valid: false\r\n          }\r\n        }\r\n        if (this.value.length > this.maxLength) {\r\n          err = {};\r\n          err['maxlength'] = {\r\n            valid: false\r\n          }\r\n        }\r\n      }\r\n    }\r\n    // validate invalid if only whitespaces\r\n    if (this.value && this.value !== null) {\r\n      if (this.multiselect) {\r\n        for (let v of this.value) {\r\n          if (v.length && !v.trim().length) {\r\n            err = {};\r\n            err['onlyWhitespaces'] = {\r\n              valid: false\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        if (this.value.length && !this.value.trim().length) {\r\n          err = {};\r\n          err['onlyWhitespaces'] = {\r\n            valid: false\r\n          }\r\n        }\r\n      }\r\n    }\r\n    this.valid = !err;\r\n    return err || null;\r\n  }\r\n\r\n  // returns null when valid else the validation object\r\n  public validate(c: UntypedFormControl) {\r\n    return this._validate();\r\n  }\r\n}\r\n","<div class=\"eo-form-string\">\r\n\r\n  <input *ngIf=\"!multiline && !multiselect && !autocomplete\" type=\"text\" (blur)=\"onBlur()\" [readonly]=\"readonly\"\r\n    [disabled]=\"readonly\" [(ngModel)]=\"value\" (ngModelChange)=\"onValueChange($event)\" />\r\n\r\n  <!-- single line input with autocomplete -->\r\n  <yvc-autocomplete *ngIf=\"!multiline && !multiselect && autocomplete\" #autocomplete [(ngModel)]=\"value\"\r\n    [disabled]=\"readonly\" [autocompleteValues]=\"autocompleteRes\" (blur)=\"onBlur()\"\r\n    (suggestionSelect)=\"onValueChange($event)\" (ngModelChange)=\"onValueChange($event)\"\r\n    (autocompleteFnc)=\"autocompleteFn($event)\">\r\n  </yvc-autocomplete>\r\n\r\n  <!-- single line input with multiselect-->\r\n  <yvc-chips *ngIf=\"!multiline && multiselect && !autocomplete\" [(ngModel)]=\"value\" [disabled]=\"readonly\"\r\n    (blur)=\"onBlur()\" (ngModelChange)=\"onValueChange($event)\">\r\n  </yvc-chips>\r\n\r\n  <!-- single line input with multiselect and autocomplete -->\r\n  <yvc-autocomplete *ngIf=\"!multiline && multiselect && autocomplete\" [autocompleteValues]=\"autocompleteRes\"\r\n    [multiple]=\"true\" [disabled]=\"readonly\" (blur)=\"onBlur()\" (autocompleteFnc)=\"autocompleteFn($event)\"\r\n    [(ngModel)]=\"value\" (ngModelChange)=\"onValueChange($event)\">\r\n  </yvc-autocomplete>\r\n\r\n  <!-- multi line text inputs -->\r\n  <textarea class=\"input-textarea size-{{size}}\" *ngIf=\"multiline\" (blur)=\"onBlur()\" [(ngModel)]=\"value\"\r\n    [readonly]=\"readonly\" [disabled]=\"readonly\" (ngModelChange)=\"onValueChange($event)\"></textarea>\r\n\r\n  <div class=\"classify\" [ngClass]=\"{empty: !value || situation === 'SEARCH'}\">\r\n    <a target=\"_blank\" href=\"mailto:{{formatedValue}}\" *ngIf=\"classification === 'email' && valid\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 -960 960 960\" width=\"20\">\r\n        <path\r\n          d=\"M180.309-212.001q-27.008 0-45.658-18.662-18.65-18.662-18.65-45.686v-407.626q0-27.024 18.65-45.524t45.658-18.5h599.382q27.008 0 45.658 18.662 18.65 18.662 18.65 45.686v407.626q0 27.024-18.65 45.524t-45.658 18.5H180.309ZM480-449.694 168-633.309v357q0 5.385 3.462 8.847 3.462 3.462 8.847 3.462h599.382q5.385 0 8.847-3.462 3.462-3.462 3.462-8.847v-357L480-449.694ZM480-517l305.846-179H174.154L480-517ZM168-633.309V-696-276.309q0 5.385 3.462 8.847 3.462 3.462 8.847 3.462H168v-369.309Z\" />\r\n      </svg>\r\n    </a>\r\n    <a target=\"_blank\" href=\"{{value}}\" *ngIf=\"classification === 'url' && valid\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 -960 960 960\" width=\"20\">\r\n        <path\r\n          d=\"M480-116.001q-75.154 0-141.499-28.462-66.346-28.461-115.962-78.076-49.615-49.616-78.076-115.962Q116.001-404.846 116.001-480q0-75.769 28.462-141.807 28.461-66.038 78.076-115.654 49.616-49.615 115.962-78.076Q404.846-843.999 480-843.999q75.769 0 141.807 28.462 66.038 28.461 115.654 78.076 49.615 49.616 78.076 115.654Q843.999-555.769 843.999-480q0 75.154-28.462 141.499-28.461 66.346-78.076 115.962-49.616 49.615-115.654 78.076Q555.769-116.001 480-116.001Zm0-53.845q21.616-21.616 40.539-70.424 18.923-48.808 29.077-108.808H410.384q10.923 61.539 29.462 110.347 18.538 48.808 40.154 68.885Zm-64.46-5q-19-30-34.308-75.539t-23.462-98.693H197.076q31.693 69.309 89.501 115.194 57.809 45.885 128.963 59.038Zm128.92 0q71.154-13.153 128.963-59.038 57.808-45.885 89.501-115.194H602.23Q592.153-295.539 576.845-250q-15.308 45.539-32.385 75.154Zm79.463-226.23h173.693q4.231-21.308 6.039-40.731 1.808-19.424 1.808-38.193t-1.808-38.693q-1.808-19.923-6.039-40.231H623.923q1.231 19.385 1.154 40.385-.077 21-.077 40.539t.077 39.539q.077 20-1.154 37.385Zm-218.308 0h148.77q2.769-22.308 3.462-41.347.692-19.038.692-37.577 0-18.539-.692-38.077-.693-19.539-3.462-40.847h-148.77q-2.769 21.308-3.462 40.847-.692 19.538-.692 38.077 0 18.539.692 38.077.693 19.539 3.462 40.847Zm-243.231 0h173.693q-1.231-19.385-1.154-40.385.077-21 .077-40.539t-.077-39.539q-.077-20 1.154-37.385H162.384q-4.231 21.308-6.039 40.731-1.808 19.424-1.808 38.193t1.808 38.193q1.808 19.423 6.039 40.731ZM602.23-610.922h160.694Q730.846-681 674-726.116q-56.847-45.115-129.54-59.423 19 31.923 33.923 76.885 14.924 44.962 23.847 97.732Zm-191.846 0h139.232q-10.923-61.154-30.039-110.924-19.115-49.769-39.577-68.308-20.462 18.539-39.577 68.308-19.116 49.77-30.039 110.924Zm-213.308 0H357.77q8.923-52.77 23.847-97.732 14.923-44.962 33.923-76.885-73.077 14.308-129.732 59.616-56.654 45.308-88.732 115.001Z\" />\r\n      </svg>\r\n    </a>\r\n  </div>\r\n\r\n</div>","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n  // tslint:disable-next-line: directive-selector\r\n  selector: 'a[routerLink]'\r\n})\r\nexport class RouterLinkDirective {\r\n  constructor(private hostElement: ElementRef) {}\r\n\r\n  @HostListener('click', ['$event.ctrlKey'])\r\n  onClick(ctrlKey: boolean): boolean {\r\n    if (ctrlKey) {\r\n      window.open(this.hostElement.nativeElement.href); // open Window via javascript to ensure undockWindow connection\r\n      return false;\r\n    }\r\n  }\r\n}\r\n","import {Component, forwardRef, Input, ViewChild, Output, EventEmitter} from '@angular/core';\r\nimport {\r\n  ControlValueAccessor,\r\n  NG_VALUE_ACCESSOR,\r\n  Validator,\r\n  UntypedFormControl,\r\n  NG_VALIDATORS\r\n} from '@angular/forms';\r\nimport {SearchService, Utils} from '@eo-sdk/core';\r\nimport {AutoComplete} from '@yuuvis/components/autocomplete';\r\n\r\n@Component({\r\n  selector: 'eo-reference',\r\n  templateUrl: './reference.component.html',\r\n  styleUrls: ['./reference.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => ReferenceComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => ReferenceComponent),\r\n      multi: true\r\n    }\r\n  ]\r\n})\r\nexport class ReferenceComponent implements ControlValueAccessor, Validator {\r\n\r\n  @ViewChild('autocomplete') autoCompleteInput: AutoComplete;\r\n\r\n  @Input() readonly: boolean;\r\n  @Input() multiselect: boolean;\r\n  /**\r\n   * Property to search for, aswell as the object type\r\n   */\r\n  @Input() reference: {element: string, type: string};\r\n  @Input() minLength: number;\r\n  @Input() maxLength: number;\r\n\r\n  @Output() onReferenceClicked = new EventEmitter();\r\n\r\n  autocompleteRes: any[];\r\n  // model value\r\n  private value;\r\n  // inner ng-model value\r\n  innerValue: {value: string, title: string}[] = [];\r\n\r\n  constructor(private searchService: SearchService) {\r\n  }\r\n\r\n  propagateChange = (value: any) => {\r\n  }\r\n\r\n  tranformValue(valueIsArray, value) {\r\n    return valueIsArray ? value.map(v => {\r\n      return {\r\n        value: v,\r\n        title: null\r\n      }\r\n    }) : [{\r\n      value: value,\r\n      title: null\r\n    }];\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n\r\n    if (value) {\r\n      const valueIsArray = Array.isArray(value);\r\n      this.value = valueIsArray ? Array.from(new Set(value)) : value;\r\n\r\n      // transform value to inner value\r\n      this.innerValue = this.tranformValue(valueIsArray, this.value);\r\n    } else {\r\n      this.value = null;\r\n      this.innerValue = [];\r\n    }\r\n\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n  }\r\n\r\n  autocompleteResult(res = null, query = '') {\r\n    const value = this.value ? this.value : [];\r\n    if (res && res.hits && res.hits.total.value) {\r\n      const results = res.hits.hits\r\n        .filter(h => !value.includes(h._source[this.reference.element]))\r\n        .map(h => ({value: h._source[this.reference.element], title: h._source.title}));\r\n      this.autocompleteRes = Utils.uniqBy(results, 'value').slice(0, 10);\r\n    } else {\r\n      this.autocompleteRes = [];\r\n    }\r\n  }\r\n\r\n  autocompleteFn(term: string) {\r\n    if (this.multiselect || !this.innerValue.length) {\r\n      const {type, element} = this.reference;\r\n      const q = {\r\n        filters: {},\r\n        types: [type],\r\n        fields: [\r\n          'title',\r\n          element\r\n        ],\r\n        options: {\r\n          sort: {\r\n            title: {\r\n              order: 'asc'\r\n            }\r\n          }\r\n        }\r\n      };\r\n\r\n      // todo: add condition to remove the values that are already set when regex operator is supported\r\n      q.filters[element] = {\r\n        o: 'eq',\r\n        v1: `${term}*`\r\n      };\r\n\r\n      this.searchService\r\n        .executeQuery(q)\r\n        .subscribe(res => this.autocompleteResult(res, term), () => this.autocompleteResult(null, term))\r\n    } else {\r\n      this.autocompleteResult(null, term);\r\n    }\r\n  }\r\n\r\n  // handle selection changes to the model\r\n  onUnselect(item) {\r\n    this.innerValue = this.innerValue.filter(iv => iv.value !== item.value);\r\n    this.value = this.multiselect ? Utils.uniqBy(this.innerValue, 'value').map(iv => iv.value) : null;\r\n    if (!this.multiselect) {\r\n      this.clearInnerInput();\r\n    }\r\n    this.propagateChange(this.value);\r\n  }\r\n\r\n  // handle selection changes to the model\r\n  onSelect(selectedItem) {\r\n\r\n    if (typeof selectedItem === 'string') selectedItem = {\r\n      value: selectedItem,\r\n      title: selectedItem\r\n    }\r\n\r\n    this.innerValue.push(selectedItem);\r\n    this.innerValue = Utils.uniqBy(this.innerValue, 'value');\r\n\r\n    if (this.multiselect) {\r\n      this.value = this.innerValue.map(iv => iv.value);\r\n    } else {\r\n      this.value = this.innerValue[0].value;\r\n    }\r\n    this.propagateChange(this.value);\r\n  }\r\n\r\n  onAutoCompleteBlur() {\r\n    this.clearInnerInput();\r\n  }\r\n\r\n  onKeyUpEnter(event) {\r\n    const input = event.target.value.trim();\r\n    if (input.length) {\r\n      this.onSelect({value: input, title: input});\r\n    }\r\n    this.clearInnerInput();\r\n  }\r\n\r\n  private clearInnerInput() {\r\n    this.autoCompleteInput.clearInput();\r\n    this.autocompleteResult();\r\n  }\r\n\r\n  getItemLinkParams(item) {\r\n    const query = {\r\n      types: [this.reference.type],\r\n      filters: {}\r\n    };\r\n    query.filters[this.reference.element] = {\r\n      o: 'eq',\r\n      v1: item.value\r\n    };\r\n    return {\r\n      query: encodeURIComponent(JSON.stringify(query))\r\n    };\r\n  }\r\n\r\n  // returns null when valid else the validation object\r\n  public validate(c: UntypedFormControl) {\r\n    let err;\r\n\r\n    if (this.value && this.value !== null) {\r\n      if (this.multiselect) {\r\n        if (this.value.length > 0 && !!this.value.find(v => v.length < this.minLength)) {\r\n          err = {};\r\n          err['minlength'] = {\r\n            valid: false\r\n          }\r\n        }\r\n        if (this.value.length > 0 && !!this.value.find(v => v.length > this.maxLength)) {\r\n          err = {};\r\n          err['maxlength'] = {\r\n            valid: false\r\n          }\r\n        }\r\n      } else {\r\n        if (this.value.length > 0 && this.value.length < this.minLength) {\r\n          err = {};\r\n          err['minlength'] = {\r\n            valid: false\r\n          }\r\n        }\r\n        if (this.value.length > this.maxLength) {\r\n          err = {};\r\n          err['maxlength'] = {\r\n            valid: false\r\n          }\r\n        }\r\n      }\r\n    }\r\n    return err ? err : null;\r\n  }\r\n}\r\n","<div class=\"eo-form-reference\" [ngClass]=\"{acInputHidden: !multiselect && !!innerValue.length}\">\r\n\r\n  <yvc-autocomplete [ngModel]=\"innerValue\" #autocomplete (suggestionSelect)=\"onSelect($event)\"\r\n    (suggestionUnselect)=\"onUnselect($event)\" [disabled]=\"readonly\" [multiple]=\"true\"\r\n    [autocompleteValues]=\"autocompleteRes\" [field]=\"'value'\" [forceSelection]=\"true\" (blur)=\"onAutoCompleteBlur()\"\r\n    (keyup.enter)=\"onKeyUpEnter($event)\" (autocompleteFnc)=\"autocompleteFn($event)\">\r\n\r\n    <!-- template for the suggest list -->\r\n    <ng-template let-item #autocompleteOptionTemplate>\r\n      <span class=\"yvc-autocomplete-token-label\" title=\"{{item.value}} ({{item.title}})\">\r\n        <strong>{{item.value}}</strong>\r\n        <span>{{item.title}}</span>\r\n      </span>\r\n    </ng-template>\r\n\r\n    <!-- template for the selected items -->\r\n    <ng-template let-item #chipTemplate>\r\n      <a class=\"link router-link\" [routerLink]=\"['/result']\" [queryParams]=\"getItemLinkParams(item)\">\r\n        <svg focusable=\"false\" class=\"ref-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n          viewBox=\"0 0 24 24\">\r\n          <path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8\r\n          13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\">\r\n          </path>\r\n        </svg>\r\n      </a>\r\n      <span class=\"yvc-autocomplete-token-label\">{{item.value}}</span>\r\n\r\n    </ng-template>\r\n  </yvc-autocomplete>\r\n</div>","import {Component, forwardRef, OnInit, Input, ViewChild, ElementRef} from '@angular/core';\r\nimport {\r\n  UntypedFormControl,\r\n  ControlValueAccessor,\r\n  Validator,\r\n  NG_VALUE_ACCESSOR,\r\n  NG_VALIDATORS\r\n} from '@angular/forms';\r\nimport {AutoComplete} from '@yuuvis/components/autocomplete';\r\nimport {TreeNode} from '../../tree/tree.component.interface';\r\n\r\n\r\n@Component({\r\n  selector: 'eo-dynamic-list',\r\n  templateUrl: './dynamic-list.component.html',\r\n  styleUrls: ['./dynamic-list.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => DynamicListComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => DynamicListComponent),\r\n      multi: true,\r\n    }\r\n  ]\r\n})\r\nexport class DynamicListComponent implements ControlValueAccessor, Validator, OnInit {\r\n\r\n  @ViewChild('autocomplete') autoCompleteInput: AutoComplete;\r\n  @ViewChild('button') autoCompleteButton;\r\n\r\n  @Input() situation: string;\r\n  @Input() multiselect: boolean;\r\n  @Input() pickerTitle: string;\r\n  @Input() readonly: boolean;\r\n\r\n  private _filterFunc: Function;\r\n\r\n  @Input('filterFunction')\r\n  set filterFunction(func: Function) {\r\n    this._filterFunc = func;\r\n    if (this._list) {\r\n      this.buildTree();\r\n    }\r\n  }\r\n\r\n  private _list: any;\r\n\r\n  @Input('listObject')\r\n  set listObject(lo: any) {\r\n    if (lo) {\r\n      this._list = lo;\r\n      if (lo.config && lo.config.valueField) {\r\n        if (this.selectedNodes) {\r\n          if (this.multiselect) {\r\n            this.selectedNodes = this.selectedNodes.map(sn => {\r\n              sn[lo.config.valueField] = sn[this.valueField];\r\n              sn['value'] = sn[this.valueField];\r\n              return sn;\r\n            });\r\n          } else {\r\n            this.selectedNodes[lo.config.valueField] = this.selectedNodes[this.valueField];\r\n            this.selectedNodes['value'] = this.selectedNodes[this.valueField];\r\n          }\r\n        }\r\n        this.valueField = lo.config.valueField;\r\n      }\r\n      if (lo.config && lo.config.descriptionField) {\r\n        this.descriptionField = lo.config.descriptionField;\r\n      }\r\n      if (lo.config && lo.config.subEntriesField) {\r\n        this.subEntriesField = lo.config.subEntriesField;\r\n      }\r\n      this.buildTree();\r\n    }\r\n  }\r\n\r\n  get list() {\r\n    return this._list;\r\n  }\r\n\r\n  valueField = 'value';\r\n  subEntriesField = 'entries';\r\n  projectsEntriesField = 'projects';\r\n  descriptionField = 'description';\r\n  display = false;\r\n  private dirty = false;\r\n  private isValid = true;\r\n  value;\r\n  tree: TreeNode[];\r\n  private _selectedNodes: any;\r\n  set selectedNodes(n: any) {\r\n    if (n && !Array.isArray(n)) {\r\n      this.autocompleteFn(n[this._list?.config?.valueField || 'value'] || n.name);\r\n    }\r\n    this._selectedNodes = structuredClone(n);\r\n  }\r\n  get selectedNodes() {\r\n    return this._selectedNodes;\r\n  }\r\n  autocompleteRes;\r\n  autocompleteValues: TreeNode[] = [];\r\n\r\n  constructor() {\r\n  }\r\n\r\n  propagateChange = (_: any) => {\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    this.dirty = false;\r\n    this.value = value || null;\r\n    const values = !this.value || Array.isArray(this.value) ? this.value || [] : [this.value];\r\n    if (value === null || value === undefined) {\r\n      if (this.multiselect) {\r\n        this.selectedNodes = [];\r\n      } else {\r\n        this.selectedNodes = null;\r\n      }\r\n    } else {\r\n      if (this.multiselect) {\r\n        this.selectedNodes = values.map(v => {\r\n          let node = {};\r\n          node[this.valueField] = v;\r\n          node['value'] = v;\r\n          return node;\r\n        });\r\n      } else {\r\n        let node = {};\r\n        node[this.valueField] = value;\r\n        node['value'] = value;\r\n        this.selectedNodes = node;\r\n      }\r\n    }\r\n    const nodes = !this.selectedNodes || Array.isArray(this.selectedNodes) ? this.selectedNodes || [] : [this.selectedNodes];\r\n\r\n    if (this._list && (nodes.length !== values.length || nodes.some((n, i) => n[this.valueField] !== values[i]))) {\r\n      this.buildTree();\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n  }\r\n\r\n  onAutoCompleteSelect(node?) {\r\n    const wasInvalid = !this.isValid;\r\n    this.isValid = true;\r\n    this.setFormControlValue(wasInvalid);\r\n  }\r\n\r\n  onAutoCompleteUnselect(node?) {\r\n    this.selectedNodes = this.selectedNodes.filter((sNode) => sNode.value !== node.value);\r\n    this.setFormControlValue();\r\n  }\r\n\r\n  onTreeSelectionChanged(evt) {\r\n    if (!this.multiselect) {\r\n      this.display = false;\r\n    }\r\n    const wasInvalid = !this.isValid;\r\n    this.isValid = true;\r\n    this.setFormControlValue(wasInvalid);\r\n  }\r\n\r\n  onClear() {\r\n    if (!this.multiselect) {\r\n      this.selectedNodes = null;\r\n    }\r\n    this.setFormControlValue();\r\n  }\r\n\r\n  /**\r\n   * Sets and propagates the form controls value based on the components inner values. Propagates only\r\n   * when the value has changed.\r\n   * @param forcePropagation - forces propagation even if the value hasn't been changed\r\n   */\r\n  private setFormControlValue(forcePropagation?: boolean) {\r\n    let v;\r\n    let changed: boolean;\r\n    if (this.multiselect) {\r\n      v = this.selectedNodes ? this.selectedNodes.map((node) => node[this.valueField]) : [];\r\n      changed = !this.value || !(v.length === this.value.length && v.every((val) => this.value.some((curVal) => curVal === val)));\r\n    } else {\r\n      v = this.selectedNodes ? this.selectedNodes.data[this.valueField] : null;\r\n      changed = v !== this.value;\r\n    }\r\n    if (changed || forcePropagation) {\r\n      this.value = v;\r\n      this.propagateChange(this.value);\r\n    }\r\n  }\r\n\r\n  private buildTree() {\r\n    this.autocompleteValues = [];\r\n    let tree: TreeNode[] = [];\r\n    for (let i = 0; i < this._list.entries.length; i++) {\r\n      this.addTreeNode(tree, this._list.entries[i]);\r\n    }\r\n    this.tree = tree;\r\n  }\r\n\r\n  private addTreeNode(parentNode: TreeNode[], listEntry) {\r\n    if (this.filterFunction && !this.filterFunction(listEntry)) {\r\n      return;\r\n    }\r\n    let node: TreeNode = this.listEntryToTreeNode(listEntry);\r\n    if (node.selectable) {\r\n      this.autocompleteValues.push(node);\r\n    }\r\n    if (listEntry[this.subEntriesField]) {\r\n      node.children = [];\r\n      for (let i = 0; i < listEntry[this.subEntriesField].length; i++) {\r\n        this.addTreeNode(node.children, listEntry[this.subEntriesField][i]);\r\n      }\r\n    }\r\n    if (listEntry[this.projectsEntriesField]) {\r\n      for (let i = 0; i < listEntry[this.projectsEntriesField].length; i++) {\r\n        this.addTreeNode(node.children, listEntry[this.projectsEntriesField][i]);\r\n      }\r\n    }\r\n    this.checkSelected(node);\r\n    parentNode.push(node);\r\n  }\r\n\r\n  private checkSelected(node: TreeNode) {\r\n    if (!this.value) {\r\n      return;\r\n    }\r\n    if (this.multiselect) {\r\n      for (let i = 0; i < this.value.length; i++) {\r\n        const isTreeNodeValueInValue = node.data[this.valueField] === this.value[i];\r\n        if (isTreeNodeValueInValue) {\r\n          const selectedNodeThatHasValue = this.selectedNodes.find(sN => sN[this.valueField] === this.value[i]);\r\n          if (!selectedNodeThatHasValue) {\r\n            node.selected = true;\r\n            this.selectedNodes.push(node);\r\n          } else {\r\n            selectedNodeThatHasValue.selected = true;\r\n          }\r\n        }\r\n      }\r\n    } else {\r\n      if (node.data[this.valueField] === this.value) {\r\n        node.selected = true;\r\n        this.selectedNodes = node;\r\n      }\r\n    }\r\n  }\r\n\r\n  autocompleteFn(term: string) {\r\n\r\n    this.autocompleteRes = this.autocompleteValues.filter((acNode) => {\r\n      if (this.filterFunction && !this.filterFunction(acNode.data)) {\r\n        return false;\r\n      }\r\n      if (this.multiselect) {\r\n        if (this.selectedNodes.find((node) => acNode.data[this.valueField] === node.data[this.valueField])) {\r\n          return false;\r\n        }\r\n      }\r\n      return acNode.data[this.valueField].toLowerCase().indexOf(term.toLowerCase()) !== -1 ||\r\n        (acNode.data[this.descriptionField] && acNode.data[this.descriptionField].toLowerCase().indexOf(term.toLowerCase()) !== -1);\r\n    }).slice(0, 10);\r\n  }\r\n\r\n  private listEntryToTreeNode(listEntry): TreeNode {\r\n    let selectable = false;\r\n    if (this._list && this._list.config && this._list.config.allelementsselectable) {\r\n      selectable = true;\r\n    } else {\r\n      selectable = !(listEntry[this.subEntriesField] && listEntry[this.subEntriesField].length > 0);\r\n    }\r\n\r\n    let treeNode = {\r\n      id: listEntry.id ? listEntry.id : listEntry[this.valueField],\r\n      name: listEntry[this.descriptionField] ? listEntry[this.valueField] + ' (' + listEntry[this.descriptionField] + ')' : listEntry[this.valueField],\r\n      children: [],\r\n      expanded: false,\r\n      selected: false,\r\n      selectable: selectable,\r\n      data: listEntry\r\n    };\r\n    treeNode[this.valueField] = listEntry[this.valueField];\r\n    treeNode.data['value'] = listEntry[this.valueField];\r\n    treeNode[this.descriptionField] = listEntry[this.descriptionField];\r\n    treeNode[this.subEntriesField] = listEntry[this.subEntriesField];\r\n\r\n    return treeNode;\r\n  }\r\n\r\n  showDialog(event?, display = true) {\r\n    if (event) {\r\n      event.stopPropagation();\r\n      event.preventDefault();\r\n      //ignore synthetized events on enter\r\n      if (event.type === 'click' && event.detail === 0) {\r\n        return;\r\n      }\r\n    }\r\n    this.display = !!display;\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this.situation === 'SEARCH') {\r\n      this.multiselect = true;\r\n    }\r\n  }\r\n\r\n  public validate(c: UntypedFormControl) {\r\n    return (this.isValid) ? null : {\r\n      dynamiclist: {\r\n        valid: false,\r\n      },\r\n    };\r\n  }\r\n}\r\n","<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length)}\"\r\n  [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\r\n\r\n  <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\r\n    [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\r\n    (ngModelChange)=\"onTreeSelectionChanged($event)\">\r\n  </eo-tree>\r\n\r\n  <div class=\"empty\" *ngIf=\"!(list?.entries?.length)\">\r\n    <div translate>eo.form.property.dynamic.list.empty</div>\r\n  </div>\r\n</eo-dialog>\r\n\r\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\r\n\r\n  <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\r\n    [disabled]=\"readonly\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [forceSelection]=\"true\"\r\n    [autocompleteValues]=\"autocompleteRes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" field=\"{{valueField}}\" (autocompleteFnc)=\"autocompleteFn($event)\"\r\n    [multiple]=\"multiselect\">\r\n\r\n    <ng-template let-item #chipTemplate>\r\n      <div>\r\n        <div class=\"value\">{{item[valueField]}}</div>\r\n      </div>\r\n    </ng-template>\r\n\r\n    <ng-template #autocompleteOptionTemplate let-item>\r\n      <div>\r\n        <div class=\"value\">{{item[valueField]}}</div>\r\n        <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\r\n      </div>\r\n    </ng-template>\r\n  </yvc-autocomplete>\r\n\r\n  <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, $event.detail)\"\r\n    (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\r\n    <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\r\n  </button>\r\n</div>","import {\r\n  animate,\r\n  AnimationTriggerMetadata,\r\n  state,\r\n  style,\r\n  transition,\r\n  trigger\r\n} from '@angular/animations';\r\n\r\nexport const fadeInOut: AnimationTriggerMetadata = trigger('fadeInOut', [\r\n  state(\r\n    'void',\r\n    style({\r\n      opacity: 0\r\n    })\r\n  ),\r\n  transition('void <=> *', animate(200))\r\n]);\r\n","import {Injectable} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {SearchResult, SearchService, SystemService, DmsObject} from '@eo-sdk/core';\r\nimport {BehaviorSubject, Observable, of} from 'rxjs';\r\nimport {map} from 'rxjs/operators';\r\nimport {\r\n  ReferenceItem,\r\n  ReferenceSearch\r\n} from '../interface/reference-finder.interface';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ReferenceFinderService {\r\n  private referencesLoader = new BehaviorSubject<boolean>(false);\r\n  public referencesLoader$: Observable<boolean> = this.referencesLoader.asObservable();\r\n\r\n  constructor(\r\n    private searchService: SearchService,\r\n    private systemService: SystemService,\r\n    private router: Router\r\n  ) {}\r\n\r\n  private searchReferences(searchText: string, types: string[], contextId?: string, queryFilters?: any): Observable<SearchResult | string[]> {\r\n    if (searchText) {\r\n      let q: any = {\r\n        fields: ['title', 'description', 'type'],\r\n        types: types,\r\n        term: searchText,\r\n        filters: queryFilters,\r\n        options: {withcontext: true, highlighting: false}\r\n      };\r\n\r\n      if (contextId) {\r\n        if(q.filters){\r\n          q.filters.contextfolderid = {v1: contextId, o: 'eq'};\r\n        } else {\r\n          q.filters = {contextfolderid: {v1: contextId, o: 'eq'}};\r\n        }\r\n      }\r\n\r\n      return this.searchService\r\n        .executeQuery(q)\r\n        .pipe(\r\n          map(item => item ? this.searchService.createResultFromResponse(item) : [])\r\n        );\r\n    }\r\n    return of([]);\r\n  }\r\n\r\n  private createResultList(list: ReferenceSearch[], currentSelection, types): ReferenceItem[] {\r\n    if (list.length) {\r\n      return list.map(el =>\r\n        this.generateResultElement(el, currentSelection, types)\r\n      );\r\n    }\r\n  }\r\n\r\n  private getReferenceUrl(id: string): string {\r\n    if (id) {\r\n      return this.router.createUrlTree(['object', id]).toString().replace(/\\(modal:\\w+\\)$/g, '');\r\n    }\r\n  }\r\n\r\n  selectOnMultisSelect(list: ReferenceItem[], item: ReferenceItem): ReferenceItem[] {\r\n    const index = list.findIndex(el => el.id === item.id);\r\n    list[index].selected = !list[index].selected;\r\n    return list;\r\n  }\r\n\r\n  selectOnSingleSelect(list: ReferenceItem[], item: ReferenceItem): ReferenceItem[] {\r\n    list.forEach(entry => entry.id === item.id && !entry.selected ? (entry.selected = true) : (entry.selected = false));\r\n    return list;\r\n  }\r\n\r\n  generateSeletecItems(search: ReferenceItem[], clipboard: ReferenceItem[], selection: ReferenceItem[]): ReferenceItem[] {\r\n    const selCB = clipboard.filter(el => el.selected && !selection.find(cS => cS.id === el.id));\r\n    const searchRes = search.filter(el => el.selected && !selection.find(cS => cS.id === el.id));\r\n    return [...selCB, ...searchRes];\r\n  }\r\n\r\n  findReferences(searchTerm: string, types = [], contextId?: string, queryFilters?: any) {\r\n    return this.searchReferences(searchTerm, types, contextId, queryFilters);\r\n  }\r\n\r\n  generateResults(list, hits, currentSelection, types) {\r\n    const results = [...list, ...this.createResultList(hits, currentSelection, types)];\r\n    return results.filter((item, index) => (index === results.findIndex(obj => obj.id === item.id && !item.clipboard)));\r\n  }\r\n\r\n  generateReferenceItemsFromDmsObjects(dmsObjects: DmsObject[], currentSelection: ReferenceItem[], disabled = false): ReferenceItem[] {\r\n    return dmsObjects\r\n      .map(obj => ({\r\n        ...obj,\r\n        objectType: obj.type,\r\n        clipboard: true,\r\n        link: this.getReferenceUrl(obj.id),\r\n        disabled: !disabled ? !!currentSelection.find(cS => cS.id === obj.id) : disabled,\r\n        selected: !!currentSelection.find(cS => cS.id === obj.id)\r\n      }));\r\n  }\r\n\r\n  generateResultElement(element: ReferenceSearch, currentSelection: ReferenceItem[], types: string): ReferenceItem {\r\n    const objectType = this.systemService.getObjectType(element.type);\r\n    const disabled = !!currentSelection.find(cS => cS.id === element.id);\r\n\r\n    const {description, title, id} = element;\r\n\r\n    return {\r\n      description,\r\n      title,\r\n      id,\r\n      contextFolder: element.context,\r\n      objectType,\r\n      selected: disabled,\r\n      typeName: types,\r\n      disabled,\r\n      clipboard: false,\r\n      link: this.getReferenceUrl(id)\r\n    };\r\n  }\r\n}\r\n","import {Component, OnInit, Input} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'eo-loading-spinner',\r\n  template: `\r\n    <div class=\"eo-loading\">\r\n      <div class=\"eo-loader\" [ngClass]=\"{small: size === 'small', medium: size === 'medium', large: size === 'large', dark: mode === 'dark'}\"></div>\r\n    </div>`,\r\n  styleUrls: ['./loading-spinner.component.scss']\r\n})\r\nexport class LoadingSpinnerComponent implements OnInit {\r\n\r\n  @Input() size: string;\r\n  @Input() mode: string;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {ReferenceItem} from '../interface/reference-finder.interface';\r\n\r\n@Component({\r\n  selector: 'eo-reference-finder-entry',\r\n  templateUrl: './reference-finder-entry.component.html',\r\n  styleUrls: ['./reference-finder-entry.component.scss']\r\n})\r\nexport class ReferenceFinderEntryComponent {\r\n  @Input() list: ReferenceItem;\r\n  @Input() multiselect: boolean;\r\n  @Input() marked: boolean;\r\n  @Output() selectReference: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  get link() {\r\n    return this.list && this.list.link ? this.list.link.replace(new RegExp('^/'), '') : '';\r\n  }\r\n\r\n  constructor() {}\r\n\r\n  select(item: ReferenceItem, add = false, selectedAble = true) {\r\n    if (selectedAble) {\r\n      this.selectReference.emit({ item, add });\r\n    }\r\n  }\r\n}\r\n","<div tabindex=\"-1\" class=\"resultsList\" *ngIf=\"list\" [class.disabled]=\"list?.disabled\" [class.selected]=\"list?.selected\" [class.marked]=\"marked\">\r\n    <a class=\"link\" [href]=\"link\" target=\"_blank\">\r\n      <eo-icon class=\"link\" [iconSrc]=\"'ic_link.svg'\"  [iconTitle]=\"'eo.object.details' | translate\"></eo-icon>\r\n    </a>\r\n    <div class=\"content\" [class.singleselect]=\"!multiselect\">\r\n      <div class=\"select\" *ngIf=\"multiselect\" (click)=\"select(list, false, !list?.disabled)\" [class.selected]=\"list?.selected\" [class.disabled]=\"list?.disabled\">\r\n        <svg fill=\"#ffffff\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n          <path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\r\n        </svg>\r\n      </div>\r\n      \r\n      <div class=\"details\" [class.width-clipboard]=\"list?.clipboard\"\r\n      (click)=\"select(list, false, !list?.disabled && !list?.selected)\" (dblclick)=\"select(null, true, !list?.disabled)\">\r\n        \r\n        <eo-icon class=\"icon\" [objectType]=\"list?.objectType\"  [iconTitle]=\"list?.objectType?.label\"></eo-icon>\r\n        <div class=\"title\">\r\n          {{list?.title}}\r\n        </div>\r\n        <span class=\"extra\" *ngIf=\"list?.contextFolder\">{{'eo.references.search.contextfolder' | translate}}: {{list?.contextFolder?.title}} - {{list?.contextFolder?.description}}</span>\r\n        <div class=\"description\">\r\n         {{list?.description}}\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>","import {Component, EventEmitter, Input, Output, HostListener, ViewChildren, QueryList, ElementRef, AfterViewInit, ViewChild} from '@angular/core';\r\nimport {Clipboard, SearchResult} from '@eo-sdk/core';\r\nimport {Subject} from 'rxjs';\r\nimport {fadeInOut} from '../animation/reference-finder.animation';\r\nimport {\r\n  ReferenceItem,\r\n  ReferenceSearchCounter\r\n} from '../interface/reference-finder.interface';\r\nimport {ReferenceFinderService} from '../service/reference-finder.service';\r\nimport {debounceTime} from 'rxjs/operators';\r\n\r\n@Component({\r\n  selector: 'eo-reference-finder',\r\n  templateUrl: './reference-finder.component.html',\r\n  styleUrls: ['./reference-finder.component.scss'],\r\n  animations: [fadeInOut]\r\n})\r\nexport class ReferenceFinderComponent implements AfterViewInit {\r\n\r\n  @ViewChildren('entry', {read: ElementRef}) entries: QueryList<ElementRef>;\r\n  @ViewChild('searchInput') searchInput!: ElementRef;\r\n\r\n  searchTerm$ = new Subject<string>();\r\n  searchResultCount: ReferenceSearchCounter;\r\n  selectedItems = [];\r\n  resultList: ReferenceItem[] = [];\r\n  private _currentSelection: ReferenceItem[];\r\n  clipboardItems: ReferenceItem[] = [];\r\n  clipboardOpen = true;\r\n  _markedItem: ReferenceItem;\r\n  searching = false;\r\n\r\n  set markedItem(item: ReferenceItem) {\r\n    this._markedItem = item;\r\n    this.scrollItemIntoView(this._markedItem);\r\n  }\r\n\r\n  get markedItem() {\r\n    return this._markedItem;\r\n  }\r\n\r\n  @Input() isDisabled: boolean;\r\n  @Input() types: string;\r\n  @Input() multiselect: boolean;\r\n  @Input() contextId: string;\r\n  @Input() exceptionIDs: string[];\r\n\r\n  @Input() queryFilters: {[fieldQname: string]: {o: string, v1: any, v2: any}};\r\n\r\n  @Input()\r\n  set currentSelection(selection: ReferenceItem[]) {\r\n    this._currentSelection = selection;\r\n  }\r\n  get currentSelection(): ReferenceItem[] {\r\n    return this._currentSelection;\r\n  }\r\n\r\n  @Input()\r\n  set clipboard(clipboard: Clipboard) {\r\n    this.clipboardItems = this.referenceFinderService.generateReferenceItemsFromDmsObjects(clipboard.elements, this.currentSelection, this.isDisabled);\r\n  }\r\n  @Output() addDmsObjects: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  @HostListener('keydown', ['$event'])\r\n  onKey(event) {\r\n    if (event.which === 40) { // arrow down\r\n      if (!this.markedItem && (this.clipboardItems.length || this.resultList.length)) {\r\n        this.markedItem = (this.clipboardItems.length && this.clipboardOpen) ? this.clipboardItems[0] : this.resultList[0];\r\n      } else {\r\n        let index;\r\n        if (this.clipboardItems && this.clipboardOpen) {\r\n          index = this.clipboardItems.findIndex(item => item.id === this.markedItem.id);\r\n          if (index >= 0) {\r\n            index++;\r\n            if (index === this.clipboardItems.length && !this.resultList.length) {\r\n              index = 0;\r\n              this.markedItem = this.clipboardItems[index]\r\n            } else if (index === this.clipboardItems.length && this.resultList.length) {\r\n              index = 0;\r\n              this.markedItem = this.resultList[index];\r\n            } else {\r\n              this.markedItem = this.clipboardItems[index];\r\n            }\r\n          }\r\n        }\r\n        if ((index === undefined || index === -1) && this.resultList.length) {\r\n          index = this.resultList.findIndex(item => item.id === this.markedItem.id);\r\n          if (index >= 0) {\r\n            index++;\r\n            if (index === this.resultList.length && this.clipboardOpen) {\r\n              index = 0;\r\n              this.markedItem = this.clipboardItems[index]\r\n            } else if (index === this.resultList.length && !this.clipboardOpen) {\r\n              index = 0;\r\n              this.markedItem = this.resultList[index];\r\n            } else {\r\n              this.markedItem = this.resultList[index];\r\n            }\r\n          } else {\r\n            index = 0;\r\n            this.markedItem = this.resultList[index];\r\n          }\r\n        }\r\n      }\r\n    }\r\n    else if (event.which === 38) { // arrow up\r\n      if (!this.markedItem && (this.clipboardItems.length || this.resultList.length)) {\r\n        this.markedItem = (this.clipboardItems.length && this.clipboardOpen) ? this.clipboardItems[0] : this.resultList[0];\r\n      } else {\r\n        let index;\r\n        if (this.clipboardItems && this.clipboardOpen) {\r\n          index = this.clipboardItems.findIndex(item => item.id === this.markedItem.id);\r\n          if (index >= 0) {\r\n            index--;\r\n            if (index === -1 && this.resultList.length) {\r\n              index = this.resultList.length - 1;\r\n              this.markedItem = this.resultList[index]\r\n            } else if (index === -1 && !this.resultList.length) {\r\n              index = this.clipboardItems.length - 1;\r\n              this.markedItem = this.clipboardItems[index];\r\n            } else {\r\n              this.markedItem = this.clipboardItems[index];\r\n            }\r\n          }\r\n        }\r\n        if ((index === undefined || index === -1) && this.resultList.length) {\r\n          index = this.resultList.findIndex(item => item.id === this.markedItem.id);\r\n          if (index >= 0) {\r\n            index--;\r\n            if (index === -1 && this.clipboardOpen) {\r\n              index = this.clipboardItems.length - 1;\r\n              this.markedItem = this.clipboardItems[index]\r\n            } else if (index === -1 && !this.clipboardOpen) {\r\n              index = this.resultList.length - 1;\r\n              this.markedItem = this.resultList[index];\r\n            } else {\r\n              this.markedItem = this.resultList[index];\r\n            }\r\n          } else {\r\n            index = this.resultList.length - 1;\r\n            this.markedItem = this.resultList[index];\r\n          }\r\n        }\r\n      }\r\n    }\r\n    else if (event.which === 13 && event.ctrlKey) { // ctrl + enter\r\n      if (this.markedItem && !this.markedItem.disabled) {\r\n        this.selectReference({item: this.markedItem, add: true});\r\n      }\r\n    }\r\n    else if (event.which === 13) { // enter\r\n      if (this.markedItem && !this.markedItem.disabled) {\r\n        this.selectReference({item: this.markedItem, add: !this.multiselect});\r\n      }\r\n    }\r\n  }\r\n\r\n  constructor(private referenceFinderService: ReferenceFinderService) {\r\n    this.searching = true;\r\n    this.searchTerm$.pipe(debounceTime(500)).subscribe(searchTerm => {\r\n      this.referenceFinderService.findReferences(searchTerm, [this.types], this.contextId, this.queryFilters)\r\n        .subscribe((searchResult: SearchResult) => {\r\n          const hits = (this.exceptionIDs && searchResult.hits) ? searchResult.hits.filter(hit => !this.exceptionIDs.includes(hit.id)) : searchResult.hits;\r\n          if (hits && hits.length) {\r\n            this.clipboardOpen = false;\r\n            this.resultList = this.referenceFinderService.generateResults(this.clipboardItems, hits, this.currentSelection, this.types);\r\n          } else {\r\n            this.searchTerm$.next('*');\r\n            this.clipboardOpen = true;\r\n          }\r\n          this.markedItem = null;\r\n          this.searching = false;\r\n        });\r\n    });\r\n  }\r\n\r\n  get loadingReferences(): boolean {\r\n    return !!this.resultList.length;\r\n  }\r\n\r\n  get disableAdd(): boolean {\r\n    return !this.selectedItems.length;\r\n  }\r\n\r\n  get copyOnly(): boolean {\r\n    return this.clipboardItems.length && !this.resultList.length;\r\n  }\r\n\r\n  get searchOnly(): boolean {\r\n    return this.resultList.length && !this.clipboardItems.length;\r\n  }\r\n\r\n  selectAllEntries(){\r\n    [...this.clipboardItems, ...this.resultList].filter(item => !item.selected).forEach(item => this.selectReference({item: item, add: false}))\r\n  }\r\n\r\n  selectCopiedEntries() {\r\n    this.clipboardItems.filter(item => !item.selected).forEach(item => this.selectReference({item: item, add: false}));\r\n  }\r\n\r\n  selectReference(selectReference: {item: ReferenceItem; add: boolean}) {\r\n    const {item, add} = selectReference;\r\n    if (item && !item.disabled) {\r\n      if (this.multiselect) {\r\n        !item.clipboard\r\n          ? (this.resultList = this.referenceFinderService.selectOnMultisSelect(this.resultList, item))\r\n          : (this.clipboardItems = this.referenceFinderService.selectOnMultisSelect(this.clipboardItems, item));\r\n      } else {\r\n        if (!item.clipboard) {\r\n          this.resultList = this.referenceFinderService.selectOnSingleSelect(this.resultList, item);\r\n          this.clipboardItems.forEach(item => item.selected = false);\r\n        } else {\r\n          this.clipboardItems = this.referenceFinderService.selectOnSingleSelect(this.clipboardItems, item);\r\n          this.resultList.forEach(item => item.selected = false);\r\n        }\r\n      }\r\n\r\n      this.selectedItems = this.referenceFinderService.generateSeletecItems(this.resultList, this.clipboardItems, this.currentSelection);\r\n    }\r\n    if (add) {\r\n      this.addItems();\r\n    }\r\n  }\r\n\r\n  addItems() {\r\n    this.addDmsObjects.emit(this.selectedItems);\r\n  }\r\n\r\n  private scrollItemIntoView(item){\r\n    if (item) {\r\n      let index = this.clipboardItems.findIndex(i => i.id === item.id);\r\n      if (index === -1 && this.resultList.length) {\r\n        index = this.resultList.findIndex(i => i.id === item.id) + this.clipboardItems.length;\r\n      }\r\n      this.entries.toArray()[index].nativeElement.scrollIntoView(false);\r\n    } else if (this.entries.toArray().length) {\r\n      this.entries.toArray()[0].nativeElement.scrollIntoView(false);\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    // initially load everything and focus into the search field\r\n    this.searchTerm$.next('*');\r\n    this.searchInput.nativeElement.focus();\r\n  }\r\n}\r\n","\r\n<section class=\"reference-finder-search--input\">\r\n  <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\r\n</section>\r\n\r\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\r\n  <div class=\"results\">\r\n    <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\r\n    [header]=\"'eo.clipboard.type.copy' | translate\"\r\n    [selected]=\"true\"\r\n    (selectChange)=\"clipboardOpen = $event;\"\r\n    class=\"results-accordion\">\r\n        <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\r\n          [@fadeInOut]\r\n          [list]=\"list\"\r\n          [multiselect]=\"multiselect\"\r\n          (selectReference)=\"selectReference($event)\"\r\n          [marked]=\"list.id === markedItem?.id\"\r\n        >\r\n      </eo-reference-finder-entry>\r\n    </eo-simple-accordion>\r\n\r\n    <section *ngIf=\"clipboardItems.length && copyOnly\">\r\n      <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\r\n        [@fadeInOut]\r\n        [list]=\"list\"\r\n        [multiselect]=\"multiselect\"\r\n        (selectReference)=\"selectReference($event)\"\r\n        [marked]=\"list.id === markedItem?.id\"\r\n      >\r\n      </eo-reference-finder-entry>\r\n    </section>\r\n    <div class=\"padding\"></div>\r\n\r\n    <eo-simple-accordion *ngIf=\"resultList.length && !searchOnly\" [selected]=\"true\" [header]=\"'eo.search.title' | translate\" class=\"results-accordion\">\r\n      <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\r\n        [@fadeInOut]\r\n        [list]=\"list\"\r\n        [multiselect]=\"multiselect\"\r\n        (selectReference)=\"selectReference($event)\"\r\n        [marked]=\"list.id === markedItem?.id\"\r\n      >\r\n      </eo-reference-finder-entry>\r\n    </eo-simple-accordion>\r\n\r\n    <section *ngIf=\"resultList.length && searchOnly\">\r\n      <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\r\n        [@fadeInOut]\r\n        [list]=\"list\"\r\n        [multiselect]=\"multiselect\"\r\n        (selectReference)=\"selectReference($event)\"\r\n        [marked]=\"list.id === markedItem?.id\"\r\n      >\r\n      </eo-reference-finder-entry>\r\n    </section>\r\n  </div>\r\n\r\n  <div class=\"cta\">\r\n    <div>\r\n      <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\r\n      <button type=\"button\" *ngIf=\"multiselect && !searchOnly\" [disabled]=\"isDisabled\" (click)=\"selectCopiedEntries()\">{{('eo.cta.button.select.copy' | translate)}}</button>\r\n    </div>\r\n    <button type=\"button\" class=\"add\" (click)=\"addItems()\" *ngIf=\"!disableAdd\" [@fadeInOut]  [class.active]=\"!disableAdd\" [disabled]=\"disableAdd\" [title]=\"'eo.cta.button.add' | translate\">\r\n      {{('eo.cta.button.add' | translate)}}\r\n    </button>\r\n  </div>\r\n</section>\r\n\r\n<ng-template #loading>\r\n  <div class=\"loader-overlay__mask\">\r\n    <eo-loading-spinner class=\"reference__loader\" [size]=\"'large'\"></eo-loading-spinner>\r\n  </div>\r\n</ng-template>\r\n","import {ReferenceService} from './../../../eo-framework-core/references/reference.service';\r\nimport {Component, forwardRef, Input, OnInit, ViewChild} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR, Validator, UntypedFormControl, NG_VALIDATORS} from '@angular/forms';\r\nimport {\r\n  Clipboard,\r\n  ClipboardService,\r\n  DmsObject,\r\n  ObjectType,\r\n  SearchResult, SearchService,\r\n  SystemService, Utils\r\n} from '@eo-sdk/core';\r\nimport {debounceTime, map} from 'rxjs/operators';\r\nimport {AutoComplete} from '@yuuvis/components/autocomplete';\r\n\r\nexport interface DataToRenderItem {\r\n  id: string;\r\n  title?: string;\r\n  typeName: string;\r\n  description?: string;\r\n  state?: string;\r\n}\r\n\r\n@Component({\r\n  selector: 'eo-id-reference',\r\n  templateUrl: './id-reference.component.html',\r\n  styleUrls: ['./id-reference.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => IdReferenceComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => IdReferenceComponent),\r\n      multi: true\r\n    }\r\n  ]\r\n})\r\nexport class IdReferenceComponent implements ControlValueAccessor, OnInit, Validator {\r\n  private value; // model value\r\n  _innerValues: DataToRenderItem[] = []; // inner ng-model value\r\n  clipboard: Clipboard;\r\n  referenceType: ObjectType;\r\n  subTypes: ObjectType[];\r\n  tooltipTypeHint: string;\r\n  visibleDialog = false;\r\n\r\n  autocompleteRes;\r\n\r\n  @Input() readonly: boolean;\r\n  @Input() multiselect: boolean;\r\n  @Input() situation: string;\r\n  @Input() contextId: string;\r\n  @Input() exceptionIDs: string[];\r\n  @ViewChild('autocomplete') autoCompleteInput: AutoComplete;\r\n\r\n  set innerValues(data: DataToRenderItem[]) {\r\n    if (data) {\r\n      this._innerValues = data;\r\n    } else {\r\n      this._innerValues = [];\r\n    }\r\n  }\r\n\r\n  get innerValues() {\r\n    return this._innerValues;\r\n  }\r\n\r\n  @Input()\r\n  set dataToRender(data: DataToRenderItem[]) {\r\n    if (data) {\r\n      this.innerValues = data;\r\n    } else {\r\n      this.innerValues = [];\r\n    }\r\n  }\r\n\r\n  @Input()\r\n  set reference(ref: any) {\r\n    this.referenceType = ref ? this.system.getObjectType(ref.type) : null;\r\n    this.subTypes = this.getSubTypes(this.referenceType?.name, this.system.getObjectTypes());\r\n    this.tooltipTypeHint = this.createTooltipTypeHint(this.referenceType, this.subTypes);\r\n  }\r\n\r\n  @Input() queryFilters: {\r\n    [fieldQname: string]: {o: string, v1: any, v2: any}\r\n  };\r\n\r\n  @Input() objectTypesFilter: string[];\r\n\r\n  private getSubTypes(typeName, types) {\r\n    let subTypes = [];\r\n    types.forEach(objectType => {\r\n      if (!!objectType.supertypes.find(sT => sT === typeName)) {\r\n        subTypes.push(objectType);\r\n      }\r\n    });\r\n    return subTypes;\r\n  }\r\n\r\n  private createTooltipTypeHint(referenceType, subTypes = []) {\r\n    return referenceType ? `(${[referenceType.label, ...subTypes.map(types => types.label)].join(', ')})` : '';\r\n  }\r\n\r\n  constructor(private clipboardService: ClipboardService, private system: SystemService,\r\n    private referenceService: ReferenceService,\r\n    private searchService: SearchService) {\r\n    this.clipboardService.clipboard$.subscribe(clipboard => (this.clipboard = clipboard));\r\n    this.clipboard = this.clipboardService.get();\r\n  }\r\n\r\n  showDialog() {\r\n    this.visibleDialog = !this.visibleDialog;\r\n  }\r\n\r\n  get selectionDisabled() {\r\n    return this.multiselect ? false : this.innerValues.length;\r\n  }\r\n\r\n  get isDisabled() {\r\n    return (\r\n      !this.referenceType ||\r\n      this.readonly ||\r\n      this.clipboard.action === 1 ||\r\n      !this.clipboard.elements.length ||\r\n      this.containsIncorrectTypes(\r\n        this.clipboard.elements,\r\n        this.referenceType,\r\n        this.subTypes\r\n      ) ||\r\n      this.containsIncorrectContext(this.clipboard.elements, this.contextId)\r\n    );\r\n  }\r\n\r\n  private containsIncorrectTypes(clipboardElements, refType, subTypes) {\r\n    return !!clipboardElements.find(cbEl => !(cbEl.typeName === refType.name || subTypes.find(sT => sT.name === cbEl.typeName)));\r\n  }\r\n\r\n  private containsIncorrectContext(clipboardElements, contextId) {\r\n    return !!clipboardElements.find(cbEl => {\r\n      if (!contextId) {\r\n        return false;\r\n      }\r\n      return !cbEl.contextFolder || cbEl.contextFolder.id !== contextId;\r\n    });\r\n  }\r\n\r\n  paste(content?: DmsObject[]) {\r\n    this.linkDmsObject(content);\r\n    this.showDialog();\r\n    this.propagateChange(this.value);\r\n  }\r\n\r\n  private linkDmsObject(content?: DmsObject[]) {\r\n    (content || this.clipboard.elements).forEach((dmsObject: DmsObject) => {\r\n      const {id, title, description, typeName} = dmsObject;\r\n      this.innerValues.push({id, title, description, typeName});\r\n    });\r\n    this.innerValues = Utils.uniqBy(this.innerValues, 'id');\r\n    if (this.multiselect) {\r\n      this.value = this.innerValues.map(iv => iv.id);\r\n    } else {\r\n      this.value = this.innerValues[0].id;\r\n    }\r\n  }\r\n\r\n  removeItem(item) {\r\n    this.innerValues = this.innerValues.filter(iv => iv.id !== item.id);\r\n    this.value = this.multiselect\r\n      ? Utils.uniqBy(this.innerValues, 'id').map(iv => iv.id)\r\n      : null;\r\n    if (!this.multiselect) {\r\n      this.clearInnerInput();\r\n    }\r\n    this.autoCompleteInput.focusInput();\r\n    this.propagateChange(this.value);\r\n  }\r\n\r\n  private clearInnerInput() {\r\n    this.autoCompleteInput.clearInput();\r\n\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    if (value) {\r\n      this.value = value;\r\n      this.updateInnerValues(this.value);\r\n    } else {\r\n      this.value = null;\r\n      this.innerValues = [];\r\n    }\r\n  }\r\n\r\n  private updateInnerValues(value) {\r\n    const values = Array.isArray(value) ? value : [value];\r\n    this.innerValues = this.innerValues.filter(iV => {\r\n      // remove innerValues, where the id was removed from value\r\n      return values.find(v => v === iV.id);\r\n    });\r\n    const newValues = values.filter(v => {\r\n      return !this.innerValues.find(iV => iV.id === v);\r\n    });\r\n    if (newValues.length) {\r\n      this.referenceService.fetchIDReferenceMetaData(newValues).subscribe(newInnerValues => {\r\n        this.innerValues = this.innerValues.concat(newInnerValues);\r\n      });\r\n    }\r\n  }\r\n\r\n  propagateChange = (value: any) => { };\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void { }\r\n\r\n  public validate(c: UntypedFormControl) {\r\n    return null;\r\n  }\r\n\r\n  // handler invoked when an entry was selected using the autocomplete input\r\n  onAutoCompleteSelect(evt?) {\r\n    if (!Array.isArray(this.innerValues)) {\r\n      this.innerValues = [this.innerValues];\r\n    }\r\n    this.innerValues = Utils.uniqBy(this.innerValues, 'id');\r\n    if (this.multiselect) {\r\n      this.value = this.innerValues.map(iv => iv.id);\r\n    } else {\r\n      this.value = this.innerValues[0].id;\r\n    }\r\n    this.propagateChange(this.value);\r\n  }\r\n\r\n  autocompleteFn(term: string) {\r\n    let q: any = {\r\n      fields: ['title', 'description', 'type'],\r\n      types: [this.referenceType.name],\r\n      term: term,\r\n      filters: this.queryFilters,\r\n      options: {withcontext: true, highlighting: false}\r\n    };\r\n\r\n    if (this.objectTypesFilter) {\r\n      q.types = this.objectTypesFilter;\r\n    }\r\n\r\n    if (this.contextId) {\r\n      if (q.filters) {\r\n        q.filters.contextfolderid = {v1: this.contextId, o: 'eq'};\r\n      } else {\r\n        q.filters = {contextfolderid: {v1: this.contextId, o: 'eq'}};\r\n      }\r\n    }\r\n\r\n    this.searchService\r\n      .executeQuery(q)\r\n      .pipe(\r\n        debounceTime(500),\r\n        map(item => item ? this.searchService.createResultFromResponse(item) : [])\r\n      ).subscribe((result: SearchResult) => {\r\n        this.autocompleteRes = result.hits.slice(0, 10);\r\n      });\r\n  }\r\n\r\n  onAutoCompleteBlur() {\r\n    this.autoCompleteInput.clearInput();\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this.situation === 'SEARCH') {\r\n      this.multiselect = true;\r\n    }\r\n  }\r\n}\r\n","<div class=\"eo-id-reference\" [ngClass]=\"{acInputHidden: !multiselect && _innerValues.length}\">\r\n  <yvc-autocomplete [(ngModel)]=\"innerValues\" [minLength]=\"1\" #autocomplete\r\n    (suggestionSelect)=\"onAutoCompleteSelect($event)\" (suggestionUnselect)=\"removeItem($event)\"\r\n    (blur)=\"onAutoCompleteBlur()\" [autocompleteValues]=\"autocompleteRes\" field=\"title\" [disabled]=\"readonly\"\r\n    [forceSelection]=\"true\" (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"true\">\r\n\r\n    <!-- [styleClass]=\"!multiselect && innerValues.length === 1 ? 'xxx' : ''\"> -->\r\n\r\n    <ng-template #chipTemplate let-item>\r\n      <a *ngIf=\"!item.state || item.state === 'OK'\" class=\"link router-link\"\r\n        [routerLink]=\"['/object', item.id, {outlets: {modal: null}}]\" [queryParams]=\"{type: referenceType.qname}\">\r\n        <svg focusable=\"false\" class=\"ref-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n          viewBox=\"0 0 24 24\">\r\n          <path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8\r\n        13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\">\r\n          </path>\r\n        </svg>\r\n      </a>\r\n      <eo-icon [objectType]=\"referenceType\" title=\"{{referenceType?.label}}\" class=\"ref-type-icon\" [ngClass]=\"{'deleted-reference-label': item.state && (item.state === 'RECYCLED' || item.state === 'GONE')}\"></eo-icon>\r\n      <span *ngIf=\"!(item.state && (item.state === 'RECYCLED' || item.state === 'GONE')); else deleted\" class=\"label\" eoRtlAware=\"full\">\r\n        <span *ngIf=\"item.title || referenceType?.label; else noAccess\">\r\n          {{item.title || referenceType?.label}}\r\n        </span>\r\n      </span>\r\n      <ng-template #noAccess>\r\n        <span class=\"label no-access-reference-label\">{{('eo.references.noAccess' | translate)}}</span>\r\n      </ng-template>\r\n      <ng-template #deleted>\r\n        <span class=\"label deleted-reference-label\">{{('eo.references.deleted' | translate)}}</span>\r\n      </ng-template>\r\n    </ng-template>\r\n  </yvc-autocomplete>\r\n\r\n  <ng-template #notFound><span class=\"label\">{{innerValues && innerValues.length ? ('eo.references.not.available' |\r\n      translate) : ''}}</span></ng-template>\r\n\r\n  <button #button class=\"ui-button\" *ngIf=\"!readonly\"\r\n    title=\"{{('eo.references.search' | translate) + ' ' + tooltipTypeHint}}\" [disabled]=\"selectionDisabled\"\r\n    (click)=\"showDialog()\">\r\n    <eo-icon [iconSrc]=\"'assets/_default/svg/ic_none.svg'\"></eo-icon>\r\n  </button>\r\n</div>\r\n\r\n<eo-dialog [title]=\"('eo.references.add' | translate)\" [subtitle]=\"referenceType?.label\" [(visible)]=\"visibleDialog\"\r\n  [minHeight]=\"590\" [styleClass]=\"'reference-field-dialog'\" #dialog>\r\n\r\n  <eo-reference-finder *ngIf=\"dialog.visible\" [isDisabled]=\"isDisabled\" [types]=\"referenceType.qname\"\r\n    [multiselect]=\"multiselect\" [currentSelection]=\"innerValues\" [clipboard]=\"clipboard\" [contextId]=\"contextId\"\r\n    [exceptionIDs]=\"exceptionIDs\" [queryFilters]=\"queryFilters\" (addDmsObjects)=\"paste($event)\">\r\n  </eo-reference-finder>\r\n</eo-dialog>\r\n","import {AfterViewInit, Component, ContentChildren, ElementRef, Input, QueryList, Renderer2, TemplateRef, ViewChild, ViewChildren} from '@angular/core';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {ObjectFormControlWrapper} from '../object-form-control-wrapper';\r\nimport {FormElementTemplate} from './form-element-template.directive';\r\n\r\n@Component({\r\n  selector: 'eo-form-element',\r\n  templateUrl: './form-element.component.html',\r\n  styleUrls: ['./form-element.component.scss'],\r\n  //encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FormElementComponent implements AfterViewInit {\r\n  @ViewChildren(FormElementTemplate, {emitDistinctChangesOnly: true}) elementTemplates: QueryList<FormElementTemplate>;\r\n  @ContentChildren(FormElementTemplate, {emitDistinctChangesOnly: true}) contentElementTemplates: QueryList<FormElementTemplate>;\r\n\r\n\r\n  \r\n  elementTemplate: TemplateRef<any>;\r\n  formElementRef: any;\r\n  element: ObjectFormControlWrapper;\r\n  focused;\r\n  isNull: boolean;\r\n  tag: {\r\n    label: string,\r\n    title: string\r\n  };\r\n\r\n  @Input() situation;\r\n  @Input() skipToggle: boolean;\r\n\r\n  // element is supposed to be a special UntypedFormGroup holding a single form element\r\n  @Input('element')\r\n  set elementSetter(el: ObjectFormControlWrapper) {\r\n    if (el) {\r\n\r\n      this.element = el;\r\n      this.formElementRef = el.controls[el._eoFormControlWrapper.controlName];\r\n      if (this.formElementRef._eoFormElement.isNotSetValue) {\r\n        this.labelToggled(true);\r\n      }\r\n      if (this.formElementRef._eoFormElement.type === 'REFERENCE') {\r\n        this.addDataToRender(this.formElementRef._eoFormElement);\r\n      }\r\n      if (this.formElementRef._eoFormElement.type === 'ID') {\r\n        this.formElementRef._eoFormElement.minlen = 32;\r\n        this.formElementRef._eoFormElement.maxlen = 32;\r\n      }\r\n      this.fetchTags();\r\n\r\n      if (this.formElementRef._eoFormElement.readonly && this.formElementRef._eoFormElement.required) {\r\n        this.formElementRef._eoFormElement.required = false;\r\n      }\r\n    }\r\n  }\r\n\r\n  @ViewChild('formField') formField: ElementRef;\r\n\r\n  constructor(private translate: TranslateService, private renderer: Renderer2, private el: ElementRef) {\r\n  }\r\n\r\n  private addDataToRender(element) {\r\n    const multiselect = element.multiselect;\r\n    const dataMeta = element.dataMeta;\r\n    if (multiselect && dataMeta) {\r\n      element.dataToRender = dataMeta.map((dM, i) => {\r\n        dM.id = element.value[i];\r\n        return dM;\r\n      });\r\n    }\r\n    if (!multiselect && dataMeta) {\r\n      dataMeta.id = element.value;\r\n      element.dataToRender = [dataMeta];\r\n    }\r\n  }\r\n\r\n  labelToggled(toggled: boolean) {\r\n    if (!this.skipToggle && this.element._eoFormControlWrapper.situation === 'SEARCH') {\r\n      const toggleClass = 'label-toggled';\r\n      this.isNull = toggled;\r\n      if (toggled) {\r\n        this.renderer.addClass(this.el.nativeElement, toggleClass);\r\n      } else {\r\n        this.renderer.removeClass(this.el.nativeElement, toggleClass);\r\n      }\r\n      this.formElementRef._eoFormElement.isNotSetValue = toggled;\r\n      this.element.updateValueAndValidity();\r\n    }\r\n  }\r\n\r\n  organizationDataMetaResolved(data) {\r\n    // new meta data will always arrive as array even for single inputs, so we have to convert\r\n    this.formElementRef._eoFormElement.dataMeta = this.formElementRef._eoFormElement.multiselect ? data : data[0];\r\n  }\r\n\r\n  fetchTags() {\r\n    this.tag = null;\r\n    if (this.situation === 'CREATE' &&\r\n      (this.formElementRef._eoFormElement.hasOwnProperty('defaultvaluefunction') || this.formElementRef._eoFormElement.hasOwnProperty('defaultvalue'))) {\r\n      this.tag = this.formElementRef._eoFormElement.defaultvaluefunction === 'EXTRACTION' ? {\r\n        label: 'ex',\r\n        title: this.translate.instant('eo.form.element.tag.ex')\r\n      } : {\r\n        label: 'df',\r\n        title: this.translate.instant('eo.form.element.tag.df')\r\n      };\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    const tpls = [...this.elementTemplates.toArray(), ...this.contentElementTemplates.toArray()];\r\n    const dir = tpls.find(tpl => tpl.propertyType === this.formElementRef._eoFormElement.type);\r\n    setTimeout(() => {\r\n      this.elementTemplate = dir ? dir.template : undefined\r\n    })\r\n  }\r\n}\r\n","<div class=\"form-element\" [formGroup]=\"element\" *ngIf=\"element\">\r\n\r\n  <div class=\"form-field t-{{formElementRef._eoFormElement.type}}\" #formField\r\n    [ngClass]=\"{disabled: !!formElementRef._eoFormElement.readonly}\" *ngIf=\"elementTemplate\">\r\n\r\n    <ng-container *ngTemplateOutlet=\"elementTemplate; context: {element, formElementRef}\"></ng-container>\r\n\r\n    <!-- the fields description -->\r\n    <div class=\"description\" *ngIf=\"formElementRef._eoFormElement.description\">{{formElementRef._eoFormElement.description}}</div>\r\n\r\n    <!-- error/validation messages -->\r\n    <div class=\"err-msg\" *ngIf=\"formElementRef.errors\">\r\n\r\n      <div *ngIf=\"formElementRef.errors.daterange\" translate>eo.form.property.daterange.invalid</div>\r\n      <div *ngIf=\"formElementRef.errors.numberrange\" translate>eo.form.property.numberrange.invalid</div>\r\n      <div *ngIf=\"formElementRef.errors.number\" translate>eo.form.property.number</div>\r\n      <div *ngIf=\"formElementRef.errors.precision\" translate\r\n        [translateParams]=\"formElementRef.errors.precision.translateValues\">\r\n        {{formElementRef.errors.precision.translateKey}}</div>\r\n      <div *ngIf=\"formElementRef.errors.scale\" translate\r\n        [translateParams]=\"formElementRef.errors.scale.translateValues\">{{formElementRef.errors.scale.translateKey}}\r\n      </div>\r\n\r\n      <div *ngIf=\"formElementRef.errors.regex || formElementRef.errors.pattern\" translate>\r\n        eo.form.property.string.regex.nomatch</div>\r\n      <div *ngIf=\"formElementRef.errors.classificationemail\" translate>\r\n        eo.form.property.string.error.classification.email</div>\r\n      <div *ngIf=\"formElementRef.errors.classificationurl\" translate>eo.form.property.string.error.classification.url\r\n      </div>\r\n      <div *ngIf=\"formElementRef.errors.onlyWhitespaces\" translate>eo.form.property.string.error.whitespaces</div>\r\n      <div *ngIf=\"formElementRef.errors.datecontrol\" translate>eo.form.property.date.invalid</div>\r\n      <div *ngIf=\"formElementRef.errors.codesystem\" translate>eo.form.property.codesystem.value.invalid</div>\r\n      <div *ngIf=\"formElementRef.errors.eoformScript\">{{formElementRef._eoFormElement.error.msg}}</div>\r\n      <div *ngIf=\"formElementRef.errors.required\" translate>eo.form.property.required</div>\r\n      <div *ngIf=\"formElementRef.errors.maxlength\" translate\r\n        [translateParams]=\"{maxlength: formElementRef._eoFormElement.maxlen}\">eo.form.property.maxlength</div>\r\n      <div *ngIf=\"formElementRef.errors.minlength\" translate\r\n        [translateParams]=\"{minlength: formElementRef._eoFormElement.minlen}\">eo.form.property.minlength</div>\r\n      <div *ngIf=\"formElementRef.errors.deletedIDReference\" translate>eo.form.property.idreference.deleted</div>\r\n      <div *ngIf=\"formElementRef.errors.deletedOrgObject\" translate>eo.form.property.orgobject.deleted</div>\r\n    </div>\r\n\r\n  </div>\r\n\r\n\r\n\r\n  <!-- STRING -->\r\n  <ng-template eoFormElementTemplate propertyType=\"STRING\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n    <eo-form-input [tag]=\"tag\"\r\n      [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n      [isNull]=\"isNull\"\r\n      [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n      [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n      [invalid]=\"formElementRef.invalid\">\r\n\r\n      <eo-string\r\n        *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification !== 'selector'\"\r\n        [situation]=\"element._eoFormControlWrapper.situation\"\r\n        [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n        [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\r\n        [multiselect]=\"!!formElementRef._eoFormElement.multiselect\"\r\n        [multiline]=\"formElementRef._eoFormElement.multiline\"\r\n        [classification]=\"formElementRef._eoFormElement.classification\" [regex]=\"formElementRef._eoFormElement.regex\"\r\n        [qname]=\"formElementRef._eoFormElement.qname\" [size]=\"formElementRef._eoFormElement.size\"\r\n        [readonly]=\"formElementRef._eoFormElement.readonly\" [minLength]=\"formElementRef._eoFormElement.minlen\"\r\n        [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-string>\r\n\r\n      <!-- Dynamic List -->\r\n      <eo-dynamic-list\r\n        *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification === 'selector'\"\r\n        [situation]=\"element._eoFormControlWrapper.situation\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\r\n        [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\r\n        [multiselect]=\"formElementRef._eoFormElement.multiselect\" [listObject]=\"formElementRef._eoFormElement.list\"\r\n        [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n        [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-dynamic-list>\r\n\r\n\r\n      <!-- Reference -->\r\n      <eo-reference *ngIf=\"formElementRef._eoFormElement.reference\"\r\n        [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n        [readonly]=\"formElementRef._eoFormElement.readonly\" [reference]=\"formElementRef._eoFormElement.reference\"\r\n        [multiselect]=\"!!formElementRef._eoFormElement.multiselect ? formElementRef._eoFormElement.multiselect : situation === 'SEARCH'\"\r\n        [minLength]=\"formElementRef._eoFormElement.minlen\"\r\n        [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-reference>\r\n    </eo-form-input>\r\n  </ng-template>\r\n\r\n  <!-- ID-Reference -->\r\n  <ng-template eoFormElementTemplate propertyType=\"REFERENCE\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n    <eo-form-input [tag]=\"tag\"\r\n      [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n      [isNull]=\"isNull\"\r\n      [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n      [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n      [invalid]=\"formElementRef.invalid\">\r\n\r\n      <eo-id-reference [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n        [situation]=\"element._eoFormControlWrapper.situation\"\r\n        [dataToRender]=\"formElementRef._eoFormElement.dataToRender\"\r\n        [reference]=\"formElementRef._eoFormElement.reference\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n        [multiselect]=\"formElementRef._eoFormElement.multiselect\" [contextId]=\"formElementRef._eoFormElement.contextId\"\r\n        [exceptionIDs]=\"formElementRef._eoFormElement.exceptionIDs\"\r\n        [queryFilters]=\"formElementRef._eoFormElement.queryFilters\"\r\n        [objectTypesFilter]=\"formElementRef._eoFormElement.objectTypesFilter\"></eo-id-reference>\r\n    </eo-form-input>\r\n  </ng-template>\r\n\r\n  <!-- ID -->\r\n  <ng-template eoFormElementTemplate propertyType=\"ID\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n    <eo-form-input [tag]=\"tag\"\r\n      [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n      [isNull]=\"isNull\"\r\n      [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n      [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n      [invalid]=\"formElementRef.invalid\">\r\n\r\n      <eo-string [situation]=\"element._eoFormControlWrapper.situation\"\r\n        [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n        [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\r\n        [multiselect]=\"formElementRef._eoFormElement.multiselect\" [regex]=\"'^[0-9a-fA-F]*$'\"\r\n        [qname]=\"formElementRef._eoFormElement.qname\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n        [minLength]=\"32\" [maxLength]=\"32\"></eo-string>\r\n\r\n    </eo-form-input>\r\n  </ng-template>\r\n\r\n\r\n  <!-- BOOLEAN -->\r\n  <ng-template eoFormElementTemplate propertyType=\"BOOLEAN\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n    <eo-form-input [tag]=\"tag\" class=\"checkbox\"\r\n      [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n      [isNull]=\"isNull\"\r\n      [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" [required]=\"formElementRef._eoFormElement.required\"\r\n      [disabled]=\"formElementRef._eoFormElement.readonly\" (onToggleLabel)=\"labelToggled($event)\"\r\n      [invalid]=\"formElementRef.invalid\">\r\n\r\n      <eo-checkbox [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n        [required]=\"formElementRef._eoFormElement.required\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n        [tristate]=\"true\"></eo-checkbox>\r\n    </eo-form-input>\r\n  </ng-template>\r\n\r\n  <!-- CODESYSTEM -->\r\n  <ng-template eoFormElementTemplate propertyType=\"CODESYSTEM\" let-element=\"element\"\r\n    let-formElementRef=\"formElementRef\">\r\n    <eo-form-input [tag]=\"tag\"\r\n      [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n      [isNull]=\"isNull\"\r\n      [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n      [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n      [invalid]=\"formElementRef.invalid\">\r\n\r\n      <eo-codesystem [situation]=\"element._eoFormControlWrapper.situation\"\r\n        [pickerTitle]=\"formElementRef._eoFormElement.label\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n        [codesystem]=\"formElementRef._eoFormElement.codesystem\"\r\n        [multiselect]=\"formElementRef._eoFormElement.multiselect\"\r\n        [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\r\n        [disablingFilterFunction]=\"formElementRef._eoFormElement.disablingFilterFunction\"\r\n        [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-codesystem>\r\n    </eo-form-input>\r\n  </ng-template>\r\n\r\n  <!-- ORGANIZATION -->\r\n  <ng-template eoFormElementTemplate propertyType=\"ORGANIZATION\" let-element=\"element\"\r\n    let-formElementRef=\"formElementRef\">\r\n    <eo-form-input [tag]=\"tag\"\r\n      [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n      [isNull]=\"isNull\"\r\n      [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n      [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n      [invalid]=\"formElementRef.invalid\">\r\n\r\n      <eo-organization [situation]=\"element._eoFormControlWrapper.situation\"\r\n        [dataMeta]=\"formElementRef._eoFormElement.dataMeta\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n        [filterObject]=\"formElementRef._eoFormElement.filter\" [multiselect]=\"formElementRef._eoFormElement.multiselect\"\r\n        (onDataMetaChanged)=\"organizationDataMetaResolved($event)\"\r\n        [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-organization>\r\n    </eo-form-input>\r\n  </ng-template>\r\n\r\n  <!-- NUMBER -->\r\n  <ng-template eoFormElementTemplate propertyType=\"NUMBER\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n    <eo-form-input [tag]=\"tag\"\r\n      [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n      [isNull]=\"isNull\"\r\n      [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n      [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n      [invalid]=\"formElementRef.invalid\">\r\n\r\n      <eo-number *ngIf=\"situation !== 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n        [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\r\n        [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\r\n        [formControlName]=\"element._eoFormControlWrapper.controlName\">\r\n      </eo-number>\r\n\r\n      <eo-number-range *ngIf=\"situation === 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n        [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\r\n        [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\r\n        [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-number-range>\r\n    </eo-form-input>\r\n  </ng-template>\r\n\r\n  <!-- DATE AND DATETIME -->\r\n  <ng-template eoFormElementTemplate propertyType=\"DATETIME\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n    <eo-form-input [tag]=\"tag\"\r\n      [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n      [isNull]=\"isNull\"\r\n      [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n      [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n      [invalid]=\"formElementRef.invalid\">\r\n\r\n      <eo-date *ngIf=\"situation !== 'SEARCH'\" [withTime]=\"formElementRef._eoFormElement.withtime\"\r\n        [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n        [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-date>\r\n\r\n      <eo-datetime-range *ngIf=\"situation === 'SEARCH'\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\r\n        [withTime]=\"formElementRef._eoFormElement.withtime\"\r\n        [operator]=\"element?.value[element._eoFormControlWrapper.controlName] ? element.value[element._eoFormControlWrapper.controlName]?.operator: 'eq'\"\r\n        [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-datetime-range>\r\n    </eo-form-input>\r\n  </ng-template>\r\n\r\n  <ng-content></ng-content>\r\n\r\n  <!-- print out the type if it's not matching anything -->\r\n  <ng-template #tplUnknown><b>{{formElementRef._eoFormElement.type}}</b></ng-template>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ContentPreviewService {\r\n  static UNDOCK_WINDOW_NAME = 'eoViewer';\r\n\r\n  static undockWin(src: string) {\r\n    const w = window[ContentPreviewService.UNDOCK_WINDOW_NAME] = window.open(\r\n      src || '',\r\n      ContentPreviewService.UNDOCK_WINDOW_NAME,\r\n      'directories=0, titlebar=0, toolbar=0, location=0, status=0, menubar=0, resizable=1, top=10, left=10'\r\n    );\r\n    return w;\r\n  }\r\n\r\n  static closeWin() {\r\n    return this.getUndockWin() && this.getUndockWin().close();\r\n  }\r\n\r\n  static getUndockWin(): Window {\r\n    return window[ContentPreviewService.UNDOCK_WINDOW_NAME];\r\n  }\r\n\r\n  static undockWinActive(): boolean {\r\n    return !!ContentPreviewService.getUndockWin() && !ContentPreviewService.getUndockWin().closed;\r\n  }\r\n\r\n  static mapLang(lang: string) {\r\n    switch (lang) {\r\n      case 'en':\r\n        return 'en-US';\r\n      case 'es':\r\n        return 'es-ES';\r\n      case 'pt':\r\n        return 'pt-PT';\r\n      case 'zh':\r\n        return 'zh-CN';\r\n      case 'hi':\r\n        return 'hi-IN';\r\n      case 'bn':\r\n        return 'bn-BD';\r\n      default:\r\n        return lang;\r\n    }\r\n  }\r\n}\r\n","\r\nimport {Directive, ElementRef, EventEmitter, HostListener, Output} from '@angular/core';\r\nimport {EnaioEvent, EventService} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\n\r\n/**\r\n * This directive adds an outside click listener to each element it is applied to.\r\n * The directive will also execute the provided handler function, when the user hits ESC.\r\n *   <... (eoOutSideClick)=\"doSomethingOnOutsideClick($event)\"></...>\r\n */\r\n\r\n@UntilDestroy()\r\n@Directive({\r\n  selector: '[eoOutsideClick]'\r\n})\r\nexport class OutsideClickDirective {\r\n\r\n  active = true;\r\n\r\n  @Output()\r\n  public eoOutsideClick = new EventEmitter<any>();\r\n\r\n  constructor(private _elementRef: ElementRef, private eventService: EventService) {\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.EO_DIALOG_STACK_CHANGED).pipe(\r\n        untilDestroyed(this))\r\n      .subscribe((event: any) => {\r\n        this.active = !event.data.active;\r\n      });\r\n  }\r\n\r\n  @HostListener('document:keydown', ['$event', '$event.target'])\r\n  public keyboardInput(event: KeyboardEvent, targetElement: HTMLElement) {\r\n    if (this.active && !event.defaultPrevented && event.key === 'Escape') {\r\n      this.onOutsideEvent(event);\r\n    }\r\n  }\r\n\r\n  @HostListener('document:mousedown', ['$event', '$event.target'])\r\n  public onClick(event: MouseEvent, targetElement: HTMLElement) {\r\n    const overlayContainer = document.querySelector('.cdk-overlay-container');\r\n    if (this.active && !this._elementRef.nativeElement.contains(targetElement)\r\n      && (overlayContainer && overlayContainer.hasChildNodes() ? !overlayContainer.contains(targetElement) : true)) {\r\n      this.onOutsideEvent(event);\r\n    }\r\n  }\r\n\r\n  private onOutsideEvent(event: Event) {\r\n    this.eoOutsideClick.emit(event);\r\n  }\r\n}\r\n","import {AfterViewInit, Component, HostBinding, Input, OnDestroy, Renderer2, ViewChild} from '@angular/core';\r\nimport {\r\n  Config,\r\n  DmsObject,\r\n  DmsObjectAttachment,\r\n  DmsService,\r\n  ObjectType,\r\n  SystemService,\r\n  TranslateService,\r\n} from '@eo-sdk/core';\r\nimport {PopoutTriggerPosition, PopoutWindowConfig} from '@yuuvis/components/popout';\r\nimport {fromEvent, Subscription} from 'rxjs';\r\nimport {FileSizePipe} from '../../eo-framework-core/pipes/filesize.pipe';\r\nimport {PluginsService} from './../../eo-framework-core/api/plugins.service';\r\nimport {ContentPreviewService} from './content-preview.service';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\n\r\nexport interface ViewerConfig {\r\n  mimeType?: string | string[];\r\n  fileExtension?: string | string[];\r\n  viewer: string;\r\n  error?: boolean;\r\n  type?: 'compare' | 'extend' | 'error' | 'default';\r\n  disabled?: string;\r\n}\r\nexport interface PreviewFile {\r\n  uri: string;\r\n  uriPdf: string;\r\n  mimetype: string;\r\n  mimegroup: string;\r\n  size: number;\r\n  path?: string;\r\n  fileExtension?: string;\r\n  mediaTypeName?: string;\r\n}\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-media',\r\n  templateUrl: './media.component.html',\r\n  styleUrls: ['./media.component.scss'],\r\n  providers: [ContentPreviewService]\r\n})\r\nexport class MediaComponent implements AfterViewInit, OnDestroy {\r\n\r\n  static VIDEO_VIEWER = 'viewer/view/api/video/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}';\r\n  static PDF_VIEWER = 'viewer/view/api/pdf/web/viewer.html?file=&path=${path}&pathPdf=${pathPdf}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}&css=%23toolbarViewerRight%20%23print%7Bdisplay%3Ablock!important%3B%7D';\r\n\r\n  private SIZE_LIMIT = 1024 * 1024 * 10; // 10MB\r\n  private pdfjs: any;\r\n  latestUri: string;\r\n  slideUri: string;\r\n  viewer: any;\r\n  dmsObjectTitle: string;\r\n  private _previewUri: string;\r\n  private _dmsObject: DmsObject;\r\n  fileSizePipe: FileSizePipe;\r\n  currentIndex: number;\r\n  attachments: DmsObjectAttachment[] = [];\r\n  attachmentsLoading: Subscription;\r\n  attachmentsShown: boolean;\r\n  searchTerm: string;\r\n  mediaType: ObjectType;\r\n  customConfig: any[] = [];\r\n\r\n  popoutTriggerPosition = PopoutTriggerPosition.BOTTOM_RIGHT\r\n  popoutWindowConfig: PopoutWindowConfig;\r\n\r\n  defaultViewers = [\r\n    {\r\n      \"mimeType\": [\"application/json\", \"text/json\", \"text/plain\", \"text/xml\", \"text/java\", \"text/javascript\", \"application/javascript\", \"text/html\", \"text/markdown\", \"text/x-web-markdown\", \"text/x-markdown\"],\r\n      \"viewer\": \"viewer/view/api/monaco/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}\"\r\n    },\r\n    {\r\n      \"mimeType\": [\"audio/mp3\", \"audio/webm\", \"audio/ogg\", \"audio/mpeg\", \"video/mp4\", \"video/webm\", \"video/ogg\", \"application/ogg\"],\r\n      \"viewer\": \"viewer/view/api/video/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}\"\r\n    },\r\n    {\r\n      \"mimeType\": [\"image/tiff\", \"image/jpeg\", \"image/png\", \"image/apng\", \"image/gif\", \"image/svg+xml\", \"image/webp\"],\r\n      \"viewer\": \"viewer/view/api/img/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}\"\r\n    },\r\n    {\r\n      \"mimeType\": [\"message/rfc822\", \"application/vnd.ms-outlook\"],\r\n      \"viewer\": \"viewer/view/api/mail/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}\"\r\n    },\r\n    {\r\n      \"disabled\": \"() => { return availableServices.indexOf('office365') < 0 || file.uriPdf.match(new RegExp('attachment=(\\\\\\\\d+)'));}\", // disable office365 viewer if not available\r\n      \"mimeType\": [\r\n        \"application/msword\",\r\n        \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\r\n        \"application/vnd.ms-word.document.macroEnabled.12\",\r\n        \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\",\r\n        \"application/vnd.ms-word.template.macroEnabled.12\",\r\n        \"application/vnd.ms-excel\",\r\n        \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n        \"application/vnd.ms-excel.sheet.macroEnabled.12\",\r\n        \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\",\r\n        \"application/vnd.ms-excel.template.macroEnabled.12\",\r\n        \"application/vnd.ms-excel.sheet.binary.macroEnabled.12\",\r\n        \"application/vnd.ms-excel.addin.macroEnabled.12\",\r\n        \"application/vnd.ms-powerpoint\",\r\n        \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\r\n        \"application/vnd.openxmlformats-officedocument.presentationml.template\",\r\n        \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\",\r\n        \"application/vnd.ms-powerpoint.addin.macroEnabled.12\",\r\n        \"application/vnd.ms-powerpoint.presentation.macroEnabled.12\",\r\n        \"application/vnd.ms-powerpoint.template.macroEnabled.12\",\r\n        \"application/vnd.ms-powerpoint.slideshow.macroEnabled.12\"\r\n      ],\r\n      \"viewer\": \"() => { var content = dmsObject.content || {}; var id = content.id || dmsObject.id; var type = content.type || dmsObject.typeName || ''; var isLinkedDocument = dmsObject.id !== id; return location.origin + '/dashlet365/?id=' + id + '&version=' + (!isLinkedDocument ? dmsObject.version : -1) + '&type=' + type + (parameters.mimeType ? '&mimeType=' + parameters.mimeType : '') + '&locale=${lang}'; }\"\r\n      // \"viewer\": \"() => {            parameters.path = parameters.path.replace('localhost:4200', 'kolibriproliant.optimal-systems.de');                var edit = true;                return 'dashlet365/?id=' + dmsObject.content.id + (edit ? '' : '_' + dmsObject.version) + '&version=' + dmsObject.version + '&mimeType=${mimeType}&path=${path}&fileExtension=${fileExtension}&locale=${lang}&allowedExtensions=doc,docx,xls,xlsx,ppt,pptx&editMode=' + edit + '&displayName=' + '';            }\"\r\n\r\n    },\r\n    // ONLY applies to localhost env; fixed email cors for localhost testing\r\n    {\r\n      \"type\": \"extend\",\r\n      \"viewer\": \"() => { if (parameters.viewer.match('/view/api/mail/') && parameters.path.match('localhost')) { var host = 'localhost:4200'; var cors = 'kolibriproliant.optimal-systems.de'; parameters.path = parameters.path.replace(host, cors); return parameters.viewer + '&cors=' + cors;} return parameters.viewer; }\"\r\n    },\r\n    // We need another pathPdf for email attachment files. This will only come in place if the mimetype is pdf or one of the not supported ones. (viewer attachments & api attachments can be parsed in different order, so we have to match them by filename)\r\n    {\"viewer\": \"() => {var attachment = parameters.pathPdf.match(new RegExp('attachment=(\\\\\\\\d+)')); var a = attachment && api.content.viewer().document.querySelector('iframe').contentDocument.querySelector('a[data-src$=\\\"' + attachment[0] + '\\\"]');  var params = a && (api.content.attachments || []).find(att => api.util.decodeHtmlCharCodes(att.name) === a.getAttribute('data-filename')); if(params && params.previewUri) { parameters.pathPdf = location.origin + params.previewUri; } return parameters.defaultViewer;}\"},\r\n    {\"error\": true, \"type\": \"error\", \"viewer\": \"viewer/view/api/error/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}\"}\r\n  ];\r\n\r\n  isUndocked: boolean;\r\n  loading: boolean;\r\n  private _previewFile: PreviewFile;\r\n\r\n  @Input() undockDisabled = false;\r\n\r\n  @Input() enableCloseBtn = false;\r\n  // by default, the viewer ignores the version of the dms object. This will always show the latest version.\r\n  // We need this to be able to refresh the viewer because otherwise pdfjs worker will fail.\r\n  @Input() useVersion = false;\r\n  @HostBinding('class.open') open;\r\n\r\n  @ViewChild('iframe', {static: true}) iframe;\r\n\r\n  @Input('attachments')\r\n  set setAttachments(attachments) {\r\n    this.attachments = attachments;\r\n    this.attachmentsShown = false;\r\n  }\r\n\r\n  @Input('searchTerm')\r\n  set setSearchTerm(searchTerm) {\r\n    this.searchTerm = searchTerm || '';\r\n  }\r\n\r\n  @Input()\r\n  set previewUri(uri: string) {\r\n    this._previewUri = uri;\r\n    this.toggleViewer();\r\n  }\r\n\r\n  get previewUri() {\r\n    return this._previewUri;\r\n  }\r\n\r\n  @Input()\r\n  set previewFile(file: PreviewFile) {\r\n    this._previewFile = file;\r\n    if (file) {\r\n      this.setupViewer();\r\n    } else {\r\n      this.previewUri = '';\r\n      this.popoutWindowConfig = undefined;\r\n    }\r\n    this._setPopoutWindowConfig(!file);\r\n  }\r\n\r\n  @Input()\r\n  set dmsObject(item: DmsObject) {\r\n    this._dmsObject = item;\r\n    this.dmsObjectTitle = item.title || '...';\r\n    this.setAttachments = [];\r\n    if (this.attachmentsLoading) {\r\n      // cancel any pending requests\r\n      this.attachmentsLoading.unsubscribe();\r\n    }\r\n    if (item.content && item.content.contents && item.content.contents.length) {\r\n      const file = item.content.contents[0] || {};\r\n\r\n      this.previewFile = {\r\n        uri: this.dms.getPreview(item.content.id, item.content.type, this.useVersion ? item.version : null, undefined, true),\r\n        uriPdf: this.dms.getPreview(item.content.id, item.content.type, this.useVersion ? item.version : null, 'PDF', true),\r\n        mimetype: file.mimetype,\r\n        mimegroup: file.mimegroup,\r\n        size: file.size,\r\n        path: file.path,\r\n        mediaTypeName: item.typeName\r\n      };\r\n      this.setupViewer();\r\n    } else {\r\n      this.previewUri = '';\r\n    }\r\n  }\r\n\r\n  constructor(public translate: TranslateService,\r\n    private dms: DmsService,\r\n    private renderer: Renderer2,\r\n    private system: SystemService,\r\n    private config: Config,\r\n    private pluginsService: PluginsService\r\n    ) {\r\n    this.SIZE_LIMIT = this.config.getRaw('preview.fileSizeLimit') || this.SIZE_LIMIT;\r\n    this.customConfig = (this.config.getRaw('preview.viewers') || []).concat(this.defaultViewers);\r\n\r\n    this.pluginsService.api.content.catchError().subscribe((evt: any) => {\r\n      const {err, win, parameters} = evt.data;\r\n      const uri = this.pluginsService.applyFunction(this.customConfig?.find((v) => v.error)?.viewer, 'api, err, win, parameters', [\r\n        this.pluginsService.api,\r\n        err,\r\n        win,\r\n        parameters\r\n      ]);\r\n      uri && win && (win.location.href = this.resolveUri(uri, parameters));\r\n    });\r\n  }\r\n\r\n  private setupViewer() {\r\n    if (!this._previewFile) {\r\n      return;\r\n    } else if (!this.pluginsService.isReady.observed) {\r\n      return this.pluginsService.isReady.subscribe(() => this.setupViewer());\r\n    }\r\n    this.viewer = this.getViewer(this._previewFile);\r\n    this.mediaType = this._previewFile.mediaTypeName && this.system.getObjectType(this._previewFile.mediaTypeName);\r\n    this.previewUri = this.viewer.previewUri;\r\n    if (this._dmsObject?.content) {\r\n      if (!!this._previewFile.mimegroup?.match(/^mail|octet-stream/) && this.viewer.viewer.match('/view/api/pdf/')) {\r\n        this.slideUri = this.dms.getSlide(this._dmsObject.content.id, this._dmsObject.content.type, this.useVersion ? this._dmsObject.version : null, 256);\r\n        this.attachmentsLoading = this.dms.getAttachments(this._dmsObject).subscribe(a => this.setAttachments = a);\r\n      }\r\n      if (this.viewer.viewer.match('/view/api/mail/')) {\r\n        this.dms.getAttachments(this._dmsObject).subscribe(a => {\r\n          window.api.content.attachments = a;\r\n          this.setAttachments = a;\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  private _setPopoutWindowConfig(reset?: boolean) {\r\n    const winInset = 20;\r\n    this.popoutWindowConfig = !reset ? {\r\n      title: this.dmsObjectTitle,\r\n      position: {\r\n        blockStart: winInset,\r\n        inlineStart: window.screen.width / 2\r\n      }, size: {\r\n        width: window.screen.width / 2 - winInset,\r\n        height: window.screen.height - winInset * 2,\r\n      }\r\n    } : undefined;\r\n  }\r\n\r\n  selectAttachment(attachment?: any) {\r\n    const previewUri = attachment && this.getViewer({uriPdf: attachment.previewUri} as PreviewFile).previewUri;\r\n    this.loadDocument(previewUri || this.previewUri, true);\r\n  }\r\n\r\n  public toggleViewer() {\r\n    this.open = !!this.previewUri;\r\n    if (!!this.previewUri) {\r\n      this.loadDocument(this.previewUri);\r\n    }\r\n  }\r\n\r\n  public refresh() {\r\n    this.loadDocument(this.previewUri, true);\r\n  }\r\n\r\n  getMatchingConfig(fileExtension, mimeType, file) {\r\n    return this.customConfig.find((c: ViewerConfig) => {\r\n      const matchMT = !c.mimeType || (typeof c.mimeType === 'string' ? [c.mimeType] : c.mimeType).includes(mimeType?.toLowerCase());\r\n      const matchFE = !c.fileExtension || (typeof c.fileExtension === 'string' ? [c.fileExtension] : c.fileExtension).includes((fileExtension).toLowerCase());\r\n      return matchMT && matchFE && (!c.type || c.type === 'default') && !this.pluginsService.applyFunction(c.disabled || false, 'dmsObject, file, availableServices', [this._dmsObject, file, this.pluginsService.availableServices]);\r\n    });\r\n  }\r\n\r\n  private getViewer(file: PreviewFile): any {\r\n    const isVideo = !!file.mimegroup?.match(/^audio|^video/);\r\n    const defaultViewer = isVideo ? MediaComponent.VIDEO_VIEWER : MediaComponent.PDF_VIEWER;\r\n    const fileExtension = file.fileExtension || (file.path?.includes('.') ? file.path.split('.').pop() : '');\r\n    const mimeType = file.mimetype;\r\n    let config = this.getMatchingConfig(fileExtension, mimeType, file);\r\n    const parameters = {\r\n      file,\r\n      path: location.origin + file.uri,\r\n      pathPdf: location.origin + file.uriPdf,\r\n      viewer: config?.viewer || defaultViewer,\r\n      load: config?.load,\r\n      fileExtension,\r\n      mimeType,\r\n      theme: '',\r\n      defaultViewer,\r\n      previewUri: ''\r\n    };\r\n    parameters.viewer = this.pluginsService.applyFunction(parameters.viewer, 'component, dmsObject, parameters', [this, this._dmsObject, parameters]) || defaultViewer;\r\n\r\n    const extend = this.customConfig.find((c) => c.type === 'extend');\r\n    if (extend) parameters.viewer = this.pluginsService.applyFunction(extend.viewer, 'component, dmsObject, parameters', [this, this._dmsObject, parameters]);\r\n\r\n    parameters.previewUri = this.resolveUri(parameters.viewer, parameters);\r\n    return parameters;\r\n  }\r\n\r\n  private resolveUri(viewer: string, parameters: any) {\r\n    let origin = '';\r\n    if (!viewer.startsWith('http')) {\r\n      origin = window.location.origin + this.config.getRaw('uri.contextPath');\r\n      if (!origin.endsWith('/') && !viewer.startsWith('/')) {\r\n        origin += '/';\r\n      }\r\n    }\r\n    return origin + viewer\r\n      .replace('${originalPath}', parameters.path)\r\n      .replace('${path}', encodeURIComponent(parameters.path))\r\n      .replace('${pathPdf}', encodeURIComponent(parameters.pathPdf))\r\n      .replace('${fileExtension}', encodeURIComponent(parameters.fileExtension))\r\n      .replace('${mimeType}', encodeURIComponent(parameters.mimeType))\r\n      .replace('${theme}', encodeURIComponent(parameters.theme))\r\n      .replace('${lang}', ContentPreviewService.mapLang(this.translate.currentLang));\r\n  }\r\n\r\n  loadDocument(uri: string, force?: boolean) {\r\n    if (!force && (!uri || (uri === this.latestUri))) {\r\n      return false;\r\n    }\r\n    this.latestUri = uri || '';\r\n\r\n    if (this.previewUri) {\r\n      this.renderer.setAttribute(this.iframe.nativeElement, 'src', this.latestUri);\r\n      const onload = () => this.pluginsService.applyFunction(this.viewer?.load, 'iframe, component', [this.iframe.nativeElement, this]);\r\n      this.iframeInit(this.iframe.nativeElement, this.viewer?.load && onload);\r\n    } else {\r\n      this.renderer.setAttribute(this.iframe.nativeElement, 'src', this.latestUri);\r\n      const onload = () => this.pluginsService.applyFunction(this.viewer?.load, 'iframe, component', [this.iframe.nativeElement, this]);\r\n      this.iframeInit(this.iframe.nativeElement, this.viewer?.load && onload);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Custom search inside PDF.JS based on search term\r\n   * @param term search term\r\n   * @param win iframe window\r\n   */\r\n  private searchPDF(term = '', win: any) {\r\n    // remove all special characters\r\n    term = (term || '').replace(/[\\\"|\\*]/g, '').trim();\r\n    if (term && win?.PDFViewerApplication?.appConfig?.findBar) {\r\n      win.PDFViewerApplication.appConfig.findBar.findField.value = term;\r\n      win.PDFViewerApplication.appConfig.findBar.highlightAllCheckbox.checked = true;\r\n      win.PDFViewerApplication.appConfig.findBar.caseSensitiveCheckbox.checked = false;\r\n      // trigger find event on pdf.js load\r\n      win.PDFViewerApplication.initializedPromise?.then(() => win.PDFViewerApplication.findBar.dispatchEvent());\r\n    }\r\n  }\r\n\r\n  private preventDropEvent(win: any) {\r\n    if (win?.location?.origin === window.location.origin) {\r\n      win?.document?.addEventListener('drop', (e) => e.stopPropagation());\r\n      // dispach drag & drop events to main window\r\n      win?.document?.addEventListener('dragenter', (e) => {\r\n        window.document.dispatchEvent(new DragEvent('dragenter', e));\r\n        setTimeout(() => window.document.dispatchEvent(new DragEvent('dragleave', e)), 10);\r\n      });\r\n    }\r\n  }\r\n\r\n  iframeInit(iframe = this.iframe, onload?: Function) {\r\n    if (iframe) {\r\n      this.loading = true;\r\n      iframe._init || fromEvent(iframe, 'load')\r\n        .pipe(untilDestroyed(this))\r\n        .subscribe(() => {\r\n          const win = this.setApi(iframe);\r\n          onload && onload();\r\n          this.loading = false;\r\n          setTimeout(() => {\r\n            this.searchPDF(this.searchTerm, win);\r\n            this.preventDropEvent(win);\r\n          }, 100);\r\n        });\r\n      iframe._init = !!this.setApi(iframe);\r\n    }\r\n  }\r\n\r\n  private setApi(iframe: any) {\r\n    // set api to iframe window\r\n    const win = iframe?.contentWindow || iframe;\r\n    win['api'] = window['api'];\r\n\r\n    // disable beforeunload popup (Reload site? Changes that you made may not be saved.)\r\n    win.addEventListener('beforeunload', (event: Event) => event.stopImmediatePropagation());\r\n\r\n    if (win['api']?.content) {\r\n      win['api'].content.resolveViewerParams = (parameters: any) => {\r\n        const uri = parameters.path.replace(location.origin, '');\r\n        const viewer = this.getViewer({uri, mimetype: parameters.mimeType, fileExtension: parameters.fileExtension, uriPdf: uri, mimegroup: '', size: 1});\r\n        return {uri: viewer.previewUri || parameters.path};\r\n      };\r\n    }\r\n    return win;\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n  }\r\n\r\n  ngOnDestroy() {\r\n  }\r\n\r\n}\r\n","<div [hidden]=\"!open\">\r\n  <!-- attachments overlay -->\r\n  <div class=\"attachments\" *ngIf=\"attachments?.length\"\r\n    [ngClass]=\"{notmain: latestUri !== previewUri && !attachmentsShown, active: attachmentsShown}\"\r\n    (eoOutsideClick)=\"attachmentsShown = false\">\r\n    <div class=\"attachments-list\" *ngIf=\"attachmentsShown\">\r\n      <div class=\"attachment main\" (click)=\"selectAttachment(null)\" [ngClass]=\"{current: latestUri === previewUri}\">{{dmsObjectTitle}}</div>\r\n      <div class=\"attachment\" *ngFor=\"let a of attachments\" (click)=\"selectAttachment(a)\" [ngClass]=\"{current: latestUri === a.previewUri}\">\r\n        {{a.name}}\r\n      </div>\r\n    </div>\r\n\r\n    <eo-icon class=\"button\" [badge]=\"attachments?.length\" (click)=\"attachmentsShown = !attachmentsShown\"\r\n      [iconSrc]=\"attachmentsShown ? 'assets/_default/svg/ic_clear.svg' : 'assets/_default/svg/ic_attachment.svg'\"></eo-icon>\r\n  </div>\r\n\r\n  <yvc-popout\r\n  [popoutWindowConfig]=\"popoutWindowConfig\"\r\n  [triggerPosition]=\"popoutTriggerPosition\" [triggerTooltip]=\"('eo.object.details.content.undock'| translate)\" [disabled]=\"undockDisabled\">\r\n\r\n    <div class=\"preview-container\" [style.overflow]=\"'hidden'\">\r\n      <iframe [hidden]=\"isUndocked || loading\" #iframe height=\"100%\" width=\"100%\" frameborder=\"0\"></iframe>\r\n      <div class=\"loader-overlay__mask\" *ngIf=\"loading\">\r\n        <eo-loading-spinner class=\"iframe__loader\"></eo-loading-spinner>\r\n      </div>\r\n      <div class=\"slide\" *ngIf=\"isUndocked\">\r\n        <eo-icon *ngIf=\"mediaType\" [objectType]=\"mediaType\"></eo-icon>\r\n      </div>\r\n    </div>\r\n  </yvc-popout>\r\n</div>\r\n\r\n<div [hidden]=\"open\" class=\"empty-container\">\r\n  <eo-icon class=\"nofile\" [iconSrc]=\"'assets/_default/svg/ic_no-file.svg'\"></eo-icon>\r\n</div>\r\n","import {Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild, ViewEncapsulation} from '@angular/core';\r\n\r\nimport {UntypedFormBuilder, UntypedFormControl} from '@angular/forms';\r\nimport {LocalStorageService, Utils} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {Subscription} from 'rxjs';\r\nimport {PendingChangesService} from '../../../../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {FormStatusChangedEvent} from '../../../form-status-changed-event.interface';\r\nimport {FormGenResult, ObjectFormHelperService} from '../../../object-form-helper.service';\r\nimport {ObjectFormControlWrapper} from '../../object-form-control-wrapper';\r\nimport {ObjectFormGroup} from '../../object-form-group.model';\r\nimport {ObjectFormScriptService} from '../../object-form-script/object-form-script.service';\r\nimport {ObjectFormScriptingScope} from '../../object-form-script/object-form-scripting-scope';\r\nimport {EditRow, EditRowResult} from '../form-element.interface';\r\n\r\n/**\r\n * Component for editing a row from an object forms table.\r\n */\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-row-edit',\r\n  templateUrl: './row-edit.component.html',\r\n  styleUrls: ['./row-edit.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  providers: [ObjectFormScriptService],\r\n})\r\nexport class RowEditComponent implements OnDestroy {\r\n  @ViewChild('confirmDelete') confirmDeleteButton: ElementRef;\r\n\r\n  // ID set by pendingChanges service when editing row data\r\n  // Used to finish the pending task when editing is done\r\n  pendingTaskId: string;\r\n\r\n  editForm: ObjectFormGroup;\r\n  editFormControls: ObjectFormControlWrapper[] = [];\r\n  private scriptingScope: ObjectFormScriptingScope;\r\n  private subscriptions: Subscription[] = [];\r\n  // property for holding the forms data used for comparison when a form-changed-event\r\n  // is fetched to indicate wher or not the indexdata were changed or just the properties\r\n  // of the form elements (eg. form script setting fields to readonly)\r\n  private formData: any;\r\n\r\n  _row: EditRow;\r\n  isNewRow: boolean;\r\n  formState?: FormStatusChangedEvent;\r\n  queryEnabled = true;\r\n  copyEnabled = true;\r\n  deleteEnabled = true;\r\n  saveEnabled = true;\r\n  createNewCheckbox: UntypedFormControl;\r\n  createNewRow = false;\r\n  _showDeleteDialog = false;\r\n  saving = false;\r\n  saved = false;\r\n\r\n  set showDeleteDialog(val: boolean) {\r\n    this._showDeleteDialog = val;\r\n\r\n    if (this._showDeleteDialog) {\r\n      setTimeout(() => this.confirmDeleteButton.nativeElement.focus(), 0);\r\n    }\r\n  }\r\n\r\n  get showDeleteDialog() {\r\n    return this._showDeleteDialog;\r\n  }\r\n\r\n  @Input() limitReached: boolean;\r\n\r\n  @Input()\r\n  set row(r: EditRow) {\r\n    if (!this._row || this._row.index !== r?.index) {\r\n      this.saved = false;\r\n    }\r\n    this._row = r;\r\n    this.formData = undefined;\r\n    this.queryEnabled = r?.situation === 'SEARCH';\r\n    this.copyEnabled = !this.queryEnabled;\r\n    this.saveEnabled = !this.queryEnabled;\r\n    this.deleteEnabled = !this.queryEnabled;\r\n    this.isNewRow = this._row?.index === -1;\r\n    this.unsubscribeAll();\r\n\r\n    this._buildRowEditForm();\r\n  }\r\n\r\n  @Output() onCancel = new EventEmitter();\r\n  @Output() onSave = new EventEmitter<EditRowResult>();\r\n  @Output() onSaveCopy = new EventEmitter<EditRowResult>();\r\n  @Output() onDelete = new EventEmitter<number>();\r\n\r\n  constructor(private pendingChanges: PendingChangesService,\r\n    private formScriptService: ObjectFormScriptService,\r\n    private formHelperService: ObjectFormHelperService,\r\n    private fb: UntypedFormBuilder, private storageService: LocalStorageService) {\r\n    this.createNewRow = !!this.storageService.getItem('createNewRow');\r\n    this.createNewCheckbox = this.fb.control(this.createNewRow);\r\n    this.createNewCheckbox.valueChanges.pipe(untilDestroyed(this)).subscribe((v) => {\r\n      this.createNewRow = v;\r\n      this.storageService.setItem('createNewRow', this.createNewRow);\r\n    });\r\n  }\r\n\r\n  /**\r\n * Returns the observed model that was passed to the current form script running. If there is\r\n * no form script, this method will return NULL.\r\n * @returns\r\n */\r\n  private _getObservedScriptModel() {\r\n    return this.scriptingScope ? this.scriptingScope.getModel() : null;\r\n  }\r\n\r\n  private _getFormData() {\r\n    return this.formHelperService.extractFormData(\r\n      this.editForm,\r\n      this._row.situation,\r\n      this._row.form.data, true\r\n    );\r\n\r\n  }\r\n\r\n  onFormReady() {\r\n    // execute after form has been set up, because otherwise not all of the components are ready to be used\r\n    // if for example a form script executed `onrowedit` tries to apply a filter or something like that\r\n    if (this._row.tableElement.onrowedit && !this._row.tableElement.readonly) {\r\n\r\n      // Generate row API object (wrapper) for the script\r\n      const row = {\r\n        model: this._getObservedScriptModel(),\r\n        index: this._row.index,\r\n        copyEnabled: this.copyEnabled,\r\n        deleteEnabled: this.deleteEnabled,\r\n        saveEnabled: this.saveEnabled,\r\n        persisted: !this.isNewRow // Not persisted if it is a new row\r\n      };\r\n      this._row.tableElement.onrowedit(this._row.tableElement, row);\r\n      if (!this.saved) {\r\n        this.onFormStatusChanged();\r\n      }\r\n      // ... and respect the result\r\n      this.copyEnabled = row.copyEnabled;\r\n      this.deleteEnabled = row.deleteEnabled;\r\n      this.saveEnabled = row.saveEnabled;\r\n    }\r\n  }\r\n\r\n  onFormStatusChanged() {\r\n\r\n    // check if indexdata has been changed\r\n    let currentFormData = this._getFormData();\r\n    let idxChange = JSON.stringify(this.formData) !== JSON.stringify(currentFormData);\r\n    this.formData = Utils.formDataParse(Utils.formDataStringify(currentFormData));\r\n\r\n    this.formState = {\r\n      invalid: this.editForm.invalid,\r\n      dirty: this.editForm.dirty,\r\n      data: this.formData,\r\n      indexdataChanged: idxChange\r\n    };\r\n    if (this.formState.indexdataChanged) {\r\n      this.startPending();\r\n    } else {\r\n      this.finishPending();\r\n    }\r\n  }\r\n\r\n  private _buildRowEditForm() {\r\n    if (this._row) {\r\n      const formGenRes: FormGenResult = this.formHelperService.buildReactiveForm(\r\n        {\r\n          formModel: {\r\n            situation: this._row.situation,\r\n            elements: [{\r\n              type: 'o2mGroup',\r\n              elements: structuredClone(this._row.form.elements)\r\n            }]\r\n          }, disabled: this._row.form.disabled, data: this._row.form.data\r\n        }, this.formScriptService, true\r\n      );\r\n      this.editForm = formGenRes.form;\r\n      this.scriptingScope = formGenRes.scriptingScope;\r\n      this.subscriptions = formGenRes.controlValueSubscriptions;\r\n\r\n      const ctrls = (this.editForm.controls.core as ObjectFormGroup).controls;\r\n      this.editFormControls = Object.keys(ctrls).map(k => ctrls[k] as ObjectFormControlWrapper)\r\n      this.formState = {\r\n        invalid: this.editForm.invalid,\r\n        dirty: this.editForm.dirty,\r\n        data: this.formData,\r\n        indexdataChanged: false\r\n      };\r\n      setTimeout(() => {\r\n        if (!this.editForm) return;\r\n        let formStateWatch = this.editForm.statusChanges.pipe()\r\n          .subscribe((e) => this.onFormStatusChanged());\r\n        this.subscriptions.push(formStateWatch);\r\n        this.onFormReady();\r\n      }, 300);\r\n    }\r\n  }\r\n\r\n  private startPending() {\r\n    // because this method will be called every time the form status changes,\r\n    // pending task will only be started once until it was finished\r\n    if (!this.pendingChanges.hasPendingTask(this.pendingTaskId || ' ')) {\r\n      this.pendingTaskId = this.pendingChanges.startTask();\r\n    }\r\n  }\r\n\r\n  finishPending() {\r\n    this.pendingChanges.finishTask(this.pendingTaskId);\r\n  }\r\n\r\n  save() {\r\n    this.saving = true;\r\n    this.saved = true;\r\n    this.finishPending();\r\n    setTimeout(() => {\r\n      if (!this.formState.invalid) {\r\n        this.onSave.emit({\r\n          index: this._row.index,\r\n          rowData: this._getFormData(),\r\n          createNewRow: this.createNewRow\r\n        });\r\n      }\r\n      this.saving = false;\r\n    }, 500);\r\n  }\r\n\r\n  saveCopy() {\r\n    this.saving = true;\r\n    setTimeout(() => {\r\n      if (!this.formState.invalid) {\r\n        this.onSaveCopy.emit({\r\n          index: this._row.index,\r\n          rowData: this._getFormData(),\r\n          createNewRow: this.createNewRow\r\n        });\r\n      }\r\n      this.saving = false;\r\n    }, 500);\r\n  }\r\n\r\n  delete() {\r\n    this.onDelete.emit(this._row.index);\r\n    this.showDeleteDialog = false;\r\n  }\r\n\r\n  cancel() {\r\n    this.finishPending();\r\n    this.onCancel.emit();\r\n  }\r\n\r\n  private unsubscribeAll() {\r\n    if (this.subscriptions.length) {\r\n      this.subscriptions.forEach(s => s.unsubscribe());\r\n      this.subscriptions = [];\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.unsubscribeAll();\r\n  }\r\n}\r\n","<div class=\"row-edit\">\r\n  <div class=\"edit-header\" *ngIf=\"!queryEnabled\">\r\n    <div class=\"new-indicator\" *ngIf=\"isNewRow\" translate>eo.form.table.options.indicator.new</div>\r\n    <div></div>\r\n    <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"cancel()\" class=\"button cancel-icon\"\r\n      [iconTitle]=\"('eo.cta.button.cancel' | translate)\"></eo-icon>\r\n  </div>\r\n\r\n  <div class=\"form\" [formGroup]=\"editForm\" *ngIf=\"editForm\">\r\n    <eo-form-element *ngFor=\"let c of editFormControls\" [element]=\"c\" [situation]=\"_row?.situation\" [skipToggle]=\"false\">\r\n    </eo-form-element>\r\n  </div>\r\n\r\n  <div class=\"actions\">\r\n    <eo-checkbox *ngIf=\"isNewRow\" title=\"{{'eo.form.table.options.checkbox.new.title' | translate}}\"\r\n      [formControl]=\"createNewCheckbox\"></eo-checkbox>\r\n    <span *ngIf=\"isNewRow\" class=\"add-label\" translate>eo.form.table.options.checkbox.new</span>\r\n    <button type=\"button\" *ngIf=\"deleteEnabled && !isNewRow && !_row?.form.disabled && !queryEnabled\"\r\n      (click)=\"showDeleteDialog = true;\" title=\"{{'eo.cta.button.delete' | translate}}\">\r\n      <eo-icon [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\r\n    </button>\r\n    <button type=\"button\" (click)=\"saveCopy()\" class=\"seco\" *ngIf=\"copyEnabled && !isNewRow && !_row?.form.disabled\"\r\n      [disabled]=\"limitReached || saving || formState?.invalid\" translate>eo.form.table.options.btn.copy</button>\r\n    <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"saveEnabled && !_row?.form.disabled\"\r\n      [disabled]=\"(limitReached && isNewRow) || saving || formState?.invalid || (!formState?.dirty && !isNewRow)\">{{\r\n      'eo.form.table.options.btn.save' + (isNewRow ? '.new' : '') | translate}}</button>\r\n    <!-- query button for SEARCH situation -->\r\n    <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"queryEnabled\"\r\n      [disabled]=\"formState?.invalid || !formState?.indexdataChanged\" translate>eo.form.table.options.btn.save</button>\r\n  </div>\r\n\r\n</div>\r\n\r\n<eo-dialog [title]=\"('eo.form.table.options.confirm.delete' | translate)\" [(visible)]=\"showDeleteDialog\"\r\n  [minWidth]=\"400\">\r\n  <div class=\"action-buttons flex-row\" style=\"padding: 8px;\">\r\n    <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\r\n      translate>eo.cta.button.cancel</button>\r\n    <button type=\"button\" #confirmDelete (click)=\"delete()\" class=\"button primary\"\r\n      translate>eo.form.table.options.btn.ok</button>\r\n  </div>\r\n</eo-dialog>","import {ClientSideRowModelModule} from '@ag-grid-community/client-side-row-model';\r\nimport {ColDef, GridOptions, Module} from '@ag-grid-community/core';\r\nimport {CsvExportModule} from '@ag-grid-community/csv-export';\r\nimport {Component, HostListener, Input, OnInit, ViewChild, forwardRef} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, UntypedFormControl, Validator} from '@angular/forms';\r\nimport {LocalStorageService, NotificationsService, SystemService, TranslateService, Utils} from '@eo-sdk/core';\r\nimport {firstValueFrom, forkJoin} from 'rxjs';\r\nimport {debounceTime, map} from 'rxjs/operators';\r\n\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {CellRenderer, GridService} from '../../../../eo-framework-core/api/grid.service';\r\nimport {PendingChangesService} from './../../../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {EditRow, TableComponentParams} from './form-element.interface';\r\nimport {RowEditComponent} from './row-edit/row-edit.component';\r\nimport {LocaleNumberPipe} from \"../../../../eo-framework-core\";\r\nimport {AgGridAngular} from '@ag-grid-community/angular';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-table',\r\n  templateUrl: './form-element-table.component.html',\r\n  styleUrls: [\r\n    './form-element-table.component.scss'\r\n  ],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => FormElementTableComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => FormElementTableComponent),\r\n      multi: true,\r\n    }\r\n  ]\r\n})\r\nexport class FormElementTableComponent implements ControlValueAccessor, Validator, OnInit {\r\n\r\n  private _cachedColumns: any[];\r\n  private _cachedColumnsOverlay: any[];\r\n\r\n  public modules: Module[] = [ClientSideRowModelModule, CsvExportModule];\r\n\r\n  BASE_CACHE_LAYOUT_KEY = 'table.state';\r\n  cacheLayoutKey = this.BASE_CACHE_LAYOUT_KEY;\r\n\r\n  @ViewChild('agGrid') agGrid!: AgGridAngular;\r\n  @ViewChild('overlayGrid') overlayGrid!: AgGridAngular;\r\n  @ViewChild('rowEdit') rowEdit: RowEditComponent;\r\n  // @ViewChild('splitView') splitView: SplitComponent;\r\n\r\n  @Input() limit: number;\r\n  @Input() hasPreviewFile: boolean;\r\n  @Input() minWidth = '97vw';\r\n  @Input() height = '95vh';\r\n\r\n  _params: TableComponentParams;\r\n  private _elements: any[];\r\n  gridReady = false;\r\n  value: any[];\r\n  innerValue: any[];\r\n  gridOptions: GridOptions;\r\n  overlayGridOptions: GridOptions;\r\n  editingRow: EditRow;\r\n  showDialog = false;\r\n  showPreview = false;\r\n  showImportReportDialog = false;\r\n  mappedRows = [];\r\n  mappingErrorFields = [];\r\n  layoutSettings;\r\n\r\n  @Input()\r\n  set params(p: TableComponentParams) {\r\n    this.cacheLayoutKey = p ? `${this.BASE_CACHE_LAYOUT_KEY}.${p.element.name}` : this.BASE_CACHE_LAYOUT_KEY;\r\n    if (p) {\r\n      this._params = p;\r\n      this._cachedColumns = this.storageService.getItem(this.cacheLayoutKey + '.colDef') || [];\r\n      this._cachedColumnsOverlay = this.storageService.getItem(this.cacheLayoutKey + '.colDefOverlay') || [];\r\n      this.showPreview = this.storageService.getItem(this.cacheLayoutKey + '.showPreview');\r\n\r\n\r\n      CellRenderer.situation = this._params.situation;\r\n      if (this._params.situation === 'SEARCH') {\r\n        this._params.size = 'supersmall';\r\n      } else if (!this._params.size) {\r\n        this._params.size = 'small';\r\n      }\r\n      this.gridReady = false;\r\n      this._elements = p.element.elements;\r\n      this.gridOptions.columnDefs = this.createColumnDefinition();\r\n      if (this._params.situation === 'SEARCH') {\r\n        this.gridOptions.columnDefs.push({headerName: '', colId: 'actions', width: 34, minWidth: 34, pinned: 'right', cellRenderer: this.actionsCellRenderer});\r\n      } else {\r\n        this.overlayGridOptions.columnDefs = this.createColumnDefinition(true);\r\n      }\r\n\r\n      this.gridReady = true;\r\n    }\r\n  }\r\n  get params() {\r\n    return this._params;\r\n  }\r\n\r\n  @HostListener('keydown.control.alt.shift.c', ['$event'])\r\n  @HostListener('keydown.control.shift.c', ['$event'])\r\n  @HostListener('keydown.control.alt.c', ['$event'])\r\n  @HostListener('keydown.control.c', ['$event'])\r\n  copyCellHandler(event: KeyboardEvent) {\r\n    this.gridApi.copyToClipboard(event, this.agGrid, this.gridOptions);\r\n  }\r\n\r\n  constructor(\r\n    private storageService: LocalStorageService,\r\n    private systemService: SystemService,\r\n    private pendingChanges: PendingChangesService,\r\n    public gridApi: GridService,\r\n    private toast: NotificationsService,\r\n    private translate: TranslateService) {\r\n    this.gridOptions = <GridOptions>{\r\n      context: this.gridApi.getContext(),\r\n      headerHeight: 30,\r\n      rowHeight: 30,\r\n      rowBuffer: 20,\r\n      multiSortKey: 'ctrl',\r\n      accentedSort: true,\r\n      // suppressCellSelection: true,\r\n      rowSelection: 'single',\r\n      suppressMovableColumns: true,\r\n      suppressNoRowsOverlay: true,\r\n      suppressLoadingOverlay: true,\r\n      suppressContextMenu: true\r\n    };\r\n    this.gridOptions.context.tableComponent = this;\r\n\r\n    this.overlayGridOptions = <GridOptions>{\r\n      context: this.gridApi.getContext(),\r\n      headerHeight: 30,\r\n      rowHeight: 30,\r\n      rowBuffer: 20,\r\n      multiSortKey: 'ctrl',\r\n      accentedSort: true,\r\n      // suppressCellSelection: true,\r\n      rowSelection: 'single',\r\n      suppressMovableColumns: true,\r\n      suppressNoRowsOverlay: true,\r\n      suppressLoadingOverlay: true,\r\n      suppressContextMenu: true\r\n    };\r\n    this.overlayGridOptions.context.tableComponent = this;\r\n    this.overlayGridOptions.rowClassRules = {\r\n      'new-row': function (params) {\r\n        if (params.data.isNewRow) {\r\n          delete params.data.isNewRow;\r\n          delete params.context.tableComponent.innerValue[params.context.tableComponent.innerValue.length - 1].isNewRow;\r\n          return true;\r\n        } else {\r\n          return false;\r\n        }\r\n      }\r\n    };\r\n\r\n    this.pendingChanges.tasks$.pipe(debounceTime(10), untilDestroyed(this)).subscribe((tasks) => {\r\n      const s = this.overlayGridOptions.suppressRowClickSelection = !!this.rowEdit && !!tasks.find((task) => task === this.rowEdit.pendingTaskId);\r\n      this.overlayGrid?.api.updateGridOptions({ suppressRowClickSelection: s, suppressCellFocus: s });\r\n    });\r\n  }\r\n\r\n  actionsCellRenderer(params) {\r\n    let div = document.createElement('div');\r\n\r\n    if (params.context.tableComponent.params.situation === 'SEARCH') {\r\n      div.innerHTML = `<div class=\"action-icon\" id=\"actionIcon-${params.rowIndex}\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\r\n      <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/>\r\n      </svg>\r\n      </div>`;\r\n      let clearIcon = div.querySelectorAll(`#actionIcon-${params.rowIndex}`)[0];\r\n      clearIcon.addEventListener('click', () => params.context.tableComponent.clearRow(params.rowIndex));\r\n    } else {\r\n      div.innerHTML = `<div class=\"action-icon\" id=\"actionIcon-${params.rowIndex}\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\r\n      <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"/>\r\n      </svg>\r\n      </div>`;\r\n      let deleteIcon = div.querySelectorAll(`#actionIcon-${params.rowIndex}`)[0];\r\n      deleteIcon.addEventListener('click', () => params.context.tableComponent.deleteRow(params.rowIndex));\r\n    }\r\n\r\n    return div;\r\n  }\r\n\r\n  propagateChange = (_: any) => {\r\n  }\r\n\r\n  writeValue(value: any[]): void {\r\n\r\n    if (!value && this._params.situation === 'SEARCH') {\r\n      // for search row data will always be one empty row\r\n      // todo: re-enable again when search in tables is supported\r\n      value = [{}];\r\n    }\r\n    this.value = value instanceof Array ? value : [];\r\n    // create a clone of the actual value for internal usage\r\n    this.innerValue = Utils.formDataParse(Utils.formDataStringify(this.value));\r\n\r\n    this.updateTableValue(false);\r\n    setTimeout(() => this.selectEditRow(), 0);\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n  }\r\n\r\n  /**\r\n   * Create column definition from form element.\r\n   * @returns column definition to be added to the gridOptions\r\n   */\r\n  private createColumnDefinition(overlay?: boolean): ColDef[] {\r\n    return this._elements.map((el) => {\r\n      let col: ColDef = this.gridApi.getColumnDefinition(el);\r\n      Object.assign(col, {\r\n        headerName: el.label,\r\n        suppressMenu: true,\r\n        filter: false,\r\n        sortable: true,\r\n        resizable: true,\r\n        field: el.name,\r\n        refData: {\r\n          ...col.refData,\r\n          _eoFormElement: el,\r\n          _situation: this._params.situation\r\n        }\r\n      });\r\n      let cachedColumns = this._cachedColumns;\r\n      if (overlay) {\r\n        cachedColumns = this._cachedColumnsOverlay;\r\n      }\r\n      let cachedColumn = cachedColumns.find(f => f.qname === el.qname);\r\n      if (cachedColumn) {\r\n        col.width = cachedColumn.width;\r\n      }\r\n      return col;\r\n    });\r\n  }\r\n\r\n  addRow() {\r\n    const rowData = {};\r\n    const asyncFetches = [];\r\n    this._elements\r\n      .forEach(el => {\r\n        if (el.defaultvalue !== undefined) {\r\n          rowData[el.name] = el.defaultvalue;\r\n        } else if (el.defaultvaluefunction) {\r\n          rowData[el.name] = this.systemService.getDefaultValue(el.defaultvaluefunction);\r\n          if (el.defaultvaluefunction === 'CURRENT_USER') {\r\n            asyncFetches.push(this.resolveOrgDataMeta(el.name, rowData[el.name]));\r\n          }\r\n\r\n        }\r\n      });\r\n    if (asyncFetches.length > 0) {\r\n      forkJoin(asyncFetches).subscribe((res: {key: string, value: any}[]) => {\r\n        res.forEach(r => {\r\n          rowData[r.key] = r.value;\r\n        });\r\n        this.setEditRow(-1, rowData);\r\n      });\r\n    } else {\r\n      this.setEditRow(-1, rowData);\r\n    }\r\n  }\r\n\r\n  private resolveOrgDataMeta(elementName: string, value: any) {\r\n    return this.systemService.getOrganizationObject(value).pipe(\r\n      map(res => ({\r\n        key: `${elementName}_meta`,\r\n        value: res\r\n      }))\r\n    );\r\n  }\r\n\r\n  editRow(event) {\r\n    this.setEditRow(event.node.id, event.node.data);\r\n  }\r\n\r\n  onEditComplete(event) {\r\n    //todo: is it obsolete?\r\n  }\r\n\r\n  private setEditRow(index: number, data: any) {\r\n    // setup the row to be edited. Beside some properties, the\r\n    // row contains a form model and form data. If the parent form model\r\n    // provided a script, this will be added as well, so editing a row will\r\n    // respect the form script.\r\n    this.editingRow = {\r\n      situation: this._params.situation,\r\n      index: index,\r\n      tableElement: this._params.element,\r\n      form: {\r\n        elements: this._elements,\r\n        disabled: this._params.element.readonly,\r\n        data\r\n      }\r\n    };\r\n    // we need this line to reload the cached columns in case of reopening the dialog without refreshing the page\r\n    this.params = this._params;\r\n    this.showDialog = true;\r\n    setTimeout(() => this.selectEditRow(), 0);\r\n  }\r\n\r\n  private selectEditRow() {\r\n    if (this.overlayGrid) {\r\n      this.overlayGrid.api.deselectAll();\r\n      if (this.editingRow && this.editingRow.index !== -1) {\r\n        let rowNode = this.overlayGrid.api.getRowNode('' + this.editingRow.index);\r\n        rowNode.setSelected(true, true);\r\n        this.overlayGrid.api.ensureNodeVisible(rowNode);\r\n      }\r\n    }\r\n  }\r\n\r\n  private updateTableValue(propagateChange = true) {\r\n    this.gridOptions.rowData = this.innerValue;\r\n    this.overlayGridOptions.rowData = this.innerValue;\r\n\r\n    this.agGrid?.api.setGridOption('rowData', this.innerValue);\r\n    this.overlayGrid?.api.setGridOption('rowData', this.innerValue);\r\n\r\n    this.value = this.innerValue;\r\n    if (Object.keys(this.value.includes('isNewRow'))) {\r\n      delete this.value['isNewRow'];\r\n    }\r\n    propagateChange && this.propagateChange(this.value);\r\n  }\r\n\r\n  cancelRowEdit() {\r\n    if (this.rowEdit) {\r\n      this.rowEdit.finishPending();\r\n    }\r\n    this.editingRow = null;\r\n    if (this._params.situation === 'SEARCH') {\r\n      this.showDialog = false;\r\n    }\r\n  }\r\n\r\n  onClose() {\r\n    this.editingRow = null;\r\n    this.showDialog = false;\r\n  }\r\n\r\n  cancelImportReport() {\r\n    this.showImportReportDialog = false;\r\n    this.mappedRows = [];\r\n    this.mappingErrorFields = [];\r\n  }\r\n\r\n  updateRow(rowResult: any) {\r\n    const isNewRow = rowResult.index === -1;\r\n    if (isNewRow) {\r\n      this.innerValue.push({...rowResult.rowData, ...{isNewRow: true}});\r\n    } else {\r\n      this._elements.forEach(el => {\r\n        // this.innerValue[rowResult.index] = {...this.innerValue[rowResult.index], ...rowResult.rowData};\r\n        this.innerValue[rowResult.index][el.name] = rowResult.rowData[el.name];\r\n        if (rowResult.rowData[el.name + '_meta'] && this._params.situation !== 'SEARCH') {\r\n          this.innerValue[rowResult.index][el.name + '_meta'] = rowResult.rowData[el.name + '_meta'];\r\n        }\r\n      });\r\n    }\r\n    this.updateTableValue();\r\n    if (this._params.situation === 'SEARCH') {\r\n      this.showDialog = false;\r\n    } else if (isNewRow && !rowResult.createNewRow) {\r\n      this.setEditRow(this.innerValue.length - 1, this.innerValue[this.innerValue.length - 1]);\r\n    } else if (rowResult.createNewRow) {\r\n      this.addRow();\r\n      let rowNode = this.overlayGrid.api.getRowNode('' + (this.innerValue.length - 1));\r\n      this.overlayGrid.api.ensureNodeVisible(rowNode);\r\n    } else {\r\n      this.setEditRow(rowResult.index, this.innerValue[rowResult.index]);\r\n    }\r\n  }\r\n\r\n  copyRow(rowResult: any) {\r\n    rowResult.index = -1;\r\n    this.innerValue.push({...rowResult.rowData, ...{isNewRow: true}});\r\n    this.updateTableValue();\r\n    if (rowResult.createNewRow) {\r\n      this.addRow();\r\n    } else {\r\n      this.setEditRow(this.innerValue.length - 1, JSON.parse(JSON.stringify(rowResult.rowData)));\r\n    }\r\n  }\r\n\r\n  deleteRow(index: number) {\r\n    if (index > -1) {\r\n      this.innerValue.splice(index, 1);\r\n      this.updateTableValue();\r\n      if (this.innerValue.length) {\r\n        const nextIndex = index == this.innerValue.length ? this.innerValue.length - 1 : index;\r\n        this.setEditRow(nextIndex, this.innerValue[nextIndex]);\r\n      } else {\r\n        this.cancelRowEdit();\r\n      }\r\n    }\r\n  }\r\n\r\n  clearRow(index: number) {\r\n    this.innerValue[index] = {};\r\n    this.updateTableValue();\r\n  }\r\n\r\n  exportCSV() {\r\n    this.agGrid.api.exportDataAsCsv({\r\n      ...this.gridApi.csvExportParams,\r\n      fileName: this._params.element.label\r\n    });\r\n  }\r\n\r\n  importCSV(event) {\r\n    const fields = this._params.element.elements;\r\n    const file = event.files[0];\r\n    const reader = new FileReader();\r\n\r\n    reader.addEventListener('load', async e => {\r\n      let parsedata = [];\r\n      if (typeof e.target.result === 'string') {\r\n        let newLineBreak = e.target.result.split('\\n').filter(result => result !== '');\r\n        for (let i = 0; i < newLineBreak.length; i++) {\r\n          parsedata.push(newLineBreak[i].split(';'));\r\n        }\r\n\r\n        if (parsedata.length > 5000) {\r\n          this.toast.error(this.translate.instant('eo.form.table.options.btn.upload.error'));\r\n          return;\r\n        }\r\n        parsedata = parsedata.map(data => data.map(d => d.replace(/\"/gi, '').replace('\\n', '').replace(/[^-.:,a-zA-Z0-9() ]/g, '').trim()));\r\n\r\n        const columns = this.gridOptions.columnDefs.map(column => column['field']);\r\n        const columnsUploaded = parsedata[0];\r\n        parsedata.shift();\r\n        const rowsUploaded = parsedata;\r\n\r\n        const metaFields = [];\r\n        for (let rowIndex = 0; rowIndex < rowsUploaded.length; rowIndex++) {\r\n          const mappedRow = {};\r\n          let currentRow = rowsUploaded[rowIndex];\r\n          for (let i = 0; i < currentRow.length && i < columns.length; i++) {\r\n            if (currentRow[i] !== '') {\r\n              const currentField = fields.find(field => field.name === columns[i]);\r\n              if (currentField.type === 'ORGANIZATION') {\r\n                let orgObj = await firstValueFrom(this.systemService.getOrganizationObject(currentRow[i]));\r\n                if (orgObj.active) {\r\n                  mappedRow[columns[i]] = currentRow[i];\r\n                  metaFields.push({column: columns[i], rowIndex: rowIndex, value: orgObj});\r\n                } else {\r\n                  mappedRow[columns[i]] = '';\r\n                  this.mappingErrorFields.push({technicalName: columns[i], uploadedName: columnsUploaded[i], row: rowIndex, value: currentRow[i]});\r\n                }\r\n              } else if (currentField.type === 'CODESYSTEM') {\r\n                const codesystem = this.systemService.getCodesystem(currentField.codesystem.id);\r\n                const codesystemEntry = codesystem.entries.find(entry => entry.data === currentRow[i] || entry.defaultrepresentation === currentRow[i]);\r\n                if (codesystemEntry) {\r\n                  mappedRow[columns[i]] = currentRow[i];\r\n                  metaFields.push(\r\n                    {\r\n                      column: columns[i],\r\n                      rowIndex: rowIndex,\r\n                      value: {id: codesystemEntry.id, defaultrepresentation: codesystemEntry.defaultrepresentation, label: codesystemEntry.label\r\n                    }\r\n                  });\r\n                } else {\r\n                  mappedRow[columns[i]] = '';\r\n                  this.mappingErrorFields.push({technicalName: columns[i], uploadedName: columnsUploaded[i], row: rowIndex, value: currentRow[i]});\r\n                }\r\n              } else if (currentField.type === 'REFERENCE') {\r\n                if (currentRow[i].length === 32) {\r\n                  mappedRow[columns[i]] = currentRow[i];\r\n                } else {\r\n                  mappedRow[columns[i]] = '';\r\n                  this.mappingErrorFields.push({technicalName: columns[i], uploadedName: columnsUploaded[i], row: rowIndex, value: currentRow[i]});\r\n                }\r\n              } else if (currentField.type === 'DATETIME') {\r\n                if (new Date(currentRow[i]).toString() === 'Invalid Date') {\r\n                  mappedRow[columns[i]] = '';\r\n                  this.mappingErrorFields.push({technicalName: columns[i], uploadedName: columnsUploaded[i], row: rowIndex, value: currentRow[i]});\r\n                } else {\r\n                  mappedRow[columns[i]] = currentRow[i];\r\n                }\r\n              } else if (currentField.type === 'NUMBER') {\r\n                mappedRow[columns[i]] = new LocaleNumberPipe(this.translate).stringToNumber(currentRow[i]);\r\n                if (isNaN(mappedRow[columns[i]])) {\r\n                  mappedRow[columns[i]] = '';\r\n                  this.mappingErrorFields.push({technicalName: columns[i], uploadedName: columnsUploaded[i], row: rowIndex, value: currentRow[i]});\r\n                }\r\n              } else {\r\n                mappedRow[columns[i]] = currentRow[i];\r\n              }\r\n            }\r\n          }\r\n          this.mappedRows.push(mappedRow);\r\n        }\r\n        metaFields.forEach(field => {\r\n          this.mappedRows[field.rowIndex][field.column + '_meta'] = field.value;\r\n        });\r\n        this.openImportReportDialog();\r\n      }\r\n    });\r\n\r\n    reader.readAsBinaryString(file);\r\n  }\r\n\r\n  addImportValuesToTable() {\r\n    this.showImportReportDialog = false;\r\n    this.openDialog();\r\n    this.innerValue = [...this.innerValue, ...this.mappedRows];\r\n    this.updateTableValue();\r\n  }\r\n\r\n  sizeToFit(overlay?: boolean) {\r\n    if (overlay) {\r\n      this.overlayGrid.api.sizeColumnsToFit();\r\n    } else {\r\n      this.agGrid.api.sizeColumnsToFit();\r\n    }\r\n  }\r\n\r\n  openDialog() {\r\n    // we need this line to reload the cached columns in case of reopening the dialog without refreshing the page\r\n    this.params = this._params;\r\n    this.showDialog = true;\r\n  }\r\n\r\n  openImportReportDialog() {\r\n    this.showImportReportDialog = true;\r\n  }\r\n\r\n  private validateTableData(): boolean {\r\n    // todo: implement\r\n    return true;\r\n  }\r\n\r\n  validate(c: UntypedFormControl) {\r\n    return this.validateTableData() ? null : {\r\n      table: {\r\n        valid: false\r\n      }\r\n    };\r\n  }\r\n\r\n  onMouseDown($event: any) {\r\n    if ($event.button === 0 && this.overlayGrid?.api.getGridOption('suppressRowClickSelection')) {\r\n      if (!this.pendingChanges.checkForPendingTasks(this.rowEdit.pendingTaskId)) {\r\n        this.overlayGrid?.api.updateGridOptions({ suppressRowClickSelection: false, suppressCellFocus: false });\r\n        this.rowEdit.finishPending();\r\n        this.selectEvent($event);\r\n      } else {\r\n        $event.preventDefault();\r\n        $event.stopImmediatePropagation();\r\n      }\r\n    }\r\n  }\r\n\r\n  private selectEvent($event: MouseEvent | any) {\r\n    const colId = $event.composedPath?.().find((el) => el?.getAttribute('col-id'))?.getAttribute('col-id');\r\n    const rowId = $event.composedPath?.().find((el) => el?.getAttribute('row-id'))?.getAttribute('row-id');\r\n    if (colId) {\r\n      const row = this.overlayGrid.api.getRowNode(rowId);\r\n      row.setSelected(true, true);\r\n      this.overlayGrid.api.setFocusedCell(row.rowIndex, colId);\r\n    }\r\n  }\r\n\r\n  onSortChanged() {\r\n    let rowNode = this.overlayGrid.api.getRowNode('' + this.editingRow.index);\r\n    this.overlayGrid.api.ensureNodeVisible(rowNode);\r\n  }\r\n\r\n  onCellClicked($event) {\r\n    if ($event.colDef.cellClass === 'router-link-cell' && $event.rowIndex !== null && !this.pendingChanges.check()) {\r\n      if (!$event.node.group && $event.data) {\r\n        this.gridApi.openRouterLink($event.event, 'ag-row');\r\n      }\r\n    }\r\n  }\r\n\r\n  onCellClickedRowEdit($event) {\r\n    if ($event.rowIndex !== null && !this.pendingChanges.checkForPendingTasks(this.rowEdit ? this.rowEdit.pendingTaskId : undefined)) {\r\n      if (!$event.node.group && $event.data) {\r\n        if ($event.colDef.cellClass === 'router-link-cell') {\r\n          this.gridApi.openRouterLink($event.event, 'ag-row');\r\n        }\r\n      }\r\n    }\r\n    this.editRow($event);\r\n  }\r\n\r\n  onColumnResized(column: any, overlay?: boolean) {\r\n    let columnsDefinition = this.cacheLayoutKey + '.colDef';\r\n    let cachedColumns = this._cachedColumns;\r\n    if (overlay) {\r\n      columnsDefinition = this.cacheLayoutKey + '.colDefOverlay';\r\n      cachedColumns = this._cachedColumnsOverlay;\r\n    }\r\n    let col = cachedColumns.find(c => c.qname === column.colDef.refData.qname);\r\n    if (col) {\r\n      col.width = column.actualWidth;\r\n    } else {\r\n      cachedColumns.push({qname: column.colDef.refData.qname, width: column.actualWidth});\r\n    }\r\n    this.storageService.setItem(columnsDefinition, cachedColumns);\r\n  }\r\n\r\n  // private _updateSplitViewLayoutCache() {\r\n  //   setTimeout(() => {\r\n  //     this.splitView?.updateLayoutCache();\r\n  //   });\r\n  // }\r\n\r\n  togglePreview() {\r\n    this.showPreview = !this.showPreview;\r\n    // make sure that the layout of the split view is updated after the preview panels\r\n    // visibility changed\r\n    // this._updateSplitViewLayoutCache();\r\n    this.storageService.setItem(this.cacheLayoutKey + '.showPreview', this.showPreview);\r\n  }\r\n\r\n  // ngAfterViewInit(): void {\r\n  //   this._updateSplitViewLayoutCache();\r\n  // }\r\n\r\n  onLayoutSettingsChange(layout) {\r\n    this.storageService.setItem(this.cacheLayoutKey, layout);\r\n    this.layoutSettings = layout;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.hasPreviewFile = this.hasPreviewFile !== undefined ? this.hasPreviewFile : !!this.params.object?.content;\r\n    this.layoutSettings = this.storageService.getItem(this.cacheLayoutKey)\r\n      ? this.storageService.getItem(this.cacheLayoutKey)\r\n      : {disabled: false, areas: [{visible: true, size: 40}, {visible: true, size: 20}, {visible: false, size: 40}]};\r\n  }\r\n}\r\n","<div class=\"object-form-table\" [ngClass]=\"{medium: _params.size === 'medium', large: _params.size === 'large'}\">\r\n  <div class=\"object-form-table-header\">\r\n    <span>{{_params.element.label}}</span>\r\n    <ng-container *ngIf=\"_params.situation !== 'SEARCH'\">\r\n\r\n      <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_expand.svg'\"\r\n        [iconTitle]=\"('eo.form.table.options.btn.open'| translate)\" (click)=\"openDialog()\"></eo-icon>\r\n      <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\"\r\n        [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit()\"></eo-icon>\r\n      <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData?.length\" [iconSrc]=\"'assets/_default/svg/ic_export.svg'\"\r\n        [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\r\n      <eo-icon *ngIf=\"!_params.element.readonly\" class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_import.svg'\"\r\n        [iconTitle]=\"('eo.form.table.options.btn.upload'| translate)\" (click)=\"file.click()\"></eo-icon>\r\n      <input type=\"file\" accept=\".csv\" style=\"display:none;\" #file (change)=\"importCSV($event.target)\"\r\n        (click)=\"$event.target.value = null\">\r\n      <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"\r\n        [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\r\n\r\n    </ng-container>\r\n  </div>\r\n  <div class=\"grid-body size-{{ params.size }}\">\r\n    <ag-grid-angular #agGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\" [gridOptions]=\"gridOptions\"\r\n      (rowDoubleClicked)=\"editRow($event)\" (cellClicked)=\"onCellClicked($event)\" (sortChanged)=\"onSortChanged()\"\r\n      (cellValueChanged)=\"onEditComplete($event)\" (columnResized)=\"onColumnResized($event.column)\">\r\n    </ag-grid-angular>\r\n  </div>\r\n</div>\r\n\r\n\r\n<eo-dialog [title]=\"params.element.label\" [visible]=\"showDialog\" [dirtyCheck]=\"rowEdit?.pendingTaskId\"\r\n  [minWidth]=\"_params.situation !== 'SEARCH' ? minWidth : 200\" [width]=\"_params.situation !== 'SEARCH' ? '95vw' : 500\"\r\n  [height]=\"height\" [styleClass]=\"'object-form-table-dialog'\" (hide)=\"onClose()\" [isFormTable]=\"true\"\r\n  [hasPreviewFile]=\"hasPreviewFile\" [showPreview]=\"showPreview\" (onTogglePreview)=\"togglePreview()\">\r\n\r\n  <div class=\"body\" *ngIf=\"showDialog\">\r\n    <yvc-split-view (layoutSettingsChange)=\"onLayoutSettingsChange($event)\">\r\n      <!-- the table itself-->\r\n      <ng-template yvcSplitArea [size]=\"layoutSettings.areas[0].size\" [visible]=\"_params.situation !== 'SEARCH'\">\r\n        <div class=\"table-body\">\r\n          <div class=\"object-form-table\">\r\n            <div class=\"object-form-table-header\">\r\n              <span></span>\r\n              <ng-container>\r\n                <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\"\r\n                  [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit(true)\"></eo-icon>\r\n                <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\"\r\n                  [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"\r\n                  [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\r\n              </ng-container>\r\n            </div>\r\n            <div class=\"grid-body\">\r\n              <ag-grid-angular #overlayGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\r\n                [gridOptions]=\"overlayGridOptions\" (cellClicked)=\"onCellClickedRowEdit($event)\"\r\n                (mousedown)=\"onMouseDown($event)\" (sortChanged)=\"onSortChanged()\"\r\n                (cellValueChanged)=\"onEditComplete($event)\" (columnResized)=\"onColumnResized($event.column, true)\">\r\n              </ag-grid-angular>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </ng-template>\r\n\r\n      <!-- table edit component-->\r\n      <ng-template yvcSplitArea [size]=\"layoutSettings.areas[1].size\" [visible]=\"!!editingRow\">\r\n        <div class=\"edit-body\">\r\n          <eo-row-edit [row]=\"editingRow\" [limitReached]=\"limit <= overlayGridOptions?.rowData?.length\" #rowEdit\r\n            (onSave)=\"updateRow($event)\" (onSaveCopy)=\"copyRow($event)\" (onDelete)=\"deleteRow($event)\"\r\n            (onCancel)=\"cancelRowEdit()\"></eo-row-edit>\r\n        </div>\r\n      </ng-template>\r\n\r\n      <!-- viewer-->\r\n      <ng-template yvcSplitArea [size]=\"layoutSettings.areas[2].size\" [visible]=\"showPreview && hasPreviewFile\">\r\n        <eo-media *ngIf=\"hasPreviewFile\" [undockDisabled]=\"true\"\r\n          [useVersion]=\"params.object?.id === params.object?.content?.id\" [dmsObject]=\"params.object\"></eo-media>\r\n      </ng-template>\r\n    </yvc-split-view>\r\n  </div>\r\n</eo-dialog>\r\n\r\n<eo-dialog [title]=\"('eo.form.table.csv.import.report.title' | translate)\" [visible]=\"showImportReportDialog\"\r\n  (hide)=\"cancelImportReport()\" [styleClass]=\"'import-report__dialog'\">\r\n  <div class=\"body\">\r\n    <h4 translate [translateParams]=\"{readRows: mappedRows.length}\">eo.form.table.csv.import.report.readRows</h4>\r\n    <div *ngIf=\"mappingErrorFields.length !== 0\" class=\"flex-col\">\r\n      <h4 translate>eo.form.table.csv.import.report.errors</h4>\r\n      <table>\r\n        <thead>\r\n          <tr>\r\n            <th translate>eo.form.table.csv.import.report.errors.row</th>\r\n            <th translate>eo.form.table.csv.import.report.errors.csvColumn</th>\r\n            <th translate>eo.form.table.csv.import.report.errors.tableColumn</th>\r\n            <th translate>eo.form.table.csv.import.report.errors.value</th>\r\n          </tr>\r\n        </thead>\r\n        <tbody>\r\n          <ng-container *ngFor=\"let error of mappingErrorFields; let i = index\">\r\n            <tr>\r\n              <td>{{error.row + 1}}</td>\r\n              <td>{{error.uploadedName}}</td>\r\n              <td>{{error.technicalName}}</td>\r\n              <td>{{error.value}}</td>\r\n            </tr>\r\n          </ng-container>\r\n        </tbody>\r\n      </table>\r\n    </div>\r\n  </div>\r\n  <div class=\"actions\">\r\n    <button (click)=\"cancelImportReport()\" class=\"button-cancel\" translate>eo.cta.button.cancel</button>\r\n    <button (click)=\"addImportValuesToTable()\" class=\"primary\" translate>eo.form.table.csv.import.report.import</button>\r\n  </div>\r\n</eo-dialog>\r\n","import {Component, Input, ViewEncapsulation, inject} from '@angular/core';\r\nimport {EoFormGroupWrapper, ObjectFormControlWrapper} from '../object-form-control-wrapper';\r\nimport {EoFormGroup, ObjectFormGroup} from '../object-form-group.model';\r\nimport {ObjectFormHelperService} from '../../object-form-helper.service';\r\n\r\n@Component({\r\n  selector: 'eo-form-group',\r\n  templateUrl: './object-form-group.component.html',\r\n  styleUrls: ['./object-form-group.component.scss'],\r\n  // changeDetection: ChangeDetectionStrategy.OnPush,\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ObjectFormGroupComponent {\r\n\r\n  private formHelperService = inject(ObjectFormHelperService);\r\n\r\n  private types = {\r\n    STACK: 'stack',\r\n    GROUP: 'group',\r\n    FIELDSET: 'fieldset'\r\n  };\r\n\r\n  group: ObjectFormGroup;\r\n  groupType: string;\r\n  isCore: boolean;\r\n  isData: boolean;\r\n  layoutSettingsID?: string;\r\n\r\n  // form situation, if not set default will be 'EDIT'\r\n  @Input() situation = 'EDIT';\r\n  @Input() skipToggle: boolean;\r\n\r\n  @Input('group')\r\n  set groupd(g: ObjectFormGroup) {\r\n    if (g) {\r\n      this.group = g;\r\n      this.isCore = this.group._eoFormGroup && this.group._eoFormGroup.label === 'core';\r\n      this.isData = this.group._eoFormGroup && this.group._eoFormGroup.label === 'data';\r\n      this.groupType = this.getGroupType();\r\n    } else {\r\n      this.group = null;\r\n    }\r\n  }\r\n\r\n  @Input() noGroupLabels: boolean;\r\n\r\n  getObjectFormGroup(control): EoFormGroup {\r\n    return (control as ObjectFormGroup)._eoFormGroup;\r\n  }\r\n\r\n  getObjectFormControlWrapper(control): EoFormGroupWrapper {\r\n    return (control as ObjectFormControlWrapper)._eoFormControlWrapper;\r\n  }\r\n\r\n\r\n  private getGroupType() {\r\n    // may as well be an ObjectFormControlWrapper so check first\r\n    // if we got a real group\r\n    if (this.group._eoFormGroup) {\r\n      if (this.group._eoFormGroup.type === 'o2mGroupStack') {\r\n\r\n        // Group stacks are able to preserve their state. \r\n        // They are rendered as tabs and should remember the selected tab, so we'll set an \r\n        // ID and register them for cleanup\r\n        this.layoutSettingsID = 'eo.form.stack.' + this.group._eoFormGroup.id;\r\n        this.formHelperService.addTemporaryStorageEntry(this.layoutSettingsID);\r\n\r\n        // for data section only render as stack (tabs) if we have more than one child\r\n        if (this.isData && Object.keys(this.group.controls).length === 1) {\r\n          return this.types.GROUP;\r\n        }\r\n        return this.types.STACK;\r\n      }\r\n      if (this.group._eoFormGroup.type === 'o2mGroup') {\r\n        return (this.group._eoFormGroup.label && !(this.isCore || this.isData) && !this.noGroupLabels && !this.parentIsStack(this.group)) ? this.types.FIELDSET : this.types.GROUP;\r\n      }\r\n      return this.types.GROUP;\r\n    }\r\n  }\r\n\r\n  private parentIsStack(group: ObjectFormGroup): boolean {\r\n    let parentFormElement = group.parent['_eoFormGroup'];\r\n    return parentFormElement && parentFormElement.type === 'o2mGroupStack';\r\n  }\r\n}\r\n","<div *ngIf=\"group\" [ngSwitch]=\"groupType\"\r\n  class=\"form-element {{group._eoFormGroup ? group._eoFormGroup.type : 'o2mControlWrap'}} align-{{(group._eoFormGroup && group._eoFormGroup.layout) ? group._eoFormGroup.layout.align : ''}}\"\r\n  [formGroup]=\"group\">\r\n\r\n  <!-- group stacks (tabs) -->\r\n  <yvc-tabs *ngSwitchCase=\"'stack'\" [layoutSettingsID]=\"layoutSettingsID\">\r\n    <ng-template *ngFor=\"let key of group.controls | keys; index as i;\" [yvcTab]=\"{id: 't' + i, \r\n    headerStyleClass: 'dirty-' + group.controls[key].dirty + ' invalid-' + group.controls[key].invalid,\r\n    label: getObjectFormGroup(group.controls[key]).label}\">\r\n      <div class=\"stack\" [ngClass]=\"{stackBase: group._eoFormGroup.label === 'data'}\">\r\n\r\n        <eo-form-element [element]=\"group.controls[key]\"\r\n          *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else stkgroup\" [situation]=\"situation\"\r\n          [skipToggle]=\"skipToggle\">\r\n          <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\r\n            let-formElementRef=\"formElementRef\">\r\n            <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\r\n          </ng-template>\r\n        </eo-form-element>\r\n        <ng-template #stkgroup>\r\n          <eo-form-group [group]=\"group.controls[key]\" [noGroupLabels]=\"true\" [situation]=\"situation\"\r\n            [skipToggle]=\"skipToggle\"></eo-form-group>\r\n        </ng-template>\r\n      </div>\r\n    </ng-template>\r\n  </yvc-tabs>\r\n\r\n  <!-- group with legend -->\r\n  <div *ngSwitchCase=\"'fieldset'\" class=\"om-group fieldset\">\r\n    <div class=\"legend\"><span>{{group._eoFormGroup.label}}</span></div>\r\n\r\n    <div>\r\n      <ng-container *ngFor=\"let key of group.controls | keys\">\r\n        <eo-form-element [element]=\"group.controls[key]\"\r\n          *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else fsgroup\" [situation]=\"situation\"\r\n          [skipToggle]=\"skipToggle\">\r\n          <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\r\n            let-formElementRef=\"formElementRef\">\r\n            <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\r\n          </ng-template>\r\n        </eo-form-element>\r\n        <ng-template #fsgroup>\r\n          <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\"\r\n            [skipToggle]=\"skipToggle\"></eo-form-group>\r\n        </ng-template>\r\n      </ng-container>\r\n    </div>\r\n  </div>\r\n\r\n  <!-- group -->\r\n  <ng-container class=\"om-group\" *ngSwitchCase=\"'group'\">\r\n    <ng-container *ngFor=\"let key of group.controls | keys\">\r\n\r\n      <eo-form-element [element]=\"group.controls[key]\"\r\n        *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else omgroup\" [situation]=\"situation\"\r\n        [skipToggle]=\"skipToggle\">\r\n\r\n        <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\r\n          let-formElementRef=\"formElementRef\">\r\n          <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\r\n        </ng-template>\r\n\r\n      </eo-form-element>\r\n      <ng-template #omgroup>\r\n        <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\" [skipToggle]=\"skipToggle\"></eo-form-group>\r\n      </ng-template>\r\n    </ng-container>\r\n  </ng-container>\r\n\r\n</div>\r\n\r\n\r\n<ng-template #tplFormElementTable let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n  <div class=\"table\">\r\n    <eo-table [params]=\"{\r\nsituation: element._eoFormControlWrapper.situation,\r\nelement: formElementRef._eoFormElement,\r\nsize: formElementRef._eoFormElement.size,\r\nobject: formElementRef._eoFormElement.object\r\n}\" [formControl]=\"element.get(element._eoFormControlWrapper.controlName)\"></eo-table>\r\n  </div>\r\n</ng-template>","import {\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  Output,\r\n} from '@angular/core';\r\nimport {Logger, Utils} from '@eo-sdk/core';\r\nimport {cloneDeep} from 'lodash-es';\r\nimport {Subscription} from 'rxjs';\r\nimport {debounceTime} from 'rxjs/operators';\r\n\r\nimport {FormStatusChangedEvent} from '../form-status-changed-event.interface';\r\nimport {FormGenResult, ObjectFormHelperService} from '../object-form-helper.service';\r\nimport {ObjectFormOptions} from '../object-form-options.interface';\r\nimport {ObjectFormScriptService} from './object-form-script/object-form-script.service';\r\nimport {ObjectFormScriptingScope} from './object-form-script/object-form-scripting-scope';\r\n\r\n\r\n@Component({\r\n  selector: 'eo-object-form',\r\n  templateUrl: './object-form.component.html',\r\n  styleUrls: ['./object-form.component.scss'],\r\n  // define 'child only' services for the form without setting it up on the module\r\n  // which would cause them to be propagated to the whole application\r\n  providers: [ObjectFormScriptService],\r\n})\r\nexport class ObjectFormComponent implements OnDestroy, AfterViewInit {\r\n\r\n  @Input() isInnerTableForm: boolean;\r\n  // triggered when the forms state has been changed\r\n  @Output() statusChanged = new EventEmitter<FormStatusChangedEvent>();\r\n  // handler to be executed after the form has been set up\r\n  @Output() onFormReady = new EventEmitter();\r\n\r\n  public formOptions: ObjectFormOptions;\r\n  public defaultFormOptions: ObjectFormOptions;\r\n  // the actual form instance\r\n  public form;\r\n  // property for holding the forms data used for comparison when a form-changed-event\r\n  // is fetched to indicate wher or not the indexdata were changed or just the properties\r\n  // of the form elements (eg. form script setting fields to readonly)\r\n  private formData: any;\r\n  private scriptingScope: ObjectFormScriptingScope;\r\n  private subscriptions: Subscription[] = [];\r\n\r\n  @Input('formOptions')\r\n  set options(formOptions: ObjectFormOptions) {\r\n    this.defaultFormOptions = formOptions;\r\n    this.formOptions = cloneDeep(formOptions);\r\n    this.init();\r\n  }\r\n\r\n  constructor(private logger: Logger,\r\n    private elementRef: ElementRef,\r\n    private formScriptService: ObjectFormScriptService,\r\n    private formHelperService: ObjectFormHelperService,\r\n    private cdRef: ChangeDetectorRef) {\r\n  }\r\n\r\n  // initialize the form based on the provided form options\r\n  private init() {\r\n    this.form = null;\r\n    setTimeout(() => {\r\n      this.unsubscribeAll();\r\n      this.buildReactiveForm(this.formOptions || {});\r\n    }, 0);\r\n  }\r\n\r\n  private initOptions() {\r\n    this.options = this.defaultFormOptions;\r\n  }\r\n\r\n  public focusForm() {\r\n    this.elementRef.nativeElement.querySelector('input')?.focus();\r\n  }\r\n\r\n  public setFormData(data) {\r\n    this.formOptions.data = data;\r\n    setTimeout(() => {\r\n      this.init();\r\n    }, 0);\r\n  }\r\n\r\n  /**\r\n   * Extracts the values from the form model. Each form value is represented by one\r\n   * property on the result object holding the fields value. The keys (properties) are the `name`\r\n   * properties of the form element (in SEARCH situation the `qname` field is used).\r\n   *\r\n   * How values are extracted is influenced by the forms situation.\r\n   *\r\n   * @return object of key value pairs\r\n   */\r\n  public getFormData() {\r\n    return this.formToData();\r\n  }\r\n\r\n  public setFormPristine() {\r\n    this.form.markAsPristine();\r\n  }\r\n\r\n  // reset the form to its initial state\r\n  public resetForm() {\r\n    this.initOptions();\r\n    this.emitFormChangedEvent();\r\n  }\r\n\r\n  /**\r\n   * Returns the observed model that was passed to the current form script running. If there is\r\n   * no form script, this method will return NULL.\r\n   * @returns\r\n   */\r\n  public getObservedScriptModel() {\r\n    return this.scriptingScope ? this.scriptingScope.getModel() : null;\r\n  }\r\n\r\n  // Create a reactive form from the enaio form model\r\n  private buildReactiveForm(formOptions) {\r\n    const formGenRes: FormGenResult = this.formHelperService.buildReactiveForm(\r\n      formOptions, this.formScriptService, this.isInnerTableForm\r\n    );\r\n    this.form = formGenRes.form;\r\n    this.scriptingScope = formGenRes.scriptingScope;\r\n    this.subscriptions = formGenRes.controlValueSubscriptions;\r\n\r\n    setTimeout(() => {\r\n      if (!this.form) return;\r\n      let formWatch = this.form.valueChanges.pipe(debounceTime(500))\r\n        .subscribe(() => !formWatch.closed && this.emitFormChangedEvent());\r\n      this.subscriptions.push(formWatch);\r\n      this.onFormReady.emit();\r\n      this.emitFormChangedEvent(false);\r\n    }, 300);\r\n  }\r\n\r\n  private emitFormChangedEvent(compare = true) {\r\n    // check if indexdata has been changed\r\n    let currentFormData = this.getFormData();\r\n    let idxChange = compare ? JSON.stringify(this.formData) !== JSON.stringify(currentFormData) : false;\r\n\r\n    this.formData = Utils.formDataParse(Utils.formDataStringify(currentFormData));\r\n    if (this.form) {\r\n      this.statusChanged.emit({\r\n        invalid: this.form.invalid,\r\n        dirty: this.form.dirty,\r\n        data: this.formData,\r\n        indexdataChanged: idxChange\r\n      });\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Extract the values from the form\r\n   */\r\n  private formToData() {\r\n\r\n    return this.formHelperService.extractFormData(\r\n      this.form,\r\n      this.formOptions.formModel.situation,\r\n      this.formOptions.data,\r\n      this.isInnerTableForm\r\n    );\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.unsubscribeAll();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.cdRef.detectChanges();\r\n  }\r\n\r\n  // unsubscribe from all value change listeners for the current form\r\n  // to avoid memory leaks. This method will also be called every time\r\n  // a new form is rendered to get rid of the old form element subscriptions\r\n  private unsubscribeAll() {\r\n    if (this.subscriptions.length) {\r\n      this.logger.debug('unsubscribed from ' + this.subscriptions.length + ' value change listeners.');\r\n      this.subscriptions.forEach(s => s.unsubscribe());\r\n      this.subscriptions = [];\r\n    }\r\n  }\r\n}\r\n","<div class=\"eo-object-form\" *ngIf=\"form && formOptions\" [formGroup]=\"form\" eoRtlAware>\r\n  <div class=\"form-element-wrap core\">\r\n    <eo-form-group [group]=\"form.get('core')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\r\n  </div>\r\n  <div class=\"form-element-wrap data\">\r\n    <eo-form-group [group]=\"form.get('data')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\r\n  </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n","import {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'eo-cta',\r\n  templateUrl: './cta.component.html',\r\n  styleUrls: ['./cta.component.scss']\r\n})\r\nexport class CtaComponent {\r\n\r\n  @Input() active = false;\r\n}\r\n","<section class=\"cta\" [ngClass]=\"{active: active}\">\r\n  <ng-content></ng-content>\r\n</section>\r\n","import {Component, Input, ViewChild, EventEmitter} from '@angular/core';\r\nimport {Utils, BpmService, NotificationsService, ExecutableProcess, DmsObject, TranslateService} from '@eo-sdk/core';\r\nimport {ObjectFormComponent} from '../../../../object-form/object-form/object-form.component';\r\nimport {EoDialogComponent} from '../../../../ui/eo-dialog/eo-dialog.component';\r\nimport {ActionComponent} from '../../../interfaces/action-component.interface';\r\nimport {PendingChangesService} from '../../../../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {ObjectFormOptions} from '../../../../object-form';\r\n\r\n@Component({\r\n  selector: 'eo-workflow',\r\n  templateUrl: './workflow.component.html',\r\n  styleUrls: ['./workflow.component.scss']\r\n})\r\nexport class WorkflowComponent implements ActionComponent {\r\n  selection: any[];\r\n  finished: EventEmitter<any> = new EventEmitter();\r\n  canceled: EventEmitter<any> = new EventEmitter();\r\n  processingRequest = false;\r\n  headerTitle: string;\r\n  headerDescription: string;\r\n  selected: any;\r\n  // workItem: any;\r\n  formOptions: ObjectFormOptions;\r\n  contents: {id: string, type: string}[];\r\n\r\n  // ID set by pendingChanges service when editing indexdata\r\n  // Used to finish the pending task when editing is done\r\n  pendingTaskIds: string[] = [];\r\n  private _executableProcess: ExecutableProcess;\r\n\r\n  @ViewChild('dialog') dialog: EoDialogComponent;\r\n  @ViewChild('bpmForm') bpmForm: ObjectFormComponent;\r\n\r\n  @Input()\r\n  set executableProcess(process: ExecutableProcess) {\r\n    this._executableProcess = process;\r\n    if (process) {\r\n\r\n      this.headerTitle = process.title;\r\n      this.headerDescription = process.description;\r\n\r\n      process.form.situation = 'CREATE';\r\n      this.formOptions = {\r\n        formModel: process.form,\r\n        data: process.data,\r\n        actions: process.actions,\r\n        objects: this.selection.filter(s => (s instanceof DmsObject))\r\n      };\r\n      this.contents = this.formOptions.objects.map(obj => ({id: obj.id, type: obj.typeName}));\r\n    }\r\n  }\r\n\r\n  get executableProcess() {\r\n    return this._executableProcess;\r\n  }\r\n\r\n  formData: any;\r\n  form: any;\r\n\r\n  constructor(private bpmService: BpmService,\r\n    private pendingChanges: PendingChangesService,\r\n    private translate: TranslateService,\r\n    private toaster: NotificationsService) {\r\n  }\r\n\r\n  private startPending() {\r\n    // because this method will be called every time the form status changes,\r\n    // pending task will only be started once until it was finished\r\n    if (!this.pendingChanges.hasPendingTask(this.pendingTaskIds[0] || ' ')) {\r\n      this.pendingTaskIds = [this.pendingChanges.startTask()];\r\n    }\r\n  }\r\n\r\n  private finishPending() {\r\n    this.pendingChanges.finishTask(this.pendingTaskIds[0]);\r\n  }\r\n\r\n  saveForm() {\r\n    this.processingRequest = true;\r\n    setTimeout(() => {\r\n      if (this.form && !this.form.invalid) {\r\n        this.formData = this.bpmForm.getFormData();\r\n        this.bpmService\r\n          .startProcess(this._executableProcess.id, this.formData, this.contents)\r\n          .subscribe(() => {\r\n            this.processingRequest = false;\r\n            this.toaster.success(this.translate.instant('eo.process.started', {processName: this._executableProcess.title}));\r\n            this.finish();\r\n          }, Utils.throw(error => {\r\n            this.toaster.error(error);\r\n            this.processingRequest = false;\r\n          }));\r\n      }\r\n    }, 500);\r\n  }\r\n\r\n  finish() {\r\n    this.finishPending();\r\n    this.dialog.visible = false;\r\n    this.finished.emit();\r\n  }\r\n\r\n  cancel() {\r\n    if (!this.pendingChanges.checkForPendingTasks(this.pendingTaskIds)) {\r\n      this.finishPending();\r\n      this.dialog.visible = false;\r\n      this.canceled.emit();\r\n    }\r\n  }\r\n\r\n  onIndexDataChanged(event) {\r\n    this.form = event;\r\n    this.formData = event.data;\r\n    if (this.form.dirty) {\r\n      this.startPending();\r\n    } else {\r\n      this.finishPending();\r\n    }\r\n  }\r\n}\r\n","<eo-dialog [title]=\"headerTitle\"\r\n           [subtitle]=\"headerDescription\"\r\n           [visible]=\"true\"\r\n           [dirtyCheck]=\"pendingTaskIds\"\r\n           [minWidth]=\"1000\"\r\n           [styleClass]=\"'process-form-dialog'\" #dialog>\r\n\r\n  <section class=\"process-form form-container\">\r\n    <div class=\"form\">\r\n      <eo-object-form [formOptions]=\"formOptions\" #bpmForm\r\n                      (statusChanged)=\"onIndexDataChanged($event)\">\r\n      </eo-object-form>\r\n    </div>\r\n\r\n    <div class=\"actions\">\r\n      <div *ngIf=\"form?.invalid\" class=\"invalid\" translate>eo.object.indexdata.form.invalid</div>\r\n      <eo-cta [active]=\"true\" class=\"cta-wrapper\">\r\n        <button *ngIf=\"form?.dirty\" (click)=\"bpmForm.resetForm()\" class=\"button-reset\" translate>eo.object.indexdata.reset</button>\r\n        <button (click)=\"cancel()\" class=\"button-cancel\" translate>eo.cta.button.cancel</button>\r\n        <button (click)=\"saveForm()\" [disabled]=\"form?.invalid || processingRequest\" class=\"primary\" translate>eo.executable.processes.execute</button>\r\n      </eo-cta>\r\n    </div>\r\n\r\n  </section>\r\n</eo-dialog>\r\n","import {WorkItem, InboxItem, DmsObject, PreparedItem, Process, StoredQuery} from '@eo-sdk/core';\r\n\r\nexport const ActionTarget = {\r\n  DMS_OBJECT: DmsObject,\r\n  INBOX_ITEM: InboxItem,\r\n  PROCESS_ITEM: Process,\r\n  PREPARED_ITEM: PreparedItem,\r\n  WORK_ITEM: WorkItem,\r\n  STORED_QUERY: StoredQuery\r\n};\r\n\r\nexport class DmsObjectTarget {\r\n  static target = ActionTarget.DMS_OBJECT;\r\n}\r\n\r\nexport class InboxItemTarget {\r\n  static target = ActionTarget.INBOX_ITEM;\r\n}\r\n\r\nexport class ProcessItemTarget {\r\n  static target = ActionTarget.PROCESS_ITEM;\r\n}\r\n\r\nexport class PreparedItemTarget {\r\n  static target = ActionTarget.PREPARED_ITEM;\r\n}\r\n\r\nexport class WorkItemTarget {\r\n  static target = ActionTarget.WORK_ITEM;\r\n}\r\n\r\nexport class StoredQueryTarget {\r\n  static target = ActionTarget.STORED_QUERY;\r\n}\r\n","import {of as observableOf, Observable} from 'rxjs';\r\nimport {Component, Input} from '@angular/core';\r\nimport {WorkflowComponent} from './workflow/workflow.component';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {DmsObject, ExecutableProcess} from '@eo-sdk/core';\r\nimport {ExternalProcessComponentAction} from '../../interfaces/action.interface';\r\n\r\n\r\n@Component({\r\n  selector: 'eo-workflow-action',\r\n  template: ''\r\n})\r\nexport class WorkflowActionComponent extends DmsObjectTarget implements ExternalProcessComponentAction {\r\n\r\n  label: string;\r\n  description: string;\r\n  priority = 9999;\r\n  iconSrc = 'assets/_default/svg/ic_bpm.svg';\r\n  iconId: string;\r\n  group = 'further';\r\n  range = SelectionRange.MULTI_SELECT;\r\n  extComponents = WorkflowComponent;\r\n  _executableProcess: ExecutableProcess;\r\n\r\n  @Input()\r\n  set executableProcess(executableProcess: ExecutableProcess) {\r\n    this._executableProcess = executableProcess;\r\n    this.label = executableProcess.title;\r\n    this.description = executableProcess.description;\r\n    this.iconId = executableProcess.iconid;\r\n  }\r\n\r\n  get executableProcess() {\r\n    return this._executableProcess;\r\n  }\r\n\r\n  constructor() {\r\n    super();\r\n  }\r\n\r\n  isExecutable(element: DmsObject): Observable<boolean> {\r\n    return observableOf(this.isAllowedType(element));\r\n  }\r\n\r\n  isAllowedType(item: DmsObject): boolean {\r\n    const disabledType = ['sysemail'];\r\n    const {typeName} = item;\r\n    return !disabledType.some(type => typeName === type);\r\n  }\r\n}\r\n","\r\nimport {of, from, Observable} from 'rxjs';\r\nimport {Component, Input} from '@angular/core';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {SimpleCustomAction} from '../../interfaces/action.interface';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {PluginsService} from '../../../../eo-framework-core/api/plugins.service';\r\nimport {NotificationsService} from '@eo-sdk/core';\r\nimport moment from 'moment';\r\nimport {UtilitiesService} from '../../../util/services/utilities.service';\r\n\r\n\r\n@Component({\r\n  selector: 'eo-custom-actions',\r\n  template: ''\r\n})\r\nexport class CustomActionsComponent extends DmsObjectTarget implements SimpleCustomAction {\r\n\r\n  label: string;\r\n  description: string;\r\n\r\n  priority = 9998;\r\n  iconSrc = 'assets/_default/svg/ic_play.svg';\r\n  group = 'further';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n  private _action: any;\r\n\r\n  @Input()\r\n  set action(act) {\r\n    this._action = act;\r\n    this.label = act.title;\r\n    this.description = act.description;\r\n    this.range = 1;\r\n  }\r\n\r\n  get action() {\r\n    return this._action;\r\n  }\r\n\r\n  constructor(private toast: NotificationsService,\r\n              private pluginService: PluginsService,\r\n              private translate: TranslateService) {\r\n    super();\r\n  }\r\n\r\n  isExecutable(objects) {\r\n    return from(new Promise((resolve, reject) => {\r\n      if (this._action.isexecutable && this._action.isexecutable.length > 0) {\r\n        const scope = {\r\n          action: this._action,\r\n          api: this.pluginService.getApi(),\r\n          objects\r\n        };\r\n        const executableFkt = new Function('scope, callback', this._action.isexecutable + '\\n;//# sourceURL=' + this._action.id + '.isexecutable.js');\r\n        try {\r\n          executableFkt(scope, (isExecutable) => resolve(isExecutable));\r\n        } catch (error) {\r\n          this.toast.error(`${this.translate.instant('eo.action.menu.custom.error.message') }: ${error}`);\r\n          return resolve(false);\r\n        }\r\n      } else {\r\n        return resolve(true);\r\n      }\r\n    }).then((val) => !!val));\r\n  }\r\n\r\n  run(selection) {\r\n    const action = this._action;\r\n    this.runCustomActions(action, selection)\r\n      .subscribe(isExecutable => {\r\n        const text = isExecutable ? 'eo.action.menu.custom.run.success' : 'eo.action.menu.custom.run.error';\r\n        this.translate.get(text, {title: action.title}).subscribe(val => this.toast.info(val));\r\n      });\r\n  }\r\n\r\n  runCustomActions(action, objects = []): Observable<boolean> {\r\n    const scope = {\r\n      api: this.pluginService.getApi(),\r\n      action,\r\n      objects\r\n    };\r\n    try {\r\n      const run = new Function('scope', '_', 'moment', action.script + '\\n;//# sourceURL=' + action.id + '.script.js');\r\n      run(scope, UtilitiesService.lodash, moment);\r\n      return of(true);\r\n    } catch (error) {\r\n      this.toast.error(this.translate.instant('eo.action.menu.custom.error.message'));\r\n      return of(false);\r\n    }\r\n  }\r\n}\r\n","import {of as observableOf, Observable} from 'rxjs';\r\nimport {Component, Input} from '@angular/core';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {\r\n  ExecutableProcess,\r\n  TranslateService,\r\n  DmsObject,\r\n  NotificationsService,\r\n  BpmService,\r\n  Utils\r\n} from '@eo-sdk/core';\r\nimport {SimpleProcessAction} from '../../interfaces/action.interface';\r\n\r\n\r\n@Component({\r\n  selector: 'eo-simple-workflow-actions',\r\n  template: ''\r\n})\r\nexport class SimpleWorkflowActionComponent extends DmsObjectTarget implements SimpleProcessAction {\r\n\r\n  label: string;\r\n  description: string;\r\n\r\n  priority = 0;\r\n  iconSrc = 'assets/_default/svg/ic_bpm.svg';\r\n  group = 'further';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n  _executableProcess: ExecutableProcess;\r\n\r\n  @Input()\r\n  set executableProcess(executableProcess: ExecutableProcess) {\r\n    this._executableProcess = executableProcess;\r\n    this.label = executableProcess.title;\r\n    this.description = executableProcess.description;\r\n    this.range = 1;\r\n  }\r\n\r\n  get action() {\r\n    return this._executableProcess;\r\n  }\r\n\r\n  constructor(private toast: NotificationsService,\r\n              private translate: TranslateService,\r\n              private bpmService: BpmService) {\r\n    super();\r\n  }\r\n\r\n  isExecutable(element: DmsObject): Observable<boolean> {\r\n    return observableOf(this.isAllowedType(element));\r\n  }\r\n\r\n  isAllowedType(item: DmsObject): boolean {\r\n    const disabledType = ['sysemail'];\r\n    const {typeName} = item;\r\n    return !disabledType.some(type => typeName === type);\r\n  }\r\n\r\n  run(items: DmsObject[]): void {\r\n    const contents = items.map(i => {\r\n      return {\r\n        id: i.id,\r\n        type: i.typeName\r\n      }\r\n    });\r\n\r\n    this.bpmService\r\n      .startProcess(this._executableProcess.id, {}, contents)\r\n      .subscribe((res) => {\r\n        this.toast.success(this._executableProcess.title);\r\n      }, Utils.throw(() => {\r\n      }));\r\n  }\r\n}\r\n","import {forkJoin as observableForkJoin, of as observableOf, Observable, ReplaySubject} from 'rxjs';\r\nimport {switchMap, catchError, map} from 'rxjs/operators';\r\nimport {\r\n  ComponentFactoryResolver,\r\n  Inject,\r\n  Injectable,\r\n  InjectionToken,\r\n  ViewContainerRef\r\n} from '@angular/core';\r\nimport {Action} from '../interfaces/action.interface';\r\nimport {SelectionRange} from '../selection-range.enum';\r\nimport {Router} from '@angular/router';\r\nimport {ActionListEntry} from '../interfaces/action-list-entry';\r\nimport {WorkflowActionComponent} from '../actions/workflow-action/workflow-action.component';\r\nimport {CustomActionsComponent} from '../actions/custom-actions/custom-actions.component';\r\nimport {SimpleWorkflowActionComponent} from '../actions/workflow-action/simple-workflow-action.component';\r\nimport {BpmService, ExecutableProcess, DmsObject, CapabilitiesService, BackendService, CustomAction, Utils} from '@eo-sdk/core';\r\nimport {WorkflowComponent} from '../actions/workflow-action/workflow/workflow.component';\r\n\r\nexport const ACTIONS = new InjectionToken<any[]>('ACTIONS');\r\nexport const CUSTOM_ACTIONS = new InjectionToken<any[]>('CUSTOM_ACTIONS');\r\n\r\n// command broadcasted to listening components\r\nexport interface ActionShowCommand {\r\n  show: boolean;\r\n  target?: string;\r\n  selection: any[];\r\n}\r\n\r\n@Injectable()\r\nexport class ActionService {\r\n\r\n  private allActionComponents: any[] = [];\r\n  private workflowActionClass;\r\n  private customActionClass;\r\n  private simpleWorkflowActionClass;\r\n\r\n  private actionsShowingSource = new ReplaySubject<ActionShowCommand>(1);\r\n  public actionsShowing$: Observable<ActionShowCommand> = this.actionsShowingSource.asObservable();\r\n\r\n  constructor(@Inject(ACTIONS) actions: any[] = [],\r\n              @Inject(CUSTOM_ACTIONS) custom_actions: any[] = [],\r\n              private _componentFactoryResolver: ComponentFactoryResolver,\r\n              private bpmService: BpmService,\r\n              private backend: BackendService,\r\n              private router: Router,\r\n              private capabilitiesService: CapabilitiesService) {\r\n\r\n    this.allActionComponents = actions.concat(custom_actions)\r\n      .filter(entry => entry.target && !entry.isSubAction && !entry.disabled);\r\n\r\n    this.workflowActionClass = WorkflowActionComponent;\r\n    this.customActionClass = CustomActionsComponent;\r\n    this.simpleWorkflowActionClass = SimpleWorkflowActionComponent;\r\n  }\r\n\r\n  getActionsList(selection: any[], viewContainerRef: ViewContainerRef): Observable<ActionListEntry[]> {\r\n\r\n    // todo: find better solution to exclude components for actions that need to be initialized later\r\n    return this.getExecutableActionsListFromGivenActions(\r\n      this.allActionComponents.filter(ac => ac !== WorkflowComponent && ac !== SimpleWorkflowActionComponent && ac !== CustomActionsComponent && ac !== WorkflowActionComponent),\r\n      selection,\r\n      viewContainerRef\r\n    );\r\n  }\r\n\r\n  getMoreActions(selection: any[], viewContainerRef?): Observable<ActionListEntry[]> {\r\n    if (!this.isAllowedType(selection, ['sysemail'])) {\r\n      return observableOf([]);\r\n    }\r\n    return observableForkJoin([\r\n      this.collectProcessActions(selection, viewContainerRef),\r\n      this.collectCustomActions(selection, viewContainerRef)\r\n    ]).pipe(map(res => [...res[0], ...res[1]]));\r\n  }\r\n\r\n  collectProcessActions(selection: any[], viewContainerRef): Observable<ActionListEntry[]> {\r\n    const enableWorkflow = this.capabilitiesService.hasCapability('bpm');\r\n\r\n    if (this.router.url.startsWith('/versions')) {\r\n      return observableOf([]);\r\n    }\r\n\r\n    return enableWorkflow ? this.bpmService.getExecutableProcessesForDmsObjects(selection)\r\n      .pipe(\r\n        map((res: ExecutableProcess[]) => {\r\n          const all = [];\r\n          res.forEach((executableProcess: ExecutableProcess) => {\r\n\r\n            let actionComponent = this.simpleWorkflowActionClass;\r\n            if (executableProcess.form) {\r\n              actionComponent = this.workflowActionClass;\r\n            }\r\n            const actionListEntry = this.createExecutableActionListEntry(actionComponent, selection, viewContainerRef);\r\n            actionListEntry.action['executableProcess'] = executableProcess;\r\n            all.push(actionListEntry);\r\n          });\r\n\r\n          return all;\r\n        }),\r\n        catchError(e => {\r\n          return observableOf([]);\r\n        })\r\n      ) : observableOf([]);\r\n  }\r\n\r\n  collectCustomActions(selection: any[], viewContainerRef): Observable<ActionListEntry[]> {\r\n\r\n    const types = selection.map(i => i.typeName);\r\n    return this.getCustomActions(types).pipe(map(customActions => {\r\n      return customActions.length ?\r\n        customActions.map(customAction => {\r\n          const actionsRef: ViewContainerRef = this.customActionClass;\r\n          const actionListEntry = this.createExecutableActionListEntry(actionsRef, selection, viewContainerRef);\r\n          actionListEntry.action['action'] = customAction;\r\n          return actionListEntry;\r\n        }) : [];\r\n    }))\r\n      .pipe(\r\n        switchMap(targetActionsList => {\r\n          const observables = targetActionsList.map((actionListEntry: ActionListEntry) => actionListEntry.action.isExecutable(selection).pipe(\r\n            map(executable => Array.isArray(executable) ? selection.filter((s, i) => executable[i]) : executable ? selection : []),\r\n            map(available => {\r\n              actionListEntry.availableSelection = available;\r\n              return actionListEntry;\r\n            })\r\n          ));\r\n\r\n          return  observables.length ? observableForkJoin(observables).pipe(\r\n            map((actionListEntrys: ActionListEntry[]) => actionListEntrys.filter( a => this.isRangeAllowed(a.action, a.availableSelection.length))),\r\n            catchError(e => {\r\n              console.log(e);\r\n              return observableOf([]);\r\n            })\r\n          ) : observableOf([]);\r\n        }),\r\n        catchError(e => {\r\n          return observableOf([]);\r\n        })\r\n      );\r\n  }\r\n\r\n  private createExecutableActionListEntry(actionComponent: any, selection: any[], viewContainerRef: ViewContainerRef): ActionListEntry {\r\n    const componentFactory = this._componentFactoryResolver.resolveComponentFactory(actionComponent);\r\n    const componentRef = viewContainerRef.createComponent(componentFactory);\r\n    const entry: ActionListEntry = {\r\n      id: componentRef.location.nativeElement.localName,\r\n      action: componentRef.instance as Action,\r\n      target: actionComponent.target,\r\n      availableSelection: selection\r\n    };\r\n    return entry;\r\n  }\r\n\r\n\r\n  getExecutableActionsListFromGivenActions(allActionComponents: any[], selection: any[], viewContainerRef: ViewContainerRef): Observable<ActionListEntry[]> {\r\n    if (selection && selection.length) {\r\n\r\n      const allActionsList: ActionListEntry[] = allActionComponents\r\n        .filter(actionComponent => selection[0] instanceof actionComponent.target)\r\n        .map((actionComponent: any) => this.createExecutableActionListEntry(actionComponent, [], viewContainerRef));\r\n\r\n      const targetActionsList = allActionsList.filter((actionListEntry: any) => selection[0] instanceof actionListEntry.target);\r\n\r\n      const observables = targetActionsList.map((actionListEntry: ActionListEntry) => {\r\n        const obs = selection.map(item => actionListEntry.action.isExecutable(item));\r\n        return observableForkJoin(obs).pipe(\r\n          map(executable => Array.isArray(executable) ? selection.filter((s, i) => executable[i]) : executable ? selection : []),\r\n          map(available => {\r\n            actionListEntry.availableSelection = available;\r\n            return actionListEntry;\r\n          })\r\n        );\r\n      });\r\n\r\n      return observables.length ? observableForkJoin(observables).pipe(\r\n        map((actionListEntrys: ActionListEntry[]) => actionListEntrys.filter( a => this.isRangeAllowed(a.action, a.availableSelection.length))\r\n        .sort(Utils.sortValues('action.priority'))),\r\n        catchError(e => {\r\n          console.log(e);\r\n          return observableOf([]);\r\n        })\r\n      ) : observableOf([]);\r\n    } else {\r\n      return observableOf([]);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Checks if the action is allowed for single ot multiple selection\r\n   * @param action\r\n   * @param itemsCount\r\n   * @returns\r\n   */\r\n  private isRangeAllowed(action, itemsCount) {\r\n    let isRangeAllowed = true;\r\n    switch (action.range) {\r\n      case SelectionRange.SINGLE_SELECT:\r\n        isRangeAllowed = itemsCount === 1;\r\n        break;\r\n      case SelectionRange.MULTI_SELECT:\r\n        isRangeAllowed = itemsCount >= 1;\r\n        break;\r\n      case SelectionRange.MULTI_SELECT_ONLY:\r\n        isRangeAllowed = itemsCount > 1;\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n    return isRangeAllowed;\r\n  }\r\n\r\n\r\n  /**\r\n   * Getter for the Custom Actions\r\n   *\r\n   * @param types List of types to fetch custom actions for\r\n   * @returns List of available custom actions\r\n   */\r\n  getCustomActions(types: string[] = []): Observable<CustomAction[]> {\r\n    return this.backend.get(`/ui/actions?types=${types.join(',')}`)\r\n      .pipe(\r\n        map(res => res as CustomAction[])\r\n      );\r\n  }\r\n\r\n  /**\r\n   * Show global actions panel\r\n   */\r\n  public showActions(selection: any[], target = 'DMS_OBJECT') {\r\n    this.actionsShowingSource.next({show: true, selection, target});\r\n  }\r\n\r\n  /**\r\n   * Hide global actions panel\r\n   */\r\n  public hideActions() {\r\n    this.actionsShowingSource.next({show: false, selection: []});\r\n  }\r\n\r\n  isAllowedType(items: DmsObject[], rejectedType = []): boolean {\r\n    const disabledType = rejectedType;\r\n    return !!items.find(item => !disabledType.some(type => item.typeName === type));\r\n  }\r\n}\r\n","import {Directive, ViewContainerRef} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[eoActionComponentAnchor]'\r\n})\r\nexport class ActionComponentAnchorDirective {\r\n\r\n  constructor(public viewContainerRef: ViewContainerRef) { }\r\n\r\n}\r\n","import {Component, ComponentFactoryResolver, ElementRef, Type, ViewChild, ViewContainerRef, ViewEncapsulation} from '@angular/core';\r\nimport {NavigationStart, Router} from '@angular/router';\r\nimport {Utils} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {filter, take, tap} from 'rxjs/operators';\r\nimport {ActionService, ActionShowCommand} from '../action-service/action.service';\r\nimport {ActionComponent} from '../interfaces/action-component.interface';\r\nimport {ActionListEntry} from '../interfaces/action-list-entry';\r\nimport {ComponentAction, ExternalComponentAction, ExternalProcessComponentAction, ListAction, SimpleAction} from '../interfaces/action.interface';\r\nimport {ActionComponentAnchorDirective} from './action-component-anchor/action-component-anchor.directive';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-action-menu',\r\n  templateUrl: './action-menu.component.html',\r\n  styleUrls: ['./action-menu.component.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ActionMenuComponent {\r\n\r\n  @ViewChild(ActionComponentAnchorDirective) eoActionComponentAnchor: ActionComponentAnchorDirective;\r\n  @ViewChild(ActionComponentAnchorDirective) externalDialog: ActionComponentAnchorDirective;\r\n  actionLists: {\r\n    common: ActionListEntry[],\r\n    further: ActionListEntry[]\r\n  } = {\r\n    common: [], further: []\r\n  };\r\n  subActionsListHeader = '';\r\n  subActionsList: ActionListEntry[];\r\n  selection: any[];\r\n  subSelection: any[];\r\n  target: string;\r\n  showComponent = false;\r\n  actionDescription: string;\r\n  showMenu = false;\r\n  loading = false;\r\n  activeActionIndex = 0;\r\n\r\n  constructor(private actionService: ActionService,\r\n              private router: Router,\r\n              public viewContainerRef: ViewContainerRef,\r\n              private elemRef: ElementRef,\r\n              private componentFactoryResolver: ComponentFactoryResolver) {\r\n\r\n    // subscribe for visibility observable indicating whether to show or hide the actions\r\n    this.actionService\r\n      .actionsShowing$.pipe(\r\n      untilDestroyed(this))\r\n      .subscribe((cmd: ActionShowCommand) => {\r\n        if (!this.showMenu && cmd.show) {\r\n          this.selection = cmd.selection;\r\n          this.target = cmd.target;\r\n          this.showActionMenu();\r\n        } else if (this.showMenu && !cmd.show) {\r\n          this.hideActionMenu();\r\n        }\r\n      });\r\n\r\n    this.router.events\r\n      .pipe(\r\n        untilDestroyed(this),\r\n        filter(evt => evt instanceof NavigationStart),\r\n      )\r\n      .subscribe(() => this.hide());\r\n\r\n  }\r\n\r\n  private getActions() {\r\n    this.actionService\r\n      .getActionsList(this.selection, this.viewContainerRef)\r\n      .subscribe(actionsList => {\r\n        this.actionLists.common = actionsList.filter(actionListEntry => actionListEntry.action.group === 'common');\r\n        this.actionLists.further = actionsList.filter(actionListEntry => actionListEntry.action.group === 'further');\r\n      });\r\n\r\n  }\r\n\r\n  private getMoreActions() {\r\n    this.loading = true;\r\n    this.actionService\r\n      .getMoreActions(this.selection, this.viewContainerRef)\r\n      .subscribe(actionList => {\r\n        this.loading = false;\r\n        this.actionLists.further = this.actionLists.further.concat(actionList).sort(Utils.sortValues('action.label'));\r\n      }, Utils.throw(() => this.loading = false));\r\n  }\r\n\r\n  hide() {\r\n    this.actionService.hideActions();\r\n  }\r\n\r\n  showActionDescription(i, event) {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n    this.actionDescription = i === this.actionDescription ? null : i;\r\n  }\r\n\r\n  catchFocus() {    \r\n    setTimeout(() => {\r\n      this.elemRef.nativeElement.querySelector('[tabindex=\"0\"]').focus();\r\n    },);\r\n  }\r\n\r\n  isArrowUpOrDownPressed(event: KeyboardEvent) {\r\n    const key = event.key;\r\n    let length = this.actionLists.common.length + this.actionLists.further.length - 1;\r\n    if (key === 'ArrowUp' || (event.shiftKey && key === 'Tab') ) {\r\n      this.activeActionIndex = (this.activeActionIndex === 0) ? length : this.activeActionIndex - 1;\r\n    } else if (key === 'ArrowDown' || key === 'Tab') {\r\n      this.activeActionIndex = (this.activeActionIndex === length) ? 0 : this.activeActionIndex + 1;\r\n    } else if (key === 'Enter') {\r\n      let clickedListEntry;\r\n      if (this.activeActionIndex < this.actionLists.common.length) {\r\n        clickedListEntry = this.actionLists.common[this.activeActionIndex];\r\n      } else {\r\n        clickedListEntry = this.actionLists.further[this.activeActionIndex - this.actionLists.common.length];\r\n      }\r\n      this.onClick(clickedListEntry);\r\n    }\r\n  }\r\n\r\n  private showActionMenu() {\r\n    this.activeActionIndex = 0;\r\n    this.getActions();\r\n    if (this.target === 'DMS_OBJECT') {\r\n      this.getMoreActions();\r\n    }\r\n    this.showMenu = true;\r\n    this.catchFocus();\r\n  }\r\n\r\n  private hideActionMenu() {\r\n    this.clear();\r\n    this.showMenu = false;\r\n    this.actionLists = {common: [], further: []};\r\n  }\r\n\r\n  onClick(actionListEntry: ActionListEntry) {\r\n    this.activeActionIndex = 0;\r\n    this.subSelection = actionListEntry.availableSelection;\r\n    // It is possible that actions implement more than one action interface\r\n    // so we should be aware of running an action and then open its sub actions\r\n\r\n    const isSimpleAction = !!actionListEntry.action['run'];\r\n    const isListAction = actionListEntry.action.hasOwnProperty('subActionComponents');\r\n    const isComponentAction = actionListEntry.action.hasOwnProperty('component');\r\n    const isExternalComponentAction = actionListEntry.action.hasOwnProperty('extComponents');\r\n    const isWorkFlowAction = actionListEntry.action['executableProcess'] && isExternalComponentAction;\r\n    const isSimpleActionOnly = isSimpleAction && !isListAction && !isComponentAction && !isExternalComponentAction;\r\n\r\n    if (isSimpleAction) {\r\n      const simpleAction = actionListEntry.action as SimpleAction;\r\n      simpleAction.run(actionListEntry.availableSelection);\r\n\r\n      // hide action menu if nothing else is to be shown/done\r\n      if (isSimpleActionOnly) {\r\n        this.hideActionMenu();\r\n      }\r\n    }\r\n\r\n    if (isListAction) {\r\n      const listAction = actionListEntry.action as ListAction;\r\n      this.subActionsListHeader = listAction.header;\r\n      this.actionService\r\n        .getExecutableActionsListFromGivenActions(listAction.subActionComponents, this.selection, this.viewContainerRef)\r\n        .subscribe((actionsList: ActionListEntry[]) => this.subActionsList = actionsList);\r\n    } else if (isComponentAction) {\r\n      const componentAction = actionListEntry.action as ComponentAction;\r\n      this.showActionComponent(componentAction.component, this.eoActionComponentAnchor, this.componentFactoryResolver, true);\r\n    } else if (isExternalComponentAction && !isWorkFlowAction) {\r\n      const extComponentAction = actionListEntry.action as ExternalComponentAction;\r\n      this.showActionComponent(extComponentAction.extComponents, this.externalDialog, this.componentFactoryResolver, false);\r\n    } else if (isWorkFlowAction) {\r\n      setTimeout(() => {\r\n        const extComponentAction = actionListEntry.action as ExternalProcessComponentAction;\r\n        this.showActionComponent(extComponentAction.extComponents, this.externalDialog, this.componentFactoryResolver,\r\n          false, {executableProcess: extComponentAction.executableProcess});\r\n      });\r\n    }\r\n  }\r\n\r\n  private showActionComponent(component: Type<any>, viewContRef, factoryResolver, showComponent, inputs?: any) {\r\n    this.showComponent = showComponent;\r\n    let componentFactory = factoryResolver.resolveComponentFactory(component);\r\n    let anchorViewContainerRef = viewContRef.viewContainerRef;\r\n    anchorViewContainerRef.clear();\r\n    let componentRef = anchorViewContainerRef.createComponent(componentFactory);\r\n    (<ActionComponent>componentRef.instance).selection = this.subSelection || this.selection;\r\n    (<ActionComponent>componentRef.instance).canceled.pipe(take(1), tap(() => (this.subSelection = null))).subscribe(() => this.onCancel());\r\n    (<ActionComponent>componentRef.instance).finished.pipe(take(1), tap(() => (this.subSelection = null))).subscribe(() => this.onFinish());\r\n    if (inputs) {\r\n      Object.keys(inputs).forEach(function (key) {\r\n        componentRef.instance[key] = inputs[key];\r\n      });\r\n    }\r\n  }\r\n\r\n  isLinkAction(action) {\r\n    // used from within template\r\n    return !!(action && action.getLink && action.getParams);\r\n  }\r\n\r\n  private clear() {\r\n    this.showComponent = false;\r\n    this.subActionsList = null;\r\n    this.actionDescription = null;\r\n    this.viewContainerRef.clear();\r\n    if (this.eoActionComponentAnchor) {\r\n      this.eoActionComponentAnchor.viewContainerRef.clear();\r\n    }\r\n  }\r\n\r\n  onCancel() {\r\n    this.clear();\r\n    this.catchFocus();\r\n  }\r\n\r\n  onFinish() {\r\n    this.hideActionMenu();\r\n  }\r\n}\r\n","<div class=\"action-menu dark\" *ngIf=\"showMenu\" (eoOutsideClick)=\"hide()\">\r\n\r\n  <div class=\"head\">\r\n    <div class=\"left\">\r\n      <div class=\"title\" translate>eo.actions.sticky.title</div>\r\n      <div class=\"sub-title\" *ngIf=\"selection?.length > 1; else multi\" translate>eo.actions.sticky.title.sub.selection</div>\r\n      <ng-template #multi>\r\n        <div class=\"sub-title\" *ngIf=\"selection && selection.length\"><span translate>eo.actions.sticky.title.sub.for</span> '{{selection[0].title}}'</div>\r\n      </ng-template>\r\n    </div>\r\n    <div class=\"right\">\r\n      <span class=\"count\">{{subSelection?.length || selection?.length || ''}}</span>\r\n      <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"hide()\"></eo-icon>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"actions\" [hidden]=\"subActionsList || showComponent\">\r\n\r\n    <ng-template #action let-entry let-id>\r\n\r\n      <a *ngIf=\"isLinkAction(entry.action); else default\" class=\"link\"\r\n         [routerLink]=\"entry.action.getLink(entry.availableSelection)\"\r\n         [queryParams]=\"entry.action.getParams(entry.availableSelection, true)\">\r\n        <ng-container *ngTemplateOutlet=\"default\"></ng-container>\r\n      </a>\r\n\r\n      <ng-template #default>\r\n        <div>\r\n          <eo-icon [iconSrc]=\"entry.action.iconSrc\" [iconId]=\"entry.action.iconId\"\r\n          [badge]=\"entry.availableSelection?.length != selection?.length ? entry.availableSelection?.length : null\"></eo-icon>\r\n          <div class=\"label\">{{entry.action.label}}</div>\r\n          <!-- <div class=\"available-count\" *ngIf=\"entry.availableSelection?.length != selection?.length\">{{entry.availableSelection?.length}}</div> -->\r\n          <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\" (click)=\"showActionDescription(id, $event)\"></eo-icon>\r\n        </div>\r\n        <div class=\"description\" [hidden]=\"id !== actionDescription\">{{entry.action.description}}</div>\r\n      </ng-template>\r\n    </ng-template>\r\n\r\n    <div class=\"group\" *ngIf=\"actionLists?.common.length > 0\">\r\n      <div class=\"group-title\" translate>eo.actions.group.common</div>\r\n      <div class=\"action\" id=\"{{actionListEntry.id}}\" (keydown)=\"isArrowUpOrDownPressed($event)\" [attr.tabindex]=\"0\" *ngFor=\"let actionListEntry of actionLists.common; let i = index\"\r\n        (click)=\"onClick(actionListEntry)\" [ngClass]=\"{active: activeActionIndex === i}\">\r\n\r\n        <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: +i}\"></ng-container>\r\n\r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"group\" *ngIf=\"!loading; else loader\">\r\n      <div *ngIf=\"actionLists?.further.length > 0\">\r\n        <div class=\"group-title\" translate>eo.actions.group.further_actions</div>\r\n        <div class=\"action\" id=\"{{actionListEntry.id}}\" (keydown)=\"isArrowUpOrDownPressed($event)\" *ngFor=\"let actionListEntry of actionLists.further; index as i\"\r\n          eoPreventDoubleClick [ngClass]=\"{active: activeActionIndex === i + actionLists?.common.length }\"\r\n          (debounceClick)=\"onClick(actionListEntry)\">\r\n\r\n          <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 'f'+i}\"></ng-container>\r\n\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"group\" *ngIf=\"!loading && !actionLists?.further.length && !actionLists?.common.length\" [style.textAlign]=\"'center'\">\r\n      {{ 'eo.action.not.available' | translate}}\r\n    </div>\r\n\r\n    <ng-template #loader>\r\n      <div class=\"loading-container\">\r\n        <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\r\n      </div>\r\n    </ng-template>\r\n  </div>\r\n\r\n  <!-- sub actions -->\r\n  <div  class=\"group sub\" *ngIf=\"subActionsList && !showComponent\">\r\n    <div class=\"sub-actions\">\r\n      <div class=\"group-title\">{{subActionsListHeader}}</div>\r\n      <div class=\"action sub\" *ngFor=\"let actionListEntry of subActionsList; index as i\" (click)=\"onClick(actionListEntry)\">\r\n        <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 's'+i}\"></ng-container>\r\n      </div>\r\n    </div>\r\n    <div class=\"group-buttons\">\r\n      <button (click)=\"onCancel()\" translate>eo.cta.button.cancel</button>\r\n    </div>\r\n  </div>\r\n\r\n  <div>\r\n    <ng-template eoActionComponentAnchor></ng-template>\r\n  </div>\r\n\r\n  <div>\r\n    <ng-template eoExtActionComponentAnchor></ng-template>\r\n  </div>\r\n\r\n</div>\r\n","\r\nimport { forkJoin as observableForkJoin, Observable } from 'rxjs';\r\n\r\nimport { catchError } from 'rxjs/operators';\r\nimport {ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport { TranslateService } from '@eo-sdk/core';\r\nimport { EoLocation, LocationService } from '../../../eo-framework-core/location/location.service';\r\nimport {\r\n  Clipboard, ClipboardAction, ClipboardService, DmsObject, PrepareService, DmsService,\r\n  NotificationsService, EnaioEvent, EventService, Utils\r\n} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-clipboard',\r\n  templateUrl: './clipboard.component.html',\r\n  styleUrls: ['./clipboard.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ClipboardComponent implements OnInit {\r\n\r\n  overlayShow: boolean;\r\n  clipboard: Clipboard;\r\n  clipboardItems: DmsObject[];\r\n  type: string;\r\n  iconSrc: string;\r\n  iconTitle: string;\r\n  activeLocation: EoLocation;\r\n  isPasteAllowed: boolean;\r\n  isPasteAsContentlinkAllowed: boolean;\r\n\r\n  constructor(private translate: TranslateService,\r\n    private locationService: LocationService,\r\n    private prepareService: PrepareService,\r\n    private dmsService: DmsService,\r\n              private cd: ChangeDetectorRef,\r\n    private notificationService: NotificationsService,\r\n    private eventService: EventService,\r\n    private clipboardService: ClipboardService) {\r\n  }\r\n\r\n  getClipboardContent() {\r\n    this.clipboardService\r\n      .clipboard$\r\n      .subscribe((clipboard) => {\r\n        this.clipboard = clipboard;\r\n        this.clipboardItems = clipboard.elements.slice(0, 4);\r\n        this.type = clipboard.action === ClipboardAction.COPY ? 'copy' : 'cut';\r\n        this.iconSrc = clipboard.action === ClipboardAction.COPY ?\r\n          'assets/_default/svg/ic_content-copy.svg' :\r\n          'assets/_default/svg/ic_content-cut.svg';\r\n        this.iconTitle = clipboard.action === ClipboardAction.COPY ?\r\n          this.translate.instant('eo.bar.button.copy.tooltip') :\r\n          this.translate.instant('eo.bar.button.cut.tooltip');\r\n        this.checkAllowedActions();\r\n      });\r\n  }\r\n\r\n  getActiveLocation() {\r\n    this.locationService.activeLocation$\r\n      .subscribe(activeLocation => {\r\n        this.activeLocation = activeLocation;\r\n        this.checkAllowedActions();\r\n      });\r\n  }\r\n\r\n  /**\r\n   * Removes all items from the clipboard\r\n   */\r\n  removeAll() {\r\n    this.hide();\r\n    this.clipboardService.clear();\r\n  }\r\n\r\n  /**\r\n   * Removes a single item from the clipboard\r\n   * @param clipboardItem The item to be removed\r\n   */\r\n  removeItem(clipboardItem: DmsObject) {\r\n    const filtered = this.clipboard.elements.filter(e => e.id !== clipboardItem.id);\r\n    if (filtered.length === 0) {\r\n      this.hide();\r\n    }\r\n    this.clipboardService.set(filtered, this.clipboard.action);\r\n  }\r\n\r\n  hide() {\r\n    this.overlayShow = false;\r\n  }\r\n\r\n  paste() {\r\n    if (this.clipboard.action === ClipboardAction.CUT) {\r\n      this.move(this.activeLocation, this.clipboard.elements);\r\n    } else {\r\n      this.copy(this.activeLocation, this.clipboard.elements, false);\r\n    }\r\n  }\r\n\r\n  pasteAsContentlink() {\r\n    this.copy(this.activeLocation, this.clipboard.elements, true);\r\n  }\r\n\r\n  triggerUpdate(elements) {\r\n    this.eventService.trigger(EnaioEvent.DMS_OBJECT_PASTED, elements);\r\n  }\r\n\r\n  move(activeLocation, elementsToMove: any[]) {\r\n    this.prepareService.getPrepareChildTypes(activeLocation.id).subscribe((res) => {\r\n      if (this.allTypesAllowed(res.types, elementsToMove)) {\r\n        let obs = elementsToMove.map(el => {\r\n          return this.dmsService.move(el.id, el.typeName, activeLocation.id, activeLocation.type).pipe(\r\n            catchError(Utils.catch(() => {\r\n            }, el.title, this.translate.instant('eo.action.clipboard.move.error'))));\r\n        });\r\n        observableForkJoin(obs).subscribe(() => {\r\n          this.clipboardService.clear();\r\n          this.triggerUpdate(elementsToMove);\r\n        });\r\n      } else {\r\n        this.notificationService.error(this.translate.instant('eo.clipboard.paste.label'), this.translate.instant('eo.clipboard.move.not.allowed'));\r\n      }\r\n    });\r\n    this.hide();\r\n  }\r\n\r\n  copy(activeLocation, elementsToMove: any[], createContentLink) {\r\n    this.prepareService.getPrepareChildTypes(activeLocation.id).subscribe((res) => {\r\n      if (this.allTypesAllowed(res.types, elementsToMove)) {\r\n        if (elementsToMove.length) {\r\n          let obs = elementsToMove.map(el => {\r\n            return this.dmsService.copy(el.id, el.typeName, activeLocation.id, activeLocation.type, createContentLink && !this.isContentlink(el)).pipe(\r\n              catchError(Utils.catch(() => {\r\n              }, el.title, this.translate.instant('eo.action.clipboard.copy.error'))));\r\n          });\r\n          observableForkJoin(obs).subscribe(results => {\r\n            results.forEach((r, i) => {// replace the old ID with the new one\r\n              elementsToMove[i].id = r.id;\r\n            });\r\n            this.triggerUpdate(elementsToMove);\r\n          });\r\n        }\r\n      } else {\r\n        this.notificationService.error(this.translate.instant('eo.clipboard.paste.label'), this.translate.instant('eo.clipboard.copy.not.allowed'));\r\n      }\r\n    });\r\n    this.hide();\r\n  }\r\n\r\n  allTypesAllowed(locationTypes, elementsToMove) {\r\n    let allTypesAllowed = true;\r\n    elementsToMove.forEach((el) => {\r\n      let match = locationTypes.find(t => t.name === el.typeName);\r\n      if (!match) {\r\n        allTypesAllowed = false;\r\n      }\r\n    });\r\n    return allTypesAllowed;\r\n  }\r\n\r\n  isContentlink(item) {\r\n    return item.content && item.content.id !== item.id;\r\n  }\r\n\r\n  contentAvailableForAllItems(items: DmsObject[]): boolean {\r\n    return !items.find(item => !item.content);\r\n  }\r\n\r\n  checkAllowedActions() {\r\n    const { elements, action } = this.clipboard;\r\n    const isCopy = (action === ClipboardAction.COPY);\r\n    const isCut = (action === ClipboardAction.CUT);\r\n    const cutAction = (isCut && this.activeLocation && elements.length && elements[0].contextFolder ? this.activeLocation.id !== elements[0].contextFolder.id : true);\r\n    const baseCondition = this.clipboard && this.activeLocation && elements.length && !elements.some(element => element.isFolder);\r\n\r\n    this.isPasteAllowed = baseCondition && cutAction;\r\n    this.isPasteAsContentlinkAllowed = baseCondition && elements[0].contextFolder && isCopy && this.contentAvailableForAllItems(elements);\r\n    // trigger change detction here because this method is called from all subscriptions\r\n   this.cd.markForCheck();\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.getClipboardContent();\r\n    this.getActiveLocation();\r\n  }\r\n}\r\n","\r\n<eo-icon class=\"button white\" *ngIf=\"clipboard.elements.length\"\r\n         [iconTitle]=\"iconTitle\"\r\n         (click)=\"overlayShow = !overlayShow\"\r\n         [badge]=\"clipboard.elements.length\" [iconSrc]=\"iconSrc\"></eo-icon>\r\n\r\n<div class=\"clipboard-overlay dark\" *ngIf=\"overlayShow && clipboard.elements.length\" (eoOutsideClick)=\"hide()\">\r\n  <div class=\"title\" *ngIf=\"type === 'cut'; else copy\">\r\n    <span translate>eo.clipboard.type.cut</span>\r\n    <eo-icon class=\"button white\" (click)=\"removeAll()\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\r\n  </div>\r\n  <ng-template #copy>\r\n    <div class=\"title\">\r\n      <span translate>eo.clipboard.type.copy</span>\r\n      <eo-icon class=\"button white\" (click)=\"removeAll()\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\r\n    </div>\r\n  </ng-template>\r\n\r\n  <div class=\"cb-item\" *ngFor=\"let i of clipboardItems\">\r\n    <eo-icon [objectType]=\"i.type\" [iconTitle]=\"i.type.label\"></eo-icon>\r\n    <div class=\"cb-item-info\">\r\n      <div class=\"name\">{{i.title}}</div>\r\n      <div class=\"name context\">{{i.contextFolder?.title}}</div>\r\n    </div>\r\n    <eo-icon class=\"button white\" (click)=\"removeItem(i)\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\r\n  </div>\r\n\r\n  <div class=\"more\" *ngIf=\"clipboardItems.length < clipboard.elements.length\"\r\n       translate [translateParams]=\"{moreCount: clipboard.elements.length - clipboardItems.length}\">eo.clipboard.more</div>\r\n\r\n  <div class=\"actions\">\r\n    <button (click)=\"pasteAsContentlink()\" [disabled]=\"!isPasteAsContentlinkAllowed\" *ngIf=\"this.clipboard.action === 0\" translate>eo.clipboard.paste.as.contentlink.label</button>\r\n    <button class=\"primary\" (click)=\"paste()\" [disabled]=\"!isPasteAllowed\" translate>eo.clipboard.paste.label</button>\r\n  </div>\r\n</div>\r\n","import {UtilitiesService} from './../../../util/services/utilities.service';\r\nimport {Component, Input, EventEmitter, Output} from '@angular/core';\r\nimport {ISummaryEntryDiffValue} from '../indexdata-summary-entry.interface';\r\n\r\n@Component({\r\n  selector: 'eo-indexdata-summary-entry',\r\n  templateUrl: './indexdata-summary-entry.component.html',\r\n  styleUrls: ['./indexdata-summary-entry.component.scss']\r\n})\r\nexport class IndexdataSummaryEntryComponent {\r\n\r\n  value1: string;\r\n  value2: string;\r\n  showDiff = false;\r\n\r\n  @Input() label: string;\r\n  @Input() item: any;\r\n\r\n  @Input() set value(v: any | ISummaryEntryDiffValue) {\r\n    this.showDiff = v && typeof v === 'object' && v.hasOwnProperty('val1');\r\n    if (v) {\r\n      if (typeof v === 'string') {\r\n        if (!v.startsWith('<')) {\r\n          v = v.replace(/\\n/gi, '<br>');\r\n        }\r\n      } else {\r\n        v.val1 = v?.val1?.replace(/\\n/gi, '<br>');\r\n        if (!this.showDiff) {\r\n          v.val2 = v?.val2?.replace(/\\n/gi, '<br>');\r\n        }\r\n      }\r\n    }\r\n    this.value1 = this.showDiff ? v?.val1 : v;\r\n    this.value2 = this.showDiff && v?.val2;\r\n  }\r\n\r\n  @Input() className: string;\r\n  @Output() onValueClicked = new EventEmitter();\r\n\r\n  isEmpty = v => UtilitiesService.isEmpty(v);\r\n\r\n  classes = (v1, v2) => ({\r\n    entry: true,\r\n    diffActive: this.showDiff,\r\n    new: this.showDiff && this.isEmpty(v1) && !this.isEmpty(v2),\r\n    removed: this.showDiff && !this.isEmpty(v1) && this.isEmpty(v2),\r\n    modified: this.showDiff && !this.isEmpty(v1) && !this.isEmpty(v2)\r\n  })\r\n\r\n}\r\n","<div [class]=\"className || ''\"  [ngClass]=\"classes(value1, value2)\" *ngIf=\"showDiff || !isEmpty(value1)\">\r\n  <span class=\"label\">{{label}}</span>\r\n  <span class=\"value inner first\" [innerHTML]=\"value1 | safeHtml\" (click)=\"onValueClicked.emit($event)\"></span>\r\n  <span class=\"value inner second\" [innerHTML]=\"value2 | safeHtml\" (click)=\"onValueClicked.emit($event)\" *ngIf=\"showDiff\"></span>\r\n</div>","import {UtilitiesService} from './../../util/services/utilities.service';\r\nimport {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\r\nimport {BaseParams, DmsObject, DmsService, LocalStorageService, TranslateService, UserService, Utils} from '@eo-sdk/core';\r\nimport {GridService} from '../../../eo-framework-core/api/grid.service';\r\nimport {catchError} from 'rxjs/operators';\r\nimport {ISummaryEntryDiffValue} from './indexdata-summary-entry.interface';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {DataValueDifference, IndexDataArrayDetails} from './indexdata-summary.interface';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-indexdata-summary',\r\n  templateUrl: './indexdata-summary.component.html',\r\n  styleUrls: ['./indexdata-summary.component.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class IndexdataSummaryComponent implements OnInit {\r\n\r\n  isUserAllowedToShowStorageSection: boolean;\r\n  private _indexData: IndexData;\r\n\r\n  coreValues: any[];\r\n  dataValues: any[];\r\n  dataValues2: any[];\r\n  storageInfos: any[];\r\n  item: DmsObject;\r\n  moreInfoAcc = false;\r\n  dataInfoAcc = false;\r\n  infoFolderAcc = false;\r\n  private cacheKey = 'accordion.state--';\r\n  diffActive = false;\r\n  emptyState = false;\r\n\r\n\r\n  @Input() baseparams: BaseParams;\r\n  @Input() enableVersions = true;\r\n  @Input() isChangesTab = false;\r\n\r\n  @Input()\r\n  set indexdata(id: IndexData) {\r\n    this._indexData = id;\r\n    this.coreValues = this.processIndexData(id, 0).filter(value => !value.name.startsWith('yuv'));\r\n    this.dataValues = this.processIndexData(id, 1);\r\n  }\r\n\r\n  @Input()\r\n  set dmsObject(item: DmsObject) {\r\n    this.item = item;\r\n    this.getFolderInfos(item);\r\n    this.storageInfos = null;\r\n    if (item) {\r\n      this.getStorageInfos();\r\n    }\r\n    this.getCachedAccordionState();\r\n  }\r\n\r\n  @Input() set diff({indexdata, indexdata2, baseparams, baseparams2}) {\r\n    this.diffActive = true;\r\n\r\n    const diffValue = (val1, val2): ISummaryEntryDiffValue => !(UtilitiesService.isEmpty(val1) && UtilitiesService.isEmpty(val2)) && val1 !== val2 ? {val1, val2} : null;\r\n\r\n    if (baseparams && baseparams2) {\r\n      this.baseparams = {} as BaseParams;\r\n      ['contentFileName', 'contentFileSize', 'mimeGroup']\r\n        .forEach(k => diffValue(baseparams[k], baseparams2[k]) && (this.baseparams[k] = diffValue(baseparams[k], baseparams2[k])));\r\n    }\r\n\r\n    if (indexdata && indexdata2) {\r\n      const coreValues2 = this.processIndexData(indexdata2, 0, true).reduce((acc, cur) => (acc[cur.qname] = cur, acc), {});\r\n      const coreValues = this.processIndexData(indexdata, 0, true)\r\n        .map(({label, _value, qname, reference}) => ({label, reference, _value: diffValue(_value, coreValues2[qname]._value)}))\r\n        .filter(v => v._value);\r\n\r\n      const indexDataArrayDetails: IndexDataArrayDetails[] = this.getIndexDataArrayDetails(indexdata);\r\n      const indexData2ArrayDetails: IndexDataArrayDetails[] = this.getIndexDataArrayDetails(indexdata2);\r\n      const dataValues: DataValueDifference[] = this.extractDataValuesWithDifferences(indexDataArrayDetails, indexData2ArrayDetails);\r\n\r\n      this.coreValues = coreValues;\r\n      this.dataValues = dataValues;\r\n      this.moreInfoAcc = !!dataValues.length;\r\n    }\r\n\r\n    this.emptyState = UtilitiesService.isEmpty(this.coreValues) && UtilitiesService.isEmpty(this.dataValues) && UtilitiesService.isEmpty(Object.keys(this.baseparams || {}));\r\n  }\r\n\r\n  static collect(data: {}, elements: any[] = [], collection: any[], force = false) {\r\n    elements.forEach(el => {\r\n      if (el.type !== 'TABLE') {\r\n        if (el.elements) {\r\n          collection.concat(IndexdataSummaryComponent.collect(data, el.elements, collection, force));\r\n        } else {\r\n          let key = el.name;\r\n          if (force || (data.hasOwnProperty(key) && (Array.isArray(data[key]) ? data[key].length : true))) {\r\n            // only add arrays when they contain any values\r\n            collection.push(Object.assign({}, el, {\r\n              value: data[key],\r\n              meta: data[key + '_meta']\r\n            }));\r\n          }\r\n        }\r\n      }\r\n    });\r\n    return collection;\r\n  }\r\n\r\n  constructor(public translate: TranslateService,\r\n    public gridApi: GridService,\r\n    private dmsService: DmsService,\r\n    private userService: UserService,\r\n    private cd: ChangeDetectorRef,\r\n    private storageService: LocalStorageService) {\r\n\r\n  }\r\n\r\n  onValueClick(event: any, item: any = {}) {\r\n    if (item.reference || item.version) {\r\n      this.gridApi.openRouterLink(event, 'entry');\r\n    }\r\n  }\r\n\r\n  getVersionLink(version: number) {\r\n    const link = `versions/${this.item.id}?type=${this.item.typeName}&version=${version}`;\r\n    return `<a class=\"link router-link\" href=\"${link}\" target=\"_blank\" onclick=\"return false;\">${version}</a>`;\r\n  }\r\n\r\n  processIndexData(id: IndexData, index = 0, force = false) {\r\n    return id && id.form && id.data ? this.gridApi.getResolvedDefs(IndexdataSummaryComponent.collect(id.data, id.form.elements[index].elements, [], force)) : [];\r\n  }\r\n\r\n  onMoreInfoToggle(info: boolean) {\r\n    this.storageService.setItem(this.cacheKey + 'more-info', JSON.stringify(info));\r\n  }\r\n\r\n  onContextfolderToggle(info: boolean) {\r\n    this.storageService.setItem(this.cacheKey + 'contextfolder', JSON.stringify(info));\r\n  }\r\n\r\n  onStorageInfoToggle(info: boolean) {\r\n    this.storageService.setItem(this.cacheKey + 'storage-info', JSON.stringify(info));\r\n  }\r\n\r\n  trackByIndex(index, item) {\r\n    return index;\r\n  }\r\n\r\n  getStorageInfos() {\r\n    this.dmsService.getDmsObjectByParams({id: this.item.id, type: this.item.typeName, version: this.item.version, recyclebin: true, withStorageInfo: true})\r\n      .pipe(\r\n        untilDestroyed(this),\r\n        catchError(Utils.catchSkip(err => err.status === 404))\r\n      ).subscribe(res => {\r\n        this.storageInfos = res.storageInfo;\r\n        this.cd.markForCheck();\r\n      });\r\n  }\r\n\r\n  getFolderInfos(item: DmsObject) {\r\n    this.dataValues2 = item.contextFolder?.type?.elements.filter(items => items.selectedforenrichment).map(items => {\r\n      return {\r\n        ...items,\r\n        data: item.contextFolder.data[items.name]\r\n      };\r\n    });\r\n  }\r\n\r\n  private getCachedAccordionState() {\r\n    this.moreInfoAcc = JSON.parse(this.storageService.getItem(this.cacheKey + 'more-info'));\r\n    this.infoFolderAcc = JSON.parse(this.storageService.getItem(this.cacheKey + 'contextfolder'));\r\n    this.dataInfoAcc = JSON.parse(this.storageService.getItem(this.cacheKey + 'storage-info'));\r\n  }\r\n\r\n  /**\r\n   * Compares two values deeply to determine if they are equivalent.\r\n   *\r\n   * This function performs a deep comparison between two values to determine if they are equivalent.\r\n   * It compares objects recursively, including their enumerable properties.\r\n   *\r\n   * @param {any} val1 - The first value to compare.\r\n   * @param {any} val2 - The second value to compare.\r\n   * @returns {boolean} - Returns `true` if the values are deeply equal, otherwise `false`.\r\n   */\r\n  compareContentValueEquality = (val1: any, val2: any): boolean => {\r\n    if (val1 === val2) return true;\r\n\r\n    if (typeof val1 !== 'object' || typeof val2 !== 'object' || val1 == null || val2 == null) return false;\r\n\r\n    const val1keys = Object.keys(val1);\r\n    const val2keys = Object.keys(val2);\r\n\r\n    if (val1keys.length !== val2keys.length) return false;\r\n\r\n    for (const key of val1keys) {\r\n      if (!val2keys.includes(key) || !this.compareContentValueEquality(val1[key], val2[key])) return false;\r\n    }\r\n\r\n    return true;\r\n  };\r\n\r\n  /**\r\n   * Compares two values and returns a summary of their differences.\r\n   * If the values are arrays, it compares their lengths and, if equal, their contents.\r\n   * For non-array values, it checks for equality or if either is considered \"empty\" by a utility function.\r\n   *\r\n   * @param val1 The first value to compare.\r\n   * @param val2 The second value to compare.\r\n   * @returns An object with `val1` and `val2` properties representing the differences, or `null` if no differences are found.\r\n   *          For arrays, the differences are the count of differing items or the difference in lengths.\r\n   *          For other values, it returns the values themselves if they differ, or an empty string for \"empty\" values.\r\n   *          Returns `null` if the values are equal or both \"empty\".\r\n   */\r\n  getDataValueDifferences = (val1: any, val2: any): ISummaryEntryDiffValue => {\r\n    if (Array.isArray(val1) && Array.isArray(val2)) {\r\n      const length1 = val1.length;\r\n      const length2 = val2.length;\r\n\r\n      if (length1 !== length2) {\r\n        return {val1: length1.toString(), val2: length2.toString()};\r\n      }\r\n\r\n      // Count content differences when lengths are the same\r\n      let differences = 0;\r\n      for (let i = 0; i < length1; i++) {\r\n        if (!this.compareContentValueEquality(val1[i], val2[i])) {\r\n          differences++;\r\n        }\r\n      }\r\n\r\n      if (differences > 0) {\r\n        return {val1: differences.toString(), val2: differences.toString()};\r\n      } else {\r\n        return null;\r\n      }\r\n    }\r\n\r\n    const isEmptyVal1 = UtilitiesService.isEmpty(val1);\r\n    const isEmptyVal2 = UtilitiesService.isEmpty(val2);\r\n\r\n    if (isEmptyVal1 && isEmptyVal2) {\r\n      return null;\r\n    }\r\n\r\n    if (val1 !== val2 || isEmptyVal1 || isEmptyVal2) {\r\n      return {val1: isEmptyVal1 ? \"\" : val1, val2: isEmptyVal2 ? \"\" : val2};\r\n    }\r\n\r\n    return null;\r\n  };\r\n\r\n  /**\r\n   * Extracts properties from an object that are arrays and returns their details.\r\n   *\r\n   * @param {Object} data - The object to analyze.\r\n   * @returns {Array} An array of objects, each representing a property of the input object\r\n   * that is an array. Each object includes the property name (`label`), the number of elements\r\n   * in the array (`length`), the array content itself (`content`), and the type of the array (`type`).\r\n   */\r\n  getIndexDataArrayDetails = (indexData: {[key: string]: any}): IndexDataArrayDetails[] => {\r\n    const data = indexData.data;\r\n    const formElements = indexData.form.elements;\r\n\r\n    // Helper function to find the type of an element by its label\r\n    const findTypeAndLabelByName = (elements, label) => {\r\n      for (const element of elements) {\r\n        if (element.name === label) {\r\n          return {type: element.type, label: element.label};\r\n        }\r\n        if (element.elements && element.elements.length > 0) {\r\n          const typeLabelInfo = findTypeAndLabelByName(element.elements, label);\r\n          if (typeLabelInfo) {\r\n            return typeLabelInfo;\r\n          }\r\n        }\r\n      }\r\n      return null;\r\n    };\r\n\r\n    return Object.keys(data)\r\n      .filter((key) => Array.isArray(data[key]))\r\n      .map((key) => {\r\n        const {type, label} = findTypeAndLabelByName(formElements, key);\r\n        return {\r\n          label,\r\n          length: data[key].length,\r\n          content: data[key],\r\n          type,\r\n        };\r\n      });\r\n  };\r\n\r\n  /**\r\n   * Compares the content of two sets of index data array details and extracts the differences.\r\n   *\r\n   * This function maps through the first set of index data array details, finds the matching\r\n   * content from the second set by label, and then calculates the differences between them.\r\n   * It returns an array of objects with labels and the calculated differences, filtering out\r\n   * any entries without a difference.\r\n   *\r\n   * @param {IndexDataArrayDetail[]} indexDataArrayDetails - The first set of index data array details.\r\n   * @param {IndexDataArrayDetail[]} indexData2ArrayDetails - The second set of index data array details.\r\n   * @returns {Array<{label: string, _value: any}>} An array of objects containing labels and their differences.\r\n   */\r\n  extractDataValuesWithDifferences = (indexDataArrayDetails, indexData2ArrayDetails): DataValueDifference[] => {\r\n    return indexDataArrayDetails.map(({label, type, content}) => {\r\n      const matchingProp = indexData2ArrayDetails.find(prop => prop.label === label);\r\n      const content2 = matchingProp ? matchingProp.content : [];\r\n      const newValue = this.getDataValueDifferences(content, content2);\r\n      if (type === \"TABLE\" && newValue && newValue.val1 && newValue.val2) {\r\n        newValue.val1 = \"\";\r\n        newValue.val2 = this.translate.instant('eo.indexdata.summary.table.change');\r\n      }\r\n      return {\r\n        label,\r\n        type,\r\n        _value: newValue,\r\n      };\r\n    }).filter((v: {_value: any;}) => v._value);\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.isUserAllowedToShowStorageSection = this.userService.getCurrentUser().hasPrivilege('MANAGE_STORAGES');\r\n    this.getCachedAccordionState();\r\n  }\r\n}\r\n\r\nexport interface IndexData {\r\n  form: any;\r\n  data: any;\r\n}\r\n","<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","import {Component, OnDestroy, Input, HostBinding, OnInit} from '@angular/core';\r\nimport {Subscription} from 'rxjs';\r\nimport {EnaioEvent, EventService, UserService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-user-avatar',\r\n  template: `<span class=\"presence\" *ngIf=\"showPresence && !present\">X</span>`,\r\n  styleUrls: ['./user-avatar.component.scss']\r\n})\r\nexport class UserAvatarComponent implements OnDestroy, OnInit {\r\n\r\n  private subscription: Subscription;\r\n  // tslint:disable-next-line:max-line-length\r\n  private defImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkZDQTZDQkFFMDRERDExRTg4OUIxQzk4OTI4N0QzREVCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkZDQTZDQkFGMDRERDExRTg4OUIxQzk4OTI4N0QzREVCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkNBNkNCQUMwNEREMTFFODg5QjFDOTg5Mjg3RDNERUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RkNBNkNCQUQwNEREMTFFODg5QjFDOTg5Mjg3RDNERUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7oRrTHAAAINklEQVR42uyd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';\r\n\r\n  present: boolean;\r\n  userId: string;\r\n  @HostBinding('style.background-image') backgroundImage = 'initial';\r\n  @Input() showPresence: boolean;\r\n  @Input() previewUri: string;\r\n\r\n  constructor(private userService: UserService,\r\n    private eventService: EventService,) {\r\n    this.subscription = this.userService.user$\r\n      .subscribe(u => {\r\n        this.userId = u.id;\r\n        this.present = u.present;\r\n        this.refreshUserImage();\r\n      });\r\n    this.eventService.on(EnaioEvent.SYSTEM_STATUS_IMAGE_CHANGE).subscribe(() => {\r\n      this.refreshUserImage();\r\n    });\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (this.previewUri) {\r\n      this.refreshUserImage();\r\n    }\r\n  }\r\n\r\n  refreshUserImage() {\r\n    if (this.previewUri) {\r\n      this.backgroundImage = `url(${this.previewUri})`;\r\n    } else {\r\n      const timestamp = new Date().getTime().toString();\r\n      this.backgroundImage = `url(${this.userService.getUserImageUri(this.userId) + '&t=' + timestamp}), url(${this.defImg})`;\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.subscription.unsubscribe();\r\n  }\r\n}\r\n","import {Component, ElementRef, Input, TemplateRef, ViewChild} from '@angular/core';\r\nimport {YvcOverlayRef, YvcOverlayService} from \"@yuuvis/components/overlay\";\r\n\r\n@Component({\r\n  selector: 'eo-overlay',\r\n  templateUrl: './overlay.component.html',\r\n  styleUrls: ['./overlay.component.scss']\r\n})\r\nexport class OverlayComponent {\r\n\r\n  @ViewChild('dialogContent') dialogContent: TemplateRef<any>;\r\n  @Input() iconSrc: string;\r\n  @Input() badge: string;\r\n  @Input() iconClass = '';\r\n  @Input() active = false;\r\n  @Input() iconTitle: string;\r\n  @Input() userAvatar = false;\r\n  hostEl?: HTMLElement;\r\n  isOpen = false;\r\n  private overlayRef: YvcOverlayRef;\r\n\r\n  constructor(private elRef: ElementRef, private overlay: YvcOverlayService) {\r\n    this.hostEl = this.elRef.nativeElement;\r\n  }\r\n\r\n  private open() {\r\n    if(!this.dialogContent) return;\r\n    // We create the overlay\r\n    this.overlayRef = this.overlay.open(this.dialogContent, null, {\r\n      disposeOnNavigation: true,\r\n      minHeight: 'auto',\r\n      minWidth: 200,\r\n      lightDismiss: true,\r\n      canClose: this.canClose\r\n    }, this.hostEl);\r\n    this.isOpen = true;\r\n    this.overlayRef.afterClosed$.subscribe(() => this.isOpen = false);\r\n  }\r\n\r\n  canClose = (): boolean => {\r\n    return this.isOpen && !document.elementFromPoint(0, 0).classList.contains('yvc-modal-backdrop');\r\n  }\r\n\r\n  public onActiveChanged(event) {\r\n    this.active = event;\r\n  }\r\n\r\n  toggle(e: any) {\r\n    if (this.isOpen) this.close();\r\n    else this.open();\r\n  }\r\n\r\n  close() {\r\n    if (this.overlayRef) {\r\n      this.overlayRef.close();\r\n    }\r\n  }\r\n}\r\n","<ng-container *ngIf=\"iconSrc;else btn\">\r\n  <eo-icon class=\"overlayIcon button {{iconClass}}\"\r\n           (click)=\"toggle($event)\"\r\n           (keyup.enter)=\"toggle($event)\"\r\n           [iconSrc]=\"iconSrc\"\r\n           [badge]=\"badge\"\r\n           [ngClass]=\"{active: active}\"\r\n           tabindex=\"0\"\r\n           [iconTitle]=\"iconTitle\"></eo-icon>\r\n</ng-container>\r\n<ng-template #btn>\r\n  <div *ngIf=\"!userAvatar; else avatar\" (click)=\"toggle($event)\" (keyup.enter)=\"toggle($event)\">\r\n    <ng-content select=\".btn\"></ng-content>\r\n  </div>\r\n</ng-template>\r\n<ng-template #avatar>\r\n  <eo-user-avatar class=\"btn\" id=\"app-profile\" (click)=\"toggle($event)\" (keyup.enter)=\"toggle($event)\" [showPresence]=\"true\" [title]=\"'eo.bar.button.user.profile.title' | translate\" tabindex=\"0\"></eo-user-avatar>\r\n</ng-template>\r\n<ng-template #dialogContent>\r\n  <ng-content></ng-content>\r\n</ng-template>\r\n","import {Component, Input} from '@angular/core';\r\nimport {EmptyState} from '../../../eo-framework-core/empty-state/empty-state.interface';\r\n\r\n@Component({\r\n  selector: 'eo-error-message',\r\n  templateUrl: './error-message.component.html',\r\n  styleUrls: ['./error-message.component.scss']\r\n})\r\nexport class ErrorMessageComponent {\r\n\r\n  iconUri = 'assets/_default/svg/ic_error.svg';\r\n  _emptyState: EmptyState;\r\n\r\n  @Input()\r\n  set emptyState(es: EmptyState) {\r\n    this._emptyState = es;\r\n    if (es.icon && es.icon.length) {\r\n      if (es.icon.startsWith('assets/_default/svg/')) {\r\n        this.iconUri = es.icon;\r\n      } else {\r\n        this.iconUri = `assets/_default/svg/${es.icon}`;\r\n      }\r\n    }\r\n  }\r\n\r\n  get emptyState() {\r\n    return this._emptyState;\r\n  }\r\n}\r\n\r\n","<div class=\"eo-body error\" [ngClass]=\"emptyState.className\" *ngIf=\"emptyState\">\r\n  <eo-icon class=\"error__icon\" [iconSrc]=\"iconUri\"></eo-icon>\r\n  <div class=\"error__message\">{{ emptyState.text | translate }}</div>\r\n  <ng-content selector=\".error\"></ng-content>\r\n</div>\r\n","import {Component, Input, EventEmitter, Output} from '@angular/core';\r\nimport {QueryScope} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-query-scope-select',\r\n  templateUrl: './query-scope-select.component.html',\r\n  styleUrls: ['./query-scope-select.component.scss']\r\n})\r\nexport class QueryScopeSelectComponent {\r\n  QueryScope = QueryScope;\r\n  \r\n  private _selectedQueryScope: QueryScope;\r\n\r\n  @Input('selection')\r\n  set selectedQueryScope(scope: QueryScope) {\r\n    this._selectedQueryScope = scope;\r\n  }\r\n\r\n  get selectedQueryScope() {\r\n    return this._selectedQueryScope;\r\n  }\r\n\r\n  @Output()\r\n  select: EventEmitter<QueryScope> = new EventEmitter<QueryScope>();\r\n\r\n  constructor() { }\r\n\r\n  selectQueryScope(scope: QueryScope) {\r\n    this.selectedQueryScope = scope;\r\n    this.select.emit(this.selectedQueryScope);\r\n  }\r\n\r\n}\r\n","<div class=\"query-scope\">\r\n    <button type=\"button\" class=\"query-scope__button\" (click)=\"selectQueryScope(QueryScope.ALL)\" \r\n        [ngClass]=\"{'query-scope__button--active': !selectedQueryScope || (selectedQueryScope === QueryScope.ALL)}\"\r\n        translate>eo.search.scope.all.label</button>\r\n    <button type=\"button\" class=\"query-scope__button\" (click)=\"selectQueryScope(QueryScope.CONTENT)\" \r\n        [ngClass]=\"{'query-scope__button--active': selectedQueryScope === QueryScope.CONTENT}\"\r\n        translate>eo.search.scope.content.label</button>\r\n    <button type=\"button\" class=\"query-scope__button\" (click)=\"selectQueryScope(QueryScope.INDEX_DATA)\" \r\n        [ngClass]=\"{'query-scope__button--active': selectedQueryScope === QueryScope.INDEX_DATA}\" \r\n        translate>eo.search.scope.indexdata.label</button>\r\n</div>","import {Component, Input} from '@angular/core';\r\nimport {DmsObject, EoUser, UserService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-signature-tab',\r\n  templateUrl: './signature-tab.component.html',\r\n  styleUrls: ['./signature-tab.component.scss']\r\n})\r\nexport class SignatureTabComponent {\r\n\r\n  private _dmsObject: DmsObject;\r\n  user: EoUser;\r\n\r\n  @Input()\r\n  set dmsObject(item: DmsObject) {\r\n    if (this._dmsObject !== item) {\r\n      this._dmsObject = item;\r\n    }\r\n  }\r\n\r\n  get dmsObject(): DmsObject {\r\n    return this._dmsObject;\r\n  }\r\n\r\n  constructor(private userService: UserService) {\r\n    this.userService.user$.subscribe((user) => {\r\n      this.user = user;\r\n    });\r\n  }\r\n}\r\n","<ng-container *ngIf=\"dmsObject.data.yuvsigstatus_meta; else tplNoSignature\">\r\n\r\n  <section class=\"info\">\r\n    <div class=\"row\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.status'|translate}}</div>\r\n      <div class=\"value\">\r\n        {{dmsObject.data.yuvsigstatus_meta.label}}</div>\r\n    </div>\r\n    <div class=\"row\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.type'|translate}}</div>\r\n      <div class=\"value\">\r\n        {{dmsObject.data.yuvsigtype}}</div>\r\n    </div>\r\n    <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigerror\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.error'|translate}}</div>\r\n      <div class=\"value\">{{dmsObject.data.yuvsigerror}}</div>\r\n    </div>\r\n    <div class=\"row\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.date'|translate}}</div>\r\n      <div class=\"value\">{{dmsObject.data.yuvsigdate | localeDate: 'eoShortDate'}}</div>\r\n    </div>\r\n    <div class=\"row\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.requestdate'|translate}}</div>\r\n      <div class=\"value\">{{dmsObject.data.yuvsigreqdate | localeDate:'eoShortDate'}}</div>\r\n    </div>\r\n    <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigrequester_meta?.title\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.requester'|translate}}</div>\r\n      <div class=\"value\">\r\n        {{dmsObject.data.yuvsigrequester_meta.title}} </div>\r\n    </div>\r\n    <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailsubject\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.subject'|translate}}</div>\r\n      <div class=\"value\">{{dmsObject.data.yuvsigemailsubject}}</div>\r\n    </div>\r\n    <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailbody\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.body'|translate}}</div>\r\n      <div class=\"value\">{{dmsObject.data.yuvsigemailbody}}</div>\r\n    </div>\r\n    <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigcanceledby\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.canceledby'|translate}}</div>\r\n      <div class=\"value\">{{dmsObject.data.yuvsigcanceledby_meta.title}}</div>\r\n    </div>\r\n    <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigreason\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.reason'|translate}}</div>\r\n      <div class=\"value\">{{dmsObject.data.yuvsigreason}}</div>\r\n    </div>\r\n    <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigplatform\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatform'|translate}}</div>\r\n      <div class=\"value\">{{dmsObject.data.yuvsigplatform}}</div>\r\n    </div>\r\n    <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigplatformid\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatformId'|translate}}</div>\r\n      <div class=\"value\">{{dmsObject.data.yuvsigplatformid}}</div>\r\n    </div>\r\n    <div class=\"row\">\r\n      <div class=\"label\">{{'eo.object.signature-tab.label.signers'|translate}}</div>\r\n      <div class=\"value\">\r\n        <div class=\"signer-container\" *ngFor=\"let s of dmsObject.data.yuvsigners\">\r\n          <div class=\"signerorder\">\r\n            <span class=\"circle\"\r\n              [title]=\"'eo.object.signature-tab.order.tooltip' | translate\">{{s.yuvsignerorder}}</span>\r\n          </div>\r\n          <div class=\"signer\">\r\n            <div class=\"date\" *ngIf=\"s.yuvsignerdate\">{{s.yuvsignerdate | localeDate: 'eoShort'}}</div>\r\n            <div class=\"name\" *ngIf=\"s.yuvsignername\">{{s.yuvsignername}}</div>\r\n            <div class=\"email\" *ngIf=\"s.yuvsigneremail\">{{s.yuvsigneremail}}</div>\r\n            <div class=\"phone\" *ngIf=\"s.yuvsignerphone\">{{s.yuvsignerphone}}</div>\r\n            <div class=\"state {{s.yuvsignerstatus}}\"><span *ngIf=\"s.yuvsignerstatus_meta?.label\">{{s.yuvsignerstatus_meta.label}}</span></div>\r\n            <div class=\"reason\" *ngIf=\"s.yuvsignercomment\">{{s.yuvsignercomment}}</div>\r\n          </div>\r\n\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </section>\r\n</ng-container>\r\n<ng-template #tplNoSignature>\r\n  <div class=\"signature-not-found\">\r\n    <eo-error-message\r\n      [emptyState]=\"{icon: 'ic_signature.svg', text:'eo.object.signature-tab.no-signatures'}\"></eo-error-message>\r\n  </div>\r\n</ng-template>","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport {EoSharedModule} from '@eo-sdk/core';\r\nimport {EoIconComponent} from './eo-icon/eo-icon.component';\r\nimport {OutsideClickDirective} from './outside-click/outside-click.directive';\r\nimport {RtlAwareDirective} from './rtl-aware/rtl-aware.directive';\r\nimport {PipesModule} from '../../eo-framework-core/pipes/pipes.module';\r\nimport {LoadingSpinnerComponent} from './loading-spinner/loading-spinner.component';\r\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\r\nimport {ClipboardComponent} from './clipboard/clipboard.component';\r\nimport {IndexdataSummaryComponent} from './indexdata-summary/indexdata-summary.component';\r\nimport {UserAvatarComponent} from './user-avatar/user-avatar.component';\r\nimport {OverlayComponent} from './overlay/overlay.component';\r\nimport {ErrorMessageComponent} from './error-message/error-message.component';\r\nimport {EoDialogComponent} from './eo-dialog/eo-dialog.component';\r\nimport {RouterModule} from '@angular/router';\r\nimport {OverlayModule} from '@angular/cdk/overlay';\r\nimport {AccordionModule} from '../accordion/accordion.module';\r\nimport {IndexdataSummaryEntryComponent} from './indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component';\r\nimport {RouterLinkDirective} from './router-link/router-link.directive';\r\nimport { QueryScopeSelectComponent } from './query-scope-select/query-scope-select.component';\r\nimport {YvcDialogModule} from '@yuuvis/components/dialog';\r\nimport {A11yModule} from '@angular/cdk/a11y';\r\nimport {TrapFocusDirective} from '../util/directive/trap-focus.directive';\r\nimport { SignatureTabComponent } from './signature-tab/signature-tab.component';\r\nimport {YvcOverlayModule} from '@yuuvis/components/overlay';\r\n\r\n/**\r\n * Shared module for all ui components that are used across the whole app\r\n * and in other components.\r\n */\r\n\r\n@NgModule({ exports: [\r\n        CommonModule,\r\n        EoSharedModule,\r\n        PipesModule,\r\n        EoIconComponent,\r\n        OutsideClickDirective,\r\n        RouterLinkDirective,\r\n        RtlAwareDirective,\r\n        LoadingSpinnerComponent,\r\n        ClipboardComponent,\r\n        IndexdataSummaryComponent,\r\n        UserAvatarComponent,\r\n        OverlayComponent,\r\n        ErrorMessageComponent,\r\n        EoDialogComponent,\r\n        QueryScopeSelectComponent,\r\n        TrapFocusDirective,\r\n        SignatureTabComponent\r\n    ],\r\n    declarations: [\r\n        EoIconComponent,\r\n        OutsideClickDirective,\r\n        RouterLinkDirective,\r\n        RtlAwareDirective,\r\n        LoadingSpinnerComponent,\r\n        ClipboardComponent,\r\n        IndexdataSummaryComponent,\r\n        UserAvatarComponent,\r\n        OverlayComponent,\r\n        ErrorMessageComponent,\r\n        EoDialogComponent,\r\n        IndexdataSummaryEntryComponent,\r\n        QueryScopeSelectComponent,\r\n        TrapFocusDirective,\r\n        SignatureTabComponent\r\n    ], imports: [CommonModule,\r\n        EoSharedModule,\r\n        PipesModule,\r\n        BrowserAnimationsModule,\r\n        RouterModule,\r\n        AccordionModule,\r\n        OverlayModule,\r\n        YvcDialogModule,\r\n        YvcOverlayModule,\r\n        A11yModule], providers: [provideHttpClient(withInterceptorsFromDi())] })\r\nexport class UiModule {\r\n}\r\n","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {SimpleAction} from '../../interfaces/action.interface';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {Router} from '@angular/router';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {ActionService} from '../../action-service/action.service';\r\nimport {DmsObject, ClipboardAction, ClipboardService, CapabilitiesService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-copy-action',\r\n  template: ``\r\n})\r\nexport class CopyActionComponent extends DmsObjectTarget implements SimpleAction {\r\n  label: string;\r\n  description: string;\r\n  priority = 3;\r\n  iconSrc = 'assets/_default/svg/ic_content-copy.svg';\r\n  group = 'common';\r\n  range = SelectionRange.MULTI_SELECT;\r\n\r\n  constructor(private capabilityService: CapabilitiesService,\r\n              private router: Router,\r\n              private clipboard: ClipboardService,\r\n              private translate: TranslateService,\r\n              private actionService: ActionService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.menu.clipboard.copy.label');\r\n    this.description = this.translate.instant('eo.action.menu.clipboard.copy.description');\r\n  }\r\n\r\n  isExecutable(item: DmsObject): Observable<boolean> {\r\n    const isAllowedType = this.actionService.isAllowedType([item], ['sysemail']);\r\n    return observableOf(this.isAllowedState() && isAllowedType && this.capabilityService.getCapabilities().intray);\r\n  };\r\n\r\n  run(selection: DmsObject[]) {\r\n    this.clipboard.set(selection, ClipboardAction.COPY);\r\n  }\r\n\r\n  isAllowedState(): boolean {\r\n    const disabledStates = ['/versions'];\r\n    return !disabledStates.some(s => this.router.url.startsWith(s));\r\n  }\r\n}\r\n","\r\nimport {of as observableOf, Observable, of} from 'rxjs';\r\nimport {LinkAction} from '../../interfaces/action.interface';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {Router} from '@angular/router';\r\nimport {DmsObject} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-open-context-action',\r\n  template: ``\r\n})\r\nexport class OpenContextActionComponent extends DmsObjectTarget implements LinkAction {\r\n  label: string;\r\n  description: string;\r\n  priority = 3.5;\r\n  iconSrc = 'assets/_default/svg/ic_context.svg';\r\n  group = 'common';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n\r\n  constructor(private translate: TranslateService, private router: Router) {\r\n    super();\r\n    this.label = this.translate.instant('eo.shortcuts.action.open.context');\r\n    this.description = this.translate.instant('eo.shortcuts.action.open.context.description');\r\n  }\r\n\r\n  isExecutable(item: DmsObject): Observable<boolean> {\r\n    const isExecutable = this.isNotAlreadyOpened(item.id);\r\n    return of(isExecutable);\r\n  }\r\n\r\n  getParams(selection: DmsObject[]): { type: string } {\r\n    const item = selection[0];\r\n    return {type: item.typeName};\r\n  }\r\n\r\n  getLink(selection: DmsObject[]): string {\r\n    const {id, isContextFolder, contextFolder} = selection[0];\r\n    if (isContextFolder || !contextFolder) {\r\n      this.label = this.translate.instant('eo.shortcuts.aside.action.open');\r\n    }\r\n    return `/object/${id}`;\r\n  }\r\n\r\n  isFolder(item: DmsObject): boolean {\r\n    return item.isFolder;\r\n  }\r\n\r\n  isNotInObjectState(): boolean {\r\n    const disabledStates = ['/object'];\r\n    return !disabledStates.some(s => this.router.url.includes(s));\r\n  }\r\n\r\n  isNotAlreadyOpened(id: string): boolean {\r\n    const disabledStates = ['/object/' + id];\r\n    return !disabledStates.some(s => this.router.url.includes(s));\r\n  }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output } from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {DmsObject, BackendService} from '@eo-sdk/core';\r\nimport {ActionComponent} from '../../../interfaces/action-component.interface';\r\n\r\n@Component({\r\n  selector: 'eo-download-object-action',\r\n  templateUrl: './download-object-action.component.html',\r\n  styleUrls: ['./download-object-action.component.scss']\r\n})\r\nexport class DownloadObjectActionComponent implements ActionComponent, AfterViewInit {\r\n\r\n  @Input() selection: DmsObject[];\r\n  @Output() finished: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() canceled: EventEmitter<any> = new EventEmitter<any>();\r\n  actionDescription: string;\r\n  showDescriptionOrginal: boolean;\r\n  showDescriptionPdf: boolean;\r\n\r\n  constructor(private backend: BackendService,\r\n              private router: Router,\r\n              private elemRef: ElementRef) {}\r\n\r\n  ngAfterViewInit(): void {\r\n    setTimeout(() => {\r\n      this.elemRef.nativeElement.querySelector('[tabindex=\"0\"]').focus();\r\n    });\r\n  }\r\n\r\n  run() {\r\n    const isVersionState = this.router.url.startsWith('/versions');\r\n    this.backend.downloadContent(this.selection, null, isVersionState);\r\n    this.finished.emit();\r\n  }\r\n\r\n  runPdf() {\r\n    const isVersionState = this.router.url.startsWith('/versions');\r\n    this.backend.downloadContent(this.selection, 'PDF', isVersionState);\r\n    this.finished.emit();\r\n  }\r\n\r\n  showDescription(i, event) {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n    this.actionDescription = i === this.actionDescription ? null : i;\r\n    this.showDescriptionOrginal = this.actionDescription != null && this.actionDescription == 'original' ? true : false;\r\n    this.showDescriptionPdf = this.actionDescription != null  && this.actionDescription == 'pdf' ? true : false;\r\n  }\r\n\r\n  allowedItemType(contents) {\r\n    return !!contents && contents.length && (!contents[0].mimegroup || !contents[0].mimegroup.match(/^audio|^video/));\r\n  }\r\n  \r\n  cancel() {\r\n    this.canceled.emit();\r\n  }\r\n \r\n}","<div class=\"body\" eoTrapFocus>\r\n    <div class=\"navigation\">\r\n        <div class=\"group-title\" translate>eo.export.title</div>\r\n        <div class=\"nav-item\">\r\n            <a tabindex=\"0\" (keydown.enter)=\"run()\" (click)=\"run()\">{{'eo.export.action.original.label' |\r\n                translate}}</a>\r\n            <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\r\n                (click)=\"showDescription('original', $event)\"></eo-icon>\r\n            <div class=\"description\" *ngIf=\"showDescriptionOrginal\" translate>eo.export.action.original.description\r\n            </div>\r\n        </div>\r\n        <div class=\"nav-item\">\r\n            <a tabindex=\"0\" (keydown.enter)=\"runPdf()\" (click)=\"runPdf()\">{{'eo.export.action.pdf.label' |\r\n                translate}}</a>\r\n            <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\r\n                (click)=\"showDescription('pdf', $event)\"></eo-icon>\r\n            <div class=\"description\" *ngIf=\"showDescriptionPdf\" translate>eo.export.action.pdf.description </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"form-buttons\">\r\n        <button (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\r\n    </div>\r\n</div>","\r\nimport {of as observableOf} from 'rxjs';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {ComponentAction} from '../../interfaces/action.interface';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {DmsObject} from '@eo-sdk/core';\r\nimport {DownloadObjectActionComponent} from './download-object-action/download-object-action.component';\r\n\r\n@Component({\r\n  selector: 'eo-download-content',\r\n  template: ``\r\n})\r\nexport class DownloadActionComponent extends DmsObjectTarget implements  ComponentAction {\r\n  header: string;\r\n  label: string;\r\n  description: string;\r\n  priority = 2;\r\n  iconSrc = 'assets/_default/svg/ic_content-download.svg';\r\n  group = 'common';\r\n  range = SelectionRange.MULTI_SELECT;\r\n  component = DownloadObjectActionComponent;\r\n\r\n  constructor(private translate: TranslateService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.download.dms.object.content.label');\r\n    this.description = this.translate.instant('eo.action.download.dms.object.content.description');\r\n    this.header = this.translate.instant('eo.export.title');\r\n  }\r\n\r\n  isExecutable(element: DmsObject) {\r\n    return observableOf(!!element.content?.id);\r\n  }\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {ActionComponent} from '../../interfaces/action-component.interface';\r\nimport {AgentService} from '../../../../eo-framework-core/agent/agent.service';\r\nimport {ObjectFormHelperService} from '../../../object-form/object-form-helper.service';\r\nimport {UserService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-open-document',\r\n  templateUrl: './open-document-action.component.html',\r\n  styleUrls: ['./open-document-action.component.scss']\r\n})\r\nexport class OpenDocumentComponent implements OnInit, ActionComponent {\r\n\r\n  checkout: any;\r\n\r\n  @Input() selection: any[];\r\n  @Output() finished: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() canceled: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  constructor(private userService: UserService, private agentService: AgentService, private translate: TranslateService, private objectFormHelperService: ObjectFormHelperService) {\r\n    const checkoutLabel = translate.instant('eo.checkout.save');\r\n    this.checkout = objectFormHelperService.elementToFormControl({\r\n      label: checkoutLabel,\r\n      name: 'checkbox',\r\n      type: 'BOOLEAN',\r\n      required: true,\r\n      classic: true,\r\n      value: false\r\n    });\r\n  }\r\n\r\n  ngOnInit() {\r\n    let agentAlwayslock = this.userService.getCurrentUser().userSettings.alwayslock;\r\n    if ((agentAlwayslock && agentAlwayslock === 'never') || this.selection[0].lock) {\r\n      this.agentService.openDocument(this.selection[0], false);\r\n      setTimeout(() => {\r\n        this.finished.emit();\r\n      }, 0);\r\n    } else if (agentAlwayslock && agentAlwayslock === 'always') {\r\n      this.agentService.openDocument(this.selection[0], true);\r\n      setTimeout(() => {\r\n        this.finished.emit();\r\n      }, 0);\r\n    }\r\n  }\r\n\r\n  edit(lock) {\r\n    if (this.checkout.controls.checkbox.value) {\r\n      if (lock) {\r\n        this.userService.changeLockSetting('always').subscribe();\r\n      } else {\r\n        this.userService.changeLockSetting('never').subscribe();\r\n      }\r\n    }\r\n    this.agentService.openDocument(this.selection[0], lock);\r\n    this.finished.emit();\r\n  }\r\n\r\n  cancel() {\r\n    this.finished.emit();\r\n  }\r\n\r\n}\r\n","<div class=\"eo-checkout\">\r\n\r\n  <h2>{{'eo.checkout.message'|translate}}</h2>\r\n\r\n  <div>\r\n    <eo-form-element [element]=\"checkout\"></eo-form-element>\r\n    <div class=\"form-buttons\">\r\n      <button class=\"secondary\" (click)=\"cancel()\">{{'eo.cta.button.cancel'|translate}}</button>\r\n      <button class=\"primary\" (click)=\"edit(true)\">{{'eo.checkout.yes'|translate}}</button>\r\n      <button class=\"primary\" (click)=\"edit(false)\">{{'eo.checkout.no'|translate}}</button>\r\n    </div>\r\n  </div>\r\n</div>\r\n\r\n","import {Component} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {OpenDocumentComponent} from './open-document-action.component';\r\nimport {ComponentAction} from '../../interfaces/action.interface';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {AgentService} from '../../../../eo-framework-core/agent/agent.service';\r\nimport {Observable, of} from 'rxjs';\r\nimport {DmsObject} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-open-document-action',\r\n  template: ``\r\n})\r\nexport class OpenDocumentActionComponent extends DmsObjectTarget implements ComponentAction {\r\n\r\n  label: string;\r\n  description: string;\r\n  iconSrc = 'assets/_default/svg/ic_edit.svg';\r\n  priority = 1;\r\n  group = 'common';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n\r\n  component = OpenDocumentComponent;\r\n\r\n  constructor(private translate: TranslateService, private agentService: AgentService, private router: Router) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.menu.edit.document.label');\r\n    this.description = this.translate.instant('eo.action.menu.edit.document.description');\r\n  }\r\n\r\n  isExecutable(item: DmsObject): Observable<boolean> {\r\n    const {isFinalized, content, rights, lock} = item;\r\n    const itemConditions = (item && (isFinalized || !(content && content.count) || content.count === 0 || !rights.edit || (lock && lock.by.other)));\r\n    const isExecutable = this.agentService.isConnected && this.isAllowedState() && !itemConditions;\r\n    return of(isExecutable);\r\n  }\r\n\r\n  isAllowedState() {\r\n    const disabledStates = ['/versions'];\r\n    return !disabledStates.some(s => this.router.url.includes(s));\r\n  }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {TreeNodeComponent} from './tree-node/tree-node.component';\r\nimport {TreeComponent} from './tree.component';\r\nimport {UiModule} from '../ui/ui.module';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    UiModule\r\n  ],\r\n  exports: [TreeComponent],\r\n  declarations: [TreeComponent, TreeNodeComponent]\r\n})\r\nexport class TreeModule {\r\n}\r\n","import {Directive, Input, HostListener} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[eoYearRange]'\r\n})\r\nexport class YearRangeDirective {\r\n\r\n  private _selectedYear: string;\r\n  @Input() rangeMin = 0;\r\n  @Input() rangeMax = 9999;\r\n\r\n  @HostListener('input', ['$event'])\r\n  onKeyDown(event: KeyboardEvent) {\r\n    const input = event.target as HTMLInputElement;\r\n    const year = +input.value;\r\n\r\n    if (year && year < this.rangeMin) {\r\n      input.value = '' + this.rangeMin;\r\n    } else if (year && year > this.rangeMax) {\r\n      input.value = input.value.slice(0, -1);\r\n    } else {\r\n      this.selectedYear = `${year}`;\r\n      input.value = this.selectedYear;\r\n    }\r\n  }\r\n\r\n  set selectedYear(year: string) {\r\n    this._selectedYear = year;\r\n  }\r\n\r\n  get selectedYear() {\r\n    return this._selectedYear;\r\n  }\r\n\r\n  constructor() {\r\n  }\r\n}\r\n","import {Component, Input, Output, EventEmitter} from '@angular/core';\r\nimport {UntypedFormGroup} from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'eo-password',\r\n  templateUrl: './password.component.html',\r\n  styleUrls: ['./password.component.scss']\r\n})\r\nexport class PasswordComponent {\r\n\r\n  showPassword = false;\r\n  @Input() pattern = '';\r\n  @Input() parent: UntypedFormGroup;\r\n  @Input() element: string;\r\n  @Input() placeholder = '';\r\n  @Input() canChangepasswordVisiblety: boolean;\r\n  @Input() set passwordVisible(val: boolean) {\r\n    this.showPassword = val;\r\n  }\r\n}\r\n\r\n","<section [formGroup]=\"parent\" class=\"password-input\">\r\n  <input  class=\"\"\r\n          autocomplete=\"off\"\r\n          [type]=\"showPassword ? 'text' : 'password'\"\r\n          [pattern]=\"pattern\"\r\n          [placeholder]=\"placeholder\"\r\n          autocomplete=\"new-password\"\r\n          formControlName=\"{{element}}\">\r\n\r\n  <a *ngIf=\"canChangepasswordVisiblety\" (click)=\"showPassword = !showPassword\">\r\n    <eo-icon class=\"password-input__icon-show\"\r\n             [iconSrc]=\"'assets/_default/svg/ic_eye.svg'\"\r\n             [iconTitle]=\"('eo.password.reset.toogle.icon' | translate)\"\r\n             [ngClass]=\"{'visible': showPassword}\"></eo-icon>\r\n  </a>\r\n</section>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { YvcAutocompleteModule } from '@yuuvis/components/autocomplete';\r\nimport { YvcCheckboxModule } from '@yuuvis/components/checkbox';\r\nimport { YvcChipsModule } from '@yuuvis/components/chips';\r\nimport { YvcDatepickerModule } from '@yuuvis/components/datepicker';\r\nimport { YvcDropdownModule } from '@yuuvis/components/dropdown';\r\nimport { YvcIconModule } from '@yuuvis/components/icon';\r\n\r\nimport { AccordionModule } from '../accordion/accordion.module';\r\nimport { TreeModule } from '../tree/tree.module';\r\nimport { UiModule } from '../ui/ui.module';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { CodesystemComponent } from './codesystem/codesystem.component';\r\nimport { DateComponent } from './date/date.component';\r\nimport { DatetimeRangeComponent } from './datetime-range/datetime-range.component';\r\nimport { YearRangeDirective } from './date/year-range/year-range.directive';\r\nimport { DynamicListComponent } from './dynamic-list/dynamic-list.component';\r\nimport { FormInputComponent } from './form-input/form-input.component';\r\nimport { InputFocusDirective } from './form-input/input-focus/input-focus.directive';\r\nimport { IdReferenceComponent } from './id-reference/id-reference.component';\r\nimport { ReferenceFinderEntryComponent } from './id-reference/reference-finder-entry/reference-finder-entry.component';\r\nimport { ReferenceFinderComponent } from './id-reference/reference-finder/reference-finder.component';\r\nimport { NumberRangeComponent } from './number-range/number-range.component';\r\nimport { NumberComponent } from './number/number.component';\r\nimport { OrganizationComponent } from './organization/organization.component';\r\nimport { PasswordComponent } from './password/password.component';\r\nimport { ReferenceComponent } from './reference/reference.component';\r\nimport { StringComponent } from './string/string.component';\r\n\r\n@NgModule({\r\n  imports: [\r\n    YvcIconModule,\r\n    CommonModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    UiModule,\r\n    TreeModule,\r\n    // InputTextModule,\r\n    // DialogModule,\r\n    // InputMaskModule,\r\n    // CheckboxModule,\r\n    // TriStateCheckboxModule,\r\n    // InputTextareaModule,\r\n    // ChipsModule,\r\n    // DropdownModule,\r\n    RouterModule,\r\n    // SharedModule,\r\n    AccordionModule,\r\n    YvcChipsModule,\r\n    YvcCheckboxModule,\r\n    YvcAutocompleteModule,\r\n    YvcDropdownModule,\r\n    YvcDatepickerModule\r\n  ],\r\n  declarations: [\r\n    FormInputComponent,\r\n    CodesystemComponent,\r\n    DatetimeRangeComponent,\r\n    NumberComponent,\r\n    NumberRangeComponent,\r\n    OrganizationComponent,\r\n    CheckboxComponent,\r\n    StringComponent,\r\n    ReferenceComponent,\r\n    DynamicListComponent,\r\n    InputFocusDirective,\r\n    PasswordComponent,\r\n    IdReferenceComponent,\r\n    YearRangeDirective,\r\n    ReferenceFinderComponent,\r\n    ReferenceFinderEntryComponent,\r\n    DateComponent\r\n  ],\r\n  exports: [\r\n    FormInputComponent,\r\n    CodesystemComponent,\r\n    DateComponent,\r\n    DatetimeRangeComponent,\r\n    NumberComponent,\r\n    NumberRangeComponent,\r\n    OrganizationComponent,\r\n    CheckboxComponent,\r\n    StringComponent,\r\n    ReferenceComponent,\r\n    DynamicListComponent,\r\n    PasswordComponent,\r\n    IdReferenceComponent,\r\n    YearRangeDirective\r\n  ]\r\n})\r\nexport class FormElementsModule { }\r\n","\r\nimport {Component, ViewChild} from '@angular/core';\r\nimport {CodesystemComponent} from '../../form-elements/codesystem/codesystem.component';\r\nimport {IFilterAngularComp} from '@ag-grid-community/angular';\r\nimport {IAfterGuiAttachedParams, IDoesFilterPassParams} from '@ag-grid-community/core';\r\nimport {EnaioEvent, SystemService, EventService} from '@eo-sdk/core';\r\nimport {EoDialogComponent} from '../../ui/eo-dialog/eo-dialog.component';\r\nimport {TranslateService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-codesystem-filter',\r\n  templateUrl: '../../form-elements/codesystem/codesystem.component.html',\r\n  styleUrls: ['../../form-elements/codesystem/codesystem.component.scss']\r\n})\r\nexport class CodesystemFilterComponent extends CodesystemComponent implements IFilterAngularComp {\r\n  params: any = {};\r\n  column: any;\r\n  multiselect = true;\r\n  situation = 'SEARCH';\r\n\r\n  @ViewChild(EoDialogComponent) eoDialog: EoDialogComponent;\r\n\r\n  constructor(systemService: SystemService, translate: TranslateService, private eventService: EventService) {\r\n    super(systemService);\r\n    this.placeholder = translate.instant('eo.filter.input.placeholder');\r\n  }\r\n\r\n  onValueChange() {\r\n    if (!this.params.filterParams || !this.params.filterParams.applyButton) {\r\n      this.params.api.onFilterChanged();\r\n      // TODO: still necessary?\r\n      // setTimeout(() => {\r\n      //   this.autoCompleteButton.nativeElement.style.top = this.autoCompleteInput.multiInputEL.nativeElement.offsetTop + 'px';\r\n      // }, 0);\r\n    }\r\n  }\r\n\r\n  onAutoCompleteSelect(node) {\r\n    super.onAutoCompleteSelect(node);\r\n    this.onValueChange();\r\n  }\r\n\r\n  onAutoCompleteUnselect(node) {\r\n    super.onAutoCompleteUnselect(node);\r\n    this.onValueChange();\r\n  }\r\n\r\n  onTreeSelectionChanged(evt) {\r\n    super.onTreeSelectionChanged(evt);\r\n    this.onValueChange();\r\n  }\r\n\r\n  isFilterActive() {\r\n    return !!(this.value && this.value.length);\r\n  }\r\n\r\n  doesFilterPass(params: IDoesFilterPassParams) {\r\n    if (this.selectedNodes && this.selectedNodes.length) {\r\n      const value = params.data[this.params.colDef.field];\r\n      return (Array.isArray(value) ? value : [value])\r\n        .some(val => !!~this.selectedNodes.map(v => v.name).indexOf(val));\r\n    }\r\n    return false;\r\n  }\r\n\r\n  getModel() {\r\n    return this.value && this.value.length ? {\r\n      filterType: 'CodesystemFilterComponent',\r\n      filter: this.value\r\n    } : null;\r\n  }\r\n\r\n  setModel(value: any) {\r\n    this.writeValue(value);\r\n  }\r\n\r\n  agInit(params: any) {\r\n    this.params = params;\r\n    this.codesystem = this._getCodesystemByQname(this.params.colDef.refData.qname);\r\n    this.pickerTitle = this.params.colDef.headerName;\r\n  }\r\n\r\n  afterGuiAttached(params: IAfterGuiAttachedParams): void {\r\n    // TODO: still necessary?\r\n    // this.autoCompleteInput.multiInputEL.nativeElement.focus();\r\n  }\r\n}\r\n","import {Component, ViewChild} from '@angular/core';\r\nimport {IDateAngularComp} from '@ag-grid-community/angular';\r\nimport {EoDialogComponent} from '../../ui/eo-dialog/eo-dialog.component';\r\nimport {EnaioEvent, EventService} from '@eo-sdk/core';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {IAfterGuiAttachedParams, IFilterParams, PopupService} from '@ag-grid-community/core';\r\nimport {DateComponent} from '../../form-elements/date/date.component';\r\n\r\nconst isEventFromCurrentPopup = PopupService.prototype['isEventFromCurrentPopup'];\r\nPopupService.prototype['isEventFromCurrentPopup'] = function(params: any, target: HTMLElement) {\r\n  // prevent filter popup closing when datepicker or tree is opened\r\n  return document.querySelector('yvc-overlay yvc-datepicker-calendar, yvc-overlay eo-tree') ? true : isEventFromCurrentPopup.call(this, params, target);\r\n}\r\n\r\n\r\n@Component({\r\n  selector: 'eo-datetime-custom',\r\n  templateUrl: '../../form-elements/date/date.component.html',\r\n  styleUrls: ['../../form-elements/date/date.component.scss']\r\n})\r\nexport class DatetimeFilterComponent extends DateComponent implements IDateAngularComp {\r\n\r\n  params: any = {};\r\n  column: any;\r\n  filterParams: IFilterParams;\r\n\r\n  @ViewChild(EoDialogComponent) eoDialog: EoDialogComponent;\r\n\r\n  constructor(translate: TranslateService, private eventService: EventService) {\r\n    super(translate);\r\n  }\r\n\r\n  onValueChange(e: any) {\r\n    this.params.onDateChanged();\r\n  }\r\n\r\n  setDate(value) {\r\n    this.writeValue(value);\r\n  }\r\n\r\n  getDate() {\r\n    return this.value ? this.value : null;\r\n  }\r\n\r\n  agInit(params: any): void {\r\n    this.params = params;\r\n    this.filterParams = params.filterParams;\r\n    this.withTime = this.filterParams['withTime'];\r\n    // this.pickerTitle = this.filterParams.colDef.headerName;\r\n\r\n  }\r\n\r\n  afterGuiAttached(params: IAfterGuiAttachedParams): void {\r\n    // this.inputMask.el.nativeElement.focus();\r\n  }\r\n}\r\n","import { IFilterAngularComp } from '@ag-grid-community/angular';\r\nimport { IAfterGuiAttachedParams, IDoesFilterPassParams } from '@ag-grid-community/core';\r\nimport { Component, ViewChild } from '@angular/core';\r\nimport { EventService, TranslateService } from '@eo-sdk/core';\r\nimport { DynamicListComponent } from '../../form-elements/dynamic-list/dynamic-list.component';\r\nimport { EoDialogComponent } from '../../ui/eo-dialog/eo-dialog.component';\r\n\r\n\r\n@Component({\r\n  selector: 'eo-dynamic-list-filter',\r\n  templateUrl: '../../form-elements/dynamic-list/dynamic-list.component.html',\r\n  styleUrls: ['../../form-elements/dynamic-list/dynamic-list.component.scss']\r\n})\r\nexport class DynamicListFilterComponent extends DynamicListComponent implements IFilterAngularComp {\r\n  params: any = {};\r\n  column: any;\r\n  multiselect = true;\r\n  situation = 'SEARCH';\r\n\r\n  @ViewChild(EoDialogComponent) eoDialog: EoDialogComponent;\r\n\r\n  constructor(translate: TranslateService, private eventService: EventService) {\r\n    super();\r\n  }\r\n\r\n  onValueChange() {\r\n    if (!this.params.filterParams || !this.params.filterParams.applyButton) {\r\n      this.params.api.onFilterChanged();\r\n      // TODO: still necessary?\r\n      // setTimeout(() => {\r\n      //   this.autoCompleteButton.nativeElement.style.top = this.autoCompleteInput.multiInputEL.nativeElement.offsetTop + 'px';\r\n      // }, 0);\r\n    }\r\n  }\r\n\r\n  onAutoCompleteSelect(node) {\r\n    super.onAutoCompleteSelect(node);\r\n    this.onValueChange();\r\n  }\r\n\r\n  onAutoCompleteUnselect(node) {\r\n    super.onAutoCompleteUnselect(node);\r\n    this.onValueChange();\r\n  }\r\n\r\n  onTreeSelectionChanged(evt) {\r\n    super.onTreeSelectionChanged(evt);\r\n    this.onValueChange();\r\n  }\r\n\r\n  isFilterActive() {\r\n    return !!(this.value && this.value.length);\r\n  }\r\n\r\n  doesFilterPass(params: IDoesFilterPassParams) {\r\n    if (this.selectedNodes && this.selectedNodes.length) {\r\n      const value = params.data[this.params.colDef.field];\r\n      return (Array.isArray(value) ? value : [value])\r\n        .some(val => !!~this.selectedNodes.map(v => v.name).indexOf(val));\r\n    }\r\n    return false;\r\n  }\r\n\r\n  getModel() {\r\n    return this.value && this.value.length ? {\r\n      filterType: 'DynamicListFilterComponent',\r\n      filter: this.value\r\n    } : null;\r\n  }\r\n\r\n  setModel(value: any) {\r\n    this.writeValue(value);\r\n  }\r\n\r\n  agInit(params: any) {\r\n    this.params = params;\r\n    this.listObject = {entries: (this.params.colDef.filterParams.values || []).map(value => ({value}))};\r\n    this.pickerTitle = this.params.colDef.headerName;\r\n\r\n  }\r\n\r\n  afterGuiAttached(params: IAfterGuiAttachedParams): void {\r\n    // this.autoCompleteInput.multiInputEL.nativeElement.focus();\r\n  }\r\n}\r\n","import { Input, ViewChild, ViewContainerRef, Injectable } from '@angular/core';\r\n\r\nimport {IAfterGuiAttachedParams, IDoesFilterPassParams, IFilterParams, IRowNode, RowNode, ValueGetterFunc} from '@ag-grid-community/core';\r\nimport {IFilterAngularComp} from '@ag-grid-community/angular';\r\n\r\n@Injectable()\r\nexport abstract class AbstractFilterComponent implements IFilterAngularComp {\r\n  params: IFilterParams;\r\n  valueGetter: (params: any) => any;\r\n  public value: any;\r\n\r\n  @ViewChild('input', {read: ViewContainerRef}) public input;\r\n\r\n  @Input() id = '#filter';\r\n\r\n  @Input()\r\n  set filterParams(params: IFilterParams) {\r\n    this.params = Object.assign({}, this.params, params);\r\n    if (this.defaultValue) {\r\n      setTimeout(() => this.onChange(this.defaultValue), 0);\r\n    }\r\n  }\r\n  get filterParams() {\r\n    return this.params;\r\n  }\r\n\r\n  get defaultValue() {\r\n    return this.params && this.params.context && this.params.context.defaultValue;\r\n  }\r\n\r\n  onChange(newValue, oldValue?): void {\r\n    if (this.value !== newValue) {\r\n      this.value = newValue;\r\n      this.params.filterChangedCallback();\r\n    }\r\n  }\r\n\r\n  agInit(params: IFilterParams): void {\r\n    if (!this.valueGetter) {\r\n      this.valueGetter = params.valueGetter as any;\r\n    }\r\n    this.filterParams = params;\r\n  }\r\n\r\n  reset() {\r\n    this.value = null;\r\n  }\r\n\r\n  isFilterActive(): boolean {\r\n    return this.value !== null && this.value !== undefined && this.value.length;\r\n  }\r\n\r\n  doesExternalFilterPass(rowNode: IRowNode): boolean {\r\n    return true;\r\n  }\r\n\r\n  doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n    return this.doesExternalFilterPass(params.node);\r\n  }\r\n\r\n  getModel(): any {\r\n    return {value: this.value};\r\n  }\r\n\r\n  setModel(model: any): void {\r\n    this.value = model ? model.value : '';\r\n  }\r\n\r\n  afterGuiAttached(params: IAfterGuiAttachedParams): void {\r\n    this.input.element.nativeElement.focus();\r\n  }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {LocalStorageService} from '@eo-sdk/core';\r\nimport {UtilitiesService} from '../../../util/services/utilities.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ListSettingsService {\r\n  constructor(private storageService: LocalStorageService) {\r\n  }\r\n\r\n  get prefix(): string {\r\n    return 'eo.list.settings.';\r\n  }\r\n\r\n  setupSettings(id: string, options: any[], idKey = 'id', valueKey = 'value') {\r\n    const storedSettings = this.storageService.getItem(this.prefix + id);\r\n    if (storedSettings) {\r\n      (options || []).forEach(o => o[valueKey] = storedSettings.hasOwnProperty(o[idKey]) ? storedSettings[o[idKey]] : o[valueKey]);\r\n    }\r\n    return options || [];\r\n  }\r\n\r\n  saveSettings(id: string, options?: any, idKey = 'id', valueKey = 'value') {\r\n    if (!UtilitiesService.isEmpty(options)) {\r\n      this.storageService.setItem(this.prefix + id, !Array.isArray(options) ? options : options.reduce((obj, o) => {\r\n        obj[o[idKey]] = o[valueKey];\r\n        return obj;\r\n      }, {}));\r\n    } else {\r\n      this.storageService.removeItem(this.prefix + id);\r\n    }\r\n  }\r\n\r\n  clearSettings() {\r\n    this.storageService.clear((key: string) => key.startsWith(this.prefix));\r\n  }\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {IFilterParams, RowNode} from '@ag-grid-community/core';\r\nimport {Utils} from '@eo-sdk/core';\r\nimport {AbstractFilterComponent} from '../abstract-filter.component';\r\nimport {ListSettingsService} from '../../services/list-settings.service';\r\n\r\n// @dynamic\r\n@Component({\r\n  selector: 'eo-set-filter',\r\n  templateUrl: `./set-filter.component.html`,\r\n  styleUrls: ['./set-filter.component.scss']\r\n})\r\nexport class SetFilterComponent extends AbstractFilterComponent {\r\n\r\n  private _options: any[] = [];\r\n  @Input() title = '';\r\n  @Input() searchLimit = 10;\r\n  @Input() operator = 'OR'; // AND | OR\r\n\r\n  @Input() set options(opts: any[]) {\r\n    this._options = this.defaultValue ? opts || [] : this.settingsService.setupSettings(this.id, opts);\r\n    if (this.options && this.params && this.isFilterActive()) {\r\n      setTimeout(() => this.params.filterChangedCallback(), 0);\r\n    }\r\n  }\r\n\r\n  @Input() set filterParams(params: IFilterParams) {\r\n    super.filterParams = params;\r\n  }\r\n\r\n  get options() {\r\n    return this._options;\r\n  }\r\n\r\n  constructor(private settingsService: ListSettingsService) {\r\n    super();\r\n    this.id = '#set';\r\n  }\r\n\r\n  static uniqBy(list: any[], prop: string, options: any[]) {\r\n    const u = {};\r\n    list.forEach(a => u[Utils.getProperty(a, prop)] = true);\r\n    return options.filter(t => u[t.qname]);\r\n  }\r\n\r\n  static uniqByProperty<T>(arr: Array<T>, prop: string): Array<T> {\r\n    return arr.filter((element, index, array) => array.map(a => Utils.getProperty(a, prop)).indexOf(Utils.getProperty(element, prop)) === index);\r\n  }\r\n\r\n  doesExternalFilterPass(rowNode: RowNode): boolean {\r\n    return this.operator !== 'OR' ? this.options.every(opt => !opt.value || opt.filter(rowNode)) : this.options.some(opt => opt.value ? opt.filter(rowNode) : false);\r\n  }\r\n\r\n  isFilterActive(): boolean {\r\n    return this.options.some(f => this.operator !== 'OR' ? f.value : !f.value);\r\n  }\r\n\r\n  onChange(newValue: any, item?: any): void {\r\n    if (item) {\r\n      item.value = newValue;\r\n    }\r\n    if (!this.defaultValue) {\r\n      this.settingsService.saveSettings(this.id, this.options);\r\n    }\r\n    this.params.filterChangedCallback();\r\n  }\r\n\r\n  onSearchChange(newValue: any): void {\r\n    const parse = html => (new DOMParser).parseFromString(html, 'text/html').documentElement.textContent;\r\n    this.options.forEach(o => (o.hidden = newValue.trim() ? !parse(o.label).toLowerCase().match(newValue.trim().toLowerCase()) : false));\r\n  }\r\n\r\n  reset() {\r\n    this.settingsService.saveSettings(this.id);\r\n    this.options.forEach(o => (o.value = this.operator === 'OR'));\r\n  }\r\n\r\n}\r\n","<header class=\"filter__header\">\r\n  <h3 class=\"filter__title title\" *ngIf=\"title\">{{title}}</h3>\r\n  <input *ngIf=\"options?.length > searchLimit\" #input (ngModelChange)=\"onSearchChange($event)\" [ngModel]=\"''\"\r\n    class=\"form-control\" placeholder=\"{{ 'eo.resultlist.grid.searchOoo' | translate}}\">\r\n</header>\r\n<div class=\"option flex-row\" *ngFor=\"let item of options\" [hidden]=\"item.hidden\">\r\n  <eo-checkbox (ngModelChange)=\"onChange($event, item)\" [ngModel]=\"item.value\" [tristate]=\"false\"></eo-checkbox>\r\n  <label [title]=\"item.label\" [innerHTML]=\"item.label | safeHtml\"></label>\r\n</div>\r\n","import {Component} from '@angular/core';\r\nimport {GridService} from './../../../eo-framework-core/api/grid.service';\r\nimport {IFilterAngularComp} from '@ag-grid-community/angular';\r\nimport {IAfterGuiAttachedParams, IDoesFilterPassParams} from '@ag-grid-community/core';\r\nimport {SetFilterComponent} from '../extensions/filter/setFilters/set-filter.component';\r\n\r\n@Component({\r\n  selector: 'eo-list-filter',\r\n  templateUrl: '../extensions/filter/setFilters/set-filter.component.html',\r\n  styleUrls: ['../extensions/filter/setFilters/set-filter.component.scss']\r\n})\r\nexport class ListFilterComponent extends SetFilterComponent implements IFilterAngularComp {\r\n  params: any = {};\r\n  operator = 'OR';\r\n\r\n  constructor(private gridApi: GridService) {\r\n    super(null);\r\n  }\r\n\r\n  onValueChange() {\r\n    this.value = this.isFilterActive() ? [''].concat(this.options.filter(o => o.value).map(o => o.val)) : null;\r\n    if (!this.params.filterParams || !this.params.filterParams.applyButton) {\r\n      this.params.api.onFilterChanged();\r\n    }\r\n  }\r\n\r\n  doesFilterPass(params: IDoesFilterPassParams) {\r\n    const value = params.data[this.params.colDef.field];\r\n    return this.options.some(opt => opt.value ? value === opt.val : false);\r\n  }\r\n\r\n  getModel() {\r\n    return this.value && this.value.length ? {\r\n      filterType: 'ListFilterComponent',\r\n      filter: this.value\r\n    } : null;\r\n  }\r\n\r\n  setModel(value: any) {\r\n    this.value = value;\r\n    (this.options || []).forEach(o => (o.value = this.value && this.value.length ? this.value.contains(o.val) : true));\r\n  }\r\n\r\n  agInit(params: any) {\r\n    this.params = params;\r\n    this.params.context = {defaultValue: true};\r\n    this.params.filterChangedCallback = () => this.onValueChange();\r\n    this.options = (this.params.colDef.filterParams.values || [])\r\n    .map(val => ({value: true, val, label: this.params.colDef.cellRenderer({value: val, context: this.gridApi.getContext()}) }));\r\n  }\r\n\r\n  afterGuiAttached(params: IAfterGuiAttachedParams): void {\r\n    // this.autoCompleteInput.multiInputEL.nativeElement.focus();\r\n  }\r\n}\r\n","import {Component} from '@angular/core';\r\nimport {OrganizationComponent} from '../../form-elements/organization/organization.component';\r\nimport {IFilterAngularComp} from '@ag-grid-community/angular';\r\nimport {IAfterGuiAttachedParams, IDoesFilterPassParams} from '@ag-grid-community/core';\r\nimport {SystemService, BackendService, UserService} from '@eo-sdk/core';\r\nimport {TranslateService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-organization-filter',\r\n  templateUrl: '../../form-elements/organization/organization.component.html',\r\n  styleUrls: ['../../form-elements/organization/organization.component.scss']\r\n})\r\nexport class OrganizationFilterComponent extends OrganizationComponent implements IFilterAngularComp {\r\n  params: any = {};\r\n  multiselect = true;\r\n\r\n  constructor(backend: BackendService, systemService: SystemService, translate: TranslateService, userService: UserService) {\r\n    super(backend, translate, systemService, userService);\r\n    this.placeholder = translate.instant('eo.filter.input.placeholder');\r\n  }\r\n\r\n  onValueChange() {\r\n    if (!this.params.filterParams || !this.params.filterParams.applyButton) {\r\n      this.params.api.onFilterChanged();\r\n    }\r\n  }\r\n\r\n  onSelect(value) {\r\n    super.onSelect(value);\r\n    this.onValueChange();\r\n  }\r\n\r\n  onUnselect(value) {\r\n    super.onUnselect(value);\r\n    this.onValueChange();\r\n  }\r\n\r\n  isFilterActive() {\r\n    return !!(this.value && this.value.length);\r\n  }\r\n\r\n  doesFilterPass(params: IDoesFilterPassParams) {\r\n    if (this.innerValue && this.innerValue.length) {\r\n      // todo: super hotfix - COOL-8989 - solves problem with resolving of ORGANIZATION value (via qname)\r\n      const value = params.data[this.params.colDef.field] || params.data[this.params.colDef.refData.qname];\r\n      return (Array.isArray(value) ? value : [value])\r\n        .some(val => !!~this.innerValue.map(v => v.title).indexOf(val));\r\n    }\r\n    return false;\r\n  }\r\n\r\n  getModel() {\r\n    return this.value && this.value.length ? {\r\n      filterType: 'OrganizationFilterComponent',\r\n      filter: this.value\r\n    } : null;\r\n  }\r\n\r\n  setModel(value: any) {\r\n    this.writeValue(value);\r\n  }\r\n\r\n  agInit(params: any) {\r\n    this.params = params;\r\n  }\r\n\r\n  afterGuiAttached(params: IAfterGuiAttachedParams): void {\r\n    // this.autoCompleteInput.multiInputEL.nativeElement.focus();\r\n  }\r\n}\r\n","import {ClientSideRowModelModule} from '@ag-grid-community/client-side-row-model';\r\nimport {CellPosition, ColDef, Column, GridApi, GridOptions, Module} from '@ag-grid-community/core';\r\nimport {Component, EventEmitter, HostListener, Input, Output, ViewChild, ViewEncapsulation} from '@angular/core';\r\nimport {debounceTime} from 'rxjs/operators';\r\nimport {Router} from '@angular/router';\r\nimport {EoUser, TranslateService, UserService} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {Subject} from 'rxjs';\r\nimport {GridService} from '../../eo-framework-core/api/grid.service';\r\nimport {PendingChangesService} from '../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {CodesystemFilterComponent} from './filters/codesystem-filter.component';\r\nimport {DatetimeFilterComponent} from './filters/datetime-filter.component';\r\nimport {DynamicListFilterComponent} from './filters/dynamic-list-filter.component';\r\nimport {ListFilterComponent} from './filters/list-filter.component';\r\nimport {OrganizationFilterComponent} from './filters/organization-filter.component';\r\nimport {ILoader} from './loader.interface';\r\nimport {AgGridAngular} from '@ag-grid-community/angular';\r\nimport {delay} from 'rxjs/operators';\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-grid',\r\n  templateUrl: './grid.component.html',\r\n  styleUrls: ['./grid.component.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class GridComponent {\r\n\r\n  public modules: Module[] = [ClientSideRowModelModule];\r\n  scrollPosition = 0;\r\n\r\n  overlayLoadingTemplate: string;\r\n  private components = {\r\n    agDateInput: DatetimeFilterComponent,\r\n    OrganizationFilterComponent: OrganizationFilterComponent,\r\n    CodesystemFilterComponent: CodesystemFilterComponent,\r\n    DynamicListFilterComponent: DynamicListFilterComponent,\r\n    ListFilterComponent: ListFilterComponent\r\n  };\r\n\r\n  private _gridOptions: GridOptions;\r\n  private _options: any = {};\r\n  private _gridCount: any = {};\r\n  private pinnedColumn: ColDef = {\r\n    headerName: '',\r\n    filter: false,\r\n    sortable: false,\r\n    resizable: false,\r\n    suppressMenu: true,\r\n    suppressMovable: true,\r\n    suppressNavigable: true,\r\n    suppressPaste: true,\r\n    suppressSizeToFit: true,\r\n    pinned: 'left',\r\n    width: 3,\r\n    maxWidth: 3,\r\n    field: '__selectionField',\r\n    valueGetter: () => ''\r\n  };\r\n\r\n  @ViewChild('agGrid') agGrid!: AgGridAngular;\r\n\r\n  @Output() eoGridCountChanged = new EventEmitter<any>();\r\n  @Output() eoGridSelectionChanged = new EventEmitter<any>();\r\n  @Output() eoGridFocusChanged = new EventEmitter<any>();\r\n  @Output() eoGridCellClick = new EventEmitter<any>();\r\n  @Output() eoGridDoubleClick = new EventEmitter<any>();\r\n  @Output() eoGridContextMenuClick = new EventEmitter<any>();\r\n  @Output() eoGridColumnResized = new EventEmitter<any>();\r\n\r\n  private colResizeDebouncer = new Subject();\r\n  private calculateDebouncer = new Subject();\r\n  private focusedRowID = '';\r\n\r\n  @Input() selectFirst = true;\r\n  @Input() selectionLimit: number;\r\n  @Input() sizeToFit = false;\r\n  @Input() fullWidth = false;\r\n  @Input() showHeader = false;\r\n  @Input() showFooter = false;\r\n  @Input() loaderContent: ILoader = {show: false, image: null, text: null};\r\n  @Input()\r\n  set options(options: any) {\r\n    this._options = options;\r\n  }\r\n\r\n  get options() {\r\n    return this._options;\r\n  }\r\n\r\n  @Input()\r\n  set gridOptions(gridOptions: GridOptions | any) {\r\n    const options = gridOptions?._gridOptions || gridOptions;\r\n    Object.assign(this._gridOptions, options, {\r\n      context: Object.assign(this._gridOptions.context, options.context),\r\n      columnDefs: options.columnDefs ? [this.pinnedColumn].concat(options.columnDefs) : null\r\n    });\r\n  }\r\n\r\n  get gridOptions() {\r\n    return this._gridOptions;\r\n  }\r\n\r\n  get contextCount() {\r\n    return typeof this.gridOptions.context.count === 'number' ? this.gridOptions.context.count : this.gridOptions.context.count.value;\r\n  }\r\n\r\n  get contextRelation() {\r\n    return typeof this.gridOptions.context.count === 'number' ? 'eq' : this.gridOptions.context.count.relation;\r\n  }\r\n\r\n  @HostListener('keydown.control.alt.shift.c', ['$event'])\r\n  @HostListener('keydown.control.shift.c', ['$event'])\r\n  @HostListener('keydown.control.alt.c', ['$event'])\r\n  @HostListener('keydown.control.c', ['$event'])\r\n  copyCellHandler(event: KeyboardEvent) {\r\n    this.gridApi.copyToClipboard(event, this.agGrid, this.gridOptions);\r\n  }\r\n\r\n  constructor(private translate: TranslateService,\r\n    private userService: UserService,\r\n    public gridApi: GridService,\r\n    private router: Router,\r\n    private pendingChanges: PendingChangesService\r\n  ) {\r\n\r\n    this._gridOptions = {\r\n      context: gridApi.getContext(),\r\n      animateRows: true,\r\n      headerHeight: 30,\r\n      rowHeight: 48,\r\n      rowBuffer: 20,\r\n      rowSelection: 'multiple',\r\n      multiSortKey: 'ctrl',\r\n      accentedSort: true,\r\n      suppressContextMenu: true,\r\n      suppressNoRowsOverlay: true,\r\n      overlayLoadingTemplate: ' ',\r\n      overlayNoRowsTemplate: ' ',\r\n      getRowId: (row) => row?.data?.id || row || null,\r\n      getLocaleText: ({key, defaultValue, variableValues}) => {\r\n        let gridKey = 'eo.resultlist.grid.' + key;\r\n        let value = translate.instant(gridKey, variableValues);\r\n        return ~value.indexOf(gridKey) ? defaultValue : value;\r\n      },\r\n      components: this.components,\r\n      /**\r\n       * Triggers horizontal scroll reset after sorting with a delay.\r\n       */\r\n      postSortRows: () => {\r\n        this.calculateDebouncer.pipe(\r\n          delay(750))\r\n          .subscribe(() => {\r\n            this.setHorizontalScrollPosition();\r\n          });\r\n      }\r\n    };\r\n\r\n    this.loadingMessage();\r\n    this.getUser();\r\n\r\n    this.pendingChanges.tasks$\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe((tasks) => this.api?.updateGridOptions({ suppressRowClickSelection: !!tasks.length, suppressCellFocus: !!tasks.length }));\r\n\r\n    this.colResizeDebouncer.pipe(\r\n      debounceTime(1000))\r\n      .subscribe(col => this.eoGridColumnResized.emit(col));\r\n\r\n    this.calculateDebouncer.pipe(\r\n      debounceTime(100))\r\n      .subscribe(() => this.calculateRowCount());\r\n  }\r\n\r\n  loadingMessage() {\r\n    let loaderContent = '';\r\n\r\n    if (this.loaderContent.show) {\r\n      if (this.loaderContent.image) {\r\n        loaderContent = `<span class=\"ag-overlay-loading-center\"><img [src]=\"${this.loaderContent.image}\" alt=\"loader image\"></span>`;\r\n      } else {\r\n        loaderContent = `<span class=\"ag-overlay-loading-center\">${this.translate.instant(this.loaderContent.text)}</span>`;\r\n      }\r\n    }\r\n    this.overlayLoadingTemplate = loaderContent;\r\n  }\r\n\r\n  private getUser() {\r\n    this.userService.user$.subscribe((user: EoUser) => {\r\n      (this.gridOptions || this._gridOptions).enableRtl = (user.uiDirection === 'rtl');\r\n      this.pinnedColumn.pinned = (user.uiDirection === 'rtl') ? 'right' : 'left';\r\n    });\r\n  }\r\n\r\n  private calculateRowCount() {\r\n    let rowCount = 0;\r\n    let totalCount = this.contextCount;\r\n    let rowIndex = this.gridOptions.context.rowIndex;\r\n    let selection = this.gridOptions.context.selection;\r\n\r\n    if (!this.api?.isDestroyed() && this.api?.getGridOption('rowData')) {\r\n      this.api.forEachNodeAfterFilter(n => n.group || rowCount++);\r\n    } else {\r\n      rowCount = this.gridOptions.context.rowCount || 0;\r\n    }\r\n    if (this.selectFirst && !this.api?.isDestroyed() && !this.api.getFocusedCell() && (rowIndex !== null || !this.focusedRowID)) {\r\n      setTimeout(() => this.selectRow(rowIndex || 0, selection), 200);\r\n    } else {\r\n      this.updateFocus();\r\n    }\r\n    this._gridCount = {totalCount, rowCount, relation: this.contextRelation};\r\n    this.eoGridCountChanged.emit(this._gridCount);\r\n  }\r\n\r\n  updateFocus(id = this.focusedRowID) {\r\n    if (!this.api?.isDestroyed()) {\r\n      const cell = this.api.getFocusedCell();\r\n      const row = this.api.getRowNode(id);\r\n      if (!this.options.filterActive && (cell && cell.rowIndex) !== (row && row.rowIndex)) {\r\n        if (row) {\r\n          this.api.setFocusedCell(row.rowIndex, (this.gridOptions.columnDefs[1] as ColDef).field);\r\n        } else {\r\n          this.api.clearFocusedCell();\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  onCellClicked($event) {\r\n\r\n    if ($event.rowIndex !== null) {\r\n      if (!$event.node.group && $event.data) {\r\n        if ($event.colDef.cellClass === 'router-link-cell') {\r\n          this.gridApi.openRouterLink($event.event, 'ag-row');\r\n        }\r\n\r\n        this.eoGridCellClick.emit($event);\r\n      }\r\n    }\r\n  }\r\n\r\n  onCellDoubleClicked($event) {\r\n\r\n    if ($event.rowIndex !== null) {\r\n      if (!$event.node.group && $event.data) {\r\n        this.eoGridDoubleClick.emit($event);\r\n      }\r\n    }\r\n  }\r\n\r\n  onMouseDown($event: MouseEvent | any) {\r\n    if (this.api?.getGridOption('suppressRowClickSelection')) {\r\n      if (!this.pendingChanges.check()) {\r\n        this.api?.updateGridOptions({ suppressRowClickSelection: false, suppressCellFocus: false });\r\n        this.selectEvent($event);\r\n      } else {\r\n        $event.preventDefault();\r\n        $event.stopImmediatePropagation();\r\n      }\r\n    }\r\n  }\r\n\r\n  private selectEvent($event: MouseEvent | any) {\r\n    const colId = $event.composedPath?.().find((el) => el?.getAttribute('col-id'))?.getAttribute('col-id');\r\n    const rowId = $event.composedPath?.().find((el) => el?.getAttribute('row-id'))?.getAttribute('row-id');\r\n    if (colId) {\r\n      const row = this.api?.getRowNode(rowId);\r\n      //select row only on left click\r\n      this.selectRow(row.rowIndex, $event.button === 0 ? null : [], !$event.ctrlKey);\r\n      if ($event.button === 2) {\r\n        //open context menu on right click\r\n        this.onContextMenuClicked({ rowIndex: row.rowIndex, node: row, data: row.data });\r\n      }\r\n    }\r\n  }\r\n\r\n  onCellFocused($event) {\r\n    if (this.api.getGridOption('suppressCellFocus')) {\r\n      return this.updateFocus();\r\n    }\r\n    if ($event.rowIndex !== null) {\r\n      $event.focusedNode = this.api.getModel().getRow($event.rowIndex);\r\n      if ($event.focusedNode && !$event.focusedNode.group && $event.focusedNode.data) {\r\n        this.focusedRowID = $event.focusedNode.id;\r\n        this.eoGridFocusChanged.emit($event.focusedNode.data);\r\n      }\r\n    }\r\n  }\r\n\r\n  onContextMenuClicked($event) {\r\n    if ($event.rowIndex !== null && !$event.node.group && $event.data) {\r\n      let selectedNodes = this.api.getSelectedNodes().map(n => n.data).filter(d => d);\r\n      if (selectedNodes.length && selectedNodes.some(n => n.id === $event.data.id)) {\r\n        this.eoGridContextMenuClick.emit(selectedNodes);\r\n      } else {\r\n        this.eoGridContextMenuClick.emit([$event.data]);\r\n      }\r\n    }\r\n  }\r\n\r\n  onSelectionChanged($event) {\r\n    let selectedNodes = this.api.getSelectedNodes().map(n => n.data).filter(d => d);\r\n    if (this.selectionLimit && selectedNodes.length > this.selectionLimit) {\r\n      this.selectRow(this.api.getFocusedCell().rowIndex);\r\n    } else {\r\n      this.eoGridSelectionChanged.emit(selectedNodes);\r\n    }\r\n  }\r\n\r\n  onColumnResized($event) {\r\n    if ($event.column) {\r\n      this.colResizeDebouncer.next($event.column);\r\n    }\r\n  }\r\n\r\n  onModelUpdated() {\r\n    this.calculateDebouncer.next({});\r\n  }\r\n\r\n  onReady() {\r\n    if (this.sizeToFit) {\r\n      this.api.sizeColumnsToFit();\r\n    }\r\n  }\r\n\r\n  /*\r\n  * This method is called when the grid is sorted.\r\n  */\r\n  onSortChanged(event) {\r\n    this.scrollPosition = event.api.getHorizontalPixelRange().left;\r\n  }\r\n\r\n  /**\r\n   * Scrolls the grid horizontally to a predefined initial position.\r\n   * This method is called when the grid is sorted.\r\n   */\r\n  setHorizontalScrollPosition() {\r\n    const gridBody = document.querySelector('.ag-body-horizontal-scroll-viewport') as HTMLElement;\r\n    if (gridBody) {\r\n      gridBody.scrollLeft = this.scrollPosition;\r\n    }\r\n  }\r\n\r\n  onQuickFilterChanged($event) {\r\n    this.api.setQuickFilter($event.target.value);\r\n  }\r\n\r\n  selectRow(row: number | string, selection?: number[], clearSelection = true, position = null) {\r\n    if (!this.api) {\r\n      return;\r\n    }\r\n\r\n    const rowNode = typeof row === 'number' ? !this.api?.isDestroyed() && this.api.getModel()?.getRow(row) : this.api.getRowNode(row);\r\n    let index = rowNode ? rowNode.rowIndex : 0;\r\n\r\n    if (rowNode && rowNode.data) {\r\n      if (selection) {\r\n        selection.forEach((rowIndex, i) => {\r\n          this.api.getModel().getRow(rowIndex).setSelected(true, i === 0);\r\n        });\r\n        this.gridOptions.context.selection = null; //reset initial selection\r\n      } else {\r\n        rowNode.setSelected(true, clearSelection);\r\n      }\r\n\r\n      this.api.setFocusedCell(index, (this.gridOptions.columnDefs[1] as ColDef).field);\r\n      this.scrollToRow(index, position);\r\n      this.gridOptions.context.rowIndex = null; //reset initial rowIndex\r\n    } else if (index > 0 && this.contextCount) {\r\n      this.selectRow(--index, selection, clearSelection);\r\n    } else {\r\n      if (!this.api?.isDestroyed()) {\r\n        this.api.clearFocusedCell();\r\n      }\r\n      this.eoGridFocusChanged.emit(null);\r\n    }\r\n  }\r\n\r\n  scrollToRow(index?: number, position = null) {\r\n    this.api.ensureIndexVisible(index === undefined ? (this.api.getFocusedCell() ? this.api.getFocusedCell().rowIndex : 0) : index, position);\r\n  }\r\n\r\n  selectRowById(id, position = '') {\r\n    const rowNode = id && this.api.getRowNode(id);\r\n    if (rowNode) {\r\n      rowNode.setSelected(true);\r\n      this.selectRow(rowNode.rowIndex, [], true, position);\r\n    }\r\n  }\r\n\r\n  setColumnDefs(columnDefs: ColDef[]) {\r\n    this.api.setGridOption('columnDefs', columnDefs ? [this.pinnedColumn].concat(columnDefs) : null);\r\n  }\r\n\r\n  setRowData(data: any[] = [], row?: any) {\r\n    this.gridOptions.context.count = data.length;\r\n    this.gridOptions.context.rowIndex = row;\r\n    this.api.clearFocusedCell();\r\n    this.api.setGridOption('rowData', data);\r\n  }\r\n\r\n  private processSoftData(data: any[] = []) {\r\n    let remove = data.filter(i => i.__removed).map(i => {\r\n      delete i.__removed;\r\n      return i;\r\n    });\r\n\r\n    let update = data.filter(i => i.__updated).map(i => {\r\n      delete i.__updated;\r\n      return i;\r\n    });\r\n\r\n    // finally remove items from array\r\n    remove.forEach(i => data.splice(data.indexOf(i), 1));\r\n\r\n    let applyUpdate = remove.length || update.length;\r\n\r\n    return {applyUpdate, remove, update};\r\n  }\r\n\r\n  updateRowData(data: any[] = [], row?: any, selection?: number[]) {\r\n\r\n    let {applyUpdate, remove, update} = this.processSoftData(data);\r\n    if (!applyUpdate) {\r\n      return this.setRowData(data, row);\r\n    }\r\n\r\n    this.gridOptions.context.count = data.length;\r\n    let lastFocusedCell: CellPosition = this.api.getFocusedCell();\r\n    this.api.applyTransaction({remove, update});\r\n    this.api.redrawRows();\r\n    setTimeout(_ => {\r\n      this.selectRow(lastFocusedCell ? lastFocusedCell.rowIndex : (row || 0), selection);\r\n    }, this.contextCount ? 500 : 0);\r\n  }\r\n\r\n  updateRows(data: any[] = []) {\r\n\r\n    let {applyUpdate, remove, update} = this.processSoftData(data);\r\n    if (!applyUpdate) {\r\n      return false;\r\n    }\r\n\r\n    this.gridOptions.context.count = this.contextCount - remove.length;\r\n    let lastFocusedIndex = this.api.getFocusedCell() ? this.api.getFocusedCell().rowIndex : 0;\r\n\r\n    this.api.applyTransaction({remove, update});\r\n\r\n    setTimeout(_ => {\r\n      this.selectRow(lastFocusedIndex);\r\n    }, this.contextCount ? 500 : 0);\r\n  }\r\n\r\n  get columns(): Column[] {\r\n    return this.api.getColumns().filter(c => c.getColId() !== this.pinnedColumn.field);\r\n  }\r\n\r\n  get api(): GridApi {\r\n    return this.agGrid?.api;\r\n  }\r\n\r\n  get isReady() {\r\n    return !!this.api;\r\n  }\r\n\r\n  get isEmpty() {\r\n    return !this._gridCount.totalCount && (!this.api || !Object.keys(this.api.getFilterModel()).length);\r\n  }\r\n\r\n  get isEmptyRows() {\r\n    return !this._gridCount.rowCount;\r\n  }\r\n\r\n}\r\n","<div class=\"eo-grid-empty\" [hidden]=\"!(isEmpty || isEmptyRows)\">\r\n  <ng-content select=\".empty\"></ng-content>\r\n</div>\r\n<div class=\"eo-grid-header\" *ngIf=\"showHeader\" [hidden]=\"isEmpty\">\r\n  <ng-content select=\".header\"></ng-content>\r\n</div>\r\n<ag-grid-angular #agGrid class=\"ag-theme-balham\" [modules]=\"modules\"\r\n                 [hidden]=\"isEmpty\"\r\n                 [ngClass]=\"{'hide-header': showHeader, 'enable-footer': showFooter, 'full-width': fullWidth}\"\r\n                 [gridOptions]=\"gridOptions\"\r\n                 (modelUpdated)=\"onModelUpdated()\"\r\n                 (cellFocused)=\"onCellFocused($event)\"\r\n                 (cellContextMenu)=\"onContextMenuClicked($event)\"\r\n                 (contextmenu)=\"$event.stopPropagation();$event.preventDefault()\"\r\n                 (mousedown)=\"onMouseDown($event)\"\r\n                 (cellClicked)=\"onCellClicked($event)\"\r\n                 (cellDoubleClicked)=\"onCellDoubleClicked($event)\"\r\n                 (selectionChanged)=\"onSelectionChanged($event)\"\r\n                 (columnResized)=\"onColumnResized($event)\"\r\n                 (gridReady)=\"onReady()\"\r\n                 (sortChanged)=\"onSortChanged($event)\">\r\n</ag-grid-angular>\r\n<div class=\"eo-grid-footer\" *ngIf=\"showFooter\" [hidden]=\"isEmpty\">\r\n  <ng-content select=\".footer\"></ng-content>\r\n</div>\r\n","import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\r\nimport {GridComponent} from './../grid.component';\r\nimport {combineLatest} from 'rxjs/operators';\r\nimport {Component, EventEmitter, HostBinding, Input, OnInit, Output, OnChanges, SimpleChanges} from '@angular/core';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {UserService, SearchService, EoUser, FieldDefinition, SearchQuery, ObjectType, Utils} from '@eo-sdk/core';\r\nimport {GridService} from '../../../eo-framework-core/api/grid.service';\r\n\r\n@Component({\r\n  selector: 'eo-column-configurator',\r\n  templateUrl: './column-configurator.component.html',\r\n  styleUrls: ['./column-configurator.component.scss']\r\n})\r\nexport class ColumnConfiguratorComponent implements OnInit, OnChanges {\r\n  isDefaultConfig = true;\r\n  hasPrivilege = false;\r\n  info: string;\r\n  @Input() configType: ObjectType | null;\r\n  @Input() configContext: ObjectType | null;\r\n  currentFields: any[];\r\n  availableFields: any[];\r\n\r\n  @Output() onConfigChanged = new EventEmitter();\r\n\r\n  @HostBinding('class.visible')\r\n  @Input() visible = false;\r\n\r\n  @Input() eoGrid: GridComponent;\r\n  private originalFields: any[];\r\n  alignmentValue = 'Automatic';\r\n\r\n  constructor(\r\n    private searchService: SearchService,\r\n    private userService: UserService,\r\n    public translate: TranslateService) {\r\n\r\n    this.userService\r\n      .user$\r\n      .subscribe((user: EoUser) => {\r\n        this.hasPrivilege = user.hasPrivilege('EDIT_PROFILE_SET');\r\n      });\r\n  }\r\n\r\n  // reset a column configuration to its default\r\n  resetDefault() {\r\n    //this.initConfig(true);\r\n    this.searchService.removeResultFieldDefinition(this.configType, this.configContext).subscribe(() => this.toggleConfigMode(true));\r\n\r\n  }\r\n\r\n\r\n  /**\r\n   * save the currentFields configuration\r\n   *\r\n   * @param boolean asDefault\r\n   */\r\n  saveConfig(asDefault = false): void {\r\n    let data = new FieldDefinition([], [], [], [], []);\r\n    data.elements = this.currentFields.map(col => {\r\n      if (col.confmeta.sort) {\r\n        data.sortorder.push({\r\n          qname: col.qname,\r\n          direction: col.confmeta.sort\r\n        });\r\n      }\r\n      if (col.confmeta.group) {\r\n        data.grouporder.push({\r\n          qname: col.qname\r\n        });\r\n      }\r\n      if (col.confmeta.pinned) {\r\n        data.pinned.push({\r\n          qname: col.qname\r\n        });\r\n      }\r\n      if (col.confmeta.alignmentx) {\r\n        data.alignmentx.push({\r\n          qname: col.qname,\r\n          value: col.confmeta.alignmentx\r\n        });\r\n      }\r\n\r\n      return {\r\n        qname: col.qname\r\n      };\r\n    });\r\n\r\n    this.searchService\r\n      .saveResultFieldDefinition(this.configType, this.configContext, data, asDefault && this.hasPrivilege)\r\n      .subscribe(() => this.toggleConfigMode(true));\r\n  }\r\n\r\n  /**\r\n   * Initialize the lists columns for the currentFields config.\r\n   *\r\n   * @param loadDefaults - if set to true, the configs default configuration will be loaded\r\n   * instead of the one that was configured by the user.\r\n   */\r\n  initConfig(loadDefaults) {\r\n\r\n    this.createConfigInfo(this.configType, this.configContext);\r\n\r\n    this.searchService.fetchResultFieldDefinition(this.configType, this.configContext, loadDefaults ? 'DEFAULT' : null).pipe(combineLatest(\r\n      this.searchService.fetchResultFieldDefinition(this.configType, this.configContext, 'ALL'),\r\n      (current: FieldDefinition, available: FieldDefinition) => {\r\n        return {current, available};\r\n      })).subscribe((res: any) => {\r\n        res.current.elements.forEach((el: any) => {\r\n          let sortEntry = res.current.sortorder.find((a: any) => el.qname === a.qname);\r\n          // let groupEntry = res.current.grouporder.find((a: any) => el.qname === a.qname);\r\n          let pinnedEntry = res.current.pinned.find((a: any) => el.qname === a.qname);\r\n          let alignmentEntry = res.current.alignmentx.find((a: any) => el.qname === a.qname);\r\n          el.confmeta = {\r\n            sort: sortEntry ? (sortEntry.direction || '').toLowerCase() : null,\r\n            // group: !!groupEntry,\r\n            pinned: !!pinnedEntry,\r\n            modified: false,\r\n            alignmentx: alignmentEntry ? alignmentEntry.value : null\r\n          };\r\n        });\r\n\r\n        this.isDefaultConfig = res.current.mode !== 'USER';\r\n        this.originalFields = res.current.elements;\r\n\r\n        this.currentFields = this.eoGrid.columns.filter(column => column.isVisible()).map(({colDef, sort, pinned}: any, index) => {\r\n          const i = this.originalFields.findIndex(f => GridService.qnameMatch(f.qname, colDef.refData.qname)), field = this.originalFields[i];\r\n          return {...field, confmeta: {sort, pinned, alignmentx: field.confmeta.alignmentx,\r\n              modified: i !== index || (field.confmeta.sort || '') !== (sort || '') || !!field.confmeta.alignmentx}};\r\n        });\r\n\r\n        this.availableFields = res.available.elements.filter((col: any) => {\r\n          if (!this.configType?.maxFiles && col.qname.startsWith('sysdocument')) {\r\n            return false;\r\n          }\r\n          return !this.currentFields.find((c: any) => c.qname === col.qname);\r\n        }).map(el => {\r\n          el.confmeta = {modified: !!this.originalFields.find((c: any) => c.qname === el.qname)};\r\n          return el;\r\n        }).sort(Utils.sortValues('label'));\r\n      }\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Creates the info object that will be displayed to the user indicating what particular result list\r\n   * is going to be configured. If none of the params is provided, we got a general fulltext result.\r\n   *\r\n   * @param [type] - the configurations target object type\r\n   * @param [context] - the context object type\r\n   */\r\n  createConfigInfo(type, context) {\r\n    if (type && type.label && context) {\r\n      this.translate.get('eo.column.config.info.type.context', {\r\n        type: type.label,\r\n        context: context.label\r\n      }).subscribe(text => this.info = text);\r\n    } else if (type && type.label) {\r\n      this.translate.get('eo.column.config.info.type', {\r\n        type: type.label\r\n      }).subscribe(text => this.info = text);\r\n    } else {\r\n      this.translate.get('eo.column.config.info.fulltext').subscribe(text => this.info = text);\r\n    }\r\n  }\r\n\r\n  markItem(field, group) {\r\n    if (field && group) {\r\n      field.confmeta.modified = true;\r\n    }\r\n  }\r\n\r\n  drop(event: CdkDragDrop<any>, group: 'current' | 'available') {\r\n    transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\r\n    this.markItem(event.item.data, group);\r\n  }\r\n\r\n  toggleConfigMode(refresh = false) {\r\n    this.onConfigChanged.emit(refresh);\r\n  }\r\n\r\n  togglePrevent(item, $event) {\r\n    $event.preventDefault();\r\n    $event.stopPropagation();\r\n    this.markItem(item, 'current');\r\n  }\r\n\r\n  toggleSort(item, $event) {\r\n    this.togglePrevent(item, $event);\r\n    if (!item.confmeta.sort) {\r\n      item.confmeta.sort = 'asc';\r\n    } else if (item.confmeta.sort === 'asc') {\r\n      item.confmeta.sort = 'desc';\r\n    } else if (item.confmeta.sort === 'desc') {\r\n      item.confmeta.sort = null;\r\n    }\r\n  }\r\n\r\n  toggleAlignment(item, $event) {\r\n    this.togglePrevent(item, $event);\r\n    if (!item.confmeta.alignmentx) {\r\n      item.confmeta.alignmentx = 'right';\r\n    } else if (item.confmeta.alignmentx === 'right') {\r\n      item.confmeta.alignmentx = 'center';\r\n    } else if (item.confmeta.alignmentx === 'center') {\r\n      item.confmeta.alignmentx = 'left';\r\n    } else if (item.confmeta.alignmentx === 'left') {\r\n      item.confmeta.alignmentx = null;\r\n    }\r\n  }\r\n\r\n  // toggleGroup(item, $event) {\r\n  //   this.togglePrevent(item, $event);\r\n  //   item.confmeta.group = !item.confmeta.group;\r\n  // }\r\n\r\n  togglePinned(item, $event) {\r\n    this.togglePrevent(item, $event);\r\n    item.confmeta.pinned = !item.confmeta.pinned;\r\n  }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (this.visible && (changes.configType || changes.configContext)) {\r\n      this.initConfig(false);\r\n    }\r\n  }\r\n\r\n}\r\n","<div class=\"configurator\">\r\n\r\n  <div class=\"bar\">\r\n    <div class=\"title\" translate>eo.column.config.title</div>\r\n    <button (click)=\"resetDefault()\" *ngIf=\"!isDefaultConfig\" translate>eo.column.config.action.resetdefault</button>\r\n    <button (click)=\"toggleConfigMode()\" translate>eo.cta.button.cancel</button>\r\n    <button (click)=\"saveConfig(true)\" class=\"primary\" [disabled]=\"!currentFields?.length\" *ngIf=\"hasPrivilege\" translate>eo.column.config.action.save.default</button>\r\n    <button (click)=\"saveConfig()\" class=\"primary\" [disabled]=\"!currentFields?.length\" translate>eo.column.config.action.save</button>\r\n  </div>\r\n\r\n  <div class=\"info\" *ngIf=\"info\">{{info}}</div>\r\n\r\n  <div class=\"column-config\" cdkDropListGroup>\r\n\r\n    <div class=\"scroller current\">\r\n      <div class=\"headline\" translate>eo.column.config.headline.current</div>\r\n      <div class=\"items\" cdkDropList (cdkDropListDropped)=\"drop($event, 'current')\" [cdkDropListData]=\"currentFields\">\r\n        <div class=\"item\" cdkDragHandle cdkDrag [cdkDragData]=\"field\" *ngFor=\"let field of currentFields; index as i\">\r\n          <div class=\"entry\" [ngClass]=\"{modified: field.confmeta.modified, sfe: field.selectedforenrichment}\">\r\n            <div class=\"label\" [ngClass]=\"{baseparam: field.baseparameter}\">{{field.label}}</div>\r\n            <div class=\"group\" [ngClass]=\"{on: field.confmeta.pinned}\" (click)=\"togglePinned(field, $event)\" translate>\r\n              <span class=\"config-label\" translate>eo.column.config.pinned</span>\r\n            </div>\r\n            <!--<div class=\"group\" [ngClass]=\"{on: field.confmeta.group}\" (click)=\"toggleGroup(field, $event)\" translate>eo.column.config.group</div>-->\r\n            <div class=\"sort\" [ngClass]=\"{on: field.confmeta.sort, asc: field.confmeta.sort === 'asc', desc: field.confmeta.sort === 'desc', disabled: !field.sortable}\"\r\n            (click)=\"field.sortable && toggleSort(field, $event)\"><span class=\"config-label\" translate>eo.column.config.sort</span></div>\r\n            <div class=\"alignment\" [ngClass]=\"{on: field.confmeta.alignmentx, left: field.confmeta.alignmentx === 'left',\r\n            right: field.confmeta.alignmentx === 'right', center: field.confmeta.alignmentx === 'center'}\"\r\n                 (click)=\"toggleAlignment(field, $event)\"><span class=\"config-label\" translate>eo.column.config.alignment</span>\r\n              <img *ngIf=\"field.confmeta.alignmentx === 'center'\" class=\"center-second\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAGFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAB5sPD/AAAACHRSTlMAAAEnK2xwihv2e6MAAAAkSURBVAgdBcGBAQAgDMMgmvn/zcIGMO6xUBHXIqLkYkmQDfABCHAAOCt/xSYAAAAASUVORK5CYII=\">\r\n            </div>\r\n          </div>\r\n        </div>\r\n\r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"scroller available\">\r\n      <div class=\"headline\" translate>eo.column.config.headline.available</div>\r\n      <div class=\"items\" cdkDropList (cdkDropListDropped)=\"drop($event, 'available')\" [cdkDropListData]=\"availableFields\">\r\n        <div class=\"item\" cdkDragHandle cdkDrag [cdkDragData]=\"field\" *ngFor=\"let field of availableFields; index as i\">\r\n          <div class=\"entry\" [ngClass]=\"{modified: field.confmeta.modified, sfe: field.selectedforenrichment}\">\r\n            <div class=\"label\" [ngClass]=\"{baseparam: field.baseparameter}\">{{field.label}}</div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n  </div>\r\n\r\n</div>\r\n","import {debounceTime} from 'rxjs/operators';\r\nimport {Component, HostBinding, Input, AfterContentInit} from '@angular/core';\r\nimport {GridComponent} from '../../grid.component';\r\n\r\n@Component({\r\n  selector: 'eo-total-count',\r\n  templateUrl: './total-count.component.html',\r\n  styleUrls: ['./total-count.component.scss']\r\n})\r\nexport class TotalCountComponent implements AfterContentInit {\r\n\r\n  @Input() eoGrid: GridComponent;\r\n\r\n  @HostBinding('class.outside-grid')\r\n  @Input() outsideGrid = false;\r\n  @Input() gridCount: any;\r\n\r\n  ngAfterContentInit() {\r\n    if (this.eoGrid) {\r\n      this.eoGrid\r\n        .eoGridCountChanged\r\n        .asObservable()\r\n        .pipe(\r\n          debounceTime(100)\r\n        )\r\n        .subscribe(gridCount => this.gridCount = gridCount);\r\n    }\r\n  }\r\n\r\n}\r\n","<div class=\"count-container\" *ngIf=\"gridCount\" [ngClass]=\"{'outside-grid': outsideGrid}\">\r\n  <div class=\"row-count\" *ngIf=\"gridCount.rowCount < gridCount.totalCount\">{{gridCount.rowCount | localeDecimal}}</div>\r\n  <div class=\"total-count\">{{gridCount.totalCount | localeDecimal}}{{gridCount.relation === 'gte' ? '+' : ''}}</div>\r\n  <div class=\"text\">&nbsp;{{'eo.search.result.hits' | translate}}</div>\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {GridComponent} from '../../grid.component';\r\n\r\n@Component({\r\n  selector: 'eo-quick-filter',\r\n  template: `\r\n    <div class=\"qSearch flex-row\" *ngIf=\"eoGrid?.gridOptions?.rowData\" [style.alignItems]=\"'center'\">\r\n      <label>\r\n        <eo-icon class=\"small\" [iconSrc]=\"'assets/_default/svg/ic_quickfilter.svg'\" [style.margin.px]=\"4\"></eo-icon>\r\n      </label>\r\n      <eo-form-input>\r\n        <input (keyup)=\"eoGrid.onQuickFilterChanged($event)\" class=\"qInput\" [style.border]=\"'none'\"\r\n               placeholder=\"{{'eo.filter.input.placeholder' | translate}}\"/>\r\n      </eo-form-input>\r\n    </div>\r\n  `,\r\n  styles: []\r\n})\r\nexport class QuickFilterComponent {\r\n\r\n  @Input() eoGrid: GridComponent;\r\n  value = '';\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {GridComponent} from '../../grid.component';\r\nimport {OverlayComponent} from '../../../ui/overlay/overlay.component';\r\nimport {ColDef, _} from '@ag-grid-community/core';\r\nimport {AsyncSubject} from 'rxjs';\r\nimport {ListSettingsService} from '../services/list-settings.service';\r\n\r\n@Component({\r\n  selector: 'eo-custom-sort',\r\n  templateUrl: './custom-sort.component.html',\r\n  styleUrls: ['./custom-sort.component.scss']\r\n})\r\nexport class CustomSortComponent {\r\n\r\n  @Input() eoGrid: GridComponent;\r\n  @Input() overlay: OverlayComponent;\r\n  @Input() id = '#sort';\r\n\r\n  private _sortFields: any[] = [];\r\n  model: any[] = [];\r\n\r\n  @Output() change: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() active: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\r\n  @Input() set sortFields(opts: any[]) {\r\n    this._sortFields = this.settingsService.setupSettings(this.id, opts, 'field', 'sort');\r\n    if (this.sortFields && this.sortFields.some(f => f.sort)) {\r\n      setTimeout(() => this.sort('', ''), 0);\r\n    }\r\n  }\r\n\r\n  get sortFields() {\r\n    return this._sortFields;\r\n  }\r\n\r\n\r\n  constructor(private settingsService: ListSettingsService) {\r\n  }\r\n\r\n  static sortColDefs(sortFields: ColDef[]): ColDef[] {\r\n    const val = sortFields.map(f => ({...f, sortable: true, hide: true, comparator: (a, b) => _.defaultComparator(a, b, true)}) as ColDef);\r\n    return val;\r\n  }\r\n\r\n  onChange() {\r\n    let isActive = !!this.model.length;\r\n    this.active.emit(isActive);\r\n    let evt = new CustomEvent('change', {detail: this.model});\r\n    this.change.emit(evt);\r\n    this.settingsService.saveSettings(this.id, this.model, 'colId', 'sort');\r\n    this.updateGrid(this.eoGrid, evt);\r\n    if (this.overlay) {\r\n      this.overlay.active = isActive;\r\n    }\r\n  }\r\n\r\n  sort(field, sort) {\r\n    if (field) {\r\n      this.sortFields.find(f => f.field === field).sort = sort;\r\n    }\r\n    this.model = this.sortFields\r\n      .filter(f => f.sort)\r\n      .map(f => ({colId: f.field, sort: f.sort}));\r\n    this.onChange();\r\n  }\r\n\r\n  updateGrid(grid: GridComponent | AsyncSubject<GridComponent>, evt: CustomEvent) {\r\n    if (grid instanceof AsyncSubject) {\r\n      grid.subscribe(g => this.updateGrid(g, evt));\r\n    } else if (grid && grid.isReady && evt.detail) {\r\n      grid.api.applyColumnState({ state: evt.detail, defaultState: {sort: null}});\r\n      if (grid.api.getSelectedNodes()[0]) {\r\n        setTimeout(() => {\r\n          grid.api.ensureIndexVisible(grid.api.getSelectedNodes()[0].rowIndex, 'bottom');\r\n        }, 200);\r\n      }\r\n    }\r\n  }\r\n\r\n  reset() {\r\n    this.sortFields.forEach(f => (f.sort = ''));\r\n    this.model = [];\r\n    this.onChange();\r\n  }\r\n}\r\n","<div class=\"sort\">\r\n  <div class=\"sort-title\" translate>eo.sort.by</div>\r\n  <div class=\"sort-option\" *ngFor=\"let sortBy of sortFields\" [ngClass]=\"{asc: sortBy.sort === 'asc', desc: sortBy.sort === 'desc'}\">\r\n    <eo-icon class=\"asc\" [iconTitle]=\"'eo.sort.asc' | translate\" [iconSrc]=\"'assets/_default/svg/ic_arrow_up.svg'\" (click)=\"sort(sortBy.field, 'asc')\"></eo-icon>\r\n    <eo-icon class=\"desc\" [iconTitle]=\"'eo.sort.desc' | translate\" [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\" (click)=\"sort(sortBy.field, 'desc')\"></eo-icon>\r\n    <span class=\"title\">{{sortBy.headerName}}</span>\r\n    <eo-icon class=\"clear\" [iconTitle]=\"'eo.sort.clear' | translate:{value: sortBy.headerName}\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"sort(sortBy.field, '')\"></eo-icon>\r\n  </div>\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {IFilterParams, IRowNode, RowNode} from '@ag-grid-community/core';\r\nimport {ListSettingsService} from '../../services/list-settings.service';\r\nimport {AbstractFilterComponent} from '../abstract-filter.component';\r\nimport {LocalStorageService, UserService, Utils} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-text-filter',\r\n  templateUrl: './text-filter.component.html',\r\n  styleUrls: ['./text-filter.component.scss']\r\n})\r\nexport class TextFilterComponent extends AbstractFilterComponent {\r\n\r\n  @Input() title = '';\r\n  @Input() placeholder = 'eo.filter.input.placeholder';\r\n  @Input() enableSave = false;\r\n  private focused = false;\r\n  savedFilters = [];\r\n\r\n  @Input() set filterParams(params: IFilterParams) {\r\n    super.filterParams = params;\r\n  }\r\n\r\n  @Input()\r\n  set matchFields(fields: string[]) {\r\n    this.valueGetter = (rowNode: IRowNode) => fields.map(f => Utils.getProperty(rowNode.data, f)).join('\\n');\r\n    const value = this.defaultValue || this.settingsService.setupSettings(this.id, [{id: 'text', value: this.value}])[0].value;\r\n    setTimeout(() => this.onChange(value), 0);\r\n  }\r\n\r\n  constructor(private settingsService: ListSettingsService,\r\n              private storageService: LocalStorageService,\r\n              private userService: UserService) {\r\n    super();\r\n    this.id = '#text';\r\n    this.getSavedFilters();\r\n  }\r\n\r\n  onChange(newValue, oldValue?): void {\r\n    if (this.value !== newValue) {\r\n      this.value = newValue;\r\n      if (!this.defaultValue) {\r\n        this.settingsService.saveSettings(this.id, this.value ? {'text': this.value} : '');\r\n      }\r\n      this.params.filterChangedCallback();\r\n    }\r\n  }\r\n\r\n  doesExternalFilterPass(rowNode: IRowNode): boolean {\r\n    const filterTerms = this.value.toLowerCase().split(' ');\r\n    const rowValue = this.valueGetter(rowNode).toString().toLowerCase();\r\n    const everyTermFound = !filterTerms.find(term => rowValue.indexOf(term) === -1);\r\n    return everyTermFound;\r\n  }\r\n\r\n  reset() {\r\n    super.reset();\r\n    this.settingsService.saveSettings(this.id);\r\n  }\r\n\r\n  focusout () {\r\n    this.focused = false;\r\n  }\r\n\r\n  getSavedFilters() {\r\n    if (this.userService.getCurrentUser().userSettings.savedInboxFilter) {\r\n      this.savedFilters = this.userService.getCurrentUser().userSettings.savedInboxFilter;\r\n    } else {\r\n      this.savedFilters = this.storageService.getItem('eo.inbox.filter.suggestions') ? this.storageService.getItem('eo.inbox.filter.suggestions') : [];\r\n    }\r\n  }\r\n\r\n  saveFilter(term: string) {\r\n    if (term && !this.savedFilters.includes(term)) {\r\n      this.savedFilters.push(term);\r\n      this.userService.changeSavedInboxFilters(this.savedFilters).subscribe();\r\n    }\r\n  }\r\n\r\n  removeFilter(term: string) {\r\n    this.savedFilters = this.savedFilters.filter(t => t !== term);\r\n    this.userService.changeSavedInboxFilters(this.savedFilters).subscribe();\r\n  }\r\n\r\n  focus () {\r\n    if (!this.focused) {\r\n      this.focused = true;\r\n\r\n      // Timeout for cross browser compatibility (Chrome)\r\n      setTimeout(() => { document.execCommand('selectall', false, null); });\r\n    }\r\n  }\r\n}\r\n","<header class=\"filter__header\">\r\n  <h3 class=\"filter__title title\" *ngIf=\"title\">{{title}}</h3>\r\n</header>\r\n<div class=\"flex-row\">\r\n  <eo-form-input>\r\n    <input (ngModelChange)=\"onChange($event)\" [ngModel]=\"value\" class=\"form-control\"\r\n           placeholder=\"{{ placeholder | translate}}\" (focus)=\"focus()\" (focusout)=\"focusout()\">\r\n  </eo-form-input>\r\n  <eo-icon class=\"save-filter-icon\" [tabindex]=\"(!value || savedFilters.includes(value)) ? '-1' : '0'\" *ngIf=\"enableSave\" [ngClass]=\"{'disable-save-filter': !value || savedFilters.includes(value)}\"\r\n           (click)=\"saveFilter(value)\"\r\n           (keydown.enter)=\"saveFilter(value)\"\r\n           [iconTitle]=\"'eo.filter.save' | translate\"\r\n           [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\r\n</div>\r\n<div *ngIf=\"enableSave && savedFilters && savedFilters.length !== 0\">\r\n  <h4 class=\"filter__title saved-filters-title\" translate>eo.filter.save.title</h4>\r\n  <div class=\"saved-filters-container\">\r\n    <div class=\"saved-filter flex-row\" *ngFor=\"let savedFilter of savedFilters\">\r\n      <span class=\"saved-filter-text\" (click)=\"onChange(savedFilter, value)\">{{savedFilter}}</span>\r\n      <eo-icon class=\"remove-filter-icon\" (click)=\"removeFilter(savedFilter)\"\r\n               [iconTitle]=\"'eo.filter.delete' | translate\"\r\n               [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'eo-reset-filter',\r\n  templateUrl: './reset-filter.component.html',\r\n  styleUrls: ['./reset-filter.component.scss']\r\n})\r\nexport class ResetFilterComponent {\r\n  @Input() isFilterActive: boolean;\r\n}\r\n","<div class=\"secondary\">\r\n  <button *ngIf=\"isFilterActive\" translate>eo.reset.filter</button>\r\n</div>\r\n<eo-icon *ngIf=\"!isFilterActive\" class=\"button primary refresh-button\"\r\n         [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\r\n         [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n","import {Component, Input, AfterViewInit, QueryList, ContentChildren, Output, EventEmitter} from '@angular/core';\r\nimport {GridComponent} from '../../../grid.component';\r\nimport {OverlayComponent} from '../../../../ui/overlay/overlay.component';\r\nimport {AbstractFilterComponent} from '../abstract-filter.component';\r\nimport {TextFilterComponent} from '../text/text-filter.component';\r\nimport {SetFilterComponent} from '../setFilters/set-filter.component';\r\nimport {GridOptions, IFilterParams, RowNode} from '@ag-grid-community/core';\r\nimport {AsyncSubject} from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'eo-custom-filter',\r\n  templateUrl: './custom-filter.component.html',\r\n  styleUrls: ['./custom-filter.component.scss']\r\n})\r\nexport class CustomFilterComponent implements AfterViewInit {\r\n\r\n  @Input() overlay: OverlayComponent;\r\n  @Input() eoGrid: GridComponent;\r\n\r\n  @Input() activeFilter: boolean;\r\n  @Input() isFilterActive: boolean;\r\n\r\n  @Output() change: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() active: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onResetFilters: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  allFilters: AbstractFilterComponent[] = [];\r\n\r\n  @ContentChildren(TextFilterComponent) textFilters: QueryList<TextFilterComponent>;\r\n  @ContentChildren(SetFilterComponent) setFilters: QueryList<SetFilterComponent>;\r\n\r\n\r\n  doesExternalFilterPass(node: RowNode) {\r\n    return this.allFilters\r\n      .filter(f => f.isFilterActive())\r\n      .every(f => f.doesExternalFilterPass(node));\r\n  }\r\n\r\n  onChange() {\r\n    this.isFilterActive = !!this.allFilters.filter(f => f.isFilterActive()).length;\r\n    this.active.emit(this.isFilterActive);\r\n    let evt = new CustomEvent('change', {detail: this.doesExternalFilterPass.bind(this)});\r\n    this.change.emit(evt);\r\n    this.updateGrid(this.eoGrid, evt);\r\n    if (this.overlay) {\r\n      this.overlay.active = this.isFilterActive;\r\n    }\r\n  }\r\n\r\n  updateGrid(grid: GridComponent | AsyncSubject<GridComponent>, evt: CustomEvent) {\r\n    if (grid instanceof AsyncSubject) {\r\n      grid.subscribe(g => this.updateGrid(g, evt));\r\n    } else if (grid && grid.isReady && evt.detail) {\r\n      grid.api.setGridOption('isExternalFilterPresent',  () => true);\r\n      grid.api.setGridOption('doesExternalFilterPass', (node) => evt.detail(node));\r\n      grid.api.onFilterChanged();\r\n    }\r\n  }\r\n\r\n  setupFilter(filter: AbstractFilterComponent) {\r\n    filter.agInit(<IFilterParams>{\r\n      filterChangedCallback: () => this.onChange(),\r\n      valueGetter: (node) => ''\r\n    });\r\n    this.allFilters.push(filter);\r\n  }\r\n\r\n  resetFilter() {\r\n    this.allFilters.forEach(f => f.reset());\r\n    this.onChange();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.textFilters.forEach(f => this.setupFilter(f));\r\n    this.setFilters.forEach(f => this.setupFilter(f));\r\n  }\r\n}\r\n","<div class=\"filter\">\r\n  <ng-content></ng-content>\r\n\r\n</div>\r\n<eo-cta [active]=\"isFilterActive\">\r\n<eo-reset-filter [isFilterActive]=\"isFilterActive\" (click)=\"resetFilter()\"></eo-reset-filter>\r\n</eo-cta>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CtaComponent } from './component/cta.component';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  declarations: [CtaComponent],\r\n  exports: [CtaComponent]\r\n})\r\nexport class CtaModule { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'eo-empty-list',\r\n  templateUrl: './empty.component.html',\r\n  styleUrls: ['./empty.component.scss']\r\n})\r\nexport class EmptyComponent {\r\n\r\n}\r\n","<div class=\"empty__wrapper\">\r\n  <ng-content select=\"\"></ng-content>\r\n</div>\r\n","import {UntypedFormGroup, UntypedFormBuilder, Validators} from '@angular/forms';\r\nimport {Component, OnInit, EventEmitter, Output, Input, OnChanges} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'eo-pagination',\r\n  templateUrl: './pagination.component.html',\r\n  styleUrls: ['./pagination.component.scss']\r\n})\r\nexport class PaginationComponent implements OnInit {\r\n  pagingForm: UntypedFormGroup;\r\n  pagination: {page: number, pages: number, relation: string};\r\n\r\n  @Input() set settings(settings: {total: number, size: number, page?: number, relation?: string}) {\r\n    this.pagination = settings && {\r\n      pages: Math.ceil(settings.total / settings.size),\r\n      page: settings.page || 1,\r\n      relation: settings.relation || 'eq'\r\n    };\r\n    if (this.pagination) {\r\n      this.pagingForm.get('page').setValue(this.pagination.page);\r\n      this.pagingForm.get('page').setValidators(\r\n        [Validators.required, Validators.pattern('[0-9]+'), Validators.min(1), Validators.max(this.isGreater ? 100000 : this.pagination.pages)]);\r\n    }\r\n  }\r\n\r\n  @Output() pageChanged = new EventEmitter();\r\n\r\n  constructor(private fb: UntypedFormBuilder) {\r\n    this.pagingForm = this.fb.group({\r\n      page: [1]\r\n    });\r\n  }\r\n\r\n  onPagingFormSubmit() {\r\n    if (this.pagingForm.valid) {\r\n      this.goToPage(this.pagingForm.value.page);\r\n    }\r\n  }\r\n\r\n  goToPage(page: number) {\r\n    this.pagination.page = page;\r\n    this.pagingForm.get('page').setValue(this.pagination.page);\r\n    this.pageChanged.emit(page);\r\n  }\r\n\r\n  get isGreater() {\r\n    return this.pagination.relation === 'gte';\r\n  }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n}\r\n","<div class=\"controls flex-row\" *ngIf=\"pagination && pagination.pages > 1\">\r\n  <button [disabled]=\"pagination.page === 1\" (click)=\"goToPage(1)\">\r\n    <eo-icon class=\"first\" [iconSrc]=\"'assets/_default/svg/ic_arrow_last.svg'\" ></eo-icon>\r\n  </button>\r\n  <button [disabled]=\"pagination.page <= 1\" (click)=\"goToPage(pagination.page - 1)\">\r\n    <eo-icon class=\"prev\" [iconSrc]=\"'assets/_default/svg/ic_arrow_next.svg'\" ></eo-icon>\r\n  </button>\r\n\r\n  <form (ngSubmit)=\"onPagingFormSubmit()\" [formGroup]=\"pagingForm\">\r\n    <input type=\"number\" formControlName=\"page\" />\r\n    <div>{{ pagination.pages }}{{ isGreater ? '+' : '' }}</div>\r\n  </form>\r\n\r\n  <button [disabled]=\"isGreater ? false : pagination.page >= pagination.pages\" (click)=\"goToPage(pagination.page + 1)\">\r\n    <eo-icon class=\"next\" [iconSrc]=\"'assets/_default/svg/ic_arrow_next.svg'\" ></eo-icon>\r\n  </button>\r\n  <button [disabled]=\"isGreater ? true : pagination.page === pagination.pages\" (click)=\"goToPage(pagination.pages)\">\r\n    <eo-icon class=\"last\" [iconSrc]=\"'assets/_default/svg/ic_arrow_last.svg'\" ></eo-icon>\r\n  </button>\r\n</div>","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {EventService, EnaioEvent, Config} from '@eo-sdk/core';\r\nimport {UiModule} from '../ui/ui.module';\r\nimport {AgGridModule} from '@ag-grid-community/angular';\r\n\r\nimport {GridComponent} from './grid.component';\r\nimport {ColumnConfiguratorComponent} from './column-configurator/column-configurator.component';\r\nimport {UtilModule} from '../util/util.module';\r\nimport {TotalCountComponent} from './extensions/total-count/total-count.component';\r\nimport {QuickFilterComponent} from './extensions/quick-filter/quick-filter.component';\r\nimport {CustomSortComponent} from './extensions/custom-sort/custom-sort.component';\r\nimport {CustomFilterComponent} from './extensions/filter/custom/custom-filter.component';\r\nimport {TextFilterComponent} from './extensions/filter/text/text-filter.component';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {SetFilterComponent} from './extensions/filter/setFilters/set-filter.component';\r\nimport {FormElementsModule} from '../form-elements/form-elements.module';\r\nimport {CtaModule} from '../cta/cta.module';\r\nimport {DatetimeFilterComponent} from './filters/datetime-filter.component';\r\nimport {OrganizationFilterComponent} from './filters/organization-filter.component';\r\nimport {CodesystemFilterComponent} from './filters/codesystem-filter.component';\r\nimport {DynamicListFilterComponent} from './filters/dynamic-list-filter.component';\r\nimport {TreeModule} from '../tree/tree.module';\r\nimport {ResetFilterComponent} from './extensions/reset-filter/reset-filter.component';\r\nimport {EmptyComponent} from './extensions/empty/empty.component';\r\nimport { PaginationComponent } from './extensions/pagination/pagination.component';\r\nimport {ListFilterComponent} from './filters/list-filter.component';\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\nimport {YvcAutocompleteModule} from '@yuuvis/components/autocomplete';\r\nimport {YvcIconModule} from '@yuuvis/components/icon';\r\nimport {YvcDatepickerModule} from '@yuuvis/components/datepicker';\r\n\r\nconst filterComponents = [TextFilterComponent, SetFilterComponent, DatetimeFilterComponent, CodesystemFilterComponent, OrganizationFilterComponent,\r\n  DynamicListFilterComponent, ListFilterComponent];\r\n@NgModule({\r\n  imports: [\r\n    UiModule,\r\n    UtilModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    FormElementsModule,\r\n    TreeModule,\r\n    CtaModule,\r\n    YvcAutocompleteModule,\r\n    YvcIconModule,\r\n    YvcDatepickerModule,\r\n    DragDropModule,\r\n    AgGridModule\r\n  ],\r\n  declarations: [GridComponent, ColumnConfiguratorComponent, TotalCountComponent, QuickFilterComponent,\r\n    CustomSortComponent, CustomFilterComponent, TextFilterComponent, SetFilterComponent, DatetimeFilterComponent,\r\n    CodesystemFilterComponent, OrganizationFilterComponent, ResetFilterComponent, EmptyComponent, PaginationComponent, DynamicListFilterComponent, ListFilterComponent],\r\n  exports: [GridComponent, ColumnConfiguratorComponent, TotalCountComponent, QuickFilterComponent,\r\n    CustomSortComponent, CustomFilterComponent, TextFilterComponent, SetFilterComponent, DatetimeFilterComponent,\r\n    CodesystemFilterComponent, OrganizationFilterComponent, ResetFilterComponent, EmptyComponent, PaginationComponent, DynamicListFilterComponent, ListFilterComponent]\r\n})\r\nexport class GridModule {\r\n\r\n  constructor(private event: EventService, private config: Config) {\r\n    this.event\r\n      .on(EnaioEvent.EO_LICENSE_GRID)\r\n      .subscribe(() => {});\r\n  }\r\n}\r\n","import {CellRenderer} from './../../eo-framework-core/api/grid.service';\r\nimport {forkJoin as observableForkJoin, of as observableOf, AsyncSubject, Subscription} from 'rxjs';\r\nimport {Component, ContentChild, Input, AfterViewInit} from '@angular/core';\r\nimport {SelectionConfig, SelectionService} from '../../eo-framework-core/selection/selection.service';\r\nimport {Router, NavigationExtras} from '@angular/router';\r\nimport {GridComponent} from '../grid/grid.component';\r\nimport {ActionService} from '../actions/action-service/action.service';\r\nimport {DmsObject, DmsService, Utils} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-list-container',\r\n  templateUrl: './list-container.component.html',\r\n  styleUrls: ['./list-container.component.scss']\r\n})\r\nexport class ListContainerComponent implements AfterViewInit {\r\n\r\n  public gridCount: any;\r\n  eoGrid: GridComponent;\r\n  eoGridSubject = new AsyncSubject<GridComponent>();\r\n\r\n  @ContentChild(GridComponent)\r\n  set contentGrid(eoGrid: GridComponent) {\r\n    if (eoGrid) {\r\n      this.eoGrid = eoGrid;\r\n      this.eoGridSubject.next(this.eoGrid);\r\n      this.eoGridSubject.complete();\r\n    }\r\n  }\r\n\r\n  @Input() applySelection: SelectionConfig = {};\r\n  @Input() applyVersion = false;\r\n  @Input() loading = true;\r\n  @Input() tabs = true;\r\n  @Input() parseDmsParams: (data) => any = (data: any) => data;\r\n\r\n  constructor(private selection: SelectionService,\r\n              private router: Router, private dmsService: DmsService, private actionService: ActionService) {\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n  }\r\n\r\n  onCountChanged(data: any) {\r\n    this.loading = false;\r\n    this.gridCount = data;\r\n  }\r\n\r\n  onFocusChanged(data: any) {\r\n    this.selection\r\n      .find(this.applySelection.out)\r\n      .focus(data);\r\n  }\r\n\r\n  onDoubleClick(event: any) {\r\n\r\n    const {id, type, version, intent} = this.parseDmsParams(event.data);\r\n    if (id) {\r\n      return this.openObject(id, type, version, intent, event.event.ctrlKey);\r\n    }\r\n  }\r\n\r\n  onSelectionChanged(selectedData: any[]) {\r\n    this.selection.find(this.applySelection.out).set(selectedData);\r\n  }\r\n\r\n  onContextMenu(selectedData?: any[], target?: string) {\r\n    this.showActions(selectedData, target);\r\n  }\r\n\r\n  openObject(id, _type?, version?, intent?, newTab = false) {\r\n    if (this.router.url.startsWith('/object')) {\r\n      return;\r\n    }\r\n    version = this.applyVersion ? version : undefined;\r\n    const queryParams: NavigationExtras = {queryParams: {'type': _type, version, intent}};\r\n    if (newTab) {\r\n      window.open(CellRenderer.windowURI(this.router.createUrlTree(['object', id], queryParams)));\r\n    } else {\r\n      this.router.navigate(['/object', id], queryParams);\r\n    }\r\n  }\r\n\r\n  loadObject(id, _type?, version?, intent?): Subscription {\r\n    version = this.applyVersion ? version : undefined;\r\n    return this.dmsService\r\n      .getDmsObject(id, _type, version, intent)\r\n      .subscribe((res: DmsObject) => {\r\n        this.selection.find(this.applySelection.out).focus(res);\r\n      });\r\n  }\r\n\r\n  showActions(selectedData?: any[], target = 'DMS_OBJECT') {\r\n    let selection = selectedData || this.selection.find(this.applySelection.out).get();\r\n    let observables = selection.map(data => target === 'DMS_OBJECT' ? this.dmsService.getDmsObjectByParams(this.parseDmsParams(data)) : observableOf(data));\r\n    observableForkJoin(observables).subscribe((res: any[]) => this.actionService.showActions(res, target));\r\n  }\r\n\r\n}\r\n","<div class=\"eo-head\" [ngClass]=\"{'eo-head-tabs': tabs}\">\r\n  <ng-content select=\".eo-header\"></ng-content>\r\n</div>\r\n<ng-content select=\".eo-body\">\r\n</ng-content>\r\n<div class=\"loading-container\" *ngIf=\"loading\"><eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner></div>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ListContainerComponent} from './list-container.component';\r\nimport {UiModule} from '../ui/ui.module';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    UiModule\r\n  ],\r\n  declarations: [ListContainerComponent],\r\n  exports: [ListContainerComponent]\r\n})\r\nexport class ListContainerModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {MediaComponent} from './media.component';\r\nimport {UiModule} from '../ui/ui.module';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {FormElementsModule} from '../form-elements/form-elements.module';\r\nimport {YvcPopoutModule} from '@yuuvis/components/popout';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    UiModule,\r\n    FormsModule,\r\n    FormElementsModule,\r\n    YvcPopoutModule\r\n  ],\r\n  declarations: [MediaComponent],\r\n  exports: [MediaComponent]\r\n})\r\nexport class MediaModule {\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, ReplaySubject} from 'rxjs';\r\nimport {GlobalShortcutComponent} from './global-shortcut-component.interface';\r\nimport {Logger} from '@eo-sdk/core';\r\n\r\n@Injectable()\r\nexport class ShortcutsService {\r\n\r\n  // list of componets that are currently registered to provide global keyboard shortcuts\r\n  private _boundComponents: GlobalShortcutComponent[] = [];\r\n  private boundComponentsSource = new ReplaySubject<any>();\r\n  public components$: Observable<any> = this.boundComponentsSource.asObservable();\r\n\r\n  constructor(private logger: Logger) {\r\n  }\r\n\r\n  /**\r\n   * Add a components to the list of tracked keyboard aware components\r\n   */\r\n  bindComponent(cmp: GlobalShortcutComponent) {\r\n    // only add if its not yet registered\r\n    if (!this._boundComponents.find((c) => c.id === cmp.id)) {\r\n      this.logger.debug('Adding shortcut component ' + cmp.label);\r\n      this._boundComponents.push(cmp);\r\n      this.boundComponentsSource.next(this._boundComponents);\r\n    }\r\n  }\r\n\r\n  unbindComponent(id: string) {\r\n    this.logger.debug('Removing shortcut component ' + id);\r\n    this._boundComponents = this._boundComponents.filter((c) => c.id !== id);\r\n    this.boundComponentsSource.next(this._boundComponents);\r\n  }\r\n\r\n  /**\r\n   * Sets focus to a shortcut component\r\n   * @param id - id of the component to receive focus\r\n   */\r\n  focusComponent(id) {\r\n    this._boundComponents.forEach((c) => {\r\n      c.id === id ? c.focused = true : c.focused = false;\r\n    });\r\n    this.boundComponentsSource.next(this._boundComponents);\r\n  }\r\n}\r\n","/**\r\n * Interface defining a shortcut to execute a GlobalShortcutAction\r\n */\r\nexport class Shortcut {\r\n\r\n  public which;\r\n\r\n  static isValid(evt: KeyboardEvent | Shortcut) {\r\n    // match only 1 digit or 1 letter\r\n    return (evt.key || String.fromCharCode(evt.which)).match(new RegExp('^(\\\\d|[a-zA-Z])$'));\r\n  }\r\n\r\n  static match(evt: KeyboardEvent, shortcut: Shortcut | string) {\r\n    let s = shortcut instanceof Shortcut ? shortcut : new Shortcut(shortcut);\r\n    return s.key.toLocaleLowerCase() === (evt.key || String.fromCharCode(evt.which)).toLocaleLowerCase() &&\r\n      s.ctrlKey === evt.ctrlKey && s.shiftKey === evt.shiftKey && s.altKey === evt.altKey;\r\n  }\r\n\r\n  constructor(public key: string, public ctrlKey = false, public shiftKey = false, public altKey = false) {\r\n    if (!Shortcut.isValid(this)) {\r\n      console.error(`Shortcut '${key}' is not valid. Shortcut should contain 1 digit or 1 letter!`);\r\n    } else {\r\n      this.which = key.charCodeAt(0);\r\n    }\r\n  }\r\n\r\n  match(evt: KeyboardEvent) {\r\n    return Shortcut.match(evt, this);\r\n  }\r\n\r\n  toString() {\r\n    // todo: Cmd vs. Ctrl\r\n    return `${this.ctrlKey ? 'Ctrl + ' : ''}\r\n            ${this.shiftKey ? 'Shift + ' : ''}\r\n            ${this.altKey ? 'Alt + ' : ''}\r\n            ${this.key}`;\r\n  }\r\n}\r\n","import {Component, OnInit, Input, HostListener, Output, EventEmitter} from '@angular/core';\r\nimport {GlobalShortcutComponent} from '../../global-shortcut-component.interface';\r\nimport {GlobalShortcutAction} from '../../global-shortcut-action.interface';\r\nimport {Shortcut} from '../../shortcut.interface';\r\n\r\n@Component({\r\n  selector: 'eo-global-shortcuts-section',\r\n  templateUrl: './global-shortcuts-section.component.html',\r\n  styleUrls: ['./global-shortcuts-section.component.scss']\r\n})\r\nexport class GlobalShortcutsSectionComponent implements OnInit {\r\n\r\n  _component: GlobalShortcutComponent;\r\n  _actions: GlobalShortcutAction[];\r\n\r\n  @Input() target;\r\n\r\n  @Input('component')\r\n  set component(component: GlobalShortcutComponent) {\r\n    // convert strings to Shortcuts which adds immediate validation\r\n    component.actions.forEach(a => a.shortcut = a.shortcut instanceof Shortcut ? a.shortcut : new Shortcut(a.shortcut));\r\n    this._component = component;\r\n\r\n    // filter hidden actions\r\n    this._actions = this._component.actions.filter((a) => !a['isHidden'] || !a.isHidden(this.target));\r\n  }\r\n\r\n  @Output() onActionExecuted = new EventEmitter();\r\n  activeActionIndex = 0;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  @HostListener('document:keyup', ['$event']) onKey(event) {\r\n    if (this._actions.length && this._component.focused) {\r\n      let length = this._actions.length - 1;\r\n      if (event.which === 38) {\r\n        // Arrow Up\r\n        this.activeActionIndex = this.activeActionIndex === 0 ? length : this.activeActionIndex - 1;\r\n      } else if (event.which === 40) {\r\n        // Arrow Down\r\n        this.activeActionIndex = this.activeActionIndex === length ? 0 : this.activeActionIndex + 1;\r\n      } else if (event.which === 13) {\r\n        // ENTER\r\n        this.executeAction(this._actions[this.activeActionIndex]);\r\n      }\r\n    }\r\n\r\n    // evaluate shortcuts\r\n    if (Shortcut.isValid(event)) {\r\n      let action = this._actions.find(({shortcut}) => shortcut && Shortcut.match(event, shortcut));\r\n      this.executeAction(action);\r\n    }\r\n  }\r\n\r\n  executeAction(action) {\r\n    if (action) {\r\n      this.onActionExecuted.emit();\r\n      action.onExecuteAction(this.target);\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n}\r\n","<div class=\"gsc-component\" [ngClass]=\"{active: _component.focused}\" tabindex=\"-1\">\r\n  <h2>{{_component.labelKey ? (_component.labelKey | translate) : _component.label}}</h2>\r\n  <div class=\"action\" *ngFor=\"let action of _actions; let idx = index\"\r\n       [ngClass]=\"{active: idx === activeActionIndex, hasshortcut: action.shortcut}\"\r\n       (click)=\"executeAction(action)\" tabindex=\"-1\">\r\n    <span class=\"name\">{{action.nameKey ? (action.nameKey | translate) : action.name}}</span>\r\n    <span class=\"shortcut\">{{action.shortcut && action.shortcut.toString()}}</span>\r\n  </div>\r\n</div>\r\n","import {Component, HostListener, ViewChild} from '@angular/core';\r\nimport {ShortcutsService} from '../shortcuts.service';\r\nimport {GlobalShortcutComponent} from '../global-shortcut-component.interface';\r\nimport {fromEvent} from 'rxjs';\r\nimport {debounceTime, tap} from 'rxjs/operators';\r\n\r\n@Component({\r\n  selector: 'eo-global-shortcuts',\r\n  templateUrl: './global-shortcuts.component.html',\r\n  styleUrls: ['./global-shortcuts.component.scss']\r\n})\r\nexport class GlobalShortcutsComponent {\r\n\r\n  @ViewChild('shortcuts') container;\r\n\r\n  private hotkeyTick = 0;\r\n  target;\r\n  shortcutsVisible: boolean;\r\n  private _boundComponents: GlobalShortcutComponent[];\r\n  items: GlobalShortcutComponent[];\r\n\r\n  constructor(private shortcutsService: ShortcutsService) {\r\n    shortcutsService.components$.subscribe((boundComponents) => {\r\n      this._boundComponents = boundComponents;\r\n    });\r\n\r\n    let timeOut;\r\n    // notice: it's important that global shortcuts listen on the windows object rather than on document\r\n    // That's because other global listeners (like uploader) should be able to cancel keyboard events to\r\n    // avoid the shortcuts overlay to be triggered\r\n    fromEvent(window, 'keyup').pipe(\r\n      debounceTime(100),\r\n      tap((event: KeyboardEvent) => {\r\n        if (event.key === 'Control') {\r\n          this.hotkeyTick++;\r\n          if (this.hotkeyTick === 2) {\r\n            this.showShortcutsPanel(event);\r\n            this.hotkeyTick = 0;\r\n          } else {\r\n            timeOut = setTimeout(() => this.hotkeyTick = 0, 1000);\r\n          }\r\n        } else {\r\n          this.hotkeyTick = 0;\r\n          if (timeOut) {\r\n            clearTimeout(timeOut);\r\n          }\r\n        }\r\n\r\n        if (this.shortcutsVisible) {\r\n          switch (event.key) {\r\n            case 'Control':\r\n              break;\r\n            case 'Escape':\r\n              this.hideShortcutsPanel();\r\n              clearTimeout(timeOut);\r\n              break;\r\n            case 'ArrowLeft':\r\n              this.focusPrevious();\r\n              break;\r\n            case 'ArrowRight':\r\n              this.focusNext();\r\n              break;\r\n          }\r\n        }\r\n      })\r\n    ).subscribe()\r\n  }\r\n\r\n  // prevent setting focus from the shortcut component itself\r\n  // while the shortcut panel is showing\r\n  @HostListener('focusin', ['$event']) focusIn(event) {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n  }\r\n\r\n  showShortcutsPanel(evt) {\r\n    if (!this.shortcutsVisible) {\r\n      this.target = evt.target;\r\n      this.items = this._boundComponents.filter(c => {\r\n        // filter items to show only shortcut sections that have at least one visible action\r\n        let visibleActions = c.actions.filter(a => !a['isHidden'] || !a.isHidden(this.target));\r\n        return visibleActions.length > 0;\r\n      });\r\n      if (!~this.items.findIndex(c => c.focused)) {\r\n        this.focusNext();\r\n      }\r\n\r\n      this.shortcutsVisible = true;\r\n      setTimeout(() => this.container.nativeElement.focus());\r\n    }\r\n  }\r\n\r\n  hideShortcutsPanel() {\r\n    this.shortcutsVisible = false;\r\n    if (this.target) {\r\n      this.target.focus();\r\n    }\r\n  }\r\n\r\n  // callback passed to the globalShortcutsSectionComponent to be executed\r\n  // when an action was executed\r\n  onActionExecuted(evt) {\r\n    this.hideShortcutsPanel();\r\n  }\r\n\r\n  // focus next shortcut section\r\n  focusNext() {\r\n    let focusedIndex = this.items.findIndex(c => c.focused);\r\n    let targetIndex;\r\n    if (focusedIndex === -1 || focusedIndex === this.items.length - 1) {\r\n      // nothing focused right now\r\n      targetIndex = 0;\r\n    } else {\r\n      targetIndex = focusedIndex + 1;\r\n    }\r\n    this.shortcutsService.focusComponent(this.items[targetIndex].id);\r\n  }\r\n\r\n  // focus previous shortcut section\r\n  focusPrevious() {\r\n    let focusedIndex = this.items.findIndex(c => c.focused);\r\n    let targetIndex;\r\n    if (focusedIndex === -1) {\r\n      targetIndex = 0;\r\n    } else if (focusedIndex === 0) {\r\n      // nothing focused right now\r\n      targetIndex = this.items.length - 1;\r\n    } else {\r\n      targetIndex = focusedIndex - 1;\r\n    }\r\n    this.shortcutsService.focusComponent(this.items[targetIndex].id);\r\n  }\r\n}\r\n","<div class=\"eo-global-shortcuts\" *ngIf=\"shortcutsVisible\" #shortcuts tabindex=\"-1\">\r\n  <eo-icon class=\"button white close\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" [iconTitle]=\"('eo.search.storedquery.close' | translate)\"\r\n           (click)=\"hideShortcutsPanel()\">\r\n  </eo-icon>\r\n  <h1 translate>eo.shortcuts.title</h1>\r\n  <div class=\"sections\" tabindex=\"-1\">\r\n    <eo-global-shortcuts-section [component]=\"cmp\"\r\n                                 [target]=\"target\"\r\n                                 (onActionExecuted)=\"onActionExecuted($event)\"\r\n                                 *ngFor=\"let cmp of items\"></eo-global-shortcuts-section>\r\n  </div>\r\n</div>\r\n","import {Directive, Input, OnDestroy, HostListener, HostBinding} from '@angular/core';\r\nimport {GlobalShortcutComponent} from './global-shortcut-component.interface';\r\nimport {ShortcutsService} from './shortcuts.service';\r\n\r\n/**\r\n * Directive to add a component to the global shortcuts service. Just apply\r\n * `[eoShortcuts]=\"shortcutsCmp\"` to the template of your component, where `shortcutsCmp`\r\n * is an object implementing the `GlobalShortcutComponent` interface. This will then add\r\n * the component itself and its provided actions to the global shortcuts overlay. It will\r\n * also take care of binding and unbinding of the components shortcuts.\r\n */\r\n@Directive({\r\n  selector: '[eoShortcuts]'\r\n})\r\nexport class ShortcutsDirective implements OnDestroy {\r\n\r\n  private _shortcutCmp: GlobalShortcutComponent;\r\n\r\n  // set tabindex to the host component so it is focusable\r\n  @HostBinding('attr.tabindex') _tabIndex = 0;\r\n\r\n  @Input('eoShortcuts')\r\n  set shortcuts(shortcutComponent: GlobalShortcutComponent) {\r\n    this._shortcutCmp = shortcutComponent;\r\n    this.shortcutsService.bindComponent(this._shortcutCmp);\r\n  }\r\n\r\n  // bind to fosusin event to also set focus on the shortcut component.\r\n  // Using 'focusin' instead of 'focus' enables the parent component to receive\r\n  // the event when a child component gets focused (because this event bubbles).\r\n  @HostListener('focusin', ['$event']) focus(event) {\r\n    this.shortcutsService.focusComponent(this._shortcutCmp.id);\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n  }\r\n\r\n  constructor(private shortcutsService: ShortcutsService) {\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.shortcutsService.unbindComponent(this._shortcutCmp.id);\r\n  }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {EoSharedModule} from '@eo-sdk/core';\r\nimport {ShortcutsService} from './shortcuts.service';\r\nimport {GlobalShortcutsComponent} from './global-shortcuts/global-shortcuts.component';\r\nimport {GlobalShortcutsSectionComponent} from './global-shortcuts/global-shortcuts-section/global-shortcuts-section.component';\r\nimport {ShortcutsDirective} from './shortcuts.directive';\r\nimport {UiModule} from '../ui/ui.module';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    EoSharedModule,\r\n    UiModule\r\n  ],\r\n  exports: [GlobalShortcutsComponent, ShortcutsDirective],\r\n  declarations: [GlobalShortcutsComponent, GlobalShortcutsSectionComponent, ShortcutsDirective],\r\n  providers: [ShortcutsService]\r\n})\r\nexport class ShortcutsModule {\r\n}\r\n","import {NavigationExtras, Router} from '@angular/router';\r\nimport {finalize, catchError} from 'rxjs/operators';\r\nimport {Component, Input, ViewChild, Output, EventEmitter, ElementRef} from '@angular/core';\r\nimport {EoError, TranslateService} from '@eo-sdk/core';\r\nimport {ObjectFormComponent} from '../object-form/object-form.component';\r\nimport {GlobalShortcutComponent} from '../../shortcuts/global-shortcut-component.interface';\r\nimport {ObjectFormOptions} from '../object-form-options.interface';\r\nimport {FormStatusChangedEvent} from '../form-status-changed-event.interface';\r\nimport {PendingChangesService} from '../../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {DmsObject, SystemService, DmsService, NotificationsService, Utils} from '@eo-sdk/core';\r\n\r\n\r\n@Component({\r\n  selector: 'eo-object-form-edit',\r\n  templateUrl: './object-form-edit.component.html',\r\n  styleUrls: ['./object-form-edit.component.scss']\r\n})\r\nexport class ObjectFormEditComponent {\r\n\r\n  showConflictDialog = false;\r\n  conflictError: any;\r\n\r\n  // ID set by pendingChanges service when editing indexdata\r\n  // Used to finish the pending task when editing is done\r\n  private pendingTaskId: string;\r\n\r\n  // fetch a reference to the opbject form component to be able to\r\n  // get the form data\r\n  @ViewChild(ObjectFormComponent) objectForm: ObjectFormComponent;\r\n\r\n  @Input() formDisabled: boolean;\r\n\r\n  @Input('dmsObject')\r\n  set dmsObject(dmsObject: DmsObject) {\r\n    if (dmsObject) {\r\n      this._dmsObject = dmsObject;\r\n\r\n      // reset the state of the form\r\n      this.formState = null;\r\n      this.controls.saving = false;\r\n      this.controls.visible = false;\r\n\r\n      this.createObjectForm(dmsObject);\r\n    }\r\n  }\r\n\r\n  get dmsObject() {\r\n    return this._dmsObject;\r\n  }\r\n\r\n  @Output() indexDataSaved = new EventEmitter<any>();\r\n\r\n  formOptions: ObjectFormOptions;\r\n  formState: FormStatusChangedEvent;\r\n  controls = {\r\n    visible: false,\r\n    saving: false\r\n  };\r\n\r\n  private _dmsObject: DmsObject;\r\n  private messages = {\r\n    formSuccess: null,\r\n    formError: null\r\n  };\r\n\r\n  // shortcut actions\r\n  shortcuts: GlobalShortcutComponent = {\r\n    id: 'eo.app.form.edit',\r\n    label: this.translate.instant('eo.shortcuts.form.title'),\r\n    labelKey: 'eo.shortcuts.form.title',\r\n    actions: [{\r\n      name: this.translate.instant('eo.shortcuts.form.action.save'),\r\n      nameKey: 'eo.shortcuts.form.action.save',\r\n      shortcut: 'S',\r\n      onExecuteAction: () => {\r\n        this.save();\r\n      },\r\n      isHidden: () => {\r\n        return !this.formState || !this.formState.dirty || this.formState.invalid || !Utils.isVisible(this.element.nativeElement.parentElement);\r\n      }\r\n    }, {\r\n      name: this.translate.instant('eo.shortcuts.form.action.reset'),\r\n      nameKey: 'eo.shortcuts.form.action.reset',\r\n      shortcut: 'R',\r\n      onExecuteAction: () => {\r\n        this.reset();\r\n      },\r\n      isHidden: () => {\r\n        return !this.formState || !this.formState.dirty || !Utils.isVisible(this.element.nativeElement.parentElement);\r\n      }\r\n    }, {\r\n      name: this.translate.instant('eo.shortcuts.form.action.edit'),\r\n      nameKey: 'eo.shortcuts.form.action.edit',\r\n      shortcut: 'E',\r\n      onExecuteAction: () => {\r\n        this.objectForm.focusForm();\r\n      },\r\n      isHidden: (target) => {\r\n        return !this.formOptions || !Utils.isVisible(this.element.nativeElement.parentElement) || this.element.nativeElement.contains(target);\r\n      }\r\n    }]\r\n  };\r\n\r\n  constructor(private systemService: SystemService,\r\n    private dmsService: DmsService,\r\n    private element: ElementRef,\r\n    private notication: NotificationsService,\r\n    private pendingChanges: PendingChangesService,\r\n    private router: Router,\r\n    public translate: TranslateService) {\r\n\r\n    this.translate.get([\r\n      'eo.object.indexdata.save.success',\r\n      'eo.object.indexdata.save.error'\r\n    ]).subscribe((res) => {\r\n      this.messages.formSuccess = res['eo.object.indexdata.save.success'];\r\n      this.messages.formError = res['eo.object.indexdata.save.error'];\r\n    });\r\n  }\r\n\r\n  private startPending() {\r\n    // because this method will be called every time the form status changes,\r\n    // pending task will only be started once until it was finished\r\n    if (!this.pendingChanges.hasPendingTask(this.pendingTaskId || ' ')) {\r\n      this.pendingTaskId = this.pendingChanges.startTask();\r\n    }\r\n  }\r\n\r\n  private finishPending() {\r\n    this.pendingChanges.finishTask(this.pendingTaskId);\r\n  }\r\n\r\n  onFormStatusChanged(evt) {\r\n    this.formState = evt;\r\n    this.controls.visible = this.formState.invalid || this.formState.dirty;\r\n    if (this.formState.dirty) {\r\n      this.startPending();\r\n    } else {\r\n      this.finishPending();\r\n    }\r\n  }\r\n\r\n  // save the current dms object\r\n  save(ignoreConflicts?: boolean) {\r\n    setTimeout(() => {\r\n      if (this.formState.dirty && !this.formState.invalid) {\r\n        this.controls.saving = true;\r\n        const formData = this.objectForm.getFormData();\r\n        const {id, typeName, version} = this._dmsObject;\r\n\r\n        this.dmsService.updateObject(id, formData, typeName, ignoreConflicts ? null : version, false)\r\n          .pipe(finalize(() => this.finishPending()))\r\n          .subscribe((updatedObject) => {\r\n            this._dmsObject = updatedObject;\r\n            this.formOptions.data = updatedObject.data;\r\n            this.formOptions.object = updatedObject;\r\n            this.controls.saving = false;\r\n            this.controls.visible = false;\r\n            this.objectForm.setFormPristine();\r\n            this.indexDataSaved.emit(formData);\r\n          }, (err) => {\r\n            this.controls.saving = false;\r\n            if(err.status === 409){\r\n              this.conflictError = err.error;\r\n              this.openConflictDialog();\r\n            }\r\n            else {\r\n              throw new EoError(err, this._dmsObject.title, this.messages.formError, false);\r\n            }\r\n          }\r\n          );\r\n      }\r\n    }, 500);\r\n  }\r\n\r\n  openConflictDialog(){\r\n    this.showConflictDialog = true;\r\n  }\r\n\r\n  closeConflictDialog(){\r\n    this.showConflictDialog = false;\r\n  }\r\n\r\n  showConflictChanges(){\r\n    const navigationExtras: NavigationExtras = {\r\n      queryParams: {\r\n        version: this._dmsObject.version,\r\n        version2: this.conflictError.dmsobject.version\r\n      }\r\n    };\r\n    const url = this.router.createUrlTree([`versions/${this._dmsObject.id}`], navigationExtras).toString().replace(/^\\/+/g, '');\r\n    window.open(url, '_blank');\r\n  }\r\n\r\n  cancelSaving(){\r\n    this.closeConflictDialog();\r\n  }\r\n\r\n  // reset the form to its initial state\r\n  reset() {\r\n    this.objectForm.resetForm();\r\n  }\r\n\r\n  // create the formOptions required by object form component\r\n  private createObjectForm(dmsObject: DmsObject) {\r\n\r\n    this.systemService\r\n      .getObjectTypeForm(dmsObject.type.name, 'EDIT')\r\n      .subscribe((model) => {\r\n        this.addExceptionIDsForIDReferenceFields(model);\r\n        this.formOptions = {\r\n          layoutSettingsID: dmsObject.type.name,\r\n          formModel: model,\r\n          data: dmsObject.data,\r\n          object: dmsObject,\r\n          objectId: dmsObject.id,\r\n          disabled: this.formDisabled || !this.isEditable(dmsObject)\r\n        };\r\n        if (dmsObject.contextFolder) {\r\n          this.formOptions.context = {\r\n            id: dmsObject.contextFolder.id,\r\n            title: dmsObject.contextFolder.title,\r\n            typeName: dmsObject.contextFolder.typeName\r\n          }\r\n        }\r\n      });\r\n  }\r\n\r\n  private addExceptionIDsForIDReferenceFields(model: any) {\r\n    if (model.type === 'REFERENCE') {\r\n      model.exceptionIDs = [this._dmsObject.id];\r\n    } else if(model.elements) {\r\n      model.elements.forEach(el => this.addExceptionIDsForIDReferenceFields(el));\r\n    }\r\n  }\r\n\r\n  private isEditable(dmsObject: DmsObject): boolean {\r\n    return dmsObject.hasOwnProperty('rights') && dmsObject.rights.edit && !dmsObject.isFinalized;\r\n  }\r\n}\r\n","<div class=\"object-form-edit\" [ngClass]=\"{invalid: formState?.invalid === true}\" [eoShortcuts]=\"shortcuts\">\r\n  <eo-object-form [formOptions]=\"formOptions\" *ngIf=\"formOptions\"\r\n                  (statusChanged)=\"onFormStatusChanged($event)\"></eo-object-form>\r\n\r\n  <div class=\"form-controls\" *ngIf=\"controls.visible\">\r\n\r\n    <div class=\"err-msg\" *ngIf=\"formState?.invalid\" translate>eo.object.indexdata.form.invalid</div>\r\n\r\n    <div class=\"buttons\">\r\n\r\n      <button class=\"secondary\" (click)=\"reset()\" [disabled]=\"controls.saving\" translate>eo.object.indexdata.reset</button>\r\n      <button class=\"primary\" [ngClass]=\"{spinner: controls.saving}\"\r\n              [disabled]=\"formState?.invalid || controls.saving\"\r\n              (click)=\"save()\" translate>eo.object.indexdata.save</button>\r\n    </div>\r\n  </div>\r\n</div>\r\n\r\n<eo-dialog [title]=\"('eo.object.indexdata.save.conflict.dialog.title' | translate : {modifier: conflictError?.dmsobject.modified.by.firstname + ' ' + conflictError?.dmsobject.modified.by.lastname})\"\r\n  (hide)=\"controls.saving = false;\" [(visible)]=\"showConflictDialog\" [minWidth]=\"400\" [styleClass]=\"'conflict__dialog'\">\r\n\r\n  <div class=\"action-buttons conflict--action-buttons flex-row\">\r\n    <button type=\"button\" class=\"button cancel\" (click)=\"cancelSaving()\"\r\n      translate>eo.cta.button.cancel</button>\r\n    <button type=\"button\" class=\"button cancel\" (click)=\"showConflictChanges()\"\r\n      translate>eo.object.indexdata.save.changes</button>\r\n    <button type=\"button\" (click)=\"save(true); closeConflictDialog();\" class=\"button primary\"\r\n      translate>eo.object.indexdata.save</button>\r\n  </div>\r\n</eo-dialog>\r\n","import {AgGridModule} from '@ag-grid-community/angular';\r\nimport {CommonModule} from '@angular/common';\r\nimport {NgModule} from '@angular/core';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\n\r\nimport {YvcDatepickerModule} from '@yuuvis/components/datepicker';\r\nimport {YvcSplitViewModule} from '@yuuvis/components/split-view';\r\nimport {YvcTabsModule} from '@yuuvis/components/tabs';\r\nimport {PipesModule} from '../../eo-framework-core/pipes/pipes.module';\r\nimport {FormElementsModule} from '../form-elements/form-elements.module';\r\nimport {GridModule} from '../grid/grid.module';\r\nimport {ListContainerModule} from '../list-container/list-container.module';\r\nimport {MediaModule} from '../media/media.module';\r\nimport {ShortcutsModule} from '../shortcuts/shortcuts.module';\r\nimport {UiModule} from '../ui/ui.module';\r\nimport {ObjectFormEditComponent} from './object-form-edit/object-form-edit.component';\r\nimport {ObjectFormHelperService} from './object-form-helper.service';\r\nimport {FormElementTableComponent} from './object-form/form-element-table/form-element-table.component';\r\nimport {RowEditComponent} from './object-form/form-element-table/row-edit/row-edit.component';\r\nimport {FormElementComponent} from './object-form/form-element/form-element.component';\r\nimport {ObjectFormGroupComponent} from './object-form/object-form-group/object-form-group.component';\r\nimport {ObjectFormComponent} from './object-form/object-form.component';\r\nimport { FormElementTemplate } from './object-form/form-element/form-element-template.directive';\r\n\r\n\r\n/**\r\n * @module\r\n * @description\r\n * Module rendering a dms objects form.\r\n */\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    UiModule,\r\n    PipesModule,\r\n    AgGridModule,\r\n    ShortcutsModule,\r\n    FormElementsModule,\r\n    ListContainerModule,\r\n    GridModule,\r\n    MediaModule,\r\n    YvcDatepickerModule,\r\n    YvcTabsModule,\r\n    YvcSplitViewModule\r\n  ],\r\n  exports: [ObjectFormComponent, ObjectFormGroupComponent, ObjectFormEditComponent, FormElementComponent, FormElementTableComponent],\r\n  providers: [ObjectFormHelperService],\r\n  declarations: [\r\n    ObjectFormComponent,\r\n    ObjectFormGroupComponent,\r\n    ObjectFormEditComponent,\r\n    FormElementComponent,\r\n    FormElementTableComponent,\r\n    RowEditComponent,\r\n    FormElementTemplate\r\n  ]\r\n})\r\nexport class ObjectFormModule {\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, Output} from '@angular/core';\r\nimport {DmsObject, NotificationsService} from '@eo-sdk/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {AgentService} from '../../../../../eo-framework-core';\r\nimport {ActionComponent} from '../../../interfaces/action-component.interface';\r\nimport {Location} from '@angular/common';\r\n\r\n\r\n@Component({\r\n  selector: 'eo-email',\r\n  templateUrl: './email.component.html',\r\n  styleUrls: ['./email.component.scss']\r\n})\r\nexport class EmailComponent implements ActionComponent, AfterViewInit {\r\n\r\n  @Input() selection: DmsObject[];\r\n  @Output() finished: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() canceled: EventEmitter<any> = new EventEmitter<any>();\r\n  actionDescription: string;\r\n  showDescriptionOrginal: boolean;\r\n  showDescriptionPdf: boolean;\r\n  showDescriptionLink: boolean;\r\n  isExecutable: boolean\r\n\r\n  constructor(\r\n    private location: Location,\r\n    private agentService: AgentService,\r\n    private elemRef: ElementRef) {}\r\n\r\n  ngAfterViewInit(): void {\r\n    setTimeout(() => {\r\n      this.elemRef.nativeElement.querySelector('[tabindex=\"0\"]').focus();\r\n      this.isExecutable = this.agentService.isConnected && !this.selection[0].isFolder && this.selection[0].content && (this.selection[0].content.count !== 0 || this.selection[0].content.linked);\r\n\r\n    });\r\n  }\r\n\r\n  runLink() {\r\n    let subject = '';\r\n    let body = '';\r\n    let length = this.selection.length;\r\n    let index = 0;\r\n\r\n    this.selection.forEach((selectedItem) => {\r\n      if (selectedItem.title !== '') {\r\n        if (!this.endsWith(subject, '...')) {\r\n          if (subject.length > 100) {\r\n            subject += ' ...';\r\n          } else {\r\n            subject += encodeURIComponent(selectedItem.title);\r\n          }\r\n        }\r\n        body += encodeURIComponent(selectedItem.title + ': \\n');\r\n      }\r\n      if (index < length - 1) {\r\n        subject = subject + '%3B%20';\r\n      }\r\n\r\n      body += encodeURIComponent(window.location.href.replace(this.location.path(), '')\r\n        + (window.location.href.includes('/versions') ?\r\n          `/versions/${selectedItem.id}type=${selectedItem.type.name}&version=${selectedItem.version}` :\r\n          `/object/${selectedItem.id}?type=${selectedItem.type.name}\\n`));\r\n      index++;\r\n    });\r\n\r\n    window.location.href = 'mailto:?subject=' + subject + '&body=' + body;\r\n  }\r\n\r\n  endsWith(str, suffix) {\r\n    return str.indexOf(suffix, str.length - suffix.length) !== -1;\r\n  }\r\n\r\n  runOriginal() {\r\n    const attachments = this.selection.map((element) => ({\r\n      id: (element.content && element.content.linked && element.content.id) ? element.content.id : element.id,\r\n      title: element.title,\r\n      type: (element.content && element.content.linked && element.content.type) ? element.content.type : element.type.name,\r\n      version: window.location.href.includes('/versions') ? element.version : null,\r\n      rendition: ''\r\n    }));\r\n\r\n    this.agentService.sendAsMail({attachments});\r\n  }\r\n\r\n  runPdf() {\r\n    const attachments = this.selection.map((element) => ({\r\n      id: (element.content && element.content.linked && element.content.id) ? element.content.id : element.id,\r\n      title: element.title,\r\n      type: (element.content && element.content.linked && element.content.type) ? element.content.type : element.type.name,\r\n      version: window.location.href.includes('/versions') ? element.version : null,\r\n      rendition: 'PDF'\r\n    }));\r\n\r\n    this.agentService.sendAsMail({attachments});\r\n  }\r\n\r\n  showDescription(i, event) {\r\n    this.actionDescription = i === this.actionDescription ? null : i;\r\n    this.showDescriptionOrginal = this.actionDescription != null && this.actionDescription == 'original' ? true : false;\r\n    this.showDescriptionPdf = this.actionDescription != null && this.actionDescription == 'pdf' ? true : false;\r\n    this.showDescriptionLink = this.actionDescription != null && this.actionDescription == 'link' ? true : false;\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n  }\r\n\r\n  cancel() {\r\n    this.canceled.emit();\r\n  }\r\n}\r\n","<div class=\"body\" eoTrapFocus>\r\n    <div class=\"navigation\">\r\n        <div class=\"group-title\" translate>eo.email.title</div>\r\n        <div class=\"nav-item\">\r\n            <a tabindex=\"0\" (keydown.enter)=\"runLink()\" (click)=\"runLink()\">{{'eo.action.menu.send.email.link.label'|\r\n                translate}}</a>\r\n            <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\r\n                (click)=\"showDescription('link', $event)\"></eo-icon>\r\n            <div class=\"description\" *ngIf=\"showDescriptionLink\" translate>eo.action.menu.send.email.link.description\r\n            </div>\r\n        </div>\r\n        <div class=\"nav-item\" *ngIf=\"isExecutable\">\r\n            <a tabindex=\"0\" (keydown.enter)=\"runOriginal()\" (click)=\"runOriginal()\">{{'eo.action.menu.send.email.file.label'|\r\n                translate}}</a>\r\n            <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\r\n                (click)=\"showDescription('original', $event)\"></eo-icon>\r\n            <div class=\"description\" *ngIf=\"showDescriptionOrginal\" translate>eo.action.menu.send.email.file.description</div>\r\n        </div>\r\n        <div class=\"nav-item\" *ngIf=\"isExecutable\">\r\n            <a tabindex=\"0\" (keydown.enter)=\"runPdf()\" (click)=\"runPdf()\">{{'eo.action.menu.send.email.file.pdf.label' |\r\n                translate}}</a>\r\n            <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\r\n                (click)=\"showDescription('pdf', $event)\"></eo-icon>\r\n            <div class=\"description\" *ngIf=\"showDescriptionPdf\" translate>eo.action.menu.send.email.file.pdf.description</div>\r\n        </div>\r\n    </div>\r\n    <div class=\"form-buttons\">\r\n        <button (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\r\n    </div>\r\n</div>","\r\nimport {of as observableOf} from 'rxjs';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {ComponentAction} from '../../interfaces/action.interface';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {DmsObject} from '@eo-sdk/core';\r\nimport {EmailComponent} from './email/email.component';\r\n\r\n@Component({\r\n  selector: 'eo-email-action',\r\n  template: ``\r\n})\r\nexport class EmailActionComponent extends DmsObjectTarget implements ComponentAction {\r\n  header: string;\r\n  label: string;\r\n  description: string;\r\n  priority = 10;\r\n  iconSrc = 'assets/_default/svg/ic_mail.svg';\r\n  group = 'common';\r\n  range = SelectionRange.MULTI_SELECT;\r\n  component = EmailComponent;\r\n  constructor(private translate: TranslateService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.menu.email.label');\r\n    this.description = this.translate.instant('eo.action.menu.email.description');\r\n    this.header = this.translate.instant('eo.email.title');\r\n}\r\n\r\n  isExecutable(element: DmsObject) {\r\n    return observableOf(true);\r\n  };\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, Output} from '@angular/core';\r\nimport {DmsObject, NotificationsService, TranslateService} from '@eo-sdk/core';\r\nimport {ActionComponent} from '../../../interfaces/action-component.interface';\r\nimport {Location} from '@angular/common';\r\nimport {AgentService} from '../../../../../eo-framework-core/agent/agent.service';\r\n\r\n\r\n@Component({\r\n  selector: 'eo-clipboard-object-action',\r\n  templateUrl: './clipboard-object-action.component.html',\r\n  styleUrls: ['./clipboard-object-action.component.scss']\r\n})\r\nexport class ClipboardObjectActionComponent implements ActionComponent, AfterViewInit {\r\n\r\n\r\n  @Input() selection: DmsObject[];\r\n  @Output() finished: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() canceled: EventEmitter<any> = new EventEmitter<any>();\r\n  actionDescription: string;\r\n  showDescriptionOrginal: boolean;\r\n  showDescriptionPdf: boolean;\r\n  showDescriptionLink: boolean;\r\n  isExecutable: boolean\r\n\r\n\r\n  constructor(\r\n    private translate: TranslateService,\r\n    private toast: NotificationsService,\r\n    private location: Location,\r\n    private agentService: AgentService,\r\n    private elemRef: ElementRef) {}\r\n\r\n  ngAfterViewInit(): void {\r\n    setTimeout(() => {\r\n      this.elemRef.nativeElement.querySelector('[tabindex=\"0\"]').focus();\r\n      this.isExecutable = this.agentService.isConnected && !this.selection[0].isFolder && this.selection[0].content && (this.selection[0].content.count !== 0 || this.selection[0].content.linked)\r\n\r\n    });\r\n  }\r\n\r\n  runLink() {\r\n\r\n    let urlPrefix = window.location.href.replace(this.location.path(), '');\r\n    let clipboardText = '';\r\n\r\n    this.selection.forEach(element => {\r\n      if (window.location.href.includes('/versions')) {\r\n        clipboardText += urlPrefix + '/versions/' + element.id + '?type=' + element.type.name + '&version=' + element.version + '\\n';\r\n      } else {\r\n        clipboardText += urlPrefix + '/object/' + element.id + '?type=' + element.type.name + '\\n';\r\n      }\r\n    });\r\n\r\n    // Copy to clipboard via invisible textarea\r\n    let textArea = document.createElement('textarea');\r\n    textArea.value = clipboardText;\r\n    document.body.appendChild(textArea);\r\n    textArea.select();\r\n    let copySuccess = document.execCommand('copy');\r\n    document.body.removeChild(textArea);\r\n\r\n    if (copySuccess) {\r\n      this.toast.success(this.translate.instant('eo.action.menu.clipboard.link.successful'));\r\n    } else {\r\n      this.toast.error(this.translate.instant('eo.action.menu.clipboard.link.error'));\r\n    }\r\n    this.finished.emit();\r\n  }\r\n\r\n  runOriginal() {\r\n    let documents = this.selection.map((element) => ({\r\n      id: (element.content && element.content.linked && element.content.id) ? element.content.id : element.id,\r\n      title: element.title,\r\n      type: (element.content && element.content.linked && element.content.type) ? element.content.type : element.type.name,\r\n      version: window.location.href.includes('/versions') ? element.version : null,\r\n      rendition: ''\r\n    }),\r\n    this.finished.emit()\r\n    );\r\n\r\n    this.agentService.copyToClipboard(documents);\r\n  }\r\n\r\n  runPdf() {\r\n    let documents = this.selection.map((element) => ({\r\n      id: (element.content && element.content.linked && element.content.id) ? element.content.id : element.id,\r\n      title: element.title,\r\n      type: (element.content && element.content.linked && element.content.type) ? element.content.type : element.type.name,\r\n      version: window.location.href.includes('/versions') ? element.version : null,\r\n      rendition: 'PDF'\r\n    }),\r\n    this.finished.emit()\r\n    );\r\n\r\n    this.agentService.copyToClipboard(documents);\r\n  }\r\n\r\n  showDescription(i, event) {\r\n    this.actionDescription = i === this.actionDescription ? null : i;\r\n    this.showDescriptionOrginal = this.actionDescription != null && this.actionDescription == 'original' ? true : false;\r\n    this.showDescriptionPdf = this.actionDescription != null  && this.actionDescription == 'pdf' ? true : false;\r\n    this.showDescriptionLink = this.actionDescription != null  && this.actionDescription == 'link' ? true : false;\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n  }\r\n\r\n\r\n  cancel() {\r\n    this.canceled.emit();\r\n  }\r\n}\r\n","<div class=\"body\" eoTrapFocus>\r\n    <div class=\"navigation\">\r\n        <div class=\"group-title\" translate>eo.action.menu.clipboard.label</div>\r\n        <div class=\"nav-item\">\r\n            <a tabindex=\"0\" (keydown.enter)=\"runLink()\" (click)=\"runLink()\">{{'eo.action.menu.clipboard.link.label'|\r\n                translate}}</a>\r\n            <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\r\n                (click)=\"showDescription('link', $event)\"></eo-icon>\r\n            <div class=\"description\" *ngIf=\"showDescriptionLink\" translate>eo.action.menu.clipboard.link.description\r\n            </div>\r\n        </div>\r\n        <div class=\"nav-item\" *ngIf=\"isExecutable\">\r\n            <a tabindex=\"0\" (keydown.enter)=\"runOriginal()\" (click)=\"runOriginal()\">{{'eo.action.menu.clipboard.file.label'|\r\n                translate}}</a>\r\n            <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\r\n                (click)=\"showDescription('original', $event)\"></eo-icon>\r\n            <div class=\"description\" *ngIf=\"showDescriptionOrginal\" translate>eo.action.menu.clipboard.file.description</div>\r\n        </div>\r\n        <div class=\"nav-item\" *ngIf=\"isExecutable\">\r\n            <a tabindex=\"0\" (keydown.enter)=\"runPdf()\" (click)=\"runPdf()\">{{'eo.action.menu.clipboard.file.pdf.label' |\r\n                translate}}</a>\r\n            <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"\r\n                (click)=\"showDescription('pdf', $event)\"></eo-icon>\r\n            <div class=\"description\" *ngIf=\"showDescriptionPdf\" translate>eo.action.menu.clipboard.file.pdf.description </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"form-buttons\">\r\n        <button (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\r\n    </div>\r\n</div>","\r\nimport {of as observableOf} from 'rxjs';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {ComponentAction} from '../../interfaces/action.interface';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {DmsObject} from '@eo-sdk/core';\r\nimport {ClipboardObjectActionComponent} from './clipboard-object-action/clipboard-object-action.component';\r\n\r\n@Component({\r\n  selector: 'eo-clipboard-action',\r\n  template: ``\r\n})\r\nexport class ClipboardActionComponent extends DmsObjectTarget implements ComponentAction {\r\n  header: string;\r\n  label: string;\r\n  description: string;\r\n  priority = 11;\r\n  iconSrc = 'assets/_default/svg/ic_clipboard.svg';\r\n  group = 'common';\r\n  range = SelectionRange.MULTI_SELECT;\r\n  component = ClipboardObjectActionComponent;\r\n\r\n  constructor(private translate: TranslateService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.menu.clipboard.label');\r\n    this.description = this.translate.instant('eo.action.menu.clipboard.description');\r\n    this.header = this.translate.instant('eo.clipboard.title');\r\n  }\r\n\r\n  isExecutable(element: DmsObject) {\r\n    return observableOf(!!element);\r\n  }\r\n}\r\n","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {SimpleAction} from '../../interfaces/action.interface';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {Router} from '@angular/router';\r\nimport {DmsObject, CapabilitiesService, UserService, EventService, EnaioEvent, Utils} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-favorite-action',\r\n  template: ``\r\n})\r\nexport class FavoriteActionComponent extends DmsObjectTarget implements SimpleAction {\r\n  label: string;\r\n  description: string;\r\n  priority = 12;\r\n  iconSrc = 'assets/_default/svg/ic_favorite.svg';\r\n  group = 'common';\r\n  range = SelectionRange.MULTI_SELECT;\r\n\r\n  constructor(private translate: TranslateService,\r\n              private userService: UserService,\r\n              private eventService: EventService,\r\n              private capabilityService: CapabilitiesService,\r\n              private router: Router) {\r\n    super();\r\n  }\r\n\r\n  isExecutable(item: DmsObject) {\r\n    if (this.isAllowedState() && this.capabilityService.getCapabilities().favorites\r\n      && !item.type.supertypes.find(sT => sT === 'sysjournalobject')) {\r\n      // differ between adding or removing favorite state\r\n      if (item.isFavorite) {\r\n        this.label = this.translate.instant('eo.action.delete.favorite.label');\r\n        this.description = this.translate.instant('eo.action.delete.favorite.description');\r\n      } else {\r\n        this.label = this.translate.instant('eo.action.create.favorite.label');\r\n        this.description = this.translate.instant('eo.action.create.favorite.description');\r\n      }\r\n      return observableOf(true);\r\n    } else {\r\n      return observableOf(false);\r\n    }\r\n  };\r\n\r\n  run(selection: DmsObject[]) {\r\n    selection.forEach(item => {\r\n      const {id, typeName, title} = item;\r\n      if (!item.isFavorite) {\r\n        this.userService\r\n          .createFavorite(id, typeName, title || id)\r\n          .subscribe(() => {\r\n            this.eventService.trigger(EnaioEvent.DMS_OBJECT_FAVORITE_ON, id)\r\n          }, Utils.throw(null,\r\n            this.translate.instant('eo.state.settings.presence.error.title'),\r\n            this.translate.instant('eo.state.settings.presence.error.description')\r\n          ));\r\n        // todo: add proper error messages here\r\n      } else {\r\n        this.userService\r\n          .removeFavoritesForTarget(id)\r\n          .subscribe(() => {\r\n            this.eventService.trigger(EnaioEvent.DMS_OBJECT_FAVORITE_OFF, id)\r\n          }, Utils.throw(null,\r\n            this.translate.instant('eo.state.settings.presence.error.title'),\r\n            this.translate.instant('eo.state.settings.presence.error.description')\r\n          ));\r\n        // todo: add proper error messages here\r\n      }\r\n    });\r\n  }\r\n\r\n  isAllowedState() {\r\n    const disabledStates = ['/versions'];\r\n    return !disabledStates.some(s => this.router.url.startsWith(s));\r\n  }\r\n}\r\n","import {LocaleDatePipe} from './../../../../../eo-framework-core/pipes/locale-date.pipe';\r\nimport {Component, ElementRef, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {ActionComponent} from '../../../interfaces/action-component.interface';\r\nimport {DmsObject, CapabilitiesService, TranslateService} from '@eo-sdk/core';\r\nimport {Router} from '@angular/router';\r\nimport {BackendService, NotificationsService, EventService, EnaioEvent, DmsService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-delete',\r\n  templateUrl: './delete.component.html',\r\n  styleUrls: ['./delete.component.scss']\r\n})\r\nexport class DeleteComponent implements OnInit, ActionComponent {\r\n\r\n  deleting = false;\r\n  folder = '';\r\n  count = '...';\r\n  retentionTime: string;\r\n  datePipe: LocaleDatePipe;\r\n  showForceDeleteDialog = false;\r\n\r\n  @Input() selection: DmsObject[];\r\n  @Output() finished: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() canceled: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  constructor(private translate: TranslateService,\r\n              private backend: BackendService,\r\n              private toast: NotificationsService,\r\n              private router: Router,\r\n              private capabilitiesService: CapabilitiesService,\r\n              private dmsService: DmsService,\r\n              private elemRef: ElementRef,\r\n              private eventService: EventService) {\r\n\r\n    this.datePipe = new LocaleDatePipe(translate);\r\n  }\r\n\r\n  private isAllowedState(): boolean {\r\n    const disabledStates = ['/result'];\r\n    return !disabledStates.some(s => this.router.url.startsWith(s));\r\n  }\r\n\r\n  deleteDmsObject(dmsObject: DmsObject, force = false) {\r\n    const hardDelete: boolean = !this.capabilitiesService.hasCapability('recyclebin');\r\n    this.dmsService\r\n      .deleteDmsObject(dmsObject.id, dmsObject.type.name, hardDelete, force)\r\n      .subscribe(() => {\r\n          this.showForceDeleteDialog = false;\r\n          const successMessage = this.capabilitiesService.hasCapability('recyclebin')\r\n          ? this.translate.instant('eo.action.delete.dms.object.done.enabled.message', { title: dmsObject.title })\r\n          : this.translate.instant('eo.action.delete.dms.object.done.message', { title: dmsObject.title });\r\n\r\n        this.toast.success(this.translate.instant('eo.cta.button.delete'), successMessage);\r\n          this.eventService.trigger(EnaioEvent.DMS_OBJECT_DELETED, this.selection[0]);\r\n\r\n          if ((dmsObject.isContextFolder || !dmsObject.contextFolder) && this.isAllowedState()) {\r\n            this.router.navigate(['/']);\r\n          }\r\n\r\n          this.finished.emit();\r\n        }, (error) => {\r\n          switch (error.status) {\r\n            case 403:\r\n              if (error.error.key === 'DMS_DOCUMENT_IN_PROCESS_FILE') {\r\n                this.showForceDeleteDialog = true;\r\n                break;\r\n              }\r\n              this.toast.error(this.translate.instant('eo.action.delete.dms.object.error.403'));\r\n              this.finished.emit();\r\n              break;\r\n            case 409:\r\n              this.toast.error(this.translate.instant('eo.action.delete.dms.object.error.409'));\r\n              this.finished.emit();\r\n              break;\r\n            case 410:\r\n              this.toast.error(this.translate.instant('eo.action.delete.dms.object.error.410'));\r\n              this.finished.emit();\r\n              break;\r\n          }\r\n        }\r\n      );\r\n  }\r\n\r\n  run() {\r\n    this.deleting = true;\r\n    this.deleteDmsObject(this.selection[0] as DmsObject);\r\n  }\r\n\r\n  cancel() {\r\n    this.canceled.emit();\r\n  }\r\n\r\n  isExpired(dateString: string): boolean {\r\n    return new Date(dateString).setHours(0, 0, 0, 0) < new Date().setHours(0, 0, 0, 0);\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    setTimeout(() => {\r\n      this.elemRef.nativeElement.querySelector('.primary').focus();\r\n    },);\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this.selection[0].isContextFolder) {\r\n      this.folder = this.selection[0].title;\r\n      this.backend.get(`/count/${this.selection[0].id}`, this.backend.getContextBase())\r\n        .subscribe(data => (this.count = typeof data.total === 'number' ? data.total : data.total.value));\r\n    }\r\n    this.dmsService.getDmsObjectByParams({id: this.selection[0].id, type: this.selection[0].typeName, withStorageInfo: true}).subscribe(res => {\r\n      const latestRetentionTime = res.storageInfo.filter(info => info.retention).sort((a, b) => -a.retention.localeCompare(b.retention))[0]?.retention;\r\n      if(!this.isExpired(latestRetentionTime)) {\r\n        this.retentionTime = this.datePipe.transform(latestRetentionTime, 'eoShortDate');\r\n      }\r\n    });\r\n  }\r\n}\r\n","<div class=\"eo-delete\" eoTrapFocus>\r\n\r\n  <h2 *ngIf=\"!folder && !retentionTime\" translate [translateParams]=\"{item: selection[0].title}\">eo.action.delete.dms.object.confirm.message</h2>\r\n  <h2 *ngIf=\"folder && !retentionTime\" translate [translateParams]=\"{folder: folder, count: count}\">eo.action.delete.dms.object.confirm.context.folder.title</h2>\r\n  <h2 *ngIf=\"retentionTime\" translate [translateParams]=\"{retentionTime: retentionTime}\">eo.action.delete.dms.object.error.retention.title</h2>\r\n\r\n  <div *ngIf=\"!deleting\">\r\n    <div class=\"form-buttons\">\r\n      <button (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\r\n      <button *ngIf=\"!retentionTime\" class=\"primary\" (click)=\"run()\">OK</button>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"spinner-container\" *ngIf=\"deleting\">\r\n    <eo-loading-spinner></eo-loading-spinner>\r\n  </div>\r\n</div>\r\n\r\n<eo-dialog [title]=\"'eo.action.delete.dms.dialog.title' | translate\"\r\n           [(visible)]=\"showForceDeleteDialog\" [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'force-delete__dialog'\">\r\n\r\n  <div>{{'eo.action.delete.dms.dialog.message' | translate}}</div>\r\n\r\n  <div class=\"action-buttons flex-row\">\r\n    <button type=\"button\" class=\"button cancel\" (click)=\"showForceDeleteDialog = false; cancel()\"\r\n            translate>eo.cta.button.cancel</button>\r\n    <button type=\"button\" (click)=\"deleteDmsObject(selection[0], true)\" class=\"button primary\"\r\n            translate>eo.cta.button.delete</button>\r\n  </div>\r\n</eo-dialog>\r\n\r\n\r\n","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService, DmsObject, CapabilitiesService} from '@eo-sdk/core';\r\nimport {ComponentAction} from '../../interfaces/action.interface';\r\nimport {DeleteComponent} from './delete/delete.component';\r\nimport {Router} from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'eo-delete',\r\n  template: ``\r\n})\r\nexport class DeleteActionComponent extends DmsObjectTarget implements ComponentAction {\r\n  header: string;\r\n  label: string;\r\n  description: string;\r\n  priority = 7;\r\n  iconSrc = 'assets/_default/svg/ic_trash.svg';\r\n  group = 'common';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n  component = DeleteComponent;\r\n\r\n  constructor(private translate: TranslateService, private router: Router, private capabilitiesService: CapabilitiesService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.cta.button.delete');\r\n    this.description = this.translate.instant('eo.action.delete.dms.object.description');\r\n  }\r\n\r\n  isExecutable(element: DmsObject) {\r\n    const isLocked = element.lock && element.lock.by.other;\r\n    return observableOf(element && !element.isFinalized && element.rights\r\n      && (this.capabilitiesService.hasCapability('recyclebin') ? element.rights.recycle : element.rights.delete)\r\n      && !isLocked && this.isAllowedState());\r\n  };\r\n\r\n  isAllowedState() {\r\n    const disabledStates = ['/favorites', '/inbox', '/process', '/versions', '/notifications'];\r\n    return !disabledStates.some(s => this.router.url.startsWith(s));\r\n  }\r\n\r\n}\r\n","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {LinkAction} from '../../interfaces/action.interface';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {Router} from '@angular/router';\r\nimport {DmsObject} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-open-versions-action',\r\n  template: ``\r\n})\r\nexport class OpenVersionsActionComponent extends DmsObjectTarget implements LinkAction {\r\n  label: string;\r\n  description: string;\r\n  priority = 6;\r\n  iconSrc = 'assets/_default/svg/ic_format_list_numbered.svg';\r\n  group = 'common';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n\r\n  constructor(private translate: TranslateService, private router: Router) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.menu.show.versions.label');\r\n    this.description = this.translate.instant('eo.action.menu.show.versions.description');\r\n  }\r\n\r\n  isExecutable(item: DmsObject) {\r\n    const oneVersion = item.version  > 1;\r\n    return observableOf(this.isAllowedState()  && oneVersion);\r\n  };\r\n\r\n  getParams(selection: DmsObject[]) {\r\n    const item = selection[0];\r\n    return {type: item.typeName};\r\n  }\r\n\r\n  getLink(selection: DmsObject[]) {\r\n    const item = selection[0];\r\n    return `/versions/${item.id}`;\r\n  }\r\n\r\n  isAllowedState() {\r\n    const disabledStates = ['/versions'];\r\n    return !disabledStates.some(s => this.router.url.startsWith(s));\r\n  }\r\n}\r\n","\r\nimport {of as observableOf} from 'rxjs';\r\nimport {SimpleAction} from '../../interfaces/action.interface';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {Router} from '@angular/router';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {DmsObject, DmsService, EventService, EnaioEvent} from '@eo-sdk/core';\r\nimport {Observable} from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'eo-restore-version-action',\r\n  template: ``\r\n})\r\nexport class RestoreVersionActionComponent extends DmsObjectTarget implements SimpleAction {\r\n  label: string;\r\n  description: string;\r\n  priority = 0;\r\n  iconSrc = 'assets/_default/svg/ic_refresh.svg';\r\n  group = 'common';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n\r\n  constructor(private translate: TranslateService,\r\n              private router: Router,\r\n              private eventService: EventService,\r\n              private dmsService: DmsService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.menu.versioning.version.restore.label');\r\n    this.description = this.translate.instant('eo.action.menu.versioning.version.restore.description');\r\n  }\r\n\r\n  isExecutable(item: DmsObject): Observable<boolean> {\r\n    return observableOf(!item.isActiveVersion && this.isAllowedState());\r\n  };\r\n\r\n  run(selection: DmsObject[]) {\r\n    const {id, version, typeName} = selection[0];\r\n    this.dmsService\r\n      .restoreVersion(id, version, typeName)\r\n      .subscribe(res => this.eventService.trigger(EnaioEvent.DMS_OBJECT_VERSION_RESTORED, res.id));\r\n    // const typeName: NavigationExtras = {queryParams: {type: item.typeName}};\r\n    // this.router.navigate(['/object', item.id], typeName);\r\n  }\r\n\r\n  isAllowedState() {\r\n    const enabledStates = ['/versions'];\r\n    return enabledStates.some(s => this.router.url.startsWith(s));\r\n  }\r\n}\r\n","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {PreparedItemTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {SimpleAction} from '../../interfaces/action.interface';\r\nimport {Router} from '@angular/router';\r\nimport {PrepareService, PreparedItem} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-prepared-delete',\r\n  template: ``\r\n})\r\nexport class DeletePreparedActionComponent extends PreparedItemTarget implements SimpleAction {\r\n  header: string;\r\n  label: string;\r\n  description: string;\r\n  priority = 0;\r\n  iconSrc = 'assets/_default/svg/ic_trash.svg';\r\n  group = 'common';\r\n  range = SelectionRange.MULTI_SELECT;\r\n\r\n  constructor(private translate: TranslateService, private prepareService: PrepareService, private router: Router) {\r\n    super();\r\n    this.label = this.translate.instant('eo.cta.button.delete');\r\n    this.description = this.translate.instant('eo.action.delete.dms.object.description');\r\n  }\r\n\r\n  isExecutable(element: PreparedItem) {\r\n    return observableOf(this.isAllowedState());\r\n  };\r\n\r\n  run(selection: PreparedItem[]) {\r\n    selection.forEach(item => {\r\n      this.prepareService.deletePreparedItem(item.id).subscribe();\r\n    });\r\n  }\r\n\r\n  isAllowedState() {\r\n    const enabledStates = ['/prepare'];\r\n    return enabledStates.some(s => this.router.url.startsWith(s));\r\n  }\r\n\r\n}\r\n","import {forkJoin, of} from 'rxjs';\r\nimport {Component, OnInit, EventEmitter, ElementRef, ViewChild} from '@angular/core';\r\nimport {ActionComponent} from '../../../interfaces/action-component.interface';\r\nimport {Input, Output} from '@angular/core';\r\nimport {UntypedFormControl, UntypedFormGroup, Validators, UntypedFormBuilder} from '@angular/forms';\r\nimport {TranslateService, DmsService, UserService, DmsObject, SubscriptionMode} from '@eo-sdk/core';\r\nimport {catchError} from 'rxjs/operators';\r\n\r\n@Component({\r\n  selector: 'eo-add-subscription',\r\n  templateUrl: './add-subscription.component.html',\r\n  styleUrls: ['./add-subscription.component.scss']\r\n})\r\nexport class AddSubscriptionComponent implements OnInit, ActionComponent {\r\n\r\n  subscriptionModeCodesystem;\r\n\r\n  @Input() selection: DmsObject[];\r\n\r\n  get hasEmail() {\r\n    return this.userService.getCurrentUser().email && this.userService.getCurrentUser().email.length;\r\n  }\r\n\r\n  @Output() finished: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() canceled: EventEmitter<any> = new EventEmitter<any>();\r\n  @ViewChild('titleField', {static: true}) titleField : ElementRef<any>;\r\n\r\n  header: string;\r\n  addSubscriptionForm: UntypedFormGroup;\r\n  titleFieldLabel: string;\r\n  inboxCbLabel: string;\r\n  emailCbLabel: string;\r\n  processing: boolean;\r\n\r\n  constructor(private translate: TranslateService,\r\n              private dms: DmsService,\r\n              private userService: UserService,\r\n              private fb: UntypedFormBuilder) {\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.header = this.translate.instant('eo.object.inlinemenu.addsubscription');\r\n    this.titleFieldLabel = this.translate.instant('eo.subscription.field.info');\r\n    this.inboxCbLabel = this.translate.instant('eo.subscription.field.notification.inbox');\r\n    this.emailCbLabel = this.translate.instant('eo.subscription.field.notification.email');\r\n\r\n    const includesFolders = this.selection.find(item => item.isFolder);\r\n    const includesDocuments = this.selection.find(item => !item.isFolder);\r\n\r\n    this.addSubscriptionForm = this.fb.group({\r\n      titleFieldFCN: [''],\r\n      inboxCbFCN: [true],\r\n      emailCbFCN: [false],\r\n      modeFieldFCN: [includesFolders ? SubscriptionMode.ONLY_INDEX_DATA_CHANGED : SubscriptionMode.DMS_OBJECT_CHANGED]\r\n    }, {validator: this.validator});\r\n\r\n    if (this.selection.length === 1) {\r\n      const titleFieldControl = this.addSubscriptionForm.controls['titleFieldFCN'];\r\n      titleFieldControl.setValidators(Validators.required);\r\n      titleFieldControl.setValue(this.createTitle(this.selection[0]));\r\n    }\r\n\r\n    if (includesFolders && includesDocuments) {\r\n      this.subscriptionModeCodesystem = {\r\n        entries: [\r\n          {id: this.translate.instant('eo.subscription.field.mode.entries.meta.label'), defaultrepresentation: this.translate.instant('eo.subscription.field.mode.entries.meta.label'), data: SubscriptionMode.ONLY_INDEX_DATA_CHANGED},\r\n          {id: this.translate.instant('eo.subscription.field.mode.entries.both.label'), defaultrepresentation: this.translate.instant('eo.subscription.field.mode.entries.both.label'), data: SubscriptionMode.DMS_OBJECT_CHANGED}\r\n        ]\r\n      }\r\n    } else if (includesFolders && !includesDocuments) {\r\n      this.subscriptionModeCodesystem = {\r\n        entries: [\r\n          {id: 0, defaultrepresentation: this.translate.instant('eo.subscription.field.mode.entries.meta.label'), data: SubscriptionMode.ONLY_INDEX_DATA_CHANGED}\r\n        ]\r\n      }\r\n    } else {\r\n      this.subscriptionModeCodesystem = {\r\n        entries: [\r\n          {id: this.translate.instant('eo.subscription.field.mode.entries.meta.label'), defaultrepresentation: this.translate.instant('eo.subscription.field.mode.entries.meta.label'), data: SubscriptionMode.ONLY_INDEX_DATA_CHANGED},\r\n          {id: this.translate.instant('eo.subscription.field.mode.entries.content.label'), defaultrepresentation: this.translate.instant('eo.subscription.field.mode.entries.content.label'), data: SubscriptionMode.ONLY_DOCUMENT_CONTENT_CHANGED},\r\n          {id: this.translate.instant('eo.subscription.field.mode.entries.both.label'), defaultrepresentation: this.translate.instant('eo.subscription.field.mode.entries.both.label'), data: SubscriptionMode.DMS_OBJECT_CHANGED}\r\n        ]\r\n      }\r\n    }\r\n    setTimeout(() => {\r\n      this.titleField.nativeElement.getElementsByTagName('input')[0].select();\r\n    },);\r\n  }\r\n\r\n\r\n  get titleValidity() {\r\n    return this.addSubscriptionForm.get('titleFieldFCN').invalid;\r\n  }\r\n\r\n  private validator(control: UntypedFormControl) {\r\n    if (control.value.inboxCbFCN || control.value.emailCbFCN) {\r\n      return null;\r\n    } else {\r\n      return {\r\n        addSubscriptionForm: {\r\n          valid: false\r\n        }\r\n      };\r\n    }\r\n  }\r\n\r\n  createSubscription() {\r\n    const {titleFieldFCN, inboxCbFCN, emailCbFCN: sendEmail, modeFieldFCN} = this.addSubscriptionForm.value;\r\n    const onlyEmail = this.hasEmail ? sendEmail && !inboxCbFCN : false;\r\n\r\n    this.processing = true;\r\n    const createTasks = [];\r\n    this.selection.forEach(item => {\r\n      const title = this.selection.length === 1 ? titleFieldFCN : this.createTitle(item);\r\n      createTasks.push(this.dms.createSubscription(item, title, undefined, sendEmail, onlyEmail, modeFieldFCN)\r\n        .pipe(catchError(e => of(null))));\r\n    });\r\n\r\n    if (createTasks.length) {\r\n      forkJoin(createTasks).subscribe(() => {\r\n        this.processing = false;\r\n        this.finished.emit();\r\n      }\r\n      )\r\n    } else {\r\n      this.processing = false;\r\n      this.finished.emit();\r\n    }\r\n  }\r\n\r\n  private createTitle(item) {\r\n    return item.isContextFolder && item.contextFolder ? item.contextFolder.title + ' > ' + item.title : item.title;\r\n  }\r\n\r\n  cancel() {\r\n    this.canceled.emit();\r\n  }\r\n\r\n}","<div class=\"eo-subscription\" eoTrapFocus>\r\n  <h2>{{header}}</h2>\r\n  <form #titleField [formGroup]=\"addSubscriptionForm\">\r\n    <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\r\n      <eo-string formControlName=\"titleFieldFCN\"></eo-string>\r\n    </eo-form-input>\r\n    <div class=\"err-msg\" *ngIf=\"titleValidity\">\r\n      <div translate>eo.form.property.required</div>\r\n    </div>\r\n    <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\r\n      <eo-checkbox formControlName=\"inboxCbFCN\"></eo-checkbox>\r\n    </eo-form-input>\r\n    <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\r\n      <eo-checkbox formControlName=\"emailCbFCN\" [readonly]=\"!hasEmail\"></eo-checkbox>\r\n    </eo-form-input>\r\n    <eo-form-input *ngIf=\"!selection[0].isFolder\" [skipToggle]=\"true\" [label]=\"'eo.subscription.field.mode.label' | translate\">\r\n      <eo-codesystem formControlName=\"modeFieldFCN\" [codesystem]=\"subscriptionModeCodesystem\" [pickerTitle]=\"'eo.subscription.field.mode.label' | translate\"></eo-codesystem>\r\n    </eo-form-input>\r\n  </form>\r\n\r\n  <!-- error/validation messages -->\r\n  <div class=\"errors\">\r\n    <div class=\"err-msg\" *ngIf=\"addSubscriptionForm.errors?.addSubscriptionForm\" translate>eo.subscription.error.msg</div>\r\n  </div>\r\n\r\n  <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\r\n    <button class=\"secondary\" (click)=\"cancel()\"translate>eo.cta.button.cancel</button>\r\n    <button class=\"primary\" [disabled]=\"addSubscriptionForm.errors || titleValidity\" (click)=\"createSubscription()\"translate>eo.subscription.add</button>\r\n  </div>\r\n\r\n  <ng-template #indicator>\r\n    <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'assets/_default/svg/ic_kitt-loader.svg'\"></eo-icon></div>\r\n  </ng-template>\r\n</div>\r\n\r\n","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {Router} from '@angular/router';\r\nimport {Component} from '@angular/core';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {ComponentAction} from '../../interfaces/action.interface';\r\nimport {AddSubscriptionComponent} from './add-subscription/add-subscription.component';\r\nimport {ActionService} from '../../action-service/action.service';\r\nimport {DmsObject, UserService} from '@eo-sdk/core';\r\n\r\n\r\n@Component({\r\n  selector: 'eo-add-subscription-action',\r\n  template: ``\r\n})\r\nexport class AddSubscriptionActionComponent extends DmsObjectTarget implements ComponentAction {\r\n  component = AddSubscriptionComponent;\r\n  label: string;\r\n  description: string;\r\n  priority = 4;\r\n  iconSrc = 'assets/_default/svg/ic_subscription.svg';\r\n  group = 'common';\r\n  range = SelectionRange.MULTI_SELECT;\r\n\r\n  constructor(private translate: TranslateService,\r\n              private userService: UserService,\r\n              private router: Router,\r\n              private actionService: ActionService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.create.subscription.label');\r\n    this.description = this.translate.instant('eo.action.create.subscription.description');\r\n  }\r\n\r\n  isExecutable(element: DmsObject): Observable<boolean> {\r\n    const hasPrivilege = this.userService.getCurrentUser().hasPrivilege('MANAGE_SUBSCRIPTIONS');\r\n    const isAllowedType = this.actionService.isAllowedType([element], ['sysemail']);\r\n    if (hasPrivilege && this.isAllowedState() && isAllowedType && !element.isFinalized) {\r\n      return observableOf(!element.subscriptions.length);\r\n    } else {\r\n      return observableOf(false);\r\n    }\r\n  };\r\n\r\n  isAllowedState(): boolean {\r\n    const disabledStates = ['/versions', '/notifications'];\r\n    return !disabledStates.some(s => this.router.url.startsWith(s));\r\n  }\r\n}\r\n","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {SimpleAction} from '../../interfaces/action.interface';\r\nimport {DmsObject, UserService, DmsService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-remove-subscription-action',\r\n  template: ``\r\n})\r\nexport class RemoveSubscriptionActionComponent extends DmsObjectTarget implements SimpleAction {\r\n  label: string;\r\n  description: string;\r\n  priority = 4;\r\n  iconSrc = 'assets/_default/svg/ic_subscription.svg';\r\n  group = 'common';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n\r\n  constructor(private translate: TranslateService, private userService: UserService, private dms: DmsService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.delete.subscription.label');\r\n    this.description = this.translate.instant('eo.action.delete.subscription.description');\r\n  }\r\n\r\n  isExecutable(element: DmsObject) {\r\n    const hasPrivilege = this.userService.getCurrentUser().hasPrivilege('MANAGE_SUBSCRIPTIONS');\r\n    if (hasPrivilege && !window.location.href.includes('/versions')) {\r\n      return observableOf(!!element.subscriptions.length);\r\n    } else {\r\n      return observableOf(false);\r\n    }\r\n  };\r\n\r\n  run(selection) {\r\n    selection.forEach(item => {\r\n      this.dms.removeSubscriptionById(item.subscriptions[0].id, item).subscribe();\r\n    });\r\n  }\r\n\r\n}\r\n","import {forkJoin, of} from 'rxjs';\r\nimport {Component, OnInit, EventEmitter, ViewChild, ElementRef, AfterViewInit} from '@angular/core';\r\nimport {ActionComponent} from '../../../interfaces/action-component.interface';\r\nimport {Input, Output} from '@angular/core';\r\nimport {UntypedFormGroup, Validators, UntypedFormBuilder} from '@angular/forms';\r\nimport {TranslateService, DmsObject, UserService, DmsService} from '@eo-sdk/core';\r\nimport {catchError} from 'rxjs/operators';\r\n\r\n@Component({\r\n  selector: 'eo-add-resubmission',\r\n  templateUrl: './add-resubmission.component.html',\r\n  styleUrls: ['./add-resubmission.component.scss']\r\n})\r\nexport class AddResubmissionComponent implements OnInit, AfterViewInit, ActionComponent {\r\n\r\n  @Input() selection: DmsObject[];\r\n  @ViewChild('titleField', {static: true}) titleField: ElementRef<any>;\r\n\r\n  get hasEmail() {\r\n    return this.userService.getCurrentUser().email && this.userService.getCurrentUser().email.length;\r\n  }\r\n\r\n  @Output() finished: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() canceled: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  header: string;\r\n  addResubmissionForm: UntypedFormGroup;\r\n  dueFieldLabel: string;\r\n  titleFieldLabel: string;\r\n  inboxCbLabel: string;\r\n  emailCbLabel: string;\r\n  processing: boolean;\r\n\r\n  constructor(private translate: TranslateService,\r\n    private dms: DmsService,\r\n    private userService: UserService,\r\n    private fb: UntypedFormBuilder) {\r\n  }\r\n\r\n  createResubmissionForm() {\r\n    const d = new Date();\r\n    const defaultValue = new Date(d.setDate(d.getDate() + 14));\r\n    this.addResubmissionForm = this.fb.group({\r\n      titleFieldFCN: [this.createTitle(this.selection[0])],\r\n      dueFieldFCN: [defaultValue],\r\n      inboxCbFCN: [true],\r\n      emailCbFCN: [false],\r\n    }, {\r\n      validator: Validators.compose([\r\n        this.notificationMethodValidator('inboxCbFCN', 'emailCbFCN'),\r\n        this.dueDateValidator('dueFieldFCN')\r\n      ])\r\n    });\r\n\r\n    if (this.selection.length === 1) {\r\n      this.addResubmissionForm.controls['titleFieldFCN'].setValidators(Validators.required);\r\n      this.addResubmissionForm.controls['dueFieldFCN'].setValidators(Validators.required);\r\n    }\r\n\r\n    this.setFormValues(this.addResubmissionForm.controls, this.selection[0]);\r\n  }\r\n\r\n  setFormValues(controls, selection: DmsObject) {\r\n    if (selection.resubmissions.length) {\r\n      // if resubmissions array isn't empty, it's an update\r\n      const {info, due, onlyemail, email} = selection.resubmissions[0];\r\n      this.header = this.translate.instant('eo.object.inlinemenu.editresubmission');\r\n      this.patchForm(info, new Date(`${due}`), !onlyemail, email);\r\n    } else {\r\n      this.header = this.translate.instant('eo.object.inlinemenu.addresubmission');\r\n    }\r\n  }\r\n\r\n  patchForm(titleFieldFCN, dueFieldFCN, inboxCbFCN, emailCbFCN = false) {\r\n    this.addResubmissionForm.setValue({titleFieldFCN, dueFieldFCN, inboxCbFCN, emailCbFCN});\r\n  }\r\n\r\n  get titleValidity() {\r\n    return this.addResubmissionForm.get('titleFieldFCN').invalid;\r\n  }\r\n\r\n  get dueFieldValidity() {\r\n    return this.addResubmissionForm.get('dueFieldFCN').invalid;\r\n  }\r\n\r\n  private dueDateValidator(dueDate) {\r\n    const now = new Date();\r\n    return (group: UntypedFormGroup) => {\r\n      if (group.controls[dueDate].invalid || group.controls[dueDate].value === null || group.controls[dueDate].value > now) {\r\n        return null;\r\n      }\r\n      return {'dueDate': true}\r\n    }\r\n  }\r\n\r\n  get dateValidation(): boolean {\r\n    const {errors, controls} = this.addResubmissionForm;\r\n    let dateValidationError = false;\r\n    if (errors) {\r\n      dateValidationError = (controls.dueFieldFCN.touched || controls.dueFieldFCN.dirty) && errors.dueDate;\r\n    }\r\n    return dateValidationError;\r\n  }\r\n\r\n  private notificationMethodValidator(inboxCbFCN, emailCbFCN) {\r\n    return (group: UntypedFormGroup) => {\r\n      if (group.controls[inboxCbFCN].value || group.controls[emailCbFCN].value) {\r\n        return null;\r\n      }\r\n      return {'notificationMethod': true}\r\n    }\r\n  }\r\n\r\n  get notificationMethodValidation(): boolean {\r\n    const {errors} = this.addResubmissionForm;\r\n    let notificationMethodValidationError = false;\r\n    if (errors) {\r\n      notificationMethodValidationError = errors.notificationMethod;\r\n    }\r\n    return notificationMethodValidationError;\r\n  }\r\n\r\n  createResubmission() {\r\n    const {titleFieldFCN, dueFieldFCN, inboxCbFCN, emailCbFCN: sendEmail} = this.addResubmissionForm.value;\r\n    const onlyEmail = this.hasEmail ? sendEmail && !inboxCbFCN : false;\r\n\r\n    this.processing = true;\r\n    const createTasks = [];\r\n    this.selection.forEach(item => {\r\n      const title = this.selection.length === 1 ? titleFieldFCN : this.createTitle(item);\r\n      createTasks.push(this.dms.createResubmission(item, title, dueFieldFCN, undefined, sendEmail, onlyEmail)\r\n        .pipe(\r\n          // even in case oif an error return something because otherwise the whole forkJoin will fail\r\n          // todo: maybe add some error notification that something went wrong\r\n          catchError(e => of(null)\r\n          )\r\n        ));\r\n    });\r\n    if (createTasks.length) {\r\n      forkJoin(createTasks).subscribe(() => {\r\n        this.processing = false;\r\n        this.finished.emit();\r\n      }\r\n      )\r\n    } else {\r\n      this.processing = false;\r\n      this.finished.emit();\r\n    }\r\n  }\r\n\r\n  updateResubmission() {\r\n    const {titleFieldFCN, dueFieldFCN, inboxCbFCN, emailCbFCN: sendEmail} = this.addResubmissionForm.value;\r\n    const onlyEmail = this.hasEmail ? sendEmail && !inboxCbFCN : false;\r\n\r\n    this.processing = true;\r\n    const updateTasks = [];\r\n    this.selection.forEach(item => {\r\n      const title = this.selection.length === 1 ? titleFieldFCN : this.createTitle(item);\r\n      updateTasks.push(this.dms.updateResubmission(item, title, dueFieldFCN, undefined, sendEmail, onlyEmail).pipe(\r\n        // even in case oif an error return something because otherwise the whole forkJoin will fail\r\n        // todo: maybe add some error notification that something went wrong\r\n        catchError(e => of(null))\r\n      ));\r\n    });\r\n    if (updateTasks.length) {\r\n      forkJoin(updateTasks).subscribe(() => {\r\n        this.processing = false;\r\n        this.finished.emit();\r\n      }\r\n      )\r\n    } else {\r\n      this.processing = false;\r\n      this.finished.emit();\r\n    }\r\n  }\r\n\r\n  removeResubmission() {\r\n    this.processing = true;\r\n    const removeTasks = [];\r\n    this.selection.forEach(item => {\r\n      removeTasks.push(this.dms.removeResubmissionsById(item.id, item)\r\n        // even in case oif an error return something because otherwise the whole forkJoin will fail\r\n        // todo: maybe add some error notification that something went wrong\r\n        .pipe(catchError(e => of(null))));\r\n    });\r\n    if (removeTasks.length) {\r\n      forkJoin(removeTasks).subscribe(() => {\r\n        this.processing = false;\r\n        this.finished.emit();\r\n      }\r\n      )\r\n    } else {\r\n      this.processing = false;\r\n      this.finished.emit();\r\n    }\r\n  }\r\n\r\n  private createTitle(item: DmsObject) {\r\n    return item.isContextFolder && item.contextFolder ? `${item.contextFolder.title} > ${item.title}` : item.title;\r\n  }\r\n\r\n  cancel() {\r\n    this.canceled.emit();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.dueFieldLabel = this.translate.instant('eo.resubmission.field.due');\r\n    this.titleFieldLabel = this.translate.instant('eo.resubmission.field.info');\r\n    this.inboxCbLabel = this.translate.instant('eo.resubmission.field.notification.inbox');\r\n    this.emailCbLabel = this.translate.instant('eo.resubmission.field.notification.email');\r\n\r\n    this.createResubmissionForm();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.titleField.nativeElement.getElementsByTagName('input')[0].select();\r\n  }\r\n\r\n}\r\n","<div class=\"eo-resubmission\" eoTrapFocus>\r\n  <h2>{{header}}</h2>\r\n  <form #titleField [formGroup]=\"addResubmissionForm\">\r\n    <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\" [required]=\"true\">\r\n      <eo-date [withTime]=\"true\" [onlyFutureDates]=\"false\" formControlName=\"dueFieldFCN\"></eo-date>\r\n    </eo-form-input>\r\n    <div class=\"err-msg\" *ngIf=\"dueFieldValidity\">\r\n      <div translate>eo.form.property.required</div>\r\n    </div>\r\n    <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\"\r\n      *ngIf=\"selection.length === 1\">\r\n      <eo-string formControlName=\"titleFieldFCN\"></eo-string>\r\n    </eo-form-input>\r\n    <div class=\"err-msg\" *ngIf=\"titleValidity\">\r\n      <div translate>eo.form.property.required</div>\r\n    </div>\r\n    <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\r\n      <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\r\n    </eo-form-input>\r\n    <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\r\n      <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\r\n    </eo-form-input>\r\n  </form>\r\n\r\n  <!-- error/validation messages -->\r\n  <div class=\"errors\">\r\n    <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\r\n    <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\r\n  </div>\r\n\r\n  <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\r\n    <button class=\"secondary\" (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\r\n    <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\"\r\n      translate>eo.resubmission.delete</button>\r\n    <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\r\n      *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\r\n    <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\r\n      *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\r\n  </div>\r\n\r\n  <ng-template #indicator>\r\n    <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\r\n  </ng-template>\r\n</div>\r\n","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {Router} from '@angular/router';\r\nimport {Component} from '@angular/core';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {ComponentAction} from '../../interfaces/action.interface';\r\nimport {AddResubmissionComponent} from './add-resubmission/add-resubmission.component';\r\nimport {ActionService} from '../../action-service/action.service';\r\nimport {DmsObject, UserService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-add-resubmission-action',\r\n  template: ``\r\n})\r\nexport class AddResubmissionActionComponent extends DmsObjectTarget implements ComponentAction {\r\n  component = AddResubmissionComponent;\r\n  label: string;\r\n  description: string;\r\n  priority = 5;\r\n  iconSrc = 'assets/_default/svg/ic_resubmission.svg';\r\n  group = 'common';\r\n  range = SelectionRange.MULTI_SELECT;\r\n\r\n  constructor(private translate: TranslateService,\r\n              private userService: UserService,\r\n              private router: Router,\r\n              private actionService: ActionService) {\r\n    super();\r\n\r\n    this.label = this.translate.instant('eo.action.create.resubmission.label');\r\n    this.description = this.translate.instant('eo.action.create.resubmission.description');\r\n  }\r\n\r\n  isExecutable(element: DmsObject): Observable<boolean> {\r\n    const hasPrivilege = this.userService.getCurrentUser().hasPrivilege('MANAGE_RESUBMISSIONS');\r\n    const isAllowedType = this.actionService.isAllowedType([element], ['sysemail']);\r\n    if (hasPrivilege && this.isAllowedState() && isAllowedType && !element.isFinalized) {\r\n      return observableOf(!element.resubmissions.length);\r\n    } else {\r\n      return observableOf(false);\r\n    }\r\n  };\r\n\r\n  isAllowedState(): boolean {\r\n    const disabledStates = ['/versions', '/notifications'];\r\n    return !disabledStates.some(s => this.router.url.startsWith(s));\r\n  }\r\n}\r\n","import {of as observableOf} from 'rxjs';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {ComponentAction} from '../../interfaces/action.interface';\r\nimport {AddResubmissionComponent} from '../add-resubmission-action/add-resubmission/add-resubmission.component';\r\nimport {DmsObject, UserService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-update-resubmission-action',\r\n  template: ``\r\n})\r\nexport class UpdateResubmissionActionComponent extends DmsObjectTarget implements ComponentAction {\r\n  component = AddResubmissionComponent;\r\n  label: string;\r\n  description: string;\r\n  priority = 5;\r\n  iconSrc = 'assets/_default/svg/ic_resubmission.svg';\r\n  group = 'common';\r\n  range = SelectionRange.MULTI_SELECT;\r\n\r\n  constructor(private translate: TranslateService, private userService: UserService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.update.resubmission.label');\r\n    this.description = this.translate.instant('eo.action.update.resubmission.description');\r\n  }\r\n\r\n  isExecutable(element: DmsObject) {\r\n    const hasPrivilege = this.userService.getCurrentUser().hasPrivilege('MANAGE_RESUBMISSIONS');\r\n    if (hasPrivilege && !window.location.href.includes('/versions') && !window.location.href.includes('/inbox')) {\r\n      return observableOf(!!element.resubmissions.length);\r\n    } else {\r\n      return observableOf(false);\r\n    }\r\n  }\r\n}\r\n","import {Component, EventEmitter, OnInit} from '@angular/core';\r\nimport {FormBuilder, UntypedFormGroup} from '@angular/forms';\r\nimport {DmsService, NotificationsService, TranslateService} from '@eo-sdk/core';\r\nimport {ActionComponent} from '../../../interfaces/action-component.interface';\r\n\r\n@Component({\r\n  selector: 'eo-share-object',\r\n  templateUrl: './share-object.component.html',\r\n  styleUrls: ['./share-object.component.scss']\r\n})\r\nexport class ShareObjectComponent implements OnInit, ActionComponent {\r\n  selection: any[];\r\n  finished: EventEmitter<any> = new EventEmitter<any>();\r\n  canceled: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  header: string;\r\n  orgaLabel: string;\r\n  shareForm: UntypedFormGroup = this.fb.group({\r\n    orgaFieldFCN: [],\r\n    includeChildren: []\r\n  });\r\n  // dataMeta: any = [];\r\n\r\n  constructor(\r\n    private translate: TranslateService,\r\n    private dms: DmsService,\r\n    private toast: NotificationsService,\r\n    private fb: FormBuilder) {\r\n\r\n    this.header = this.translate.instant('eo.manage.rights.document.title');\r\n    this.orgaLabel = this.translate.instant('eo.manage.rights.element.label');\r\n\r\n  }\r\n\r\n  ngOnInit() {\r\n    const orgaValue = [];\r\n    const shareChildren = [];\r\n    if (this.selection[0].isFolder) {\r\n      this.header = this.translate.instant('eo.manage.rights.folder.title');\r\n    }\r\n    this.selection[0].shares.forEach(avObject => avObject.sharechildren ? shareChildren.push(avObject.name) : orgaValue.push(avObject.name));\r\n\r\n    this.shareForm.patchValue({\r\n      orgaFieldFCN: orgaValue,\r\n      includeChildren: shareChildren\r\n    })\r\n  }\r\n\r\n\r\n  private _shareMessage() {\r\n    let shared = '';\r\n    let field = '';\r\n\r\n    if (this.shareForm.value.orgaFieldFCN.length > 0) {\r\n      shared = this.shareForm.value.orgaFieldFCN.toString();\r\n    } else if (this.shareForm.value.includeChildren.length > 0) {\r\n      shared = this.shareForm.value.includeChildren.toString();\r\n    } else {\r\n      this.toast.success(this.translate.instant('eo.manage.rights.message.notshared'));\r\n      return;\r\n    }\r\n    field = 'eo.manage.rights.message';\r\n\r\n    if (this.shareForm.value.orgaFieldFCN.length > 0 && this.shareForm.value.includeChildren.length > 0) {\r\n      shared = `${this.shareForm.value.orgaFieldFCN.toString()}, ${this.shareForm.value.includeChildren.toString()}`;\r\n    }\r\n    this.translate.get(field, {\r\n      title: this.selection[0].title,\r\n      shared: shared,\r\n    }).subscribe(val => this.toast.success(val));\r\n  }\r\n\r\n  private _getShareWith(): {id: string, shareChildren?: boolean}[] {\r\n    return [\r\n      ...(this.shareForm.value.orgaFieldFCN || []).map(o => ({id: o})),\r\n      ...(this.shareForm.value.includeChildren || []).map(o => ({id: o, shareChildren: true})),\r\n    ]\r\n  }\r\n\r\n  share() {\r\n    this.dms.share(\r\n      this.selection[0],\r\n      this._getShareWith()\r\n    ).subscribe(() => {\r\n      this._shareMessage();\r\n      this.finished.emit();\r\n    });\r\n  }\r\n\r\n  unshare() {\r\n    this.dms.share(this.selection[0], []).subscribe(() => {\r\n      this.toast.success(this.translate.instant('eo.manage.rights.message.notshared'));\r\n      this.finished.emit();\r\n    });\r\n\r\n  }\r\n\r\n  cancel() {\r\n    this.canceled.emit();\r\n  }\r\n\r\n}\r\n","<div class=\"eo-share-object\" eoTrapFocus yvcAutofocusChild>\r\n  <h2>{{header}}</h2>\r\n\r\n  <form [formGroup]=\"shareForm\" *ngIf=\"shareForm\">\r\n    <div class=\"fieldset\">\r\n\r\n      <div class=\"row\">\r\n        <eo-form-input [label]=\"orgaLabel\">\r\n          <eo-organization [removeCurrentUser]=\"true\" [multiselect]=\"true\" formControlName=\"orgaFieldFCN\"></eo-organization>\r\n        </eo-form-input>\r\n        <div class=\"desc\" *ngIf=\"selection[0].isFolder\" translate>eo.manage.rights.folder.label</div>\r\n      </div>\r\n\r\n      <div class=\"row\" *ngIf=\"selection[0].isFolder\">\r\n        <eo-form-input [label]=\"orgaLabel\">\r\n          <eo-organization [removeCurrentUser]=\"true\" [multiselect]=\"true\" formControlName=\"includeChildren\"></eo-organization>\r\n        </eo-form-input>\r\n        <div class=\"desc\" translate>eo.manage.rights.folder.include.children.label</div>\r\n      </div>\r\n    </div>\r\n  </form>\r\n  <div class=\"form-buttons\">\r\n    <button class=\"secondary\" (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\r\n    <button class=\"danger\" (click)=\"unshare()\" *ngIf=\"selection[0].additionalvisibility.length\"\r\n      translate>eo.manage.rights.stop</button>\r\n    <button class=\"primary\" (click)=\"share()\" [disabled]=\"shareForm.errors || !shareForm.dirty\"\r\n      translate>eo.manage.rights.apply</button>\r\n  </div>\r\n</div>","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {ComponentAction} from '../../interfaces/action.interface';\r\nimport {ShareObjectComponent} from './share-object/share-object.component';\r\nimport {DmsObject, SystemService, ObjectType} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-share-object-action',\r\n  template: ``\r\n})\r\nexport class ShareObjectActionComponent extends DmsObjectTarget implements ComponentAction {\r\n  component = ShareObjectComponent;\r\n  label: string;\r\n  description: string;\r\n  priority = 8;\r\n  iconSrc = 'assets/_default/svg/ic_share.svg';\r\n  group = 'common';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n\r\n  constructor(private translate: TranslateService, private systemService: SystemService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.manage.rights.read.label');\r\n    this.description = this.translate.instant('eo.action.manage.rights.read.description');\r\n  }\r\n\r\n  isExecutable(element: DmsObject) {\r\n    const type: ObjectType = this.systemService.getObjectType(element.typeName);\r\n    return observableOf((element.rights && element.rights.share) && type.shareable);\r\n  };\r\n\r\n}\r\n","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {SimpleAction} from '../../interfaces/action.interface';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {Router} from '@angular/router';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {ActionService} from '../../action-service/action.service';\r\nimport {DmsObject, CapabilitiesService, ClipboardAction, ClipboardService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-cut-action',\r\n  template: ``\r\n})\r\nexport class CutActionComponent extends DmsObjectTarget implements SimpleAction {\r\n  label: string;\r\n  description: string;\r\n  priority = 3.4;\r\n  iconSrc = 'assets/_default/svg/ic_content-cut.svg';\r\n  group = 'common';\r\n  range = SelectionRange.MULTI_SELECT;\r\n\r\n  constructor(private translate: TranslateService,\r\n              private capabilityService: CapabilitiesService,\r\n              private clipboard: ClipboardService,\r\n              private router: Router,\r\n              private actionService: ActionService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.clipboard.cut.label');\r\n    this.description = this.translate.instant('eo.action.clipboard.cut.description');\r\n  }\r\n\r\n  isExecutable(item: DmsObject): Observable<boolean> {\r\n    const isAllowedType = this.actionService.isAllowedType([item], ['sysemail']);\r\n    return observableOf(this.isAllowedState() && isAllowedType && this.capabilityService.getCapabilities().intray\r\n      && !item.isFinalized && !item.isContextFolder && item.rights.edit);\r\n  };\r\n\r\n  run(selection: DmsObject[]) {\r\n    this.clipboard.set(selection, ClipboardAction.CUT);\r\n  }\r\n\r\n  isAllowedState(): boolean {\r\n    const disabledStates = ['/versions', '/favorites'];\r\n    return !disabledStates.some(s => this.router.url.startsWith(s));\r\n  }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, Output} from '@angular/core';\r\nimport {DmsObject, DmsService} from '@eo-sdk/core';\r\nimport {ActionComponent} from '../../../interfaces/action-component.interface';\r\n\r\n@Component({\r\n  selector: 'eo-finalize-object-action',\r\n  templateUrl: './finalize-object-action.component.html',\r\n  styleUrls: ['./finalize-object-action.component.scss']\r\n})\r\nexport class FinalizeObjectActionComponent implements ActionComponent, AfterViewInit {\r\n\r\n  @Input() selection: DmsObject[];\r\n  @Output() finished: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() canceled: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  constructor(private elemRef: ElementRef,\r\n              private dmsService: DmsService\r\n             ) {}\r\n\r\n  onClick() {\r\n    this.dmsService.finalize(this.selection[0]).subscribe();\r\n    this.finished.emit();\r\n  }\r\n\r\n  cancel() {\r\n    this.canceled.emit();\r\n  }\r\n  ngAfterViewInit() {\r\n    setTimeout(() => {\r\n      this.elemRef.nativeElement.querySelector('.primary').focus();\r\n    },);\r\n  }\r\n}\r\n","<div class=\"finalize\">\r\n\r\n    <h2 translate>eo.action.finalize.confirm</h2>\r\n\r\n    <div class=\"form-buttons\" eoTrapFocus>\r\n        <button (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\r\n        <button class=\"primary\" (click)=\"onClick()\">OK</button>\r\n    </div>\r\n\r\n</div>","import {of as observableOf} from 'rxjs';\r\nimport {ComponentAction} from '../../interfaces/action.interface';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component, Injectable} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {DmsObject, DmsService} from '@eo-sdk/core';\r\nimport {FinalizeObjectActionComponent} from './finalize-object-action/finalize-object-action.component';\r\n\r\n@Component({\r\n  selector: 'eo-finalize-action',\r\n  template: ``\r\n})\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class FinalizeActionComponent extends DmsObjectTarget implements ComponentAction {\r\n  label: string;\r\n  description: string;\r\n  priority = 13;\r\n  iconSrc = 'assets/_default/svg/ic_finalized.svg';\r\n  group = 'common';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n  component = FinalizeObjectActionComponent;\r\n\r\n  constructor(private translate: TranslateService, private dmsService: DmsService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.finalize.label');\r\n    this.description = this.translate.instant('eo.action.finalize.description');\r\n  }\r\n\r\n  isExecutable(item: DmsObject) {\r\n    return observableOf((item.rights && item.rights.finalize) && !item.lock && !item.isFinalized && !window.location.href.includes('/versions'));\r\n  }\r\n}\r\n","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {SimpleAction} from '../../interfaces/action.interface';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {UserService, DmsObject, DmsService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-definalize-action',\r\n  template: ``\r\n})\r\nexport class DefinalizeActionComponent extends DmsObjectTarget implements SimpleAction {\r\n  label: string;\r\n  description: string;\r\n  priority = 13;\r\n  iconSrc = 'assets/_default/svg/ic_finalized.svg';\r\n  group = 'common';\r\n  range = SelectionRange.MULTI_SELECT;\r\n\r\n  constructor(private translate: TranslateService,\r\n              private userService: UserService,\r\n              private dmsService: DmsService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.definalize.label');\r\n    this.description = this.translate.instant('eo.action.definalize.description');\r\n  }\r\n\r\n  isExecutable(item: DmsObject) {\r\n    const hasPrivilege = this.userService.getCurrentUser().hasPrivilege('DEFINALIZE_OBJECTS');\r\n    return observableOf((item.rights && item.rights.finalize) && !item.lock && item.isFinalized && hasPrivilege && !window.location.href.includes('/versions'));\r\n  };\r\n\r\n  run(selection: DmsObject[]) {\r\n    selection.forEach(item => {\r\n      this.dmsService.definalize(item).subscribe();\r\n    });\r\n  }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, Output} from '@angular/core';\r\nimport {ActionComponent} from '../../../interfaces/action-component.interface';\r\nimport {DmsObject, CapabilitiesService, TranslateService} from '@eo-sdk/core';\r\nimport {Router} from '@angular/router';\r\nimport {BackendService, NotificationsService, DmsService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-delete-content',\r\n  templateUrl: './delete-content.component.html',\r\n  styleUrls: ['./delete-content.component.scss']\r\n})\r\nexport class DeleteContentComponent implements ActionComponent, AfterViewInit {\r\n\r\n  deleting = false;\r\n\r\n  @Input() selection: DmsObject[];\r\n  @Output() finished: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() canceled: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  constructor(private translate: TranslateService,\r\n              private backend: BackendService,\r\n              private toast: NotificationsService,\r\n              private router: Router,\r\n              private capabilitiesService: CapabilitiesService,\r\n              private dmsService: DmsService,\r\n              private elemRef: ElementRef) {\r\n  }\r\n\r\n  run() {\r\n    this.deleting = true;\r\n    this.selection.forEach(item => {\r\n      this.dmsService.removeContent(item).subscribe(() => {\r\n        this.toast.success(item.title, this.translate.instant('eo.action.delete.content.success'));\r\n        this.finished.emit();\r\n      }, () => {\r\n        this.toast.error(item.title, this.translate.instant('eo.action.delete.content.error'));\r\n        this.finished.emit();\r\n      });\r\n    });\r\n  }\r\n\r\n  cancel() {\r\n    this.canceled.emit();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    setTimeout(() => {\r\n      this.elemRef.nativeElement.querySelector('.primary').focus();\r\n    });\r\n  }\r\n}\r\n","<div class=\"eo-delete\" eoTrapFocus>\r\n\r\n  <h2 translate [translateParams]=\"{item: selection[0].title}\">eo.action.delete.content.confirm.message</h2>\r\n\r\n  <div *ngIf=\"!deleting\">\r\n    <div class=\"form-buttons\">\r\n      <button (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\r\n      <button class=\"primary\" (click)=\"run()\">OK</button>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"spinner-container\" *ngIf=\"deleting\">\r\n    <eo-loading-spinner></eo-loading-spinner>\r\n  </div>\r\n</div>\r\n","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {ComponentAction} from '../../interfaces/action.interface';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {Router} from '@angular/router';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {DmsObject, DmsService} from '@eo-sdk/core';\r\nimport {DeleteContentComponent} from './delete-content/delete-content.component';\r\n\r\n@Component({\r\n  selector: 'eo-delete-content-action',\r\n  template: ``\r\n})\r\nexport class DeleteContentActionComponent extends DmsObjectTarget implements ComponentAction {\r\n  label: string;\r\n  description: string;\r\n  priority = 8.1;\r\n  iconSrc = 'assets/_default/svg/ic_delete_sweep.svg';\r\n  group = 'common';\r\n  range = SelectionRange.MULTI_SELECT;\r\n  component = DeleteContentComponent;\r\n\r\n  constructor(private router: Router, private translate: TranslateService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.delete.content.label');\r\n    this.description = this.translate.instant('eo.action.delete.content.description');\r\n  }\r\n\r\n  isExecutable(item: DmsObject): Observable<boolean> {\r\n    const isLocked = item.lock && item.lock.by.other;\r\n    const hasContent = item.content && item.content.id === item.id;\r\n    return observableOf(this.isAllowedState() && !item.isFinalized && hasContent && item.rights.edit && !isLocked && item.type.minFiles === 0);\r\n  }\r\n\r\n  isAllowedState(): boolean {\r\n    const disabledStates = ['/versions'];\r\n    return !disabledStates.some(s => this.router.url.startsWith(s));\r\n  }\r\n}\r\n","\r\nimport {of as observableOf, Observable} from 'rxjs';\r\nimport {SimpleAction} from '../../interfaces/action.interface';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService, UserService,DmsObject, BackendService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-unlock-action',\r\n  template: ``\r\n})\r\nexport class UnlockActionComponent extends DmsObjectTarget implements SimpleAction {\r\n  label: string;\r\n  description: string;\r\n  priority = 12;\r\n  iconSrc = 'assets/_default/svg/ic_lock_open.svg';\r\n  group = 'common';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n\r\n  constructor(private translate: TranslateService,\r\n              private userService: UserService,\r\n              private backendService: BackendService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.unlock.label');\r\n    this.description = this.translate.instant('eo.action.unlock.description');\r\n  }\r\n\r\n  isExecutable(item: DmsObject): Observable<boolean> {    \r\n    return observableOf(item.lock && (item.lock.by.me || this.userService.getCurrentUser().hasPrivilege('BREAK_LOCK')));\r\n  };\r\n\r\n  run(selection: DmsObject[]) {\r\n    this.backendService.del(`/dms/lock/${selection[0].id}${this.userService.getCurrentUser().hasPrivilege('BREAK_LOCK') ? '?breaklock=true' : ''}`).subscribe(() => delete selection[0].lock);\r\n  }\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {ObjectFormComponent} from '../object-form/object-form/object-form.component';\r\nimport {ObjectFormOptions} from '../object-form/object-form-options.interface';\r\nimport {FormStatusChangedEvent} from '../object-form';\r\n\r\n@Component({\r\n  selector: 'eo-process-form',\r\n  templateUrl: './process-form.component.html',\r\n  styleUrls: ['./process-form.component.scss']\r\n})\r\nexport class ProcessFormComponent {\r\n\r\n  @ViewChild('bpmForm') bpmForm: ObjectFormComponent;\r\n  formData: any;\r\n  form: any;\r\n\r\n  @Input() formOptions: ObjectFormOptions;\r\n  @Output() onSaveForm: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onResetForm: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onCancel: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() statusChanged = new EventEmitter<FormStatusChangedEvent>();\r\n\r\n  saveForm() {\r\n    setTimeout(() => {\r\n      if (this.form && !this.form.invalid) {\r\n        this.formData = this.bpmForm.getFormData();\r\n        this.onSaveForm.emit(this.formData);\r\n      }\r\n    }, 500);\r\n  }\r\n\r\n  cancel() {\r\n    this.onCancel.emit(true);\r\n  }\r\n\r\n  onIndexDataChanged(event) {\r\n    this.form = event;\r\n    this.formData = event.data;\r\n    this.statusChanged.emit(event);\r\n  }\r\n\r\n}\r\n","<section class=\"process-form form-container\">\r\n\r\n  <div class=\"form\">\r\n    <eo-object-form [formOptions]=\"formOptions\" #bpmForm\r\n                    (statusChanged)=\"onIndexDataChanged($event)\">\r\n    </eo-object-form>\r\n  </div>\r\n\r\n  <div class=\"actions\">\r\n    <div *ngIf=\"form?.invalid\" class=\"invalid\" translate>eo.object.indexdata.form.invalid</div>\r\n    <eo-cta [active]=\"true\">\r\n      <button *ngIf=\"form?.dirty\" (click)=\"bpmForm.resetForm()\" class=\"button-reset\" translate>eo.object.indexdata.reset</button>\r\n      <button (click)=\"cancel()\" class=\"button-cancel\" translate>eo.cta.button.cancel</button>\r\n      <button (click)=\"saveForm()\" [disabled]=\"form?.invalid\" class=\"primary\" translate>eo.executable.processes.execute</button>\r\n    </eo-cta>\r\n  </div>\r\n\r\n</section>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {ProcessFormComponent} from './process-form.component';\r\nimport {ObjectFormModule} from '../object-form/object-form.module';\r\nimport {CtaModule} from '../cta/cta.module';\r\nimport {TranslateModule} from '@eo-sdk/core';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    ObjectFormModule,\r\n    CtaModule,\r\n    TranslateModule\r\n  ],\r\n  declarations: [ProcessFormComponent],\r\n  exports: [ProcessFormComponent]\r\n})\r\nexport class ProcessFormModule { }\r\n","export interface SigningPayload {\r\n  documentName: string;\r\n  emailSubject: string;\r\n  signers: Signer[];\r\n}\r\n\r\nexport interface Signer {\r\n  name: string;\r\n  email: string;\r\n  phone: string;\r\n}\r\n\r\nexport enum ChangeMode {\r\n  EDIT = 'edit',\r\n  DELETE = 'delete',\r\n  INSERT = 'insert',\r\n  CREATE = 'create'\r\n}\r\n\r\nexport interface ChangeOutput {\r\n  index: number;\r\n  mode: ChangeMode;\r\n}\r\n","import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\r\nimport {ChangeMode, ChangeOutput} from '../signature.model';\r\n\r\n@Component({\r\n  selector: 'eo-sequence-list-item',\r\n  templateUrl: './sequence-list-item.component.html',\r\n  styleUrls: ['./sequence-list-item.component.scss']\r\n})\r\nexport class SequenceListItemComponent {\r\n  changeMode = ChangeMode;\r\n  @Input() index: number;\r\n  @Input() disableAdd = false;\r\n  @Input() addTargetIndex: number = null;\r\n  @Output() changeEntry: EventEmitter<ChangeOutput> = new EventEmitter<ChangeOutput>();\r\n  @Output() edit: EventEmitter<number> = new EventEmitter<number>();\r\n  @Output() delete: EventEmitter<number> = new EventEmitter<number>();\r\n  @Output() insert: EventEmitter<number> = new EventEmitter<number>();\r\n  @ContentChild('content') content: TemplateRef<any> | undefined;\r\n\r\n  constructor() {}\r\n\r\n  changes(index: number, mode: ChangeMode) {\r\n    this.changeEntry.emit({ index, mode });\r\n    if (ChangeMode.EDIT === mode) { this.edit.emit(index); }\r\n    if (ChangeMode.DELETE === mode) { this.delete.emit(index); }\r\n    if (ChangeMode.INSERT === mode) { this.insert.emit(index); }\r\n  }\r\n}\r\n","<div class=\"entry\">\r\n  <eo-icon class=\"handle\" cdkDragHandle [iconSrc]=\"'assets/_default/svg/ic_drag.svg'\"></eo-icon>\r\n  <div class=\"index\">\r\n    <span>{{ index + 1 }}</span><span>&darr;</span>\r\n  </div>\r\n\r\n  <div class=\"action\">\r\n    <button class=\"edit\" type=\"button\" (click)=\"changes(index, changeMode.EDIT)\">\r\n      <eo-icon [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"></eo-icon>\r\n    </button>\r\n    <button class=\"remove\" type=\"button\" (click)=\"changes(index, changeMode.DELETE)\">\r\n      <eo-icon [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\r\n    </button>\r\n  </div>\r\n\r\n  <div class=\"content\">\r\n    <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n  </div>\r\n\r\n  <eo-icon class=\"innerAdd\" [ngClass]=\"{ active: addTargetIndex === index, disabled: disableAdd }\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" *ngIf=\"index !== 0\" (click)=\"changes(index, changeMode.INSERT)\"></eo-icon>\r\n</div>\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {Attribute, Component, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnInit, Output} from '@angular/core';\r\nimport {\r\n  AbstractControl,\r\n  ControlValueAccessor,\r\n  FormBuilder,\r\n  FormGroup,\r\n  NG_VALIDATORS,\r\n  NG_VALUE_ACCESSOR,\r\n  UntypedFormGroup,\r\n  ValidationErrors,\r\n  Validator,\r\n  Validators\r\n} from '@angular/forms';\r\nimport {ChangeMode, ChangeOutput, Signer} from '../signature.model';\r\nimport {TranslateService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-sequence-list',\r\n  templateUrl: './sequence-list.component.html',\r\n  styleUrls: ['./sequence-list.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => SequenceListComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => SequenceListComponent),\r\n      multi: true\r\n    }\r\n  ],\r\n  host: {\r\n    tabindex: '0'\r\n  }\r\n})\r\nexport class SequenceListComponent implements ControlValueAccessor, Validator, OnInit {\r\n  entryForm: FormGroup;\r\n  entries: Signer[] = [];\r\n  editIndex: number;\r\n  addTargetIndex: number;\r\n  lengthValidator = { max: 100, min: 3 };\r\n  changeMode = ChangeMode;\r\n  mode: ChangeMode;\r\n\r\n  @Input() MAX_SIGNERS: number;\r\n  @Input() phoneRequired: boolean;\r\n  @Output() itemEdit = new EventEmitter<boolean>();\r\n\r\n  @HostListener('keydown.control.+', ['$event'])\r\n  controlPlusHandler(event: KeyboardEvent) {\r\n    this.showEntryForm();\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n  }\r\n\r\n  @HostListener('keydown.enter', ['$event'])\r\n  controlEnterHandler(event: KeyboardEvent) {\r\n    if (this.entryForm?.dirty && this.entryForm.valid) {\r\n      this.addSigner();\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n    }\r\n  }\r\n\r\n  @HostListener('keydown.escape', ['$event'])\r\n  escapeHandler(event: KeyboardEvent) {\r\n    if (this.entryForm) {\r\n      this.hideEntryForm();\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n    }\r\n  }\r\n\r\n  get duplicateEmailValidation(): boolean {\r\n    const {errors, controls} = this.entryForm;\r\n    let duplicateEmailValidationError = false;\r\n    if (errors) {\r\n      duplicateEmailValidationError = (controls.email.touched || controls.email.dirty) && errors.duplicateEmail;\r\n    }\r\n    return duplicateEmailValidationError;\r\n  }\r\n\r\n  get maxSigners(): boolean {\r\n    return this.entries.length === this.MAX_SIGNERS;\r\n  }\r\n\r\n  constructor(@Attribute('form-open') public formOpen: string,\r\n              public elRef: ElementRef,\r\n              public fb: FormBuilder,\r\n              public translate: TranslateService) {}\r\n\r\n  propagateChange = (_: any) => {};\r\n\r\n  private propagate() {\r\n    this.propagateChange(this.entries);\r\n  }\r\n\r\n  writeValue(value: Signer[]): void {\r\n    this.entries = value || [];\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {}\r\n\r\n  validate(control: AbstractControl): ValidationErrors | null {\r\n    return this.entryForm?.dirty ? { routinglist: { pending: true } } : null;\r\n  }\r\n\r\n  dragDrop(event: CdkDragDrop<string[]>) {\r\n    moveItemInArray(this.entries, event.previousIndex, event.currentIndex);\r\n    this.propagate();\r\n  }\r\n\r\n  showEntryForm(index?: number, addAtIndex?: boolean) {\r\n    let entry;\r\n    if (addAtIndex) {\r\n      this.addTargetIndex = index;\r\n    } else {\r\n      this.editIndex = index;\r\n      entry = index !== undefined ? this.entries[index] : undefined;\r\n    }\r\n\r\n    this.entryForm = this.fb.group({\r\n      name: ['', [Validators.required, Validators.maxLength(100)]],\r\n      email: ['', [Validators.required, Validators.maxLength(100), Validators.email]],\r\n      phone: ['', [Validators.maxLength(100)]]\r\n    }, {\r\n      validator: Validators.compose([\r\n        this.duplicateEmailValidator()\r\n      ])\r\n    });\r\n\r\n    if (entry) {\r\n      this.entryForm.patchValue({ name: entry.name, email: entry.email, phone: entry.phone });\r\n    }\r\n    this.itemEdit.emit(true);\r\n  }\r\n\r\n  duplicateEmailValidator() {\r\n    return (group: UntypedFormGroup) => {\r\n      if (group.controls['email'].invalid || group.controls['email'].value === null || !this.entries.find(entry => entry.email === group.controls['email'].value)) {\r\n        return null;\r\n      }\r\n      return {'duplicateEmail': true};\r\n    };\r\n  }\r\n\r\n  private removeEntry(index: number) {\r\n    const entry = this.entries[index];\r\n    if (!entry) { return; }\r\n    this.entries.splice(index, 1);\r\n    this.mode = null;\r\n    this.propagate();\r\n  }\r\n\r\n  changeEntry({ index, mode }: ChangeOutput) {\r\n    this.mode = mode;\r\n    if (mode === ChangeMode.EDIT) {\r\n      this.showEntryForm(index);\r\n      this.addTargetIndex = index;\r\n    } else if (mode === ChangeMode.DELETE) {\r\n      this.removeEntry(index);\r\n    } else if (mode === ChangeMode.INSERT && !this.maxSigners) {\r\n      this.showEntryForm();\r\n      this.addTargetIndex = index;\r\n    }\r\n  }\r\n\r\n  addSigner() {\r\n    if (this.editIndex !== undefined) {\r\n      this.entries.splice(this.editIndex, 1, this.entryForm.value);\r\n    } else if (this.addTargetIndex !== undefined) {\r\n      this.entries.splice(this.addTargetIndex, 0, this.entryForm.value);\r\n    } else {\r\n      this.entries.push(this.entryForm.value);\r\n    }\r\n    this.hideEntryForm();\r\n    this.propagate();\r\n  }\r\n\r\n  hideEntryForm() {\r\n    this.addTargetIndex = undefined;\r\n    this.editIndex = undefined;\r\n    this.entryForm = undefined;\r\n    this.mode = undefined;\r\n    this.itemEdit.emit(false);\r\n\r\n    setTimeout(() => this.elRef.nativeElement.querySelector('#add-item ')?.focus());\r\n  }\r\n\r\n  cancel() {\r\n    this.hideEntryForm();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.showEntryForm();\r\n  }\r\n}\r\n","<div class=\"toolbar\" *ngIf=\"!entryForm; else tplEntryForm\">\r\n  <h4>{{ 'eo.action.signature.signers' | translate }}</h4>\r\n  <button id=\"add-item\" class=\"add primary\" (click)=\"showEntryForm()\" [disabled]=\"maxSigners\">\r\n    <eo-icon [iconTitle]=\"('eo.action.signature.add.button.tooltip' | translate)\"\r\n             [iconSrc]=\"'assets/_default/svg/ic_add.svg'\">\r\n    </eo-icon>\r\n  </button>\r\n</div>\r\n\r\n<div class=\"entries\" cdkDropList (cdkDropListDropped)=\"dragDrop($event)\" [cdkDropListData]=\"entries\">\r\n  <div [ngClass]=\"{ disabled: !!entryForm, single: entries.length === 1 }\" cdkDrag *ngFor=\"let entry of entries; let i = index\">\r\n    <eo-sequence-list-item [index]=\"i\" (changeEntry)=\"changeEntry($event)\" [disableAdd]=\"maxSigners\">\r\n      <ng-template #content>\r\n        <div class=\"signer-list-entry\">\r\n          <div class=\"signer-name\" title=\"{{entry.name}}\">{{ entry.name }}</div>\r\n          <div class=\"signer-email\" title=\"{{entry.email}}\">{{ entry.email }}</div>\r\n          <div class=\"signer-phone\" *ngIf=\"entry.phone\" title=\"{{entry.phone}}\">{{ entry.phone }}</div>\r\n        </div>\r\n      </ng-template>\r\n    </eo-sequence-list-item>\r\n  </div>\r\n</div>\r\n\r\n<ng-template #tplEntryForm>\r\n  <form class=\"entryForm\" [formGroup]=\"entryForm\" (ngSubmit)=\"addSigner()\">\r\n    <div class=\"form-body\">\r\n      <eo-form-input\r\n        class=\"name\"\r\n        [invalid]=\"entryForm.get('name').dirty && entryForm.get('name').invalid\"\r\n        [skipToggle]=\"true\"\r\n        [label]=\"'eo.action.signature.yuvsigners.yuvsignername' | translate\"\r\n        [required]=\"true\"\r\n      >\r\n        <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignername'\" [autocomplete]=\"true\" [autofocus]=\"true\" formControlName=\"name\"></eo-string>\r\n      </eo-form-input>\r\n      <small class=\"errors\" *ngIf=\"entryForm.get('name').hasError('maxlength')\" [translateParams]=\"{maxlength: 100}\"\r\n             translate>eo.form.property.maxlength</small>\r\n      <eo-form-input\r\n        class=\"task\"\r\n        [invalid]=\"entryForm.get('email').dirty && entryForm.get('email').invalid\"\r\n        [skipToggle]=\"true\"\r\n        [label]=\"'eo.action.signature.yuvsigners.yuvsigneremail' | translate\"\r\n        [required]=\"true\"\r\n      >\r\n        <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsigneremail'\" [autocomplete]=\"true\" formControlName=\"email\"></eo-string>\r\n      </eo-form-input>\r\n      <small class=\"errors\" *ngIf=\"entryForm.get('email').hasError('email')\" translate>eo.form.property.string.error.classification.email</small>\r\n      <small class=\"errors\" *ngIf=\"!entryForm.get('email').hasError('email') && entryForm.get('email').hasError('maxlength')\"\r\n             [translateParams]=\"{maxlength: 100}\" translate>eo.form.property.maxlength</small>\r\n      <small class=\"errors\" *ngIf=\"duplicateEmailValidation\" translate>eo.form.property.string.error.classification.email.duplicate</small>\r\n      <eo-form-input\r\n        class=\"task\"\r\n        *ngIf=\"phoneRequired\"\r\n        [invalid]=\"entryForm.get('phone').dirty && entryForm.get('phone').invalid\"\r\n        [skipToggle]=\"true\"\r\n        [label]=\"'eo.action.signature.yuvsigners.yuvsignerphone' | translate\"\r\n        [required]=\"true\"\r\n      >\r\n        <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignerphone'\" formControlName=\"phone\"> </eo-string>\r\n        <small class=\"errors\" *ngIf=\"entryForm.get('phone').hasError('maxlength')\" [translateParams]=\"{maxlength: 100}\"\r\n               translate>eo.form.property.maxlength</small>\r\n      </eo-form-input>\r\n    </div>\r\n    <footer class=\"footer-action\">\r\n      <button class=\"secondary\" type=\"button\" (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\r\n      <ng-container [ngSwitch]=\"mode\">\r\n        <button *ngSwitchCase=\"'edit'\" class=\"primary\" [disabled]=\"entryForm.invalid || entryForm.pristine\" type=\"submit\" translate>eo.action.signature.editSigner</button>\r\n        <button *ngSwitchDefault class=\"primary\" [disabled]=\"entryForm.invalid\" type=\"submit\" translate>eo.action.signature.addSigner</button>\r\n      </ng-container>\r\n    </footer>\r\n  </form>\r\n</ng-template>\r\n","import {Component, ViewChild, EventEmitter, OnDestroy} from '@angular/core';\r\nimport {\r\n  Utils,\r\n  BpmService,\r\n  NotificationsService,\r\n  TranslateService,\r\n  SigningService,\r\n  SigningRequest,\r\n  EnaioEvent,\r\n  EventService,\r\n  DmsService,\r\n  SystemService,\r\n  LocalStorageService\r\n} from '@eo-sdk/core';\r\nimport {EoDialogComponent} from '../../../../ui/eo-dialog/eo-dialog.component';\r\nimport {ActionComponent} from '../../../interfaces/action-component.interface';\r\nimport {PendingChangesService} from '../../../../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {ObjectFormOptions} from '../../../../object-form';\r\nimport {FormGroup, UntypedFormBuilder} from '@angular/forms';\r\nimport {Subscription} from 'rxjs';\r\nimport {switchMap} from 'rxjs/operators';\r\nimport {ChangeMode} from '../signature.model';\r\n\r\n@Component({\r\n  selector: 'eo-signature',\r\n  templateUrl: './signature.component.html',\r\n  styleUrls: ['./signature.component.scss']\r\n})\r\nexport class SignatureComponent implements ActionComponent, OnDestroy {\r\n  selection: any[];\r\n  finished: EventEmitter<any> = new EventEmitter();\r\n  canceled: EventEmitter<any> = new EventEmitter();\r\n  processingRequest: boolean;\r\n  headerTitle: string;\r\n  headerDescription: string;\r\n  selected: any;\r\n  formOptions: ObjectFormOptions;\r\n  contents: {id: string, type: string}[];\r\n  mode: ChangeMode;\r\n\r\n  // ID set by pendingChanges service when editing indexdata\r\n  // Used to finish the pending task when editing is done\r\n  pendingTaskIds: string[] = [];\r\n\r\n  @ViewChild('dialog') dialog: EoDialogComponent;\r\n  signingForm: FormGroup;\r\n  maxSigners: number;\r\n  signingFormListener: Subscription;\r\n  yuvsigtypeCodesystem = {\r\n    id: '1291BAB91B0D49D1A9A4DFCCF49A1666',\r\n    name: 'yuvsigtype',\r\n    entries: []\r\n  };\r\n  signatureTypeStorageKey = 'eo.signature.type';\r\n  signatureParallelStorageKey = 'eo.signature.parallel';\r\n\r\n  constructor(private bpmService: BpmService,\r\n    private pendingChanges: PendingChangesService,\r\n    private translate: TranslateService,\r\n    private toaster: NotificationsService,\r\n    private signingService: SigningService,\r\n    private eventService: EventService,\r\n    private dmsService: DmsService,\r\n    private systemService: SystemService,\r\n    private storageService: LocalStorageService,\r\n    private fb: UntypedFormBuilder) {\r\n    const defaultSignatureType = this.storageService.getItem(this.signatureTypeStorageKey);\r\n    const defaultSignatureParallel = this.storageService.getItem(this.signatureParallelStorageKey);\r\n\r\n    this.signingForm = this.fb.group({\r\n      yuvsigtype: [],\r\n      yuvsigners: [],\r\n      parallelSigning: [defaultSignatureParallel ? defaultSignatureParallel : false],\r\n      yuvsigemailsubject: [''],\r\n      yuvsigemailbody: ['']\r\n    });\r\n    this.headerTitle = this.translate.instant('eo.action.signature.label');\r\n\r\n    this.signingFormListener = this.signingForm.valueChanges.subscribe(() => this.onIndexDataChanged());\r\n    this.signingService.getInfo().subscribe((info) => {\r\n      let platformName = info.platform === 'docusign' ? 'DocuSign' : 'Adobe Sign';\r\n      this.headerDescription = this.translate.instant('eo.action.signature.description', {platform: platformName});\r\n      if (info.signatureTypesEnabled) {\r\n        this.yuvsigtypeCodesystem.entries = this.systemService.getCodesystem(this.yuvsigtypeCodesystem.id).entries;\r\n        this.yuvsigtypeCodesystem.entries = this.yuvsigtypeCodesystem.entries.filter(entry => info.signatureTypesEnabled.includes(entry.data));\r\n      }\r\n\r\n      this.maxSigners = info.maxSigners || 6;\r\n\r\n      this.signingForm.patchValue({\r\n        yuvsigemailsubject: info.defaultEmailSubject,\r\n        yuvsigemailbody: info.defaultEmailBody,\r\n        yuvsigtype: defaultSignatureType ? defaultSignatureType : (info.signatureTypesEnabled ? info.signatureTypesEnabled[0] : '')\r\n      });\r\n    });\r\n  }\r\n\r\n  saveForm() {\r\n    this.processingRequest = true;\r\n    if (this.signingForm && !this.signingForm.invalid) {\r\n      const signers = (this.signingForm.get('yuvsigners').value || []).map((value, index) => ({\r\n            signerName: value.name,\r\n            signerEmail: value.email,\r\n            signerOrder: this.signingForm.get('parallelSigning').value ? 1 : index + 1,\r\n            signerPhone: value.phone\r\n          })\r\n        );\r\n      const signingData = {\r\n        emailSubject: this.signingForm.get('yuvsigemailsubject').value,\r\n        emailBody: this.signingForm.get('yuvsigemailbody').value,\r\n        signatureType: this.signingForm.get('yuvsigtype').value ? this.signingForm.get('yuvsigtype').value : this.yuvsigtypeCodesystem.entries[0].data,\r\n        signers\r\n      } as SigningRequest;\r\n      this.signingService\r\n        .signDocument(this.selection[0].id, signingData)\r\n        .pipe(\r\n          switchMap(() => this.dmsService.getDmsObject(this.selection[0].id))\r\n        )\r\n        .subscribe((dmsObject) => {\r\n          this.processingRequest = false;\r\n          this.toaster.success(this.translate.instant('eo.action.signature.request.success'));\r\n          this.storageService.setItem(this.signatureTypeStorageKey, signingData.signatureType);\r\n          this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, dmsObject);\r\n          this.finish();\r\n        }, Utils.throw(error => {\r\n          if (error.status === 500) {\r\n            this.toaster.error(this.translate.instant('eo.error.connection.interrupted.title'), this.translate.instant('eo.error.connection.interrupted.text'));\r\n          } else {\r\n            this.toaster.error(error.error?.message);\r\n          }\r\n          this.processingRequest = false;\r\n        }));\r\n    }\r\n  }\r\n\r\n  finish() {\r\n    this.finishPending();\r\n    this.dialog.visible = false;\r\n    this.finished.emit();\r\n  }\r\n\r\n  cancel() {\r\n    if (!this.pendingChanges.checkForPendingTasks(this.pendingTaskIds)) {\r\n      this.finishPending();\r\n      this.dialog.visible = false;\r\n      this.canceled.emit();\r\n    }\r\n  }\r\n\r\n  onIndexDataChanged() {\r\n    if (this.signingForm.dirty) {\r\n      this.startPending();\r\n    } else {\r\n      this.finishPending();\r\n    }\r\n  }\r\n\r\n  private startPending() {\r\n    // because this method will be called every time the form status changes,\r\n    // pending task will only be started once until it was finished\r\n    if (!this.pendingChanges.hasPendingTask(this.pendingTaskIds[0] || ' ')) {\r\n      this.pendingTaskIds = [this.pendingChanges.startTask()];\r\n    }\r\n  }\r\n\r\n  private finishPending() {\r\n    this.pendingChanges.finishTask(this.pendingTaskIds[0]);\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.signingFormListener.unsubscribe();\r\n  }\r\n}\r\n","<eo-dialog [title]=\"headerTitle\"\r\n           [subtitle]=\"headerDescription\"\r\n           [visible]=\"true\"\r\n           [dirtyCheck]=\"pendingTaskIds\"\r\n           [minWidth]=\"600\"\r\n           [minHeight]=\"600\"\r\n           [styleClass]=\"'process-form-dialog'\" #dialog>\r\n\r\n  <section class=\"signature-form form-container\">\r\n    <form class=\"signing-form\" [formGroup]=\"signingForm\">\r\n      <eo-sequence-list class=\"entry_form\" form-open=\"true\" [MAX_SIGNERS]=\"maxSigners\" (itemEdit)=\"mode = $event\" [phoneRequired]=\"signingForm.get('yuvsigtype').value === 'advanced'\" [formControlName]=\"'yuvsigners'\">\r\n      </eo-sequence-list>\r\n      <eo-form-input [skipToggle]=\"true\" class=\"checkbox\" [label]=\"'eo.action.signature.yuvsigners.parallel' | translate\">\r\n        <eo-checkbox formControlName=\"parallelSigning\"></eo-checkbox>\r\n      </eo-form-input>\r\n      <eo-form-input *ngIf=\"yuvsigtypeCodesystem.entries.length > 1\" [required]=\"true\" [label]=\"'eo.action.signature.yuvsigning.yuvsigtype' | translate\">\r\n        <eo-codesystem\r\n          [formControlName]=\"'yuvsigtype'\"\r\n          [codesystem]=\"yuvsigtypeCodesystem\"\r\n          [required]=\"true\"\r\n        ></eo-codesystem>\r\n      </eo-form-input>\r\n      <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailsubject' | translate\" [required]=\"true\">\r\n        <eo-string\r\n          [formControlName]=\"'yuvsigemailsubject'\"\r\n          [minLength]=\"3\"\r\n          [maxLength]=\"100\"\r\n          [required]=\"true\"\r\n        ></eo-string>\r\n      </eo-form-input>\r\n      <small class=\"errors\" *ngIf=\"signingForm.get('yuvsigemailsubject').hasError('required')\" translate>eo.form.property.required</small>\r\n      <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailbody' | translate\" [required]=\"true\">\r\n        <eo-string\r\n          [formControlName]=\"'yuvsigemailbody'\"\r\n          [multiline]=\"true\"\r\n          [size]=\"'small'\"\r\n          [minLength]=\"3\"\r\n          [maxLength]=\"2000\"\r\n          [required]=\"true\"\r\n        ></eo-string>\r\n      </eo-form-input>\r\n      <small class=\"errors\" *ngIf=\"signingForm.get('yuvsigemailbody').hasError('required')\" translate>eo.form.property.required</small>\r\n    </form>\r\n\r\n    <div class=\"actions\">\r\n      <div *ngIf=\"signingForm?.invalid\" class=\"invalid\" translate>eo.object.indexdata.form.invalid</div>\r\n      <eo-cta [active]=\"!processingRequest\" class=\"cta-wrapper\">\r\n        <button (click)=\"cancel()\" class=\"button-cancel\" translate>eo.cta.button.cancel</button>\r\n        <button (click)=\"saveForm()\" [disabled]=\"signingForm?.invalid || processingRequest || !signingForm.get('yuvsigners').value || !signingForm.get('yuvsigners').value.length\" class=\"primary\" translate>eo.action.signature.request</button>\r\n      </eo-cta>\r\n    </div>\r\n  </section>\r\n  <div class=\"loader-overlay__mask\" *ngIf=\"processingRequest\">\r\n    <eo-loading-spinner class=\"signature__loader\" [size]=\"'large'\"></eo-loading-spinner>\r\n  </div>\r\n</eo-dialog>\r\n","import {of as observableOf, Observable} from 'rxjs';\r\nimport {Component} from '@angular/core';\r\nimport {SignatureComponent} from './signature/signature.component';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {DmsObject, SigningService, TranslateService} from '@eo-sdk/core';\r\n\r\n\r\n@Component({\r\n  selector: 'eo-signature-action',\r\n  template: ''\r\n})\r\nexport class SignatureActionComponent extends DmsObjectTarget {\r\n\r\n  label: string;\r\n  description: string;\r\n  priority = 2;\r\n  iconSrc = 'assets/_default/svg/ic_signature.svg';\r\n  group = 'common';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n  extComponents = SignatureComponent;\r\n\r\n  constructor(private translate: TranslateService, private signingService: SigningService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.signature.label');\r\n    this.description = this.translate.instant('eo.action.signature.description');\r\n  }\r\n\r\n  isExecutable(element: DmsObject): Observable<boolean> {\r\n    return observableOf(!this.signingService.signatureRequested(element)\r\n      && this.hasEditRights(element)\r\n      && this.isAllowedObjectType(element)\r\n      && this.isAllowedMimeType(element)\r\n      && !this.isFinalized(element));\r\n  }\r\n\r\n  isAllowedMimeType(item: DmsObject): boolean {\r\n    return item.content?.contents?.[0] && (item.content.contents[0].mimetype === 'application/pdf'\r\n      || item.content.contents[0].mimetype === 'application/msword'\r\n      || item.content.contents[0].mimetype === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\r\n      || item.content.contents[0].mimetype === 'application/vnd.ms-excel'\r\n      || item.content.contents[0].mimetype === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n      || item.content.contents[0].mimetype === 'application/vnd.ms-powerpoint'\r\n      || item.content.contents[0].mimetype === 'application/vnd.openxmlformats-officedocument.presentationml.presentation');\r\n  }\r\n\r\n  isAllowedObjectType(item: DmsObject): boolean {\r\n    return item.type.supertypes.includes('yuvsigning');\r\n  }\r\n\r\n  hasEditRights(item: DmsObject): boolean {\r\n    return item.rights?.edit;\r\n  }\r\n\r\n  isFinalized(item: DmsObject): boolean {\r\n    return item.isFinalized;\r\n  }\r\n}\r\n","import {Component, ElementRef, EventEmitter, Input, Output} from '@angular/core';\r\nimport {ActionComponent} from '../../../interfaces/action-component.interface';\r\nimport {DmsObject, CapabilitiesService, TranslateService, SigningService, EventService, DmsService, EnaioEvent} from '@eo-sdk/core';\r\nimport {Router} from '@angular/router';\r\nimport {BackendService, NotificationsService} from '@eo-sdk/core';\r\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport {switchMap} from 'rxjs/operators';\r\n\r\n@Component({\r\n  selector: 'eo-cancel-signing',\r\n  templateUrl: './cancel-signing.component.html',\r\n  styleUrls: ['./cancel-signing.component.scss']\r\n})\r\nexport class CancelSigningComponent implements ActionComponent {\r\n\r\n  cancelling = false;\r\n  commentLabel: string;\r\n  cancelSigningForm: FormGroup;\r\n  commentField: FormControl;\r\n\r\n  @Input() selection: DmsObject[];\r\n  @Output() finished: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() canceled: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  constructor(private translate: TranslateService,\r\n              private backend: BackendService,\r\n              private toast: NotificationsService,\r\n              private router: Router,\r\n              private capabilitiesService: CapabilitiesService,\r\n              private signingService: SigningService,\r\n              private elemRef: ElementRef,\r\n              private eventService: EventService,\r\n              private dmsService: DmsService) {\r\n    this.commentLabel = this.translate.instant('eo.action.cancel.signing.reason');\r\n    this.cancelSigningForm = new FormGroup({});\r\n    this.commentField = new FormControl();\r\n    this.cancelSigningForm.addControl('commentField', this.commentField);\r\n    this.commentField.setValidators(Validators.required);\r\n  }\r\n\r\n  get commentValidity() {\r\n    return this.cancelSigningForm.get('commentField').invalid;\r\n  }\r\n\r\n  cancelSigning(id: string, comment: string) {\r\n    this.cancelling = true;\r\n    this.signingService\r\n      .cancelSigning(id, comment)\r\n      .pipe(\r\n        switchMap(() => this.dmsService.getDmsObject(this.selection[0].id))\r\n      )\r\n      .subscribe((dmsObject) => {\r\n        this.cancelling = false;\r\n        this.toast.success(null,\r\n          this.translate.instant('eo.action.cancel.signing.success.message')\r\n        );\r\n        this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, dmsObject);\r\n        this.finished.emit();\r\n      }, (error) => {\r\n        this.toast.error(this.translate.instant('eo.action.cancel.signing.error.message'));\r\n        this.finished.emit();\r\n      }\r\n    );\r\n  }\r\n\r\n  run() {\r\n    this.cancelSigning(this.selection[0].id, this.commentField.value);\r\n  }\r\n\r\n  cancel() {\r\n    this.canceled.emit();\r\n  }\r\n}\r\n","<div class=\"eo-cancel-signing\" eoTrapFocus yvcAutofocusChild>\r\n\r\n  <h2 translate>eo.action.cancel.signing.label</h2>\r\n  <form *ngIf=\"!cancelling\" [formGroup]=\"cancelSigningForm\">\r\n    <eo-form-input [skipToggle]=\"true\" [required]=\"true\" [label]=\"commentLabel\" [invalid]=\"commentValidity\">\r\n      <eo-string [multiline]=\"true\" [minlength]=\"3\" [maxlength]=\"100\" formControlName=\"commentField\"></eo-string>\r\n    </eo-form-input>\r\n  </form>\r\n  <div *ngIf=\"!cancelling\">\r\n    <div class=\"form-buttons\">\r\n      <button (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\r\n      <button class=\"primary\" (click)=\"run()\"\r\n              [disabled]=\"cancelSigningForm.errors || cancelSigningForm.invalid || !cancelSigningForm.dirty\"\r\n              translate>eo.action.cancel.signing.cancelSigning</button>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"spinner-container\" *ngIf=\"cancelling\">\r\n    <eo-loading-spinner></eo-loading-spinner>\r\n  </div>\r\n</div>\r\n\r\n\r\n","import {Observable, of as observableOf} from 'rxjs';\r\nimport {DmsObjectTarget} from '../../action-target';\r\nimport {Component} from '@angular/core';\r\nimport {SelectionRange} from '../../selection-range.enum';\r\nimport {TranslateService, DmsObject, SigningService} from '@eo-sdk/core';\r\nimport {ComponentAction} from '../../interfaces/action.interface';\r\nimport {CancelSigningComponent} from './cancel-signing/cancel-signing.component';\r\n\r\n@Component({\r\n  selector: 'eo-cancel-signing',\r\n  template: ``\r\n})\r\nexport class CancelSigningActionComponent extends DmsObjectTarget implements ComponentAction {\r\n  header: string;\r\n  label: string;\r\n  description: string;\r\n  priority = 2;\r\n  iconSrc = 'assets/_default/svg/ic_signature.svg';\r\n  group = 'common';\r\n  range = SelectionRange.SINGLE_SELECT;\r\n  component = CancelSigningComponent;\r\n\r\n  constructor(private translate: TranslateService, private signingService: SigningService) {\r\n    super();\r\n    this.label = this.translate.instant('eo.action.cancel.signing.label');\r\n    this.description = this.translate.instant('eo.action.cancel.signing.description');\r\n  }\r\n\r\n  isExecutable(element: DmsObject): Observable<boolean> {\r\n    return observableOf(this.signingService.signingInProcess(element)\r\n      && this.hasEditRights(element)\r\n      && !this.isFinalized(element));\r\n  }\r\n\r\n  hasEditRights(item: DmsObject): boolean {\r\n    return item.rights.edit;\r\n  }\r\n\r\n  isFinalized(item: DmsObject): boolean {\r\n    return item.isFinalized;\r\n  }\r\n}\r\n","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {PreventDoubleClickDirective} from '../util/directive/prevent-double-click.directive';\r\nimport {ACTIONS, CUSTOM_ACTIONS, ActionService} from './action-service/action.service';\r\nimport {ActionMenuComponent} from './action-menu/action-menu.component';\r\nimport {CommonModule} from '@angular/common';\r\nimport {UiModule} from '../ui/ui.module';\r\nimport {ActionComponentAnchorDirective} from './action-menu/action-component-anchor/action-component-anchor.directive';\r\nimport {CopyActionComponent} from './actions/copy-action/copy-action';\r\nimport {OpenContextActionComponent} from './actions/open-context-action/open-context-action';\r\nimport {DownloadActionComponent} from './actions/download-action/download-action';\r\nimport {OpenDocumentComponent} from './actions/open-document-action/open-document-action.component';\r\nimport {OpenDocumentActionComponent} from './actions/open-document-action/open-document-action';\r\nimport {ObjectFormModule} from '../object-form/object-form.module';\r\nimport {EmailActionComponent} from './actions/email/email-action';\r\nimport {ClipboardActionComponent} from './actions/clipboard/clipboard-action';\r\nimport {FavoriteActionComponent} from './actions/favorite-action/favorite-action';\r\nimport {DeleteActionComponent} from './actions/delete-action/delete-action';\r\nimport {DeleteComponent} from './actions/delete-action/delete/delete.component';\r\nimport {OpenVersionsActionComponent} from './actions/open-versions-action/open-versions-action';\r\nimport {RestoreVersionActionComponent} from './actions/restore-version-action/restore-version-action';\r\nimport {DeletePreparedActionComponent} from './actions/delete-action/delete-prepared-action';\r\nimport {RouterModule} from '@angular/router';\r\nimport {AddSubscriptionComponent} from './actions/add-subscription-action/add-subscription/add-subscription.component';\r\nimport {AddSubscriptionActionComponent} from './actions/add-subscription-action/add-subscription-action';\r\nimport {FormElementsModule} from '../form-elements/form-elements.module';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {RemoveSubscriptionActionComponent} from './actions/remove-subscription-action/remove-subscription-action';\r\nimport {WorkflowActionComponent} from './actions/workflow-action/workflow-action.component';\r\nimport {WorkflowComponent} from './actions/workflow-action/workflow/workflow.component';\r\nimport {CustomActionsComponent} from './actions/custom-actions/custom-actions.component';\r\nimport {CtaModule} from '../cta/cta.module';\r\nimport {AddResubmissionActionComponent} from './actions/add-resubmission-action/add-resubmission-action';\r\nimport {AddResubmissionComponent} from './actions/add-resubmission-action/add-resubmission/add-resubmission.component';\r\nimport {UpdateResubmissionActionComponent} from './actions/update-resubmission-action/update-resubmission-action';\r\nimport {ShareObjectActionComponent} from './actions/share-object-action/share-object-action';\r\nimport {ShareObjectComponent} from './actions/share-object-action/share-object/share-object.component';\r\nimport {CutActionComponent} from './actions/cut-action/cut-action';\r\nimport {FinalizeActionComponent} from './actions/finalize/finalize-action';\r\nimport {DefinalizeActionComponent} from './actions/finalize/definalize-action';\r\nimport {DeleteContentActionComponent} from './actions/delete-content-action/delete-content-action';\r\nimport {UnlockActionComponent} from './actions/unlock-action/unlock-action';\r\nimport {SimpleWorkflowActionComponent} from './actions/workflow-action/simple-workflow-action.component';\r\nimport {ProcessFormModule} from '../process-form/process-form.module';\r\nimport { FinalizeObjectActionComponent } from './actions/finalize/finalize-object-action/finalize-object-action.component';\r\nimport {DeleteContentComponent} from './actions/delete-content-action/delete-content/delete-content.component';\r\nimport {SignatureActionComponent} from './actions/signature-action/signature-action.component';\r\nimport {SignatureComponent} from './actions/signature-action/signature/signature.component';\r\nimport {CancelSigningActionComponent} from './actions/cancel-signing-action/cancel-signing-action';\r\nimport {CancelSigningComponent} from './actions/cancel-signing-action/cancel-signing/cancel-signing.component';\r\nimport {YvcDatepickerModule} from '@yuuvis/components/datepicker';\r\nimport {YvcAutofocusChild} from '@yuuvis/components/common';\r\nimport { DownloadObjectActionComponent } from './actions/download-action/download-object-action/download-object-action.component';\r\nimport { ClipboardObjectActionComponent } from './actions/clipboard/clipboard-object-action/clipboard-object-action.component';\r\nimport { EmailComponent } from './actions/email/email/email.component';\r\nimport {SequenceListComponent} from './actions/signature-action/sequence-list/sequence-list.component';\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\nimport {SequenceListItemComponent} from './actions/signature-action/sequence-list-item/sequence-list-item.component';\r\n\r\nexport const entryComponents = [\r\n  CopyActionComponent,\r\n  OpenContextActionComponent,\r\n  DownloadActionComponent,\r\n  OpenDocumentActionComponent,\r\n  OpenDocumentComponent,\r\n  EmailActionComponent,\r\n  ClipboardActionComponent,\r\n  DeleteActionComponent,\r\n  DeleteComponent,\r\n  OpenVersionsActionComponent,\r\n  RestoreVersionActionComponent,\r\n  DeletePreparedActionComponent,\r\n  AddSubscriptionActionComponent,\r\n  AddSubscriptionComponent,\r\n  RemoveSubscriptionActionComponent,\r\n  WorkflowActionComponent,\r\n  WorkflowComponent,\r\n  CustomActionsComponent,\r\n  AddResubmissionActionComponent,\r\n  AddResubmissionComponent,\r\n  UpdateResubmissionActionComponent,\r\n  ShareObjectActionComponent,\r\n  ShareObjectComponent,\r\n  CutActionComponent,\r\n  FinalizeActionComponent,\r\n  FinalizeObjectActionComponent,\r\n  DefinalizeActionComponent,\r\n  DeleteContentComponent,\r\n  DeleteContentActionComponent,\r\n  UnlockActionComponent,\r\n  SimpleWorkflowActionComponent,\r\n  SignatureActionComponent,\r\n  SignatureComponent,\r\n  CancelSigningActionComponent,\r\n  CancelSigningComponent,\r\n  DownloadObjectActionComponent,\r\n  ClipboardObjectActionComponent,\r\n  EmailComponent,\r\n  SequenceListComponent,\r\n  SequenceListItemComponent\r\n];\r\n\r\n/**\r\n * @module\r\n * @description\r\n * Module for the action menu\r\n */\r\n@NgModule({\r\n  imports: [\r\n    YvcAutofocusChild,\r\n    CommonModule,\r\n    UiModule,\r\n    RouterModule,\r\n    ObjectFormModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    FormElementsModule,\r\n    ObjectFormModule,\r\n    ProcessFormModule,\r\n    CtaModule,\r\n    YvcDatepickerModule,\r\n    DragDropModule\r\n  ],\r\n  exports: [ActionMenuComponent, OpenDocumentComponent],\r\n  providers: [ActionService, {\r\n    provide: ACTIONS,\r\n    useValue: entryComponents\r\n  }, {\r\n    provide: CUSTOM_ACTIONS,\r\n    useValue: []\r\n  }],\r\n  declarations: [\r\n    ActionMenuComponent,\r\n    ActionComponentAnchorDirective,\r\n    CopyActionComponent,\r\n    OpenContextActionComponent,\r\n    DownloadActionComponent,\r\n    OpenDocumentActionComponent,\r\n    OpenDocumentComponent,\r\n    EmailActionComponent,\r\n    ClipboardActionComponent,\r\n    FavoriteActionComponent,\r\n    DeleteActionComponent,\r\n    DeleteComponent,\r\n    OpenVersionsActionComponent,\r\n    RestoreVersionActionComponent,\r\n    DeletePreparedActionComponent,\r\n    AddSubscriptionActionComponent,\r\n    AddSubscriptionComponent,\r\n    AddResubmissionActionComponent,\r\n    AddResubmissionComponent,\r\n    RemoveSubscriptionActionComponent,\r\n    WorkflowActionComponent,\r\n    WorkflowComponent,\r\n    CustomActionsComponent,\r\n    UpdateResubmissionActionComponent,\r\n    ShareObjectActionComponent,\r\n    ShareObjectComponent,\r\n    CutActionComponent,\r\n    FinalizeActionComponent,\r\n    FinalizeObjectActionComponent,\r\n    DefinalizeActionComponent,\r\n    DeleteContentComponent,\r\n    DeleteContentActionComponent,\r\n    UnlockActionComponent,\r\n    SimpleWorkflowActionComponent,\r\n    PreventDoubleClickDirective,\r\n    SignatureActionComponent,\r\n    SignatureComponent,\r\n    CancelSigningActionComponent,\r\n    CancelSigningComponent,\r\n    DownloadObjectActionComponent,\r\n    ClipboardObjectActionComponent,\r\n    EmailComponent,\r\n    SequenceListComponent,\r\n    SequenceListItemComponent\r\n  ]\r\n})\r\nexport class ActionModule {\r\n  static forRoot(components: any[] = []): ModuleWithProviders<ActionModule> {\r\n    return {\r\n      ngModule: ActionModule,\r\n      providers: [ {\r\n        provide: ACTIONS,\r\n        useValue: entryComponents\r\n      }, {\r\n        provide: CUSTOM_ACTIONS,\r\n        useValue: components\r\n      }]\r\n    };\r\n  }\r\n}\r\n","import {Component, ElementRef, EventEmitter, OnInit, Output} from '@angular/core';\r\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\r\nimport {Capabilities, CapabilitiesService, Config, EoUser, UserService} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from \"@ngneat/until-destroy\";\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-side-bar',\r\n  templateUrl: './side-bar.component.html',\r\n  styleUrls: ['./side-bar.component.scss']\r\n})\r\nexport class SideBarComponent implements OnInit {\r\n\r\n  capabilities: Capabilities;\r\n  backgroundImage: SafeResourceUrl;\r\n  docu: { link: string, label: string };\r\n  user: EoUser;\r\n\r\n  @Output()\r\n  public eoOutsideClick = new EventEmitter();\r\n\r\n  constructor(private capabilityService: CapabilitiesService,\r\n              private userService: UserService,\r\n              private config: Config,\r\n              private sanitizer: DomSanitizer,\r\n              private elemRef: ElementRef) {\r\n\r\n    this.userService\r\n      .user$.pipe(\r\n      untilDestroyed(this))\r\n      .subscribe(user => this.user = user);\r\n  }\r\n\r\n  getCapabilities() {\r\n    this.capabilities = this.capabilityService.getCapabilities();\r\n  }\r\n\r\n  setBackgroundImage() {\r\n    this.backgroundImage = this.sanitizer.bypassSecurityTrustStyle(`url(${this.config.getSideBarHeaderImage()})`);\r\n  }\r\n\r\n  getDocumentation() {\r\n    this.userService\r\n      .user$\r\n      .subscribe(data => {\r\n        const docu = this.config.getRaw('about.docu');\r\n        const link = docu.link.replace('###userLang###', data?.userSettings?.clientlocale?.substring(0, 2) || this.user?.getClientLocale());\r\n        this.docu = {...docu, link};\r\n      });\r\n  }\r\n\r\n  close() {\r\n    this.eoOutsideClick.emit();\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.elemRef.nativeElement.querySelector('[tabindex=\"0\"]').focus();\r\n    this.getCapabilities();\r\n    this.setBackgroundImage();\r\n    this.getDocumentation();\r\n  }\r\n}\r\n","<div class=\"eo-side-bar\" eoTrapFocus>\r\n  <eo-icon (click)=\"close()\" (keydown.enter)=\"close()\" tabindex=\"0\" class=\"button white close\"\r\n    [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" focusable></eo-icon>\r\n\r\n  <div class=\"head\" [style.background-image]=\"backgroundImage\"></div>\r\n\r\n  <div class=\"body\">\r\n        <div class=\"navigation\">\r\n          <div class=\"nav-item dashboard\">\r\n            <a routerLink=\"/dashboard\" routerLinkActive=\"active-link\"\r\n               translate>eo.view.navigation.dashboard</a>\r\n          </div>\r\n          <div class=\"nav-item\" *ngIf=\"capabilities.favorites\">\r\n            <a routerLink=\"/favorites\" routerLinkActive=\"active-link\"\r\n               translate>eo.view.navigation.favorites</a>\r\n          </div>\r\n          <div class=\"nav-item\" *ngIf=\"capabilities.inbox\">\r\n            <a routerLink=\"/inbox\" routerLinkActive=\"active-link\"\r\n               translate>eo.view.navigation.inbox</a>\r\n          </div>\r\n\r\n          <div class=\"nav-item\" *ngIf=\"capabilities.intray\">\r\n            <a routerLink=\"/prepare\" routerLinkActive=\"active-link\"\r\n               translate>eo.view.navigation.prepare</a>\r\n          </div>\r\n\r\n          <div class=\"nav-item\" *ngIf=\"capabilities.bpm\">\r\n            <a routerLink=\"/process\" routerLinkActive=\"active-link\"\r\n               translate>eo.view.navigation.process</a>\r\n          </div>\r\n\r\n          <div class=\"nav-item\" *ngIf=\"capabilities.notifications\">\r\n            <a routerLink=\"/notifications\" routerLinkActive=\"active-link\"\r\n              translate>eo.view.navigation.notifications</a>\r\n          </div>\r\n\r\n          <div class=\"nav-item\" *ngIf=\"capabilities.storedqueries\">\r\n            <a routerLink=\"/stored-queries\" routerLinkActive=\"active-link\"\r\n              translate>eo.view.navigation.storedqueries</a>\r\n          </div>\r\n\r\n          <div class=\"nav-item\" *ngIf=\"capabilities.recyclebin\">\r\n            <a routerLink=\"/recyclebin\" routerLinkActive=\"active-link\"\r\n               translate>eo.view.navigation.recyclebin</a>\r\n          </div>\r\n          <ng-content select=\".navi\"></ng-content>\r\n          <div class=\"nav-item\" >\r\n            <a routerLink=\"/about\" translate>eo.sidebar.help.about.tooltip</a>\r\n          </div>\r\n            <div class=\"nav-item docu\">\r\n              <a href=\"{{docu.link}}\" target=\"_blank\" translate>eo.sidebar.help.manual</a>\r\n            </div>\r\n        </div>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component, Input\r\n} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {\r\n  Capabilities,\r\n  CapabilitiesService,\r\n  EoUser,\r\n  UserService\r\n} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {PendingChangesService} from \"../../../../eo-framework-core\";\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-user-avatar-overlay',\r\n  templateUrl: './user-avatar-overlay.component.html',\r\n  styleUrls: ['./user-avatar-overlay.component.scss']\r\n})\r\nexport class UserAvatarOverlayComponent {\r\n\r\n  user: EoUser;\r\n  capabilities: Capabilities;\r\n  @Input() userPanel: any;\r\n\r\n  constructor(private userService: UserService,\r\n              private capabilityService: CapabilitiesService,\r\n              private router: Router,\r\n              private pendingChanges: PendingChangesService\r\n              ) {\r\n    this.capabilities = this.capabilityService.getCapabilities();\r\n\r\n    this.userService\r\n      .user$.pipe(\r\n      untilDestroyed(this))\r\n      .subscribe(user => this.user = user);\r\n  }\r\n\r\n  openState(state: string) {\r\n    if (!this.pendingChanges.check()) {\r\n      this.router.navigateByUrl(state);\r\n    }\r\n  }\r\n}\r\n","<div class=\"eo-profile\" tabindex=\"-1\">\r\n  <div class=\"avatar\" tabindex=\"-1\">\r\n    <eo-user-avatar tabindex=\"-1\" ></eo-user-avatar>\r\n    <div class=\"overlay\" tabindex=\"-1\">\r\n      <div class=\"name\">{{user.firstname}} {{user.lastname}}</div>\r\n      <div class=\"mail\">{{user.email}}</div>\r\n      <div class=\"presence\" *ngIf=\"!user.present\" translate>eo.state.settings.presence.absent</div>\r\n    </div>\r\n  </div>\r\n  <div class=\"nav\" eoTrapFocus>\r\n    <div class=\"nav-item settings\" (keydown.enter)=\"userPanel?.close()\" (click)=\"userPanel?.close()\" >\r\n      <a (keydown.enter)=\"openState('/settings')\" (click)=\"openState('/settings')\" id=\"settings\" tabindex=\"0\" routerLinkActive=\"active-link\" focusable translate>eo.bar.button.settings.title</a>\r\n    </div>\r\n    <div class=\"nav-item logout\" *ngIf=\"!capabilities.sso\" (keydown.enter)=\"userPanel?.close()\" (click)=\"userPanel?.close()\">\r\n      <a [routerLink]=\"['/enter', { logout: true }]\" routerLinkActive=\"active-link\" translate>eo.bar.button.logout.title</a>\r\n    </div>\r\n    <ng-content select=\"eo-sidebar-plugin.profile\"></ng-content>\r\n  </div>\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {LicenseState} from \"@eo-sdk/core\";\r\n\r\n@Component({\r\n  selector: 'eo-license-warning',\r\n  templateUrl: './license-warning.component.html',\r\n  styleUrls: ['./license-warning.component.scss']\r\n})\r\nexport class LicenseWarningComponent {\r\n\r\n  @Input() licenseState: LicenseState;\r\n  @Input() transparent = false;\r\n\r\n  expiresWithinAMonth() {\r\n    const expiryDate = new Date(this.licenseState?.expires);\r\n    const after30Days = new Date(new Date().setDate((new Date()).getDate() + 30));\r\n\r\n    return !this.licenseState?.error && expiryDate < after30Days;\r\n  }\r\n}\r\n","<div *ngIf=\"licenseState && licenseState?.type !== 'PRODUCTION'; else production\" [ngClass]=\"{'accent-color': transparent}\">\r\n    <span *ngIf=\"expiresWithinAMonth(); else notExpiring\" translate [translateParams]=\"{type: licenseState?.type, date: licenseState?.expires | localeDate: 'eoShortDate'}\">eo.license.warning.expirationDate</span>\r\n    <ng-template #notExpiring>\r\n        <span *ngIf=\"!licenseState?.error; else expired\" translate [translateParams]=\"{type: licenseState?.type}\">eo.license.warning.type</span>\r\n    </ng-template>\r\n</div>\r\n\r\n<ng-template #production>\r\n  <div [ngClass]=\"{'accent-color': transparent}\">\r\n    <div *ngIf=\"expiresWithinAMonth(); else notExpiring\">\r\n      <span translate *ngIf=\"!licenseState?.error; else expired\" [translateParams]=\"{date: licenseState?.expires | localeDate: 'eoShortDate'}\">eo.license.warning.type.production.expiration</span>\r\n    </div>\r\n    <ng-template #notExpiring>\r\n      <span *ngIf=\"!licenseState?.error; else expired\"></span>\r\n    </ng-template>\r\n  </div>\r\n</ng-template>\r\n\r\n<ng-template #expired>\r\n    <span *ngIf=\"licenseState?.error === 'EXPIRED' || licenseState?.error === 'EXPIRED_WITH_GRAND'; else error\" translate>eo.license.warning.expired</span>\r\n</ng-template>\r\n\r\n<ng-template #error>\r\n  <span translate>eo.license.warning.invalid</span>\r\n</ng-template>\r\n","import {\r\n  Component,\r\n  Input,\r\n  OnInit,\r\n  QueryList,\r\n  ViewChildren\r\n} from '@angular/core';\r\nimport {NavigationStart, Router} from '@angular/router';\r\nimport {\r\n  BpmService,\r\n  Capabilities,\r\n  CapabilitiesService,\r\n  Config,\r\n  EnaioEvent,\r\n  EoUser,\r\n  EventService,\r\n  InboxService, InboxState,\r\n  PrepareService, TranslateService,\r\n  UserService\r\n} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {UserAvatarComponent} from '../../ui/user-avatar/user-avatar.component';\r\nimport {PendingChangesService} from \"../../../eo-framework-core\";\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-app-bar',\r\n  templateUrl: './app-bar.component.html',\r\n  styleUrls: ['./app-bar.component.scss']\r\n})\r\nexport class AppBarComponent implements OnInit {\r\n\r\n  @Input() transparent = false;\r\n\r\n  preparedItemsCount: number;\r\n  inboxState: InboxState;\r\n  user: EoUser;\r\n  capabilities: Capabilities;\r\n  exeActions: boolean;\r\n  sidebarShow = false;\r\n  options: any;\r\n  iconTitles: any;\r\n  logo: string;\r\n  pageVisible = true;\r\n  docu: {link: string, label: string};\r\n  @ViewChildren(UserAvatarComponent) avatarComponents: QueryList<UserAvatarComponent>;\r\n\r\n  constructor(private userService: UserService,\r\n              private capabilityService: CapabilitiesService,\r\n              private translate: TranslateService,\r\n              private inboxService: InboxService,\r\n              private prepareService: PrepareService,\r\n              private router: Router,\r\n              private bpmService: BpmService,\r\n              private eventService: EventService,\r\n              private config: Config,\r\n              private pendingChanges: PendingChangesService\r\n              ) {\r\n    this.capabilities = this.capabilityService.getCapabilities();\r\n    this.logo = this.config.getNavigationBarImage();\r\n    // listen for routing events to hide any active overlays\r\n    // on changing route\r\n    this.router\r\n      .events.pipe(\r\n      untilDestroyed(this))\r\n      .subscribe(event => {\r\n        if (event instanceof NavigationStart) {\r\n          this.sidebarShow = false;\r\n        }\r\n      });\r\n\r\n    this.userService\r\n      .user$.pipe(\r\n      untilDestroyed(this))\r\n      .subscribe(user => this.user = user);\r\n\r\n    if (this.capabilities.inbox) {\r\n      this.inboxService\r\n        .inboxState$.pipe(\r\n        untilDestroyed(this))\r\n        .subscribe((inboxState: InboxState) => {\r\n          if (this.inboxState && this.inboxState.unreadmessages < inboxState.unreadmessages) {\r\n            this.sendNotification();\r\n          }\r\n          this.inboxState = inboxState;\r\n        });\r\n      this.eventService.on(EnaioEvent.SYSTEM_STATUS_INBOX_CHANGED).subscribe(() => this.inboxService.refreshInboxState())\r\n    }\r\n\r\n    if (this.capabilities.intray) {\r\n      this.prepareService\r\n        .preparedItemCount$.pipe(\r\n        untilDestroyed(this))\r\n        .subscribe(count => {\r\n          this.preparedItemsCount = count;\r\n        });\r\n    }\r\n\r\n    this.translate\r\n      .onLangChange\r\n      .subscribe(() => this.setIconTitles());\r\n  }\r\n\r\n  openDashboard(openInNewWindow: boolean) {\r\n    if (openInNewWindow) {\r\n      window.open('/');\r\n    } else {\r\n      this.router.navigate(['/']);\r\n    }\r\n  }\r\n\r\n  getDocumentation() {\r\n    this.userService\r\n      .user$\r\n      .subscribe(data => {\r\n        const docu = this.config.getRaw('about.docu');\r\n        const link = docu.link.replace('###userLang###', data?.userSettings?.clientlocale?.substring(0, 2) || this.user?.getClientLocale());\r\n        this.docu = {...docu, link};\r\n      })\r\n  }\r\n\r\n  updateOnSchemaChange() {\r\n    this.eventService\r\n      .on(EnaioEvent.SCHEMA_LOCALE_CHANGED).pipe(\r\n      untilDestroyed(this))\r\n      .subscribe(() => {\r\n        this.bpmService\r\n          .getExecutableProcesses(null, null, null, null, true)\r\n          .subscribe(res => {\r\n            // this.exeActions = !!res.length;\r\n            this.exeActions = this.bpmService.hasMainExecutableProcesses;\r\n          });\r\n      });\r\n  }\r\n\r\n  setIconTitles() {\r\n    this.iconTitles = {\r\n      search: this.translate.instant('eo.bar.button.search.tooltip'),\r\n      file: this.translate.instant('eo.bar.button.file.tooltip'),\r\n      exeactions: this.translate.instant('eo.bar.button.execute.actions.tooltip'),\r\n      favorites: this.translate.instant('eo.bar.button.favorites.tooltip'),\r\n      prepare: this.translate.instant('eo.bar.button.prepare.tooltip'),\r\n      index: this.translate.instant('eo.bar.button.inbox.tooltip'),\r\n      about: this.translate.instant('eo.sidebar.help.manual.tooltip')\r\n    };\r\n  }\r\n\r\n\r\n  private sendNotification() {\r\n    if (Notification.permission === 'granted') {\r\n      this.initNotification();\r\n    } else if (Notification.permission !== 'denied') {\r\n      Notification.requestPermission().then(() => {\r\n        this.initNotification();\r\n      });\r\n    }\r\n  }\r\n\r\n  private initNotification() {\r\n    const title = this.translate.instant('eo.inbox.notification.title');\r\n    const body = this.translate.instant('eo.inbox.notification.body');\r\n    const icon = 'assets/_default/img/yuuvis-agent.png';\r\n\r\n    const notification = new Notification(title, {\r\n      body: body,\r\n      icon: icon\r\n    });\r\n\r\n    this.initNotificationClickListener(notification);\r\n  }\r\n\r\n  // This is listening for the navigation click event. When the client tab is active, it just navigates to the inbox route.\r\n  // If not, it opens a new tab and shows the inbox there.\r\n  private initNotificationClickListener(notification: Notification) {\r\n    notification.addEventListener('click', () => {\r\n      if (this.pageVisible) {\r\n        this.router.navigateByUrl('/inbox');\r\n      } else {\r\n        const fullPath = window.location.href;\r\n        const currentRoute = this.router.url;\r\n        const pathToNavigate = fullPath.replace(currentRoute, '') + '/inbox';\r\n        window.open(pathToNavigate, '_blank');\r\n      }\r\n    });\r\n  }\r\n\r\n  // This listener is needed to check, if the client tab is active or not\r\n  private initVisibilityChangeListener() {\r\n    document.addEventListener('visibilitychange', () => this.pageVisible = !this.pageVisible);\r\n  }\r\n\r\n  toggleSidebar() {\r\n    if (!this.pendingChanges.check()) {\r\n      this.sidebarShow = !this.sidebarShow;\r\n    }\r\n  }\r\n\r\n  openSearchOverlay() {\r\n    if (!this.pendingChanges.check()) {\r\n      this.router.navigate([{outlets: {modal: 'search'}}]);\r\n    }\r\n  }\r\n\r\n  openCreateObjectOverlay() {\r\n    if (!this.pendingChanges.check()) {\r\n      this.router.navigate([{outlets: {modal: 'add'}}]);\r\n    }\r\n  }\r\n\r\n  openProcessOverlay() {\r\n    if (!this.pendingChanges.check()) {\r\n      this.router.navigate([{outlets: {modal: 'actions'}}]);\r\n    }\r\n  }\r\n\r\n  openState(state: string) {\r\n    if (!this.pendingChanges.check()) {\r\n      this.router.navigateByUrl(state);\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.updateOnSchemaChange();\r\n    this.setIconTitles();\r\n    this.getDocumentation();\r\n    this.exeActions = this.bpmService.hasMainExecutableProcesses;\r\n    // this.bpmService\r\n    //   .getExecutableProcesses(null, true)\r\n    //   .subscribe(res => {\r\n    //     this.exeActions = !!res.length;\r\n    //   });\r\n    this.initVisibilityChangeListener();\r\n  }\r\n}\r\n","<eo-side-bar (eoOutsideClick)=\"sidebarShow = !sidebarShow\" *ngIf=\"sidebarShow\">\r\n  <div class=\"navi\">\r\n    <ng-content select=\"eo-sidebar-plugin.navi\"></ng-content>\r\n  </div>\r\n  <div class=\"help\">\r\n    <ng-content select=\"eo-sidebar-plugin.help\"></ng-content>\r\n  </div>\r\n</eo-side-bar>\r\n\r\n<div class=\"eo-app-bar\" [ngClass]=\"{transparent: transparent}\" eoRtlAware>\r\n\r\n  <div class=\"left\">\r\n\r\n    <eo-icon id=\"app-menu\" class=\"menu white\" tabindex=\"0\"\r\n             (click)=\"toggleSidebar()\" (keyup.enter)=\"toggleSidebar()\"\r\n             [iconSrc]=\"'assets/_default/svg/ic_hamburger.svg'\"></eo-icon>\r\n    <eo-icon (click)=\"openDashboard($event.ctrlKey)\" (auxclick)=\"openDashboard(true)\"\r\n              (keyup.enter)=\"openDashboard(false)\" tabindex=\"0\"\r\n              class=\"logo white\" [iconSrc]=\"logo\"></eo-icon>\r\n\r\n    <div class=\"actions\">\r\n      <a tabindex=\"0\" (keydown.enter)=\"openSearchOverlay()\" (click)=\"openSearchOverlay()\">\r\n        <eo-icon id=\"app-search\" class=\"search white\" queryParamsHandling=\"preserve\"\r\n                [iconTitle]=\"iconTitles.search\"\r\n                [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\r\n      </a>\r\n\r\n      <a tabindex=\"0\" (keydown.enter)=\"openCreateObjectOverlay()\" (click)=\"openCreateObjectOverlay()\">\r\n        <eo-icon id=\"app-add\" class=\"add white\" *ngIf=\"capabilities.intray\"\r\n                [iconTitle]=\"iconTitles.file\"\r\n                [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\r\n      </a>\r\n      <a tabindex=\"0\" (keydown.enter)=\"openProcessOverlay()\" (click)=\"openProcessOverlay()\">\r\n        <eo-icon id=\"app-actions\" class=\"actions white\" *ngIf=\"exeActions\"\r\n                [iconTitle]=\"iconTitles.exeactions\"\r\n                [iconSrc]=\"'assets/_default/svg/ic_bpm_start.svg'\"></eo-icon>\r\n      </a>\r\n    </div>\r\n  </div>\r\n  <eo-license-warning [licenseState]=\"user.license\" [transparent]=\"transparent\"></eo-license-warning>\r\n  <div class=\"right\">\r\n    <div class=\"sub\">\r\n      <eo-clipboard></eo-clipboard>\r\n    </div>\r\n    <a tabindex=\"0\" (keydown.enter)=\"openState('/favorites')\" (click)=\"openState('/favorites')\">\r\n      <eo-icon class=\"button white favorite\"\r\n              [iconTitle]=\"iconTitles.favorites\" *ngIf=\"capabilities.favorites\"\r\n              [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\r\n    </a>\r\n    <a tabindex=\"0\" (keydown.enter)=\"openState('/prepare')\" (click)=\"openState('/prepare')\">\r\n      <eo-icon class=\"button white prepare\" *ngIf=\"capabilities.intray\"\r\n              [iconTitle]=\"iconTitles.prepare\"\r\n              [badge]=\"preparedItemsCount\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\r\n    </a>\r\n    <a tabindex=\"0\" (keydown.enter)=\"openState('/inbox')\" (click)=\"openState('/inbox')\">\r\n      <eo-icon class=\"button white inbox\" [ngClass]=\"{alert: inboxState?.overduemessages > 0}\" *ngIf=\"capabilities.inbox\"\r\n              [iconTitle]=\"iconTitles.index\"\r\n              [badge]=\"inboxState?.totalmessages\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\r\n    </a>\r\n    <a tabindex=\"0\" href=\"{{docu.link}}\" target=\"_blank\">\r\n      <eo-icon class=\"button white about\"\r\n              [iconTitle]=\"iconTitles.about\" [iconSrc]=\"'assets/_default/svg/ic_about.svg'\"></eo-icon>\r\n    </a>\r\n    <eo-overlay #userpanel [userAvatar]=\"true\">\r\n      <eo-user-avatar-overlay [userPanel]=\"userpanel\"></eo-user-avatar-overlay>\r\n    </eo-overlay>\r\n\r\n\r\n  </div>\r\n</div>\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {SearchQuery} from '@eo-sdk/core';\r\nimport {IdxSearch} from '../app-search/app-search.interface';\r\n\r\n@Component({\r\n  selector: 'eo-context-search',\r\n  templateUrl: './context-search.component.html',\r\n  styleUrls: ['./context-search.component.scss']\r\n})\r\nexport class ContextSearchComponent {\r\n\r\n  @Input() ctx;\r\n  @Input() query: SearchQuery;\r\n  @Input() idxSearch: IdxSearch;\r\n  @Input() selected = null;\r\n  @Input() disabled = null;\r\n\r\n  @Output() setContext: EventEmitter<String> = new EventEmitter<String>();\r\n\r\n  get isSelected() {\r\n    return this.selected;\r\n  }\r\n\r\n  get isDisabled() {\r\n    return this.disabled || this.noResults;\r\n  }\r\n\r\n  get noResults() {\r\n    const contextAggregations = this.idxSearch ? this.idxSearch.contextAggregations : null;\r\n    const contextFolderTypes = this.query ? this.query.contextFolderTypes : null;\r\n    return contextAggregations && !contextAggregations[this.ctx.name] && !(contextFolderTypes && contextFolderTypes.length)\r\n  }\r\n\r\n  settingContext(name) {\r\n    if (!this.noResults) {\r\n      this.setContext.emit(name);\r\n    }\r\n  }\r\n}\r\n","<div class=\"ctx-item\"  [ngClass]=\"{noResult: noResults, disabled: isDisabled, selected: isSelected}\" (click)=\"settingContext(ctx.name)\">\r\n  <span>{{ctx.label}}</span>\r\n  <span class=\"count\">\r\n    <div class=\"badge\" *ngIf=\"idxSearch.contextAggregations && idxSearch.contextAggregations[ctx.name]\">{{idxSearch.contextAggregations[ctx.name]}}</div>\r\n  </span>\r\n  @if (ctx.name !== 'sysroot') {\r\n    <eo-icon class=\"open\" [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\r\n    <eo-icon class=\"close\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\r\n  }\r\n</div>\r\n","import {ObjectType} from '@eo-sdk/core';\r\nimport {ObjectFormOptions} from '../../../object-form/object-form-options.interface';\r\n\r\nexport interface IdxSearch {\r\n    type: ObjectType;\r\n    contextFolderType: ObjectType;\r\n    contextModels?: any[];\r\n    contextAggregations?: {};\r\n    contextFormOptions?: ObjectFormOptions;\r\n    formOptions?: ObjectFormOptions;\r\n  }\r\n  \r\n  export enum ContextType {\r\n    'sysroot' = 'sysroot'\r\n  }","import {\r\n  forkJoin as observableForkJoin,\r\n  from as observableFrom,\r\n  of as observableOf,\r\n  Subject,\r\n  Subscription,\r\n  tap\r\n} from 'rxjs';\r\nimport {debounceTime, pluck, switchMap} from 'rxjs/operators';\r\nimport {\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  Renderer2,\r\n  TemplateRef,\r\n  ViewChild,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport {NavigationExtras, Router} from '@angular/router';\r\nimport {ObjectFormComponent} from '../../../object-form/object-form/object-form.component';\r\nimport {\r\n  FormStatusChangedEvent\r\n} from '../../../object-form/index';\r\nimport {FormBuilder, NgForm} from '@angular/forms';\r\nimport {LocaleDatePipe} from '../../../../eo-framework-core/pipes/locale-date.pipe';\r\nimport {AppSearchService} from '../../../../eo-framework-core/search/app-search.service';\r\nimport {\r\n  Capabilities,\r\n  CapabilitiesService,\r\n  LocalStorageService,\r\n  Logger,\r\n  NotificationsService,\r\n  ObjectType,\r\n  QueryScope,\r\n  RangeValue,\r\n  SearchFilter,\r\n  SearchQuery,\r\n  SearchService,\r\n  SearchState,\r\n  StoredQueriesService,\r\n  StoredQuery,\r\n  SystemService,\r\n  TranslateService,\r\n  UserService,\r\n  Utils\r\n} from '@eo-sdk/core';\r\nimport {AutoComplete} from '@yuuvis/components/autocomplete';\r\nimport {ContextType, IdxSearch} from './app-search.interface';\r\nimport {YvcOverlayRef, YvcOverlayService} from '@yuuvis/components/overlay';\r\nimport {UntilDestroy, untilDestroyed} from \"@ngneat/until-destroy\";\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-app-search',\r\n  templateUrl: './app-search.component.html',\r\n  styleUrls: ['./app-search.component.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n  // todo: apply onPush change detection (agg search result right now doesn't update)\r\n  // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AppSearchComponent implements OnInit, AfterViewInit, OnDestroy {\r\n  PARAMS = SearchQuery.BASE_PARAMS;\r\n  OPERATOR = SearchFilter.OPERATOR;\r\n  queryScope: QueryScope;\r\n\r\n  @ViewChild('tplSearch', {read: TemplateRef}) tplSearch: TemplateRef<any>;\r\n  @ViewChild('searchInput') searchInput: AutoComplete;\r\n  @ViewChild('xpinput') expertInput: ElementRef;\r\n  @ViewChild('idxform') indexdataForm: ObjectFormComponent;\r\n  @ViewChild('ctxform') contextForm: ObjectFormComponent;\r\n\r\n  private _overlayRef?: YvcOverlayRef;\r\n  private querySubscription: Subscription;\r\n  private queryStateSubscription: Subscription;\r\n  query: SearchQuery;\r\n  queryState: SearchState;\r\n  capabilities: Capabilities;\r\n  activeTabId?: string;\r\n  loading: boolean;\r\n\r\n  isStoredQuery: boolean;\r\n  isOwnQuery = false;\r\n  objectTypeGroups = [];\r\n  typeGroupTree = [];\r\n  autocompleteResults: string[];\r\n\r\n  idxSearch: IdxSearch;\r\n  currentContextFolderName;\r\n\r\n  expertModeQueryEmpty = false;\r\n  expertModeSupport = {\r\n    baseParams: [],\r\n    selectedGroup: null,\r\n    selectedType: null\r\n  };\r\n\r\n  filtersModel = {};\r\n  aggregationsModel = {};\r\n  datePipe: LocaleDatePipe;\r\n  sysRootContext = {\r\n    id: null,\r\n    name: ContextType.sysroot,\r\n    label: this.translate.instant('eo.add.title.location.common'),\r\n    situation: 'SEARCH',\r\n    mode: 'CONTEXT',\r\n    contextFormOptions: {\r\n      formModel: {name: ContextType.sysroot}\r\n    }\r\n  };\r\n\r\n  _selected: number = null;\r\n\r\n  objectTypeGroupsStorageKey = 'eo.app.search.object.type.group.sortedList';\r\n  termForm = this.fb.group({\r\n    term: []\r\n  });\r\n\r\n  @Output()\r\n  public onExecuteSearch = new EventEmitter();\r\n  set selected(index) {\r\n    this._selected = this._selected === index ? null : index;\r\n  }\r\n\r\n  get selected() {\r\n    return this._selected;\r\n  }\r\n\r\n  get storedQuery(): StoredQuery {\r\n    return this.query as StoredQuery;\r\n  }\r\n\r\n  constructor(\r\n    private appSearchService: AppSearchService,\r\n    private overlay: YvcOverlayService,\r\n    private searchService: SearchService,\r\n    private systemService: SystemService,\r\n    private notifications: NotificationsService,\r\n    public translate: TranslateService,\r\n    private router: Router,\r\n    private renderer: Renderer2,\r\n    private cd: ChangeDetectorRef,\r\n    private storedQueriesService: StoredQueriesService,\r\n    private capabilityService: CapabilitiesService,\r\n    private userService: UserService,\r\n    private logger: Logger,\r\n    private storageService: LocalStorageService,\r\n    private fb: FormBuilder\r\n  ) {\r\n\r\n    this.datePipe = new LocaleDatePipe(translate);\r\n\r\n    this.expertModeSupport.baseParams = Object.keys(SearchQuery.BASE_PARAMS).map(k => {\r\n      let data = SearchQuery.BASE_PARAMS[k];\r\n      return {\r\n        label: this.translate.instant('eo.global.baseparam.' + data),\r\n        data: data\r\n      };\r\n    });\r\n\r\n    this.aggregationsModel[SearchQuery.BASE_PARAMS.CREATED] = Object.keys(\r\n      SearchQuery.TIME_PERIOD_BUCKETS\r\n    ).map(k => {\r\n      return {\r\n        key: SearchQuery.TIME_PERIOD_BUCKETS[k],\r\n        value: '',\r\n        label: this.translate.instant(\r\n          'eo.search.agg.time.' + SearchQuery.TIME_PERIOD_BUCKETS[k]\r\n        )\r\n      };\r\n    });\r\n\r\n    this.aggregationsModel[SearchQuery.BASE_PARAMS.MODIFIED] = Object.keys(\r\n      SearchQuery.TIME_PERIOD_BUCKETS\r\n    ).map(k => {\r\n      return {\r\n        key: SearchQuery.TIME_PERIOD_BUCKETS[k],\r\n        value: '',\r\n        label: this.translate.instant(\r\n          'eo.search.agg.time.' + SearchQuery.TIME_PERIOD_BUCKETS[k]\r\n        )\r\n      };\r\n    });\r\n\r\n    this.aggregationsModel[SearchQuery.BASE_PARAMS.MIMETYPEGROUP] = Object.keys(\r\n      SearchQuery.MIMETYPEGROUP_BUCKETS\r\n    ).map(k => {\r\n      return {\r\n        key: SearchQuery.MIMETYPEGROUP_BUCKETS[k],\r\n        value: '',\r\n        label: SearchQuery.MIMETYPEGROUP_BUCKETS[k]\r\n      };\r\n    }).sort((a, b) => a.label.localeCompare(b.label));\r\n\r\n    this.aggregationsModel[SearchQuery.BASE_PARAMS.FILESIZE] = Object.keys(\r\n      SearchQuery.FILE_SIZE_BUCKETS\r\n    ).map(k => {\r\n      return {\r\n        key: SearchQuery.FILE_SIZE_BUCKETS[k],\r\n        value: '',\r\n        label: this.translate.instant(\r\n          'eo.search.agg.filesize.' + SearchQuery.FILE_SIZE_BUCKETS[k]\r\n        )\r\n      };\r\n    });\r\n  }\r\n\r\n  onTabChange(tabId: string) {\r\n    this.activeTabId = tabId;\r\n    if (tabId === 'restrictType') {\r\n      this.appSearchService.setAggs({\r\n        type: {}\r\n      });\r\n    } else if (tabId === 'restrictCreated') {\r\n      this.appSearchService.setAggs({\r\n        type: {},\r\n        created: {}\r\n      });\r\n    } else if (tabId === 'restrictModification') {\r\n      this.appSearchService.setAggs({\r\n        type: {},\r\n        modified: {}\r\n      });\r\n    } else if (tabId === 'restrictFile') {\r\n      this.appSearchService.setAggs({\r\n        type: {},\r\n        mimetypegroup: {},\r\n        filesize: {}\r\n      });\r\n    }\r\n    this.appSearchService.aggregate();\r\n  }\r\n\r\n  private processQuery(query: SearchQuery) {\r\n    // IMPORTANT: never change the local query directly\r\n    // use searchService, so every components subscribed to the query\r\n    // will get the new value\r\n    this.query = query;\r\n    this.currentContextFolderName = this.query.contextFolderTypes.length\r\n      ? this.query.contextFolderTypes[0].name\r\n      : null;\r\n    this.isStoredQuery = query instanceof StoredQuery;\r\n\r\n    if (this.isStoredQuery) {\r\n      const user = this.userService.getCurrentUser();\r\n      this.isOwnQuery =\r\n        this.storedQuery.user.toLowerCase() === user.name.toLowerCase();\r\n    }\r\n\r\n    Object.keys(SearchQuery.BASE_PARAMS).forEach(k => this.processFilters(k));\r\n    // if we have an indexdata search using a context but the context was removed\r\n    if (\r\n      !this.query.contextFolderTypes.length &&\r\n      this.idxSearch &&\r\n      this.idxSearch.contextFormOptions\r\n    ) {\r\n      this.idxSearch.contextFormOptions = null;\r\n      this.idxSearch.contextFolderType = null;\r\n      setTimeout(() => {\r\n        this.updateSearchFilterFromFormData();\r\n      }, 0);\r\n    }\r\n\r\n    // decide whether or not to setup an indexdata search\r\n    const updateCausedByTypeToggle = this.query.__updateCause === SearchQuery.UPDATE_CAUSE.TOGGLED_TYPE;\r\n    if (this.query.types.length === 1 && !updateCausedByTypeToggle) {\r\n      // having just one target type and a context type setup means, that we are using indexdata search\r\n      this.indexdataSearch(\r\n        this.query.types[0],\r\n        this.query.contextFolderTypes.length > 0 ? this.query.contextFolderTypes[0] : null\r\n      );\r\n    } else if (\r\n      this.query.types.length === 1 &&\r\n      this.appSearchService.getIndexSearchQueryFilters(this.query).length > 0\r\n    ) {\r\n      // having just one target type and indexdata filters also means, that we are using indexdata search\r\n      this.indexdataSearch(this.query.types[0]);\r\n    } else if (this.query.types.length > 1) {\r\n      // reset indexdata search otherwise, because the current query may be reset from out side (e.g. by a stored query)\r\n      this.idxSearch = null;\r\n    }\r\n\r\n    if (query.expertMode) {\r\n      this.typeGroupTree = this.appSearchService.buildTypeGroupTree();\r\n    }\r\n    this.queryScope = query.scope;\r\n  }\r\n\r\n  public selectObjectType(type: ObjectType) {\r\n    /** set up the right type filter if not already done */\r\n    const queryTypesLength =\r\n      this.query.types.length > 1 || this.query.types.length === 0;\r\n    const queryTypesLengthAndName =\r\n      this.query.types.length === 1 && this.query.types[0].name !== type.name;\r\n    if (queryTypesLength || queryTypesLengthAndName) {\r\n      // setting object types will emit a new query. This will then take care of\r\n      // setting up the indexdata form\r\n      this.appSearchService.setQueryTypes([type]);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Sets up indexdata search for a given object type\r\n   * @param type - an object type\r\n   * @param contextFolderType - context folder type\r\n   */\r\n  public indexdataSearch(type: ObjectType, contextFolderType?: ObjectType) {\r\n    if (!type || this.query.types.length > 1) {\r\n      return;\r\n    }\r\n    if (this.query.types.length === 1 && this.query.types[0].name === type.name) {\r\n      /** even if we select a type that is already selected, we need to call aggregate as there may be context types involved */\r\n      this.appSearchService.setAggs({\r\n        type: {\r\n          sub: {\r\n            contextfoldertype: {}\r\n          }\r\n        }\r\n      }, true);\r\n      this.appSearchService.aggregate();\r\n    }\r\n\r\n    const derivedTypes = this.systemService.getObjectTypes().filter(t => t.supertypes.includes(type.qname));\r\n    const isRootType = !!derivedTypes.find(t => t.parenttypes.includes('sysroot')) || !!this.appSearchService.typesAllowedUnderSysroot.find(rT => rT.qname === type.qname);\r\n\r\n    this.idxSearch = {\r\n      type,\r\n      contextFolderType,\r\n      contextModels: isRootType ? [this.sysRootContext] : [],\r\n      formOptions: null\r\n    };\r\n\r\n    /** fetch context type models */\r\n    if (type.allowedcontexttypes.length) {\r\n      const toFetch = [];\r\n      type.allowedcontexttypes.forEach(contextType => {\r\n        const objType = this.systemService.getObjectType(contextType.name);\r\n        if (objType) {\r\n          toFetch.push(\r\n            this.systemService.getObjectTypeForm(\r\n              contextType.name,\r\n              'SEARCH',\r\n              'CONTEXT'\r\n            )\r\n          );\r\n        }\r\n      });\r\n      if (toFetch.length) {\r\n        observableForkJoin(toFetch).subscribe(formModels => {\r\n          /** abstract context types should not be used */\r\n          this.addContextModel(formModels);\r\n          /** if there was a context type provided by the query, we'll setup the right model as well */\r\n          if (contextFolderType) {\r\n            const model = this.idxSearch.contextModels.find(\r\n              m => m.name === contextFolderType.name\r\n            );\r\n\r\n            if (model) {\r\n              this.selectContext(model);\r\n            } else if (contextFolderType.name === ContextType.sysroot) {\r\n              this.selectContext(this.sysRootContext);\r\n            } else {\r\n              /** the provided context type does not exist any more, so just remove it */\r\n              this.idxSearch.contextFolderType = null;\r\n            }\r\n          }\r\n        });\r\n      }\r\n    }\r\n\r\n    let formData;\r\n    let idxFilters = this.appSearchService.getIndexSearchQueryFilters();\r\n    if (idxFilters && idxFilters.length > 0) {\r\n      // set up form data from indexdata query filters\r\n      formData = idxFilters;\r\n    }\r\n\r\n    const objectType = this.systemService.getObjectType(type.name);\r\n    if (objectType) {\r\n      this.systemService\r\n        .getObjectTypeForm(type.name, 'SEARCH')\r\n        .subscribe(model => {\r\n          this.idxSearch.formOptions = {\r\n            formModel: model,\r\n            data: formData\r\n          };\r\n        });\r\n    }\r\n  }\r\n\r\n  private processQueryState(queryState: SearchState) {\r\n    this.loading = false;\r\n    this.queryState = queryState;\r\n    if (this.idxSearch) {\r\n      this.idxSearch.contextAggregations = {};\r\n      if (queryState.aggregations.contextType.size) {\r\n        this.idxSearch.contextAggregations = this.buildContextAggregations(queryState.aggregations.contextType);\r\n      }\r\n    }\r\n\r\n    // save aggregations values\r\n    if (!this.aggregationsModel[SearchQuery.BASE_PARAMS.TYPE] || !this.query.types.length || queryState.lastChange !== SearchQuery.BASE_PARAMS.TYPE) {\r\n      this.aggregationsModel[SearchQuery.BASE_PARAMS.TYPE] = new Map(queryState.aggregations.type);\r\n    }\r\n\r\n    this.syncAggregations(SearchQuery.BASE_PARAMS.CREATED, SearchFilter.OPERATOR.RANGE);\r\n    this.syncAggregations(SearchQuery.BASE_PARAMS.MODIFIED, SearchFilter.OPERATOR.RANGE);\r\n    this.syncAggregations(SearchQuery.BASE_PARAMS.MIMETYPEGROUP, SearchFilter.OPERATOR.IN);\r\n    this.syncAggregations(SearchQuery.BASE_PARAMS.FILESIZE, SearchFilter.OPERATOR.RANGE);\r\n  }\r\n\r\n  buildContextAggregations(contextType) {\r\n    let contextAggregations = {};\r\n    contextType.forEach((value, key) => contextAggregations[key] = value);\r\n    return contextAggregations;\r\n  }\r\n\r\n  processFilters(k: string) {\r\n    let f: SearchFilter = this.query.filters.find(ff => ff.property === SearchQuery.BASE_PARAMS[k]);\r\n    if (!f) {\r\n      this.filtersModel[SearchQuery.BASE_PARAMS[k]] = {\r\n        value: null,\r\n        multiValue: [],\r\n        innerValue: []\r\n      };\r\n    } else if (\r\n      !this.filtersModel[f.property] ||\r\n      this.filtersModel[f.property].filter !== f\r\n    ) {\r\n      this.filtersModel[f.property] = {};\r\n      this.filtersModel[f.property].filter = f;\r\n      let value: any =\r\n        typeof f.firstValue === 'string' &&\r\n          f.operator === SearchFilter.OPERATOR.IN\r\n          ? JSON.parse(f.firstValue)\r\n          : typeof f.firstValue !== 'boolean' ? [f.firstValue] : f.firstValue;\r\n      if (f.operator === SearchFilter.OPERATOR.RANGE) {\r\n        this.filtersModel[f.property].multiValue = value;\r\n        this.filtersModel[f.property].value = null;\r\n      } else {\r\n        if (\r\n          f.property === SearchQuery.BASE_PARAMS.CREATED ||\r\n          f.property === SearchQuery.BASE_PARAMS.MODIFIED\r\n        ) {\r\n          value = new RangeValue(f.operator, f.firstValue, f.secondValue);\r\n        }\r\n        this.filtersModel[f.property].value = value;\r\n        this.filtersModel[f.property].multiValue = null;\r\n      }\r\n      this.filtersModel[f.property].innerValue =\r\n        value instanceof Array ? value : [value];\r\n      this.filtersModel[f.property].label = [];\r\n      this.filtersModel[f.property].innerValue.forEach((v: any, i: number) => {\r\n        if (\r\n          f.property === SearchQuery.BASE_PARAMS.CREATOR ||\r\n          f.property === SearchQuery.BASE_PARAMS.MODIFIER\r\n        ) {\r\n          this.filtersModel[f.property].label[i] = new Subject();\r\n        } else {\r\n          this.filtersModel[f.property].label[i] = observableOf(\r\n            this.renderFilter(f, v)\r\n          );\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  syncAggregations(name, operator) {\r\n    this.aggregationsModel[name].forEach(agg => {\r\n      let a = this.queryState.aggregations[name].find(aa => aa.key === agg.key);\r\n      if (a && a.value !== agg.value) {\r\n        agg.value = a.value;\r\n      } else if (!a && this.queryState.lastChange !== name) {\r\n        agg.value = '';\r\n      }\r\n      agg.selected = this.isFilterActive(name, operator, agg.key);\r\n      agg.saved = !a && this.queryState.lastChange === name;\r\n    });\r\n  }\r\n\r\n  renderFilter(filter: SearchFilter, value: any) {\r\n    if (value instanceof RangeValue) {\r\n      return this.createDateRestriction(filter);\r\n    } else if (typeof value === 'string' && this.aggregationsModel[filter.property]) {\r\n      let agg = this.aggregationsModel[filter.property].find(a => a.key === value);\r\n      return agg.label;\r\n    }\r\n    return value;\r\n  }\r\n\r\n  createDateRestriction(filter: SearchFilter) {\r\n    switch (filter.operator) {\r\n      case SearchFilter.OPERATOR.RANGE:\r\n        return this.translate.instant(`eo.search.agg.time.${filter.firstValue}`);\r\n      case SearchFilter.OPERATOR.EQUAL:\r\n        return `= ${this.datePipe.transform(filter.firstValue, 'eoShortDate')}`;\r\n      case SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH:\r\n        return `${this.datePipe.transform(filter.firstValue, 'eoShort')} - ${this.datePipe.transform(filter.secondValue, 'eoShort')}`;\r\n      case SearchFilter.OPERATOR.GREATER_OR_EQUAL:\r\n        return `${this.translate.instant('eo.search.agg.time.span.since')} ${this.datePipe.transform(filter.firstValue, 'eoShort')}`;\r\n      case SearchFilter.OPERATOR.LESS_OR_EQUAL:\r\n        return `${this.translate.instant('eo.search.agg.time.span.until')} ${this.datePipe.transform(filter.firstValue, 'eoShort')}`;\r\n      default:\r\n        return `(${filter.operator}) ${this.datePipe.transform(filter.firstValue, 'eoShort')}`;\r\n    }\r\n  }\r\n\r\n  resolveLabel(model: any, value: any[]) {\r\n    model.label.forEach((l, i) => l.next(value[i].title));\r\n  }\r\n\r\n  resolveSelection(aggs: any[], key: string, selected: boolean) {\r\n    return aggs\r\n      .filter(a => selected ? a.key !== key && a.selected : a.key === key || a.selected)\r\n      .map(a => a.key);\r\n  }\r\n\r\n  resetExpertModeInput() {\r\n    this.query.term = '';\r\n    this.termForm.patchValue({\r\n      term: ''\r\n    });\r\n    this.appSearchService.aggregate();\r\n  }\r\n\r\n  public toggleExpertMode() {\r\n    if (this.typeGroupTree.length === 0) {\r\n      this.typeGroupTree = this.appSearchService.buildTypeGroupTree();\r\n    }\r\n    this.appSearchService.toggleExpertMode();\r\n    this.cd.detectChanges();\r\n    this.changeSearchInputFocus();\r\n  }\r\n\r\n  public setQueryScope(scope: QueryScope) {\r\n    this.appSearchService.setQueryScope(scope);\r\n  }\r\n\r\n  public xpSelectGroup(group) {\r\n    this.expertModeSupport.selectedGroup = group;\r\n    this.expertModeSupport.selectedType = null;\r\n  }\r\n\r\n  public xpSelectType(type) {\r\n    this.expertModeSupport.selectedType = type;\r\n  }\r\n\r\n  public xpAddToTerm(str) {\r\n    let term;\r\n    if (!this.query.term) {\r\n      term = str;\r\n    } else {\r\n      term = this.query.term + ' ' + str;\r\n    }\r\n    this.query.term = term + ':';\r\n    this.expertInput.nativeElement.focus();\r\n  }\r\n\r\n  public toggleType(_type: ObjectType) {\r\n    // do not directly toggle _type on the query, instead use the\r\n    // searchService to update the query store\r\n    this.appSearchService.toggleQueryType(_type);\r\n  }\r\n\r\n  public isTypeActive(_type: ObjectType) {\r\n    return !!this.query.types.find(t => t.id === _type.id);\r\n  }\r\n\r\n  public isTypeSaved(_type: ObjectType) {\r\n    return (!this.queryState.aggregations.type.get(_type.name) && this.queryState.lastChange === SearchQuery.BASE_PARAMS.TYPE);\r\n  }\r\n\r\n  getAggregationCount(_type: ObjectType) {\r\n    return ((this.isTypeSaved(_type) ? this.aggregationsModel[SearchQuery.BASE_PARAMS.TYPE].get(_type.name) : this.queryState.aggregations.type.get(_type.name)) || '');\r\n  }\r\n\r\n  private buildFilter(filterType, operator, key) {\r\n    if (key instanceof RangeValue) {\r\n      return new SearchFilter(filterType, key.operator, key.firstValue, key.secondValue, {time: key.operator !== this.OPERATOR.EQUAL, timezone: false});\r\n    } else {\r\n      return new SearchFilter(filterType, operator, key);\r\n    }\r\n  }\r\n\r\n  public setFilter(filterType: string, operator: string, key: any, form?: NgForm) {\r\n    let filter = this.buildFilter(filterType, operator, key);\r\n    let empty = this.isEmpty(filter);\r\n    let activeFilter = this.query.filters.find(ff => ff.property === filter.property);\r\n    let duplicate = this.isFilterActive(filterType, operator, key);\r\n\r\n    if (empty && activeFilter && activeFilter.operator !== SearchFilter.OPERATOR.RANGE) {\r\n      this.appSearchService.removeQueryFilter(filter);\r\n    } else if (!empty && !duplicate) {\r\n      this.appSearchService.addQueryFilter(filter);\r\n    }\r\n  }\r\n\r\n  public toggleFilter(filterType: string, operator: string, key: any, selected: boolean) {\r\n    let filter = this.buildFilter(filterType, operator, key);\r\n    if (filterType === this.PARAMS.FILESIZE) {\r\n      let folderFilter = this.buildFilter('folder', 'eq', false);\r\n      this.appSearchService.toggleQueryFilters([filter, folderFilter], !selected);\r\n    } else {\r\n      this.appSearchService.toggleQueryFilter(filter, !selected);\r\n    }\r\n  }\r\n\r\n  public isEmpty(value: any) {\r\n    return (\r\n      ((value instanceof RangeValue || value instanceof SearchFilter) &&\r\n        this.isEmpty(value.firstValue) &&\r\n        this.isEmpty(value.secondValue)) ||\r\n      (value == null || value.length === 0)\r\n    );\r\n  }\r\n\r\n  public isFilterActive(filterType: string, operator: string, key: any) {\r\n    let f = this.buildFilter(filterType, operator, key);\r\n    return !!this.query.filters.find(ff => ff.match(f.property, f.operator, f.firstValue, f.secondValue));\r\n  }\r\n\r\n  public resetFilter(model: any, value: string) {\r\n    if (model.innerValue instanceof Array && model.innerValue.length > 1) {\r\n      let filter = this.buildFilter(model.filter.property, model.filter.operator, model.innerValue.filter(f => f !== value));\r\n      this.appSearchService.addQueryFilter(filter);\r\n    } else {\r\n      this.appSearchService.removeQueryFilter(model.filter);\r\n    }\r\n  }\r\n\r\n  private autocompleteSuggest(evt?) {\r\n    let v = [];\r\n    // also trigger aggregations search\r\n    this.autocompleteSelect();\r\n    if (evt) {\r\n      this.appSearchService\r\n        .autocomplete(evt)\r\n        .pipe(switchMap(res => observableFrom(res).pipe(pluck('value'))))\r\n        .subscribe(res => v.push(res), () => { }, () => (this.autocompleteResults = v)\r\n        );\r\n    }\r\n  }\r\n\r\n  expertTermChanged() {\r\n    this.expertModeQueryEmpty = false;\r\n  }\r\n\r\n  public autocompleteSelect() {\r\n    this.loading = this.appSearchService.aggregate();\r\n  }\r\n\r\n  autocompletePaste(e) {\r\n    setTimeout(() => {\r\n      this.query.term = e.target.value;\r\n      this.autocompleteSelect();\r\n    }, 0);\r\n  }\r\n\r\n  public executeSearch() {\r\n    this.expertModeQueryEmpty = false;\r\n    if (this.query.expertMode) {\r\n      // in expert search mode we pre-fetch results before executing the actual search\r\n      this.appSearchService.getSearchState({aggs: {type: {}}, ...this.query.getQueryJson()}).subscribe((queryState: SearchState) => {\r\n        // only execute the actual query when we've found something\r\n        if (!queryState.isEmpty) {\r\n          this.triggerSearch();\r\n        } else {\r\n          this.expertModeQueryEmpty = true;\r\n        }\r\n      }, Utils.throw(() => {\r\n        this.logger.error('Error fetching search result');\r\n        this.expertModeQueryEmpty = true;\r\n      })\r\n      );\r\n    } else {\r\n      this.triggerSearch();\r\n    }\r\n  }\r\n\r\n  // execute the actual search by routing to the result state which then will execute the\r\n  // query and display the results\r\n  private triggerSearch() {\r\n    this.query.resolveReference = true;\r\n    const uriParam = encodeURIComponent(Utils.formDataStringify(this.query.getQueryJson()));\r\n    this._overlayRef.close();\r\n    this.router.navigate([{outlets: {modal: null}}]).then(() => {\r\n      const uriParamQuery: NavigationExtras = {queryParams: {query: uriParam}};\r\n      this.router.navigate(['/result'], uriParamQuery);\r\n    });\r\n  }\r\n\r\n  public removeTerm() {\r\n    this.appSearchService.setTerm('');\r\n  }\r\n\r\n  public removeType(type: ObjectType) {\r\n    if (this.idxSearch) {\r\n      this.exitIndexdataSearch();\r\n    } else {\r\n      this.appSearchService.toggleQueryType(type);\r\n    }\r\n  }\r\n\r\n  public removeContextType() {\r\n    this.appSearchService.setContextType(null);\r\n  }\r\n\r\n  public removeFilter(filter: SearchFilter) {\r\n    this.appSearchService.removeQueryFilter(filter);\r\n\r\n    // if we are in indesdata search mode, removing a filter that is no baseparam filter\r\n    // requires the from model to be updated\r\n    if (this.idxSearch && !this.appSearchService.isBaseParamFilter(filter)) {\r\n      // todo: update form model/data\r\n      let idxFilters = this.appSearchService.getIndexSearchQueryFilters();\r\n      if (idxFilters && idxFilters.length > 0) {\r\n        // set up form data from indexdata query filters\r\n        this.idxSearch.formOptions.data = idxFilters;\r\n        this.indexdataForm.setFormData(idxFilters);\r\n      } else {\r\n        // if no filters are present reset the form\r\n        this.idxSearch.formOptions.data = {};\r\n        this.indexdataForm.resetForm();\r\n      }\r\n    }\r\n  }\r\n\r\n  addContextModel(formModels): void {\r\n    let models = [...formModels];\r\n    this.idxSearch.contextModels.push(...models);\r\n    this.idxSearch.contextModels.sort(Utils.sortValues('label'));\r\n  }\r\n\r\n  public exitIndexdataSearch() {\r\n    this.appSearchService.exitIndexdataSearch();\r\n    this.idxSearch = null;\r\n  }\r\n\r\n  setContext(contextFolderName: string) {\r\n    if (contextFolderName && this.currentContextFolderName !== contextFolderName) {\r\n      this.currentContextFolderName = contextFolderName;\r\n      const contextType = this.systemService.getObjectType(contextFolderName);\r\n      if (contextFolderName === ContextType.sysroot) {\r\n        this.appSearchService.setContextType({name: ContextType.sysroot, label: ContextType.sysroot} as ObjectType);\r\n      } else if (contextType) {\r\n        this.appSearchService.setContextType(contextType);\r\n      } else {\r\n        this.logger.error(`Context type '${contextFolderName}' not found.`);\r\n      }\r\n    } else {\r\n      this.appSearchService.setContextType(null);\r\n      this.currentContextFolderName = null;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Selects a context type for the current search\r\n   * @param ctx The context form model\r\n   */\r\n  private selectContext(ctx) {\r\n    if (this.idxSearch.contextFormOptions && this.idxSearch.contextFormOptions.formModel.name === ctx.name) {\r\n      this.appSearchService.setContextType(null);\r\n    } else {\r\n      let context;\r\n      if (ctx.name === ContextType.sysroot) {\r\n        context = ctx;\r\n      } else {\r\n        context = this.systemService.getObjectType(ctx.name);\r\n        this.idxSearch.contextFolderType = context;\r\n      }\r\n      this.appSearchService.setContextType(context);\r\n\r\n      let formData = {};\r\n      let idxFilters = this.appSearchService.getIndexSearchQueryFilters();\r\n      if (idxFilters && idxFilters.length > 0) {\r\n        formData = idxFilters;\r\n      }\r\n\r\n      this.idxSearch.contextFormOptions = {formModel: ctx, data: formData};\r\n    }\r\n  }\r\n\r\n  public onIndexDataChanged(event: FormStatusChangedEvent) {\r\n    // only trigger when values are changed as changes may also appear when scripts\r\n    // change other form element properties (eg. readonly, required flag)\r\n    if (event.indexdataChanged) {\r\n      this.updateSearchFilterFromFormData();\r\n    }\r\n  }\r\n\r\n  private updateSearchFilterFromFormData() {\r\n    if (!this.indexdataForm) {\r\n      return;\r\n    }\r\n\r\n    // add metadata filters for each form data entry\r\n    let idxFilters: SearchFilter[] = [];\r\n    let formData = this.indexdataForm.getFormData();\r\n    if (this.contextForm) {\r\n      formData = Object.assign(formData, this.contextForm.getFormData());\r\n    }\r\n\r\n    for (let key of Object.keys(formData)) {\r\n      const filters: SearchFilter[] = this.searchService.getSearchFilter(this.query.types, key, formData[key]).map(filter => {\r\n        // the search service does not like newline chars in case of multiline fields\r\n        if (Array.isArray(filter.firstValue)) {\r\n          filter.firstValue = filter.firstValue.map(value => value.replace(/\\n/g, ' '));\r\n        } else if (typeof filter.firstValue === 'string') {\r\n          filter.firstValue = filter.firstValue.replace(/\\n/g, ' ');\r\n        }\r\n        return filter;\r\n      });\r\n      filters.forEach(f => idxFilters.push(f));\r\n    }\r\n    this.appSearchService.setIndexSearchQueryFilters(idxFilters);\r\n  }\r\n\r\n  /**\r\n   * Gets the object type element for a filter, to be able to show the\r\n   * label for a filter in the search summary.\r\n   *\r\n   * @param filter - the filter to fetch object type element for\r\n   */\r\n  public getObjectTypeElementLabel(filter: SearchFilter) {\r\n    let ot = this.appSearchService.getTargetTypeElementByName(filter.property);\r\n    return ot ? ot.label : filter.property + ' - ' + filter.firstValue;\r\n  }\r\n\r\n  public saveQuery() {\r\n    // const queryParams: NavigationExtras = {queryParamsHandling : 'preserve'};\r\n    this._overlayRef.close();\r\n    this.router\r\n      .navigate([{outlets: {modal: null}}], {replaceUrl: true})\r\n      .then(() => this.router.navigate(['/stored-queries'], {queryParams: {create: true}}));\r\n  }\r\n\r\n  public updateStoredQuery() {\r\n    if (this.query instanceof StoredQuery) {\r\n      this.router.navigate([{outlets: {modal: null}}], {replaceUrl: true});\r\n      this.storedQueriesService.saveStoredQuery(this.query).subscribe(res => {\r\n        this._overlayRef.close();\r\n        this.notifications.success(this.translate.instant('eo.search.storedquery.save.success'));\r\n      }, Utils.throw(null, this.translate.instant('eo.search.storedquery.save.error')));\r\n    }\r\n  }\r\n\r\n  public resetQuery() {\r\n    this.appSearchService.reset();\r\n    this.isOwnQuery = false;\r\n    this.activeTabId = undefined;\r\n\r\n    if (this.idxSearch) {\r\n      this.exitIndexdataSearch();\r\n    }\r\n  }\r\n\r\n  closeSearchMenu() {\r\n    this._overlayRef.close();\r\n  }\r\n\r\n  moveObjectTypeGroup(groupLabel: string, direction: string) {\r\n    let index = this.objectTypeGroups.findIndex(group => groupLabel === group.label);\r\n    let newIndex;\r\n\r\n    if (direction === 'left') {\r\n      newIndex = index - 1;\r\n    } else if (direction === 'right') {\r\n      newIndex = index + 1;\r\n    } else if (direction === 'first') {\r\n      newIndex = 0;\r\n    } else if (direction === 'last') {\r\n      newIndex = this.objectTypeGroups.length - 1;\r\n      if (index === newIndex) return;\r\n    }\r\n\r\n    while (index < 0) {\r\n      index += this.objectTypeGroups.length;\r\n    }\r\n    while (newIndex < 0) {\r\n      newIndex += this.objectTypeGroups.length;\r\n    }\r\n    if (newIndex >= this.objectTypeGroups.length) {\r\n      let k = newIndex - this.objectTypeGroups.length + 1;\r\n      while (k--) {\r\n        this.objectTypeGroups.push(undefined);\r\n      }\r\n    }\r\n    this.objectTypeGroups.splice(newIndex, 0, this.objectTypeGroups.splice(index, 1)[0]);\r\n    this.storageService.setItem(this.objectTypeGroupsStorageKey, this.objectTypeGroups.map(group => group.label));\r\n  }\r\n\r\n  private focusSearchInput() {\r\n    if (this.searchInput) {\r\n      // TODO: this.searchInput.inputEL.nativeElement.focus();\r\n      this.cd.detectChanges();\r\n    }\r\n  }\r\n\r\n  private changeSearchInputFocus() {\r\n    if (this.query.expertMode) {\r\n      this.renderer.selectRootElement('.expert-search__input').focus();\r\n    } else {\r\n      this.focusSearchInput();\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.capabilities = this.capabilityService.getCapabilities();\r\n    this.objectTypeGroups = this.appSearchService.objectTypeGroups;\r\n    this.objectTypeGroups[0].types = this.objectTypeGroups[0].types.filter(type => type.qname !== 'sysfolder' && type.qname !== 'sysdocument' && type.qname !== 'sysobject');\r\n    let sortedObjectTypeGroupLabels = this.storageService.getItem(this.objectTypeGroupsStorageKey);\r\n    let synced = true;\r\n    if (sortedObjectTypeGroupLabels && sortedObjectTypeGroupLabels.length === this.objectTypeGroups.length) {\r\n      for (let i = 0; i < this.objectTypeGroups.length; i++) {\r\n        if (!sortedObjectTypeGroupLabels.find(group => group === this.objectTypeGroups[i].label)) {\r\n          synced = false;\r\n          break;\r\n        }\r\n      }\r\n      if (synced) {\r\n        this.objectTypeGroups = [...this.objectTypeGroups].sort(\r\n          (a, b) => sortedObjectTypeGroupLabels.indexOf(a.label) - sortedObjectTypeGroupLabels.indexOf(b.label)\r\n        );\r\n      }\r\n    }\r\n    this.querySubscription = this.appSearchService.query$.subscribe(\r\n      (query: SearchQuery) => this.processQuery(query));\r\n    // subscribe to query state as well to fetch result count and aggregations as they change\r\n    this.queryStateSubscription = this.appSearchService.queryState$.subscribe((queryState: SearchState) => this.processQueryState(queryState));\r\n    this.appSearchService.aggregate();\r\n\r\n    this.termForm.valueChanges.pipe(\r\n      tap(res => {\r\n        this.query.term = res.term;\r\n      }), debounceTime(1000), untilDestroyed(this)).subscribe(res => {\r\n        this.autocompleteSuggest(this.query.term);\r\n      });\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    setTimeout(() => {\r\n      this.searchInput.focusInput();\r\n    });\r\n    this._overlayRef = this.overlay.open(this.tplSearch, null, {\r\n      centered: false\r\n    });\r\n    this.termForm.patchValue({\r\n      term: this.query.term\r\n    });\r\n    this._overlayRef.afterClosed$.subscribe({\r\n      next: () => {\r\n        const queryParams: NavigationExtras = {queryParamsHandling: 'preserve'};\r\n        this.router.navigate([{outlets: {modal: null}}], queryParams);\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.appSearchService.resetAggs();\r\n    this.querySubscription.unsubscribe();\r\n    this.queryStateSubscription.unsubscribe();\r\n  }\r\n}\r\n","<!-- <eo-dialog [visible]=\"true\" [styleClass]=\"'eo-app-search-dialog'\" [align]=\"'start'\" [minWidth]=\"'80vw'\"\r\n  [minHeight]=\"'100vh'\" (hide)=\"closeSearchMenu($event)\"> -->\r\n<!-- <yvc-dialog [options]=\"{lightDismiss: true}\" [template]=\"tplSearch\" (closed)=\"closeSearchMenu()\"></yvc-dialog> -->\r\n<ng-template #tplSearch>\r\n\r\n  <div class=\"eo-app-search\" [ngClass]=\"{expert: query.expertMode}\" eoRtlAware=\"full\" *ngIf=\"query\">\r\n\r\n    <div class=\"head\">\r\n\r\n      <div class=\"search\">\r\n        <form (submit)=\"executeSearch()\">\r\n          <div class=\"title\" translate>eo.search</div>\r\n\r\n          <eo-query-scope-select [selection]=\"queryScope\" (select)=\"setQueryScope($event)\"></eo-query-scope-select>\r\n\r\n          <div class=\"search-box\" [formGroup]=\"termForm\">\r\n\r\n            <yvc-autocomplete *ngIf=\"!query.expertMode; else expertInput\" #searchInput formControlName=\"term\" [autocompleteValues]=\"autocompleteResults\"\r\n              (suggestionSelect)=\"autocompleteSelect()\" (keydown.enter)=\"executeSearch()\" (paste)=\"autocompletePaste($event)\">\r\n            </yvc-autocomplete>\r\n\r\n            <ng-template #expertInput>\r\n              <input autofocus=\"autofocus\" class=\"expert-search__input\" #xpinput type=\"text\"\r\n                (ngModelChange)=\"expertTermChanged()\" [(ngModel)]=\"query.term\" [ngModelOptions]=\"{standalone: true}\">\r\n            </ng-template>\r\n\r\n            <button class=\"btn expert-mode\" type=\"button\" (click)=\"toggleExpertMode()\">\r\n              <!--<span translate>eo.search.mode.expert</span>-->\r\n              <eo-icon [iconSrc]=\"'assets/_default/svg/ic_expert-search.svg'\"\r\n                [iconTitle]=\"('eo.search.mode.expert' | translate)\" *ngIf=\"!query?.expertMode; else close\"></eo-icon>\r\n              <ng-template #close>\r\n                <eo-icon [iconSrc]=\"'assets/_default/svg/ic_expert-search.svg'\"\r\n                  [iconTitle]=\"('eo.search.mode.expert.close' | translate)\"></eo-icon>\r\n              </ng-template>\r\n            </button>\r\n\r\n            <button type=\"button\" class=\"btn expert-mode expert-mode__reset\" [ngClass]=\"{active: query.term}\"\r\n              (click)=\"resetExpertModeInput()\">\r\n              <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\r\n                [iconTitle]=\"('eo.search.clear.search' | translate)\"></eo-icon>\r\n            </button>\r\n\r\n            <button class=\"btn btn-default\" type=\"submit\" [disabled]=\"queryState.isEmpty\"\r\n              translate>eo.search.submit</button>\r\n          </div>\r\n        </form>\r\n      </div>\r\n\r\n      <div class=\"result\" *ngIf=\"!loading; else spinner\">{{queryState.totalCount | localeDecimal}}</div>\r\n      <ng-template #spinner>\r\n        <eo-loading-spinner class=\"search-aggregator__loader\" [size]=\"'medium'\" [mode]=\"'dark'\"></eo-loading-spinner>\r\n      </ng-template>\r\n      <eo-icon class=\"button white close\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\r\n        [iconTitle]=\"('eo.search.close' | translate)\" (click)=\"closeSearchMenu()\"></eo-icon>\r\n\r\n    </div>\r\n\r\n    <div class=\"body\" *ngIf=\"!query.expertMode; else expert\">\r\n\r\n      <yvc-tabs (tabChange)=\"onTabChange($event)\">\r\n\r\n        <!-- object type select -->\r\n        <ng-template [yvcTab]=\"{id: 'restrictType', label: 'eo.search.restrict.type' | translate}\">\r\n\r\n          <div class=\"object-types rest-box-container\" [ngClass]=\"{idxenabled: query.types.length < 1}\"\r\n            *ngIf=\"objectTypeGroups && !idxSearch\">\r\n            <div class=\"group rest-box\" *ngFor=\"let group of objectTypeGroups; let i = index\">\r\n              <div class=\"group-header\">\r\n                <h3 *ngIf=\"group.label !== '0'\">{{group.label}}</h3>\r\n                <h3 *ngIf=\"group.label === '0'\" translate>{{'eo.search.group.general'}}</h3>\r\n                <div class=\"move-icons\">\r\n                  <eo-icon *ngIf=\"i !== 0\" class=\"move-left-first\" (click)=\"moveObjectTypeGroup(group.label, 'first')\" [iconSrc]=\"'assets/_default/svg/ic_arrow_last.svg'\"></eo-icon>\r\n                  <eo-icon *ngIf=\"i !== 0\" class=\"move-left-icon\" (click)=\"moveObjectTypeGroup(group.label, 'left')\" [iconSrc]=\"'assets/_default/svg/ic_arrow_left.svg'\"></eo-icon>\r\n                  <eo-icon *ngIf=\"i !== objectTypeGroups.length - 1\" class=\"move-right-icon\" (click)=\"moveObjectTypeGroup(group.label, 'right')\" [iconSrc]=\"'assets/_default/svg/ic_arrow_right.svg'\"></eo-icon>\r\n                  <eo-icon *ngIf=\"i !== objectTypeGroups.length - 1\" class=\"move-right-last\" (click)=\"moveObjectTypeGroup(group.label, 'last')\" [iconSrc]=\"'assets/_default/svg/ic_arrow_last.svg'\"></eo-icon>\r\n\r\n                </div>\r\n              </div>\r\n              <div class=\"type\" *ngFor=\"let type of group.types\"\r\n                [ngClass]=\"{context: type.isContextFolder, folder: type.isFolder, abstract: type.isAbstract, selected: isTypeActive(type), saved: isTypeSaved(type)}\">\r\n\r\n                <div class=\"checkbox\" (click)=\"toggleType(type)\">\r\n                  <svg fill=\"#ffffff\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n                    <path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\" />\r\n                  </svg>\r\n                </div>\r\n                <div class=\"item\" (click)=\"selectObjectType(type)\">\r\n                  <eo-icon [objectType]=\"type\"></eo-icon>\r\n                  <div class=\"label\">{{type.label}} {{type.isAbstract ? '('+ ('eo.search.type.abstract' | translate) +\r\n                    ')' : ''}}</div>\r\n                  <div class=\"count\">{{getAggregationCount(type) | localeDecimal}}</div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n\r\n          <div class=\"indexdata-search\" *ngIf=\"idxSearch\">\r\n            <h2>\r\n              <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_arrow_back.svg'\"\r\n                (click)=\"exitIndexdataSearch()\"></eo-icon>\r\n              <span translate [translateParams]=\"{type: idxSearch.type.label}\">eo.search.objecttype.form</span>\r\n            </h2>\r\n\r\n            <div class=\"context\" *ngIf=\"idxSearch.contextModels.length\">\r\n\r\n              <div class=\"context-select\">\r\n                <div translate>eo.search.objecttype.form.context</div>\r\n                <div class=\"spacer\"></div>\r\n\r\n                <eo-context-search *ngFor=\"let ctx of idxSearch.contextModels; index as i\" [ctx]=\"ctx\" [query]=\"query\"\r\n                  [selected]=\"currentContextFolderName === ctx.name\"\r\n                  [disabled]=\"(currentContextFolderName && currentContextFolderName !== ctx.name)\"\r\n                  [idxSearch]=\"idxSearch\" (setContext)=\"setContext($event)\">\r\n                </eo-context-search>\r\n              </div>\r\n\r\n              <section class=\"context form\">\r\n                <eo-object-form class=\"dark\" #ctxform\r\n                  *ngIf=\"idxSearch.contextFormOptions && idxSearch.contextFormOptions?.formModel?.elements?.length\"\r\n                  [formOptions]=\"idxSearch.contextFormOptions\" (statusChanged)=\"onIndexDataChanged($event)\">\r\n                </eo-object-form>\r\n              </section>\r\n            </div>\r\n\r\n\r\n            <section class=\"object-type form\" *ngIf=\"idxSearch.formOptions\">\r\n              <eo-object-form #idxform [formOptions]=\"idxSearch.formOptions\"\r\n                (statusChanged)=\"onIndexDataChanged($event)\" (onFormReady)=\"idxform.focusForm()\">\r\n              </eo-object-form>\r\n            </section>\r\n          </div>\r\n        </ng-template>\r\n\r\n        <!-- created tab -->\r\n        <ng-template [yvcTab]=\"{id: 'restrictCreated', label: 'eo.search.restrict.creation' | translate }\">\r\n          <div class=\"created rest-box-container\" *ngIf=\"queryState.aggregations\">\r\n\r\n            <div class=\"rest-box box-timespan\">\r\n              <h3 translate>eo.search.agg.time.span</h3>\r\n              <div class=\"rest-item\" *ngFor=\"let agg of aggregationsModel[PARAMS.CREATED]\"\r\n                (click)=\"toggleFilter(PARAMS.CREATED, OPERATOR.RANGE, agg.key, agg.selected)\"\r\n                [ngClass]=\"{selected: agg.selected, saved: agg.saved}\">\r\n                <div class=\"label\">{{agg.label}}</div>\r\n                <div class=\"count\">{{agg.value | localeDecimal}}</div>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"rest-box box-timespan-custom\">\r\n              <h3 translate>eo.search.agg.time.span.custom</h3>\r\n              <form #createdForm=\"ngForm\">\r\n                <eo-form-input [label]=\"'eo.search.agg.time.span' | translate\">\r\n                  <eo-datetime-range #createdField [(ngModel)]=\"filtersModel[PARAMS.CREATED].value\" name=\"range\"\r\n                    [operator]=\"filtersModel[PARAMS.CREATED].value ? filtersModel[PARAMS.CREATED].value.operator : OPERATOR.EQUAL\"\r\n                    [withTime]=\"createdField.searchOption && createdField.searchOption !== OPERATOR.EQUAL\"\r\n                    (ngModelChange)=\"setFilter(PARAMS.CREATED, OPERATOR.EQUAL, $event, createdForm)\">\r\n                  </eo-datetime-range>\r\n                </eo-form-input>\r\n              </form>\r\n            </div>\r\n\r\n            <div class=\"rest-box box-creator\">\r\n              <h3 translate>eo.search.agg.creator</h3>\r\n              <form #creatorForm=\"ngForm\">\r\n                <eo-form-input [label]=\"'eo.search.agg.createdby' | translate\">\r\n                  <eo-organization [multiselect]=\"true\" [(ngModel)]=\"filtersModel[PARAMS.CREATOR].value\" name=\"creator\"\r\n                    (onValueResolved)=\"resolveLabel(filtersModel[PARAMS.CREATOR], $event)\" [situation]=\"'SEARCH'\"\r\n                    (ngModelChange)=\"setFilter(PARAMS.CREATOR, OPERATOR.IN, $event, creatorForm)\"></eo-organization>\r\n                </eo-form-input>\r\n              </form>\r\n            </div>\r\n\r\n          </div>\r\n        </ng-template>\r\n\r\n        <ng-template [yvcTab]=\"{id: 'restrictModification', label: 'eo.search.restrict.modification' | translate}\">\r\n          <div class=\"modified rest-box-container\" *ngIf=\"queryState.aggregations\">\r\n\r\n            <div class=\"rest-box box-timespan\">\r\n              <h3 translate>eo.search.agg.time.span</h3>\r\n              <div class=\"rest-item\" *ngFor=\"let agg of aggregationsModel[PARAMS.MODIFIED]\"\r\n                (click)=\"toggleFilter(PARAMS.MODIFIED, OPERATOR.RANGE, agg.key, agg.selected)\"\r\n                [ngClass]=\"{selected: agg.selected, saved: agg.saved}\">\r\n                <div class=\"label\">{{agg.label}}</div>\r\n                <div class=\"count\">{{agg.value | localeDecimal}}</div>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"rest-box box-timespan-custom\">\r\n              <h3 translate>eo.search.agg.time.span.custom</h3>\r\n              <form #modifiedForm=\"ngForm\">\r\n                <eo-form-input [label]=\"'eo.search.agg.time.span' | translate\">\r\n                  <eo-datetime-range #modifiedField [(ngModel)]=\"filtersModel[PARAMS.MODIFIED].value\" name=\"range\"\r\n                    [operator]=\"filtersModel[PARAMS.MODIFIED].value ? filtersModel[PARAMS.MODIFIED].value.operator : OPERATOR.EQUAL\"\r\n                    [withTime]=\"modifiedField.searchOption && modifiedField.searchOption !== OPERATOR.EQUAL\"\r\n                    (ngModelChange)=\"setFilter(PARAMS.MODIFIED, OPERATOR.EQUAL, $event, modifiedForm)\">\r\n                  </eo-datetime-range>\r\n                </eo-form-input>\r\n              </form>\r\n            </div>\r\n\r\n            <div class=\"rest-box box-modifier\">\r\n              <h3 translate>eo.search.agg.modifier</h3>\r\n              <form #modifierForm=\"ngForm\">\r\n                <eo-form-input [label]=\"'eo.search.agg.modifiedby' | translate\">\r\n                  <eo-organization [multiselect]=\"true\" [(ngModel)]=\"filtersModel[PARAMS.MODIFIER].value\"\r\n                    name=\"modifier\" (onValueResolved)=\"resolveLabel(filtersModel[PARAMS.MODIFIER], $event)\"\r\n                    [situation]=\"'SEARCH'\"\r\n                    (ngModelChange)=\"setFilter(PARAMS.MODIFIER, OPERATOR.IN, $event, modifierForm)\"></eo-organization>\r\n                </eo-form-input>\r\n              </form>\r\n            </div>\r\n          </div>\r\n        </ng-template>\r\n\r\n        <ng-template [yvcTab]=\"{id: 'restrictFile', label: 'eo.search.restrict.file' | translate}\">\r\n          <div class=\"file rest-box-container\" *ngIf=\"queryState.aggregations\">\r\n\r\n            <div class=\"rest-box box-mimetype-group\">\r\n              <h3 translate>eo.search.restrict.mimetypegroup</h3>\r\n              <div class=\"rest-item\" *ngFor=\"let agg of aggregationsModel[PARAMS.MIMETYPEGROUP]\"\r\n                (click)=\"setFilter(PARAMS.MIMETYPEGROUP, OPERATOR.IN, resolveSelection(aggregationsModel[PARAMS.MIMETYPEGROUP], agg.key, agg.selected))\"\r\n                [ngClass]=\"{selected: agg.selected, saved: agg.saved}\">\r\n                <div class=\"checkbox\">\r\n                  <svg fill=\"#ffffff\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n                    <path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\" />\r\n                  </svg>\r\n                </div>\r\n                <div class=\"label\">{{agg.label}}</div>\r\n                <div class=\"count\">{{agg.value | localeDecimal}}</div>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"rest-box box-filesize\">\r\n              <h3 translate>eo.search.restrict.filesize</h3>\r\n              <div class=\"rest-item\" *ngFor=\"let agg of aggregationsModel[PARAMS.FILESIZE]\"\r\n                (click)=\"toggleFilter(PARAMS.FILESIZE, OPERATOR.RANGE, agg.key, agg.selected)\"\r\n                [ngClass]=\"{selected: agg.selected, saved: agg.saved}\">\r\n                <div class=\"label\">{{agg.label}}</div>\r\n                <div class=\"count\">{{agg.value | localeDecimal}}</div>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"rest-box box-filename\">\r\n              <h3 translate>eo.search.restrict.filename</h3>\r\n              <form #filenameForm=\"ngForm\">\r\n                <eo-form-input [label]=\"'eo.search.restrict.filename' | translate\">\r\n                  <eo-string [autocomplete]=\"true\" [qname]=\"'filename'\"\r\n                    [(ngModel)]=\"filtersModel[PARAMS.FILENAME].value\" name=\"filename\"\r\n                    (ngModelChange)=\"setFilter(PARAMS.FILENAME, OPERATOR.EQUAL, $event, filenameForm)\"></eo-string>\r\n                </eo-form-input>\r\n              </form>\r\n            </div>\r\n          </div>\r\n        </ng-template>\r\n      </yvc-tabs>\r\n\r\n      <!-- summary of the current search filters -->\r\n      <div class=\"summary-panel\">\r\n\r\n        <div class=\"headline stored-query\" *ngIf=\"isStoredQuery; else reghead\">\r\n          <div class=\"spaceInbetwen\">\r\n            <div class=\"savedSearchIcon\">\r\n              <eo-icon [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"></eo-icon>\r\n            </div>\r\n            <div class=\"store\">\r\n              <div class=\"pre\" translate>eo.search.aside.summary.storedquery</div>\r\n              <div class=\"stored-query-name\">{{storedQuery.name}}</div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n\r\n        <ng-template #reghead>\r\n          <div class=\"headline\" translate>eo.search.aside.summary</div>\r\n        </ng-template>\r\n\r\n        <section class=\"query-types\">\r\n          <div class=\"section section-searchterm\" *ngIf=\"query.term\">\r\n            <div class=\"title\" translate>eo.search.aside.summary.term</div>\r\n            <div class=\"filter\">\r\n              <div class=\"label\">{{query.term}}</div>\r\n              <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"removeTerm()\"></eo-icon>\r\n            </div>\r\n          </div>\r\n\r\n          <div class=\"section section-contexttype\" *ngIf=\"query.contextFolderTypes.length\">\r\n            <div class=\"title\" translate>eo.search.aside.summary.contextfoldertypes</div>\r\n            <div class=\"filter\" *ngFor=\"let type of query.contextFolderTypes\">\r\n              <div class=\"label\">{{type.label}}</div>\r\n              <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"removeContextType()\"></eo-icon>\r\n            </div>\r\n          </div>\r\n\r\n          <div class=\"section section-objecttype\" *ngIf=\"query.types.length\">\r\n            <div class=\"title\" translate>eo.search.aside.summary.types</div>\r\n            <div class=\"filter\" *ngFor=\"let type of query.types\">\r\n              <div class=\"label\">{{type.label}}</div>\r\n              <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"removeType(type)\"></eo-icon>\r\n            </div>\r\n          </div>\r\n\r\n          <ng-template #filterTemplate let-filter let-translate>\r\n            <ng-container *ngIf=\"filter.innerValue.length\">\r\n              <div class=\"filter\" *ngFor=\"let val of filter.innerValue; index as i\">\r\n                <div class=\"label\">{{filter.label[i] | async}}</div>\r\n                <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"resetFilter(filter, val)\"></eo-icon>\r\n              </div>\r\n            </ng-container>\r\n          </ng-template>\r\n\r\n          <div class=\"section section-creation\"\r\n            *ngIf=\"filtersModel[PARAMS.CREATED].innerValue?.length || filtersModel[PARAMS.CREATOR].innerValue?.length\">\r\n            <div class=\"title\" translate>eo.search.restrict.creation</div>\r\n            <ng-template [ngTemplateOutlet]=\"filterTemplate\"\r\n              [ngTemplateOutletContext]=\"{ $implicit: filtersModel[PARAMS.CREATED] }\"></ng-template>\r\n            <ng-template [ngTemplateOutlet]=\"filterTemplate\"\r\n              [ngTemplateOutletContext]=\"{ $implicit: filtersModel[PARAMS.CREATOR] }\"></ng-template>\r\n          </div>\r\n\r\n          <div class=\"section section-modification\"\r\n            *ngIf=\"filtersModel[PARAMS.MODIFIED].innerValue?.length || filtersModel[PARAMS.MODIFIER].innerValue?.length\">\r\n            <div class=\"title\" translate>eo.search.restrict.modification</div>\r\n            <ng-template [ngTemplateOutlet]=\"filterTemplate\"\r\n              [ngTemplateOutletContext]=\"{ $implicit: filtersModel[PARAMS.MODIFIED] }\"></ng-template>\r\n            <ng-template [ngTemplateOutlet]=\"filterTemplate\"\r\n              [ngTemplateOutletContext]=\"{ $implicit: filtersModel[PARAMS.MODIFIER] }\"></ng-template>\r\n          </div>\r\n\r\n          <div class=\"section section-mimetypegroup\"\r\n            *ngIf=\"filtersModel[PARAMS.MIMETYPEGROUP].innerValue.length || filtersModel[PARAMS.FILESIZE].innerValue.length || filtersModel[PARAMS.FILENAME].innerValue.length\">\r\n            <div class=\"title\" translate>eo.search.restrict.file</div>\r\n            <ng-template [ngTemplateOutlet]=\"filterTemplate\"\r\n              [ngTemplateOutletContext]=\"{ $implicit: filtersModel[PARAMS.MIMETYPEGROUP] }\"></ng-template>\r\n            <ng-template [ngTemplateOutlet]=\"filterTemplate\"\r\n              [ngTemplateOutletContext]=\"{ $implicit: filtersModel[PARAMS.FILESIZE] }\"></ng-template>\r\n            <ng-template [ngTemplateOutlet]=\"filterTemplate\"\r\n              [ngTemplateOutletContext]=\"{ $implicit: filtersModel[PARAMS.FILENAME] }\"></ng-template>\r\n          </div>\r\n        </section>\r\n\r\n        <div class=\"actions\" *ngIf=\"query.term || query.filters.length || query.types.length; else emptySearch\">\r\n\r\n          <ng-container *ngIf=\"isStoredQuery; else regactions\">\r\n            <button class=\"secondary btn-reset\" (click)=\"resetQuery()\" translate>eo.search.storedquery.close</button>\r\n            <button class=\"primary grey btn-update\" (click)=\"updateStoredQuery()\"\r\n              *ngIf=\"capabilities.storedqueries && isOwnQuery\" translate>eo.search.storedquery.update</button>\r\n            <button class=\"primary grey btn-save\" (click)=\"saveQuery()\"\r\n              *ngIf=\"capabilities.storedqueries && !isOwnQuery\" translate>eo.search.save</button>\r\n            <button class=\"primary btn-submit\" (click)=\"executeSearch()\" [disabled]=\"queryState.isEmpty\"\r\n              translate>eo.search.submit</button>\r\n          </ng-container>\r\n\r\n          <ng-template #regactions>\r\n            <button class=\"primary grey btn-reset\" (click)=\"resetQuery()\" translate>eo.search.reset</button>\r\n            <button class=\"primary grey btn-save\" (click)=\"saveQuery()\"\r\n              *ngIf=\"capabilities.storedqueries && !isOwnQuery\" translate>eo.search.save</button>\r\n            <button class=\"primary btn-submit\" (click)=\"executeSearch()\" [disabled]=\"queryState.isEmpty\"\r\n              translate>eo.search.submit</button>\r\n          </ng-template>\r\n\r\n\r\n        </div>\r\n\r\n        <ng-template #emptySearch>\r\n          <div class=\"empty-search\" translate>eo.search.summary.empty</div>\r\n        </ng-template>\r\n\r\n      </div>\r\n\r\n\r\n    </div>\r\n\r\n    <!-- expert mode body panel containing explanations -->\r\n    <ng-template #expert>\r\n      <div class=\"body expert\">\r\n\r\n        <div class=\"empty\" *ngIf=\"expertModeQueryEmpty\"><span translate>eo.search.mode.expert.result.empty</span></div>\r\n\r\n        <!--\r\n        <h2><span translate>eo.search.mode.expert</span></h2>\r\n        <div class=\"intro\" translate>eo.search.mode.expert.intro</div>\r\n\r\n        <div class=\"base-params fields\">\r\n          <h2 translate>eo.search.mode.expert.support.baseparams</h2>\r\n          <div class=\"items\">\r\n            <div class=\"item\" *ngFor=\"let el of expertModeSupport.baseParams\" (click)=\"xpAddToTerm(el.data)\">\r\n              <div class=\"label\"><span>{{el.label}}</span></div>\r\n              <div class=\"data\">{{el.data}}</div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"system-types fields\">\r\n\r\n          <div class=\"column column-group\">\r\n            <h2 translate>eo.search.mode.expert.support.group</h2>\r\n            <div class=\"items\">\r\n              <div class=\"item\" *ngFor=\"let group of typeGroupTree\"\r\n                   [ngClass]=\"{selected: expertModeSupport.selectedGroup && group.id === expertModeSupport.selectedGroup.id}\"\r\n                   (click)=\"xpSelectGroup(group)\">\r\n                <div *ngIf=\"group.label !== '0'\">{{group.label}}</div>\r\n                <div *ngIf=\"group.label === '0'\">{{'eo.search.group.general' | translate}}</div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n\r\n          <div class=\"column column-type\" *ngIf=\"expertModeSupport.selectedGroup\">\r\n            <h2 translate>eo.search.mode.expert.support.type</h2>\r\n            <div class=\"items\">\r\n              <div class=\"item\" *ngFor=\"let type of expertModeSupport.selectedGroup.tree\"\r\n                   [ngClass]=\"{selected: expertModeSupport.selectedType && type.id === expertModeSupport.selectedType.id}\"\r\n                   (click)=\"xpSelectType(type)\">\r\n                <div>{{type.label}}</div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n\r\n          <div class=\"column section-field\" *ngIf=\"expertModeSupport.selectedType\">\r\n            <h2 translate>eo.search.mode.expert.support.field</h2>\r\n            <div class=\"items\">\r\n              <div class=\"item\" *ngFor=\"let el of expertModeSupport.selectedType.children\" (click)=\"xpAddToTerm(el.data)\">\r\n                <div class=\"label\"><span>{{el.label}}</span><span class=\"type\">{{el.type}}</span></div>\r\n                <div class=\"data\">{{el.data}}</div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n\r\n        </div>\r\n\r\n        -->\r\n      </div>\r\n    </ng-template>\r\n  </div>\r\n  <!-- </eo-dialog> -->\r\n</ng-template>\r\n","import {PendingChangesService} from './../../../../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {mergeMap} from 'rxjs/operators';\r\nimport {Component, OnInit, OnDestroy, Output, EventEmitter} from '@angular/core';\r\nimport {Subscription} from 'rxjs';\r\nimport {Router} from '@angular/router';\r\nimport {EoLocation, LocationService} from '../../../../../eo-framework-core/location/location.service';\r\nimport {ObjectType, Utils, PrepareService, SystemService} from '@eo-sdk/core';\r\nimport {TranslateService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-app-add-dialog',\r\n  templateUrl: './app-add-dialog.component.html',\r\n  styleUrls: ['./app-add-dialog.component.scss']\r\n})\r\nexport class AppAddDialogComponent implements OnInit, OnDestroy {\r\n\r\n  @Output() onClose = new EventEmitter();\r\n\r\n  rootTypes: ObjectType[] = [];\r\n  locationTypes: ObjectType[] = [];\r\n  locationParent: any;\r\n  private activeLocationSubscription: Subscription;\r\n  subfolder: any;\r\n  subFolderDescription: string;\r\n  autocompleteList: any;\r\n  autocompleteRes: any;\r\n  selectedNode: any;\r\n\r\n  constructor(private prepareService: PrepareService,\r\n              private router: Router,\r\n              private systemService: SystemService,\r\n              private translate: TranslateService,\r\n              private pendingChanges: PendingChangesService,\r\n              private locationService: LocationService) {\r\n  }\r\n\r\n  public prepare(type: ObjectType, isRootType = false) {\r\n    if (this.pendingChanges.check()) {\r\n      return;\r\n    }\r\n    let pid = null;\r\n    if (!isRootType && this.locationParent) {\r\n      pid = this.locationParent.id;\r\n    }\r\n\r\n    this.prepareService\r\n      .createPreparedItem(pid, type.name)\r\n      .subscribe(() => {\r\n          this.router.navigateByUrl('/prepare');\r\n        }, Utils.throw(null, this.translate.instant('eo.add.prepare.fail.title'), this.translate.instant('eo.add.prepare.fail.msg'))\r\n      );\r\n    this.onClose.emit();\r\n  }\r\n\r\n  public autocompleteFn(term: string){\r\n    this.autocompleteRes = this.autocompleteList.filter(type => {\r\n      return type.label.toLowerCase().indexOf(term.toLowerCase()) != -1;\r\n    })\r\n  }\r\n\r\n  onSelect(node) {\r\n    if(node.isSubfolder){\r\n      this.addToSubfolder();\r\n    } else {\r\n      this.prepare(node.type, node.isRootType);\r\n    }\r\n  }\r\n\r\n  preparedItemData(payload) {\r\n    const typeElement = this.systemService\r\n      .getObjectType(this.subfolder.type)\r\n      .elements\r\n      .filter(val => this.subfolder.data ? val.name === Object.keys(this.subfolder.data)[0] : null);\r\n\r\n    if (typeElement.length && typeElement[0].multiselect) {\r\n      Object.entries(payload).map(([key, value]) => payload[key] = [value]);\r\n    }\r\n    return payload;\r\n  }\r\n\r\n  addToSubfolder() {\r\n    if (this.pendingChanges.check()) {\r\n      return;\r\n    }\r\n    let pid = this.locationParent.id;\r\n    const {data, type} = this.subfolder;\r\n    const payload = this.preparedItemData(data);\r\n\r\n    this.prepareService\r\n      .createPreparedItem(pid, type ? type : null)\r\n      .pipe(\r\n        mergeMap(res => this.prepareService.updatePreparedItemIndexData(res.id, payload))\r\n      )\r\n      .subscribe(() => {\r\n        this.router.navigateByUrl('/prepare');\r\n      }, Utils.throw(null, this.translate.instant('eo.add.prepare.fail.title'), this.translate.instant('eo.add.prepare.fail.msg')));\r\n    this.onClose.emit();\r\n  }\r\n\r\n  private fetchRootTypes() {\r\n    this.prepareService\r\n      .getPrepareRootTypes()\r\n      .subscribe((types) => {\r\n        this.rootTypes = this.sortTypes(types);\r\n        this.createAutocompleteList();\r\n      });\r\n  }\r\n\r\n  private createAutocompleteList() {\r\n    this.autocompleteList = this.rootTypes.map(type => {\r\n      return {\r\n        label: type.label,\r\n        location: this.translate.instant('eo.add.title.location.common'),\r\n        isRootType: true,\r\n        isSubfolder: false,\r\n        type\r\n      };\r\n    }).concat(this.locationTypes.map(type => {\r\n      return {\r\n        label: type.label,\r\n        location: `${this.translate.instant('eo.add.title.location')} ${this.locationParent.title}`,\r\n        isRootType: false,\r\n        isSubfolder: false,\r\n        type\r\n      };\r\n    }));\r\n    if(this.subfolder) {\r\n      this.autocompleteList.push({\r\n        label: this.subfolder.title,\r\n        location: `${this.translate.instant('eo.add.title.location')} ${this.locationParent.title}`,\r\n        isRootType: false,\r\n        isSubfolder: true,\r\n      });\r\n    }\r\n  }\r\n\r\n  private sortTypes(types) {\r\n    return types.sort((a, b) => {\r\n\r\n      if (a.isContextFolder && !b.isContextFolder) {\r\n        return -1;\r\n      }\r\n      if (!a.isContextFolder && b.isContextFolder) {\r\n        return 1;\r\n      }\r\n      return Utils.sortValues('label').call(this, a, b);\r\n    });\r\n  }\r\n\r\n  private fetchAllowedChildTypes(loc: EoLocation) {\r\n    this.prepareService\r\n      .getPrepareChildTypes(loc.id)\r\n      .subscribe((res) => {\r\n        const {types, parent} = res;\r\n        this.locationParent = Utils.truncateString(parent, 30);\r\n        this.locationTypes = this.sortTypes(types);\r\n        this.locationParent.title = Utils.truncateString(parent['title'], 30);\r\n        if (loc.subFolder && this.isSubFolderAllowed(loc.subFolder, this.locationTypes)) {\r\n          this.subfolder = loc.subFolder;\r\n          this.subFolderDescription = loc.title + '; ' + this.subfolder.title;\r\n        }\r\n        this.createAutocompleteList();\r\n      });\r\n  }\r\n\r\n  isSubFolderAllowed(subFolder: any, locationTypes: ObjectType[]) {\r\n    return !!locationTypes.find(lt => this.systemService.implementsType(lt, subFolder.type));\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.fetchRootTypes();\r\n    this.activeLocationSubscription = this.locationService.activeLocation$\r\n      .subscribe((loc: EoLocation) => {\r\n        if (loc) {\r\n          this.fetchAllowedChildTypes(loc);\r\n        } else {\r\n          this.locationTypes = [];\r\n          this.locationParent = null;\r\n        }\r\n      });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.activeLocationSubscription) {\r\n      this.activeLocationSubscription.unsubscribe();\r\n    }\r\n  }\r\n\r\n  public trackByFn(index, item) {\r\n    return index;\r\n  }\r\n}\r\n","<section class=\"autocomplete\">\r\n  <yvc-autocomplete [(ngModel)]=\"selectedNode\" \r\n  #autocomplete\r\n    [autocompleteValues]=\"autocompleteRes\" field=\"label\"\r\n    [forceSelection]=\"true\"\r\n    (suggestionSelect)=\"onSelect($event)\"\r\n    (autocompleteFnc)=\"autocompleteFn($event)\">\r\n    \r\n    <ng-template let-item #chipTemplate>\r\n      <span class=\"ui-autocomplete-token-label\" title=\"{{item.label}} ({{item.location}})\">\r\n        <strong>{{item.label}}</strong>\r\n        <span>{{item.location}}</span>\r\n      </span>\r\n    </ng-template>\r\n  </yvc-autocomplete>\r\n</section>\r\n\r\n<section class=\"type-lists\">\r\n  <section class=\"section location\" *ngIf=\"locationParent\">\r\n    <div class=\"subhead\"><span translate>eo.add.title.location</span><span> \"{{locationParent.title}}\"</span></div>\r\n    <div class=\"type sub\" (click)=\"addToSubfolder()\" *ngIf=\"subfolder\">\r\n      <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_new_folder.svg'\"></eo-icon>\r\n      <div>\r\n        <div class=\"label\">{{'eo.add.title.location.subfolder'|translate: ({folder: subfolder.title})}}</div>\r\n        <div class=\"group\">{{subFolderDescription}}</div>\r\n      </div>\r\n    </div>\r\n    <div class=\"type\" *ngFor=\"let type of locationTypes; trackBy: trackByFn\" (click)=\"prepare(type)\">\r\n      <eo-icon [objectType]=\"type\"></eo-icon>\r\n      <div>\r\n        <div class=\"label\">{{type.label}}</div>\r\n        <div class=\"group\">{{type.group}}</div>\r\n      </div>\r\n    </div>\r\n  </section>\r\n  \r\n  <section class=\"section general\" *ngIf=\"rootTypes.length; else noRootTypes\">\r\n    <div class=\"subhead\"><span translate>eo.add.title.location.common</span></div>\r\n      <div class=\"type\" *ngFor=\"let type of rootTypes; trackBy: trackByFn\"\r\n           [ngClass]=\"{context: type.isContextFolder}\"\r\n           (click)=\"prepare(type, true)\">\r\n        <eo-icon [objectType]=\"type\"></eo-icon>\r\n        <div tabindex=\"0\" (keydown.enter)=\"prepare(type, true)\">\r\n          <div class=\"label\">{{type.label}}</div>\r\n          <div class=\"group\">{{type.group}}</div>\r\n        </div>\r\n      </div>\r\n  </section>\r\n</section>\r\n\r\n<ng-template #noRootTypes>\r\n  <div *ngIf=\"!locationParent\">\r\n    <span class=\"empty__root-types\" translate>eo.add.empty.root.types</span>\r\n  </div>\r\n</ng-template>\r\n","import {Component} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'eo-app-add',\r\n  templateUrl: './app-add.component.html',\r\n  styleUrls: ['./app-add.component.scss']\r\n})\r\nexport class AppAddComponent {\r\n\r\n  constructor(private router: Router) {\r\n  }\r\n\r\n  public close(evt?) {\r\n    this.router\r\n      .navigate([{outlets: {modal: null}}], {replaceUrl: true});\r\n  }\r\n}\r\n","<eo-dialog #dialog [title]=\"'eo.bar.button.file.tooltip' | translate\"\r\n           [visible]=\"true\"\r\n           [minWidth]=\"270\"\r\n           [minHeight]=\"580\"\r\n           [styleClass]=\"'add'\"\r\n           (hide)=\"close($event)\">\r\n\r\n  <eo-app-add-dialog (onClose)=\"(dialog.visible = false)\"></eo-app-add-dialog>\r\n\r\n</eo-dialog>\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {BpmService, ExecutableProcess, NotificationsService, TranslateService, Utils} from '@eo-sdk/core';\r\nimport {Router} from '@angular/router';\r\nimport {ObjectFormOptions} from '../../../object-form';\r\nimport {PendingChangesService} from '../../../../eo-framework-core/pending-changes/pending-changes.service';\r\n\r\n/**\r\n * Component rendering the app-bar action of starting executable processes.\r\n */\r\n\r\n@Component({\r\n  selector: 'eo-app-process',\r\n  templateUrl: './app-process.component.html',\r\n  styleUrls: ['./app-process.component.scss']\r\n})\r\nexport class AppProcessComponent implements OnInit {\r\n\r\n  processes: ExecutableProcess[];\r\n  selectedProcess: ExecutableProcess;\r\n\r\n  processForm: ObjectFormOptions;\r\n  title: string;\r\n  subtitle: string;\r\n  pendingTaskIds: string[] = [];\r\n\r\n  constructor(private router: Router,\r\n              private toaster: NotificationsService,\r\n              private translate: TranslateService,\r\n              private bpmService: BpmService,\r\n              private pendingChanges: PendingChangesService) {\r\n  }\r\n\r\n  close(evt?): void {\r\n    this.router.navigate([{outlets: {modal: null}}], {replaceUrl: true});\r\n  }\r\n\r\n  /**\r\n   * Select an executable process from the current list of processes.\r\n   * If the process requires some user input, this will render the input form or\r\n   * otherwise start the process right away.\r\n   * @param executableProcess Process to be selected/started\r\n   */\r\n  selectProcess(executableProcess: ExecutableProcess): void {\r\n    this.bpmService.getExecutableProcesses(null, false, true, executableProcess.id, true).subscribe(\r\n      res => {\r\n        executableProcess = res[0];\r\n        this.selectedProcess = JSON.parse(JSON.stringify(executableProcess)); // Only copies of the original processes are used.\r\n        if (this.selectedProcess.form) {\r\n          // create form options from the execitable process to be passed to the rendering form component\r\n          this.selectedProcess.form.situation = 'CREATE';\r\n          this.processForm = {\r\n            formModel: this.selectedProcess.form,\r\n            data: this.selectedProcess.data || {}\r\n          };\r\n        } else {\r\n          // start process right away\r\n          this.executeProcess(\r\n            this.selectedProcess,\r\n            {},\r\n            this.translate.instant('eo.process.started', {processName: this.selectedProcess.title})\r\n          );\r\n        }\r\n      }\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Starts the currently selected executable process with data provided by\r\n   * the input form.\r\n   * @param formData Data to be passed to the process to be created\r\n   */\r\n  startProcessWithFormData(formData: any): void {\r\n    this.finishPending();\r\n    this.executeProcess(\r\n      this.selectedProcess,\r\n      formData,\r\n      this.translate.instant('eo.process.started', {processName: this.selectedProcess.title})\r\n    );\r\n  }\r\n\r\n  private executeProcess(executableProcess: ExecutableProcess, data: any, successMessage = ''): void {\r\n    this.cancelDialog();\r\n    this.close();\r\n\r\n    this.bpmService.startProcess(executableProcess.id, data, [])\r\n      .subscribe(() => {\r\n        this.toaster.success(successMessage);\r\n      }, Utils.throw(() => {\r\n          this.toaster.error(this.translate.instant(\r\n            'eo.process.started.fail',\r\n            {processName: executableProcess.title})\r\n          );\r\n        }\r\n      ));\r\n  }\r\n\r\n  formReset(event): void {\r\n    this.processForm = null;\r\n  }\r\n\r\n  cancelDialog(): void {\r\n    this.processForm = null;\r\n  }\r\n\r\n  onCancel(dialog): void {\r\n    if (!this.pendingChanges.checkForPendingTasks(this.pendingTaskIds)) {\r\n      this.finishPending();\r\n      dialog.visible = false;\r\n    }\r\n  }\r\n\r\n  private startPending() {\r\n    // because this method will be called every time the form status changes,\r\n    // pending task will only be started once until it was finished\r\n    if (!this.pendingChanges.hasPendingTask(this.pendingTaskIds[0] || ' ')) {\r\n      this.pendingTaskIds = [this.pendingChanges.startTask()];\r\n    }\r\n  }\r\n\r\n  private finishPending() {\r\n    this.pendingChanges.finishTask(this.pendingTaskIds[0]);\r\n  }\r\n\r\n  onIndexDataChanged(event) {\r\n    if (event.dirty) {\r\n      this.startPending();\r\n    } else {\r\n      this.finishPending();\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.bpmService.getExecutableProcesses(null, true, null, null, true)\r\n      .subscribe(res => this.processes = res.sort(Utils.sortValues('title')));\r\n  }\r\n}\r\n","<eo-dialog [title]=\"'eo.bar.button.execute.actions.tooltip' | translate\"\r\n           [visible]=\"true\"\r\n           [minWidth]=\"400\"\r\n           [styleClass]=\"'more-actions'\"\r\n           (hide)=\"close($event)\">\r\n\r\n  <section *ngIf=\"processes?.length; else loading\">\r\n\r\n    <div class=\"process-item\" *ngFor=\"let process of processes\" (click)=\"selectProcess(process)\">\r\n      <eo-icon [iconId]=\"process.iconid\" *ngIf=\"process.iconid; else defaulticon\"></eo-icon>\r\n      <ng-template #defaulticon><eo-icon [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"></eo-icon></ng-template>\r\n      <div class=\"pi-content\">\r\n        <div class=\"title\">{{process.title}}</div>\r\n        <div class=\"description\">{{process.description}}</div>\r\n      </div>\r\n    </div>\r\n\r\n  </section>\r\n\r\n  <ng-container *ngIf=\"!processForm; else tplProcessForm\" class=\"select-process\"></ng-container>\r\n\r\n  <ng-template #loading>\r\n    <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\r\n  </ng-template>\r\n\r\n\r\n  <ng-template #tplProcessForm>\r\n\r\n    <eo-dialog [title]=\"selectedProcess?.title\"\r\n               [subtitle]=\"selectedProcess?.description\"\r\n               [visible]=\"true\"\r\n               [dirtyCheck]=\"pendingTaskIds\"\r\n               [minWidth]=\"1000\"\r\n               [styleClass]=\"'process-form-dialog'\"\r\n               (hide)=\"cancelDialog()\" #dialog>\r\n\r\n      <eo-process-form [formOptions]=\"processForm\"\r\n                      (onResetForm)=\"formReset($event)\"\r\n                      (onCancel)=\"onCancel(dialog)\"\r\n                      (onSaveForm)=\"startProcessWithFormData($event)\"\r\n                      (statusChanged)=\"onIndexDataChanged($event)\">\r\n      </eo-process-form>\r\n    </eo-dialog>\r\n  </ng-template>\r\n\r\n</eo-dialog>\r\n","import {RouterModule, Routes} from '@angular/router';\r\nimport {AppSearchComponent} from './app-bar/app-search/app-search.component';\r\nimport {AppAddComponent} from './app-bar/app-add/app-add.component';\r\nimport {NgModule} from '@angular/core';\r\nimport {AppProcessComponent} from './app-bar/app-process/app-process.component';\r\n\r\nconst routes: Routes = [\r\n  {\r\n    path: 'search',\r\n    component: AppSearchComponent,\r\n    outlet: 'modal'\r\n  },\r\n  {\r\n    path: 'add',\r\n    component: AppAddComponent,\r\n    outlet: 'modal'\r\n  },\r\n  {\r\n    path: 'actions',\r\n    component: AppProcessComponent,\r\n    outlet: 'modal'\r\n  }\r\n];\r\n\r\n@NgModule({\r\n  imports: [RouterModule.forChild(routes)],\r\n  exports: [RouterModule]\r\n})\r\nexport class AppShellRoutingModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {UiModule} from '../ui/ui.module';\r\nimport {AppBarComponent} from './app-bar/app-bar.component';\r\nimport {ContextSearchComponent} from './app-bar/context-search/context-search.component';\r\nimport {SideBarComponent} from './app-bar/side-bar/side-bar.component';\r\nimport {AppSearchComponent} from './app-bar/app-search/app-search.component';\r\nimport {AppAddComponent} from './app-bar/app-add/app-add.component';\r\nimport {EoSharedModule} from '@eo-sdk/core';\r\nimport {YvcTabsModule} from '@yuuvis/components/tabs';\r\n\r\nimport {AppShellRoutingModule} from './app-shell-routing.module';\r\nimport {ShortcutsModule} from '../shortcuts/shortcuts.module';\r\nimport {FormElementsModule} from '../form-elements/form-elements.module';\r\nimport {ObjectFormModule} from '../object-form/object-form.module';\r\nimport {AppAddDialogComponent} from './app-bar/app-add/app-add-dialog/app-add-dialog.component';\r\nimport {ActionModule} from '../actions/action.module';\r\nimport {UtilModule} from '../util/util.module';\r\nimport {CtaModule} from '../cta/cta.module';\r\nimport {AppProcessComponent} from './app-bar/app-process/app-process.component';\r\nimport {ProcessFormModule} from '../process-form/process-form.module';\r\nimport {YvcAutocompleteModule} from '@yuuvis/components/autocomplete';\r\nimport {YvcDialogModule} from '@yuuvis/components/dialog';\r\nimport {UserAvatarOverlayComponent} from \"./app-bar/user-avatar-overlay/user-avatar-overlay.component\";\r\nimport { LicenseWarningComponent } from './license-warning/license-warning.component';\r\n\r\n/**\r\n * Module holding the base components of the application shell like application bar, side, search etc.\r\n */\r\n\r\n@NgModule({\r\n    imports: [\r\n        AppShellRoutingModule,\r\n        CommonModule,\r\n        FormsModule,\r\n        UiModule,\r\n        UtilModule,\r\n        EoSharedModule,\r\n        YvcTabsModule,\r\n        FormElementsModule,\r\n        ObjectFormModule,\r\n        ShortcutsModule,\r\n        ActionModule,\r\n        CtaModule,\r\n        ProcessFormModule,\r\n        YvcAutocompleteModule,\r\n        YvcDialogModule,\r\n        ReactiveFormsModule,\r\n    ],\r\n  exports: [AppBarComponent, LicenseWarningComponent],\r\n  declarations: [\r\n    AppBarComponent,\r\n    SideBarComponent,\r\n    AppSearchComponent,\r\n    AppAddComponent,\r\n    AppAddDialogComponent,\r\n    ContextSearchComponent,\r\n    AppProcessComponent,\r\n    UserAvatarOverlayComponent,\r\n    LicenseWarningComponent\r\n  ]\r\n})\r\nexport class EoAppShellModule {\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'eo-error404',\r\n  templateUrl: './error404.component.html',\r\n  styleUrls: ['./error404.component.scss']\r\n})\r\nexport class Error404Component {\r\n}\r\n","<section class=\"not-found\">\r\n  <header class=\"header\">\r\n    <h3 class=\"title\">\r\n      <span translate>eo.status.404.title</span>\r\n      <span class=\"description\" translate>eo.status.404.description</span>\r\n    </h3>\r\n    <eo-icon class=\"icon\" [iconSrc]=\"'assets/_default/svg/ic_error.svg'\"></eo-icon>\r\n  </header>\r\n</section>\r\n\r\n","import {Component} from '@angular/core';\r\nimport {Title} from '@angular/platform-browser';\r\nimport {PageTitleService} from '../../../eo-framework-core/title/page-title.service';\r\n\r\n/**\r\n * Used as 404 state for apps routing\r\n */\r\n\r\n@Component({\r\n  selector: 'eo-not-found',\r\n  template: '<eo-error404></eo-error404>'\r\n})\r\nexport class NotFoundComponent {\r\n\r\n  constructor(private titleService: PageTitleService) {\r\n    this.titleService.setDefaultTitle();\r\n  }\r\n\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {NotFoundComponent} from './not-found/not-found.component';\r\nimport {Error404Component} from './error404/error404.component';\r\nimport {UiModule} from '../ui/ui.module';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    UiModule\r\n  ],\r\n  declarations: [\r\n    NotFoundComponent,\r\n    Error404Component\r\n  ],\r\n  exports: [\r\n    NotFoundComponent,\r\n    Error404Component\r\n  ]\r\n})\r\nexport class ErrorModule {\r\n}\r\n","import {Directive, ViewContainerRef} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[eoPlugin]'\r\n})\r\nexport class PluginDirective {\r\n\r\n  constructor(public viewContainerRef: ViewContainerRef) {\r\n  }\r\n\r\n}\r\n","import {Injectable, Inject, InjectionToken, ComponentFactoryResolver} from '@angular/core';\r\n\r\nexport const ENTRY_COMPONENTS = new InjectionToken<any[]>('ENTRY_COMPONENTS');\r\nexport const ENTRY_LINKS = new InjectionToken<any[]>('ENTRY_LINKS');\r\n\r\n\r\nexport interface EoPlugin {\r\n  id: string;\r\n  matchType: RegExp;\r\n}\r\n\r\nexport interface EoLinkPlugin extends EoPlugin {\r\n  path: any;\r\n  queryParams?: any;\r\n}\r\n\r\n@Injectable()\r\nexport class PluginService {\r\n\r\n  public links: any[] = [];\r\n  public components: any[] = [];\r\n\r\n  constructor(@Inject(ENTRY_COMPONENTS) components: EoPlugin[],\r\n              @Inject(ENTRY_LINKS) links: EoLinkPlugin[],\r\n              private _componentFactoryResolver: ComponentFactoryResolver) {\r\n    this.components = components || [];\r\n    this.links = links || [];\r\n  }\r\n\r\n  loadComponent(plugin, viewContainerRef, data = {}) {\r\n    let componentFactory = this._componentFactoryResolver.resolveComponentFactory(plugin);\r\n\r\n    // viewContainerRef.clear();\r\n    viewContainerRef.createComponent(componentFactory);\r\n    // (<PluginComponent>componentRef.instance).data = data;\r\n  }\r\n\r\n  loadByType(type: string, viewContainerRef: any) {\r\n    return this.components.filter(p => p.matchType && type.match(p.matchType))\r\n      .forEach(m => this.loadComponent(m, viewContainerRef));\r\n  }\r\n\r\n  loadById(id: string, viewContainerRef: any) {\r\n    return this.components.filter(p => p.id && id === p.id)\r\n      .forEach(m => this.loadComponent(m, viewContainerRef));\r\n  }\r\n\r\n  loadTabs(type: string) {\r\n    return this.components.filter(p => p.matchType && type.match(p.matchType));\r\n  }\r\n\r\n  loadLinks(type: string) {\r\n    return this.links.filter(p => p.matchType && type.match(p.matchType))\r\n  }\r\n\r\n}\r\n","import {Component, Input, ViewChild, ViewChildren, QueryList, Pipe, PipeTransform, ChangeDetectorRef} from '@angular/core';\r\nimport {PluginDirective} from './plugin.directive';\r\nimport {PluginService} from './plugin.service';\r\n\r\n@Component({\r\n  selector: 'eo-plugin',\r\n  template: `\r\n    <ng-template eoPlugin></ng-template>`\r\n})\r\nexport class PluginComponent {\r\n\r\n  @ViewChild(PluginDirective, {static: true}) eoPlugin: PluginDirective;\r\n\r\n  @Input()\r\n  set type(type) {\r\n    this.pluginService.loadByType(type, this.eoPlugin.viewContainerRef);\r\n  }\r\n\r\n  @Input()\r\n  set id(id) {\r\n    this.pluginService.loadById(id, this.eoPlugin.viewContainerRef);\r\n  }\r\n\r\n  @Input() parent: any;\r\n\r\n  constructor(public pluginService: PluginService) {\r\n  }\r\n\r\n}\r\n\r\n@Pipe({\r\n  name: 'plugins',\r\n  pure: true\r\n})\r\nexport class PluginPipe implements PipeTransform {\r\n\r\n  constructor(public pluginService: PluginService) {\r\n  }\r\n\r\n  transform(value: any): null | any[]  {\r\n    return this.pluginService.loadTabs(value);\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: 'eo-sidebar-plugin',\r\n  template: `\r\n    <div #navItem class=\"nav-item\" *ngFor=\"let l of _links\">\r\n      <a [href]=\"l.path\" *ngIf=\"l.path.startsWith('http');else link\">{{l.id | translate}}</a>\r\n      <ng-template #link>\r\n        <a [routerLink]=\"l.path\" [queryParams]=\"l.queryParams\" routerLinkActive=\"active-link\">{{l.id | translate}}</a>\r\n      </ng-template>\r\n    </div>`\r\n})\r\nexport class SidebarPluginComponent {\r\n  _links: any[];\r\n\r\n  @ViewChildren('navItem') links: QueryList<any>;\r\n\r\n  @Input()\r\n  set type(type) {\r\n    this._links = this.pluginService.loadLinks(type);\r\n  }\r\n\r\n  constructor(public pluginService: PluginService) {\r\n  }\r\n\r\n}\r\n","import {of as observableOf, forkJoin as observableForkJoin, Observable} from 'rxjs';\r\nimport {Component, OnInit, Renderer2, ViewChild, ElementRef, OnDestroy, HostListener} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {\r\n  ObjectType,\r\n  EventService,\r\n  EnaioEvent,\r\n  UploadRegistryService,\r\n  UploadTarget,\r\n  UploadFileItem,\r\n  PrepareService,\r\n  Utils,\r\n  TranslateService,\r\n  EnvironmentEnaio, SystemService\r\n} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-upload-overlay',\r\n  templateUrl: './upload-overlay.component.html',\r\n  styleUrls: ['./upload-overlay.component.scss']\r\n})\r\nexport class UploadOverlayComponent implements OnInit, OnDestroy {\r\n\r\n  @ViewChild('overlay') overlayEl: ElementRef;\r\n\r\n  queue: UploadFileItem[] = [];\r\n  fileOver: boolean;\r\n  isUploading: boolean;\r\n  hasValidUploadTargets: boolean;\r\n  invalidInput: boolean;\r\n  queueSize: number;\r\n  validUploadTargets: UploadTarget[] = [];\r\n  selectedUploadTarget: UploadTarget;\r\n\r\n  private uploadTargets: UploadTarget[] = [];\r\n  private dragLeaveListener: Function;\r\n  private dropListener: Function;\r\n  private dragOverListener: Function;\r\n  private escKeyListener: Function;\r\n  private dragEnterListener: Function;\r\n  private pasteListener: Function;\r\n  private dragEventCount = 0;\r\n\r\n  constructor(private router: Router,\r\n              private renderer: Renderer2,\r\n              private prepareService: PrepareService,\r\n              private translate: TranslateService,\r\n              private systemService: SystemService,\r\n              private eventService: EventService,\r\n              private uploadRegistry: UploadRegistryService) {\r\n  }\r\n\r\n  private init() {\r\n\r\n    // global drag&drop upload will only be available on desktop (web or electron)\r\n    if (EnvironmentEnaio.isMobileEnvironment()) {\r\n      return false;\r\n    }\r\n\r\n    // subscribe for the list of registered upload targets\r\n    this.uploadRegistry.uploadTargets$.subscribe((uploadTargets: UploadTarget[]) => {\r\n      this.uploadTargets = uploadTargets;\r\n    });\r\n\r\n    this.pasteListener = this.renderer.listen('document', 'paste', (e: ClipboardEvent) => {\r\n      this.onPaste(e);\r\n    });\r\n\r\n    this.dragEnterListener = this.renderer.listen('document', 'dragenter', (e: DragEvent) => {\r\n      this.onDragEnter(e);\r\n    });\r\n  }\r\n\r\n  private onPaste(e: ClipboardEvent) {\r\n    if (this.isUploading) {\r\n      return false;\r\n    }\r\n    this.hasValidUploadTargets = true;\r\n    this.invalidInput = false;\r\n    if (!this.fileOver && this.pasteContainsFiles(e)) {\r\n      let transfer = e.clipboardData;\r\n      if (!transfer) {\r\n        return;\r\n      }\r\n\r\n      // check for directories\r\n      for (let i = 0; i < transfer.items.length; i++) {\r\n        if (transfer.items[i].kind === 'string') {\r\n          this.invalidInput = true;\r\n          return;\r\n        }\r\n        const fe = transfer.items[i].webkitGetAsEntry();\r\n        if (fe && fe.isDirectory) {\r\n            this.invalidInput = true;\r\n            return;\r\n        }\r\n      }\r\n      if (!this.invalidInput) {\r\n        this._preventAndStop(e);\r\n        this.setFileOver(true);\r\n        this.onFilesDropped(Array.from(transfer.files));\r\n      }\r\n    }\r\n  }\r\n\r\n  private onDragEnter(e: DragEvent) {\r\n    if (this.isUploading) {\r\n      return false;\r\n    }\r\n    this.hasValidUploadTargets = true;\r\n    if (!this.fileOver && this.dragContainsFiles(e)) {\r\n      this.dragEventCount = 0;\r\n      this.setFileOver(true);\r\n\r\n\r\n      // use timeout here to force angular digest cycle before continuing, because we are accessing dom elements\r\n      // that are not there (*ngIf) until fileOver is set to true.\r\n      setTimeout(() => {\r\n        // todo: replace by renderer solution when available (https://github.com/angular/angular/issues/15674)\r\n        this.overlayEl.nativeElement.focus();\r\n        // bind late (only, when needed) to dragleave event to avoid heavy processing on every drag event\r\n        this.dragLeaveListener = this.renderer.listen(this.overlayEl.nativeElement, 'dragleave', (evt) => {\r\n          this.dragEventCount--;\r\n          if (this.dragEventCount === 0) {\r\n            this.close();\r\n          }\r\n        });\r\n\r\n        this.dropListener = this.renderer.listen(this.overlayEl.nativeElement, 'drop', (evt) => {\r\n          let transfer = this._getTransfer(evt);\r\n          if (!transfer) {\r\n            return;\r\n          }\r\n          this._preventAndStop(evt);\r\n\r\n          // check for directories\r\n          for (let i = 0; i < transfer.items.length; i++) {\r\n            const fe = transfer.items[i].webkitGetAsEntry();\r\n            if (fe && fe.isDirectory) {\r\n              this.invalidInput = true;\r\n            }\r\n          }\r\n          if (!this.invalidInput) {\r\n            this.onFilesDropped(transfer.files);\r\n          }\r\n        });\r\n\r\n        this.dragOverListener = this.renderer.listen(this.overlayEl.nativeElement, 'dragover', (evt) => {\r\n          let transfer = this._getTransfer(evt);\r\n          if (!transfer) {\r\n            return;\r\n          }\r\n          transfer.dropEffect = 'copy';\r\n          this._preventAndStop(evt);\r\n        });\r\n      }, 0);\r\n    } else {\r\n      this.dragEventCount++;\r\n    }\r\n  }\r\n\r\n  private _getTransfer(event: any): any {\r\n    return event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer; // jQuery fix;\r\n  }\r\n\r\n  private _preventAndStop(event: any): any {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n  }\r\n\r\n  private onFilesDropped(fileItems: File[]) {\r\n    // clear queue when new files are added\r\n    // todo: remove in future releases to support collective file adding\r\n    this.queue = [];\r\n    for (let file of fileItems) {\r\n      this.queue.push(new UploadFileItem(file));\r\n    }\r\n\r\n    // bind ESC key listener for closing the dialog as late as possible\r\n    if (!this.escKeyListener) {\r\n      this.escKeyListener = this.renderer.listen('document', 'keyup', (e) => {\r\n        e.stopPropagation();\r\n        if (e.keyCode === 27) {\r\n          this.close();\r\n        }\r\n      });\r\n    }\r\n    // calculate total size of queue\r\n    this.setQueueSize();\r\n    // filter available targets\r\n    this.validateUploadTargets();\r\n  }\r\n\r\n  /**\r\n   * Filter list of registered upload targets, so only valid targets will be shown.\r\n   */\r\n  private validateUploadTargets() {\r\n    this.hasValidUploadTargets = true;\r\n    observableForkJoin(this.uploadTargets.map(t => this.validateUploadTarget(t)))\r\n      .subscribe(\r\n        (res: { target: UploadTarget, valid: boolean }[]) => {\r\n          this.validUploadTargets = res.filter(r => r.valid).map(filtered => filtered.target).reverse().sort((a, b) => {\r\n            return a.type === 'context' ? -1 : b.type === 'context' ? 1 : 0; // Context should be on top\r\n          });\r\n        }, err => {\r\n          this.validUploadTargets = [];\r\n        }, () => {\r\n          this.hasValidUploadTargets = this.validUploadTargets.length > 0;\r\n        }\r\n      );\r\n  }\r\n\r\n  private validateUploadTarget(target: UploadTarget): Observable<{ target: UploadTarget, valid: boolean }> {\r\n\r\n    if (!this.queue) {\r\n      return observableOf({target: target, valid: false});\r\n    }\r\n\r\n    return Observable.create(o => {\r\n      let valid = false;\r\n\r\n      if (target.type === UploadTarget.ROOT) {\r\n\r\n        // todo: are there other restrictions on root target?\r\n        this.prepareService.getPrepareChildTypes(null, true)\r\n          .subscribe(\r\n            (res: { parent: string, types: ObjectType[] }) => {\r\n              valid = this.queue.length > 0 && res.types.length > 0;\r\n              o.next({target: target, valid: valid});\r\n              o.complete();\r\n            }, err => {\r\n              o.next({target: target, valid: false});\r\n              o.complete();\r\n            }\r\n          );\r\n      } else if (target.type === UploadTarget.OBJECT) {\r\n\r\n        // todo: check if the reference object supports the given file type\r\n        valid = target.referenceObject &&\r\n          target.referenceObject.type.maxFiles > 0 &&\r\n          !target.referenceObject.lock &&\r\n          !target.referenceObject.isFinalized &&\r\n          (target.referenceObject.rights && target.referenceObject.rights.edit) &&\r\n          this.queue.length === 1 &&\r\n          target.referenceObject.data.yuvsigstatus !== 'signed' &&\r\n          target.referenceObject.data.yuvsigstatus !== 'inprocess';\r\n        o.next({target: target, valid: valid});\r\n        o.complete();\r\n      } else if (target.type === UploadTarget.CONTEXT || target.type === UploadTarget.CONTEXT_TREE) {\r\n\r\n        // todo: add checks related to the reference object (e.g. allowed file types)\r\n        this.prepareService.getPrepareChildTypes(target.referenceObject.id, true)\r\n          .subscribe(\r\n            (res: { parent: string, types: ObjectType[] }) => {\r\n              valid = target.referenceObject && this.queue.length > 0 && res.types.length > 0;\r\n\r\n              // for CONTEXT_TREE targets also check if the desired node\r\n              // type is part of the prepare child types\r\n              if (target.type === UploadTarget.CONTEXT_TREE && target.subFolder) {\r\n                const subFolder: any = target.subFolder;\r\n                valid = !!res.types.find(t => this.systemService.implementsType(t, subFolder.data.type));\r\n              }\r\n\r\n              o.next({target: target, valid: valid});\r\n              o.complete();\r\n            }, err => {\r\n              o.next({target: target, valid: false});\r\n              o.complete();\r\n            }\r\n          );\r\n      } else {\r\n        o.next({target: target, valid: false});\r\n        o.complete();\r\n      }\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Removes a file from the list of files to be uploaded.\r\n   * @param fileItem - the file item to be removed\r\n   */\r\n  public removeFileItem(fileItem: UploadFileItem) {\r\n\r\n    this.queue = this.queue.filter((f) => f.id !== fileItem.id);\r\n    if (!this.queue.length) {\r\n      this.close();\r\n    } else {\r\n      // update available upload targets because their validity\r\n      // may be based on the queue size\r\n      this.validateUploadTargets();\r\n      this.setQueueSize();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Proceed upload with a selected upload target.\r\n   * @param uploadTarget - the target to upload files to\r\n   */\r\n  public proceedWithUpload(uploadTarget: UploadTarget) {\r\n\r\n    if (uploadTarget.type !== UploadTarget.CUSTOM && this.queue.length > 1) {\r\n      // For more than one file to be uploaded to a none custom target, we let the user decide if\r\n      // batch upload should be used or not ...\r\n\r\n\r\n      this.selectedUploadTarget = uploadTarget;\r\n    } else if (uploadTarget.type === UploadTarget.OBJECT) {\r\n      // ... otherwise upload is started immediately\r\n      this.startUpload(uploadTarget, [null, this.getStateRoute()]);\r\n    } else {\r\n      this.startUpload(uploadTarget, [null, '/prepare']);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Proceed upload using the selected upload target.\r\n   * @param useBatchUpload - flag indicating whether or not to use batch upload\r\n   */\r\n  public proceedWithSelectedTarget(useBatchUpload: boolean) {\r\n    this.startUpload(this.selectedUploadTarget, [useBatchUpload, '/prepare']);\r\n  }\r\n\r\n  /**\r\n   * Resets the selected upload target.\r\n   */\r\n  public resetSelectedUploadTarget() {\r\n    this.selectedUploadTarget = null;\r\n  }\r\n\r\n  getStateRoute() {\r\n    return this.router.url;\r\n  }\r\n\r\n\r\n  private successfulUpload(target, uploadTarget) {\r\n    this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, uploadTarget.referenceObject);\r\n    uploadTarget.onUploadSuccess(target);\r\n  }\r\n\r\n  /**\r\n   * Start the actual upload.\r\n   * @param uploadTarget - target to upload the files to\r\n   * @param useBatchUpload - flag indicating whether or not to use batch upload\r\n   */\r\n  private startUpload(uploadTarget: UploadTarget, [...args]) {\r\n\r\n    const [useBatchUpload, target] = args;\r\n\r\n    this.isUploading = true;\r\n    this.unbindListeners();\r\n    this.prepareService\r\n      .uploadToTarget(uploadTarget, this.queue, useBatchUpload)\r\n      .subscribe((res) => {\r\n          this.isUploading = false;\r\n          if (uploadTarget.subFolder && uploadTarget.subFolder.data.data) {\r\n            if (Array.isArray(res)) {\r\n              let obs = [];\r\n              res.forEach(r => {\r\n                obs.push(this.prepareService.updatePreparedItemIndexData(r.id, uploadTarget.subFolder.data.data));\r\n              });\r\n              observableForkJoin(obs).subscribe(() => this.successfulUpload(target, uploadTarget));\r\n            } else {\r\n              this.prepareService\r\n                .updatePreparedItemIndexData(res.id, uploadTarget.subFolder.data.data)\r\n                .subscribe(() => this.successfulUpload(target, uploadTarget));\r\n            }\r\n          } else {\r\n            this.successfulUpload(target, uploadTarget);\r\n          }\r\n          this.close();\r\n        }, Utils.throw(() => {\r\n          this.isUploading = false;\r\n          uploadTarget.onUploadFail();\r\n          this.close();\r\n        },\r\n        this.translate.instant('eo.upload.global.error.title'),\r\n        this.translate.instant('eo.upload.global.error.description'))\r\n      );\r\n    this.resetSelectedUploadTarget();\r\n  }\r\n\r\n  private setQueueSize() {\r\n    let s = 0;\r\n    for (let f of this.queue) {\r\n      s += f.size;\r\n    }\r\n    this.queueSize = s;\r\n  }\r\n\r\n  /**\r\n   * Close the upload overlay and release all bound resources.\r\n   */\r\n  close() {\r\n    // unbind bound event listener, when they are not needed anymore\r\n    this.unbindListeners();\r\n    // clear upload queue\r\n    this.queue = [];\r\n    // hide the overlay\r\n    this.setFileOver(false);\r\n    this.invalidInput = false;\r\n  }\r\n\r\n  private setFileOver(value: boolean) {\r\n    this.fileOver = value;\r\n    this.uploadRegistry.setOverlayActive(value);\r\n  }\r\n\r\n  private unbindListeners() {\r\n    if (this.dragLeaveListener) {\r\n      this.dragLeaveListener();\r\n      this.dragLeaveListener = null;\r\n    }\r\n    if (this.dragOverListener) {\r\n      this.dragOverListener();\r\n      this.dragOverListener = null;\r\n    }\r\n    if (this.dropListener) {\r\n      this.dropListener();\r\n      this.dropListener = null;\r\n    }\r\n    if (this.escKeyListener) {\r\n      this.escKeyListener();\r\n      this.escKeyListener = null;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Indicates whether or not the current drag event contains one or more files.\r\n   * @param event - the drag event to be checked\r\n   * @returns number of files\r\n   */\r\n   private dragContainsFiles(event: DragEvent): number {\r\n    return Array.from(event.dataTransfer.items || []).filter(i => i.kind === 'file').length;\r\n  }\r\n\r\n  /**\r\n   * Indicates whether or not the current paste event contains one or more files.\r\n   * @param event - the paste event to be checked\r\n   * @returns number of files\r\n   */\r\n  private pasteContainsFiles(event: ClipboardEvent): number {\r\n    return Array.from(event.clipboardData.items || []).filter(i => i.kind === 'file').length;\r\n  }\r\n\r\n  // ngFor tracking function for upload targets\r\n  targetTrackByFn(index, item) {\r\n    return item.id;\r\n  }\r\n\r\n  // ngFor tracking function for file items\r\n  trackByFn(index, item) {\r\n    return index;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.init();\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.dragEnterListener) {\r\n      this.dragEnterListener();\r\n    }\r\n  }\r\n}\r\n","<div id=\"eo-upload-overlay\" #overlay class=\"dark\" *ngIf=\"fileOver\" tabindex=\"1\"\r\n     [ngClass]=\"{hasFiles: queue.length, invalid: invalidInput, singleFile: queue.length === 1, uploading: isUploading}\">\r\n\r\n  <eo-icon class=\"button white close\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"close()\"></eo-icon>\r\n\r\n  <div class=\"count\">\r\n    <div>{{queue.length}}</div>\r\n    <div class=\"queueSize\">{{queueSize | fileSize}}</div>\r\n  </div>\r\n\r\n  <h1 translate>eo.upload.global.headline</h1>\r\n  <eo-icon class=\"uploady\" [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\r\n\r\n  <!-- batch upload dialog -->\r\n  <div class=\"batch-dialog\" *ngIf=\"!invalidInput && selectedUploadTarget && !isUploading\">\r\n\r\n    <h2 translate>eo.upload.global.choose.title</h2>\r\n    <p translate>eo.upload.global.choose.message</p>\r\n    <div class=\"actions\">\r\n      <button (click)=\"resetSelectedUploadTarget()\" translate>eo.cta.button.cancel</button>\r\n      <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\" translate>eo.upload.global.choose.single</button>\r\n      <button (click)=\"proceedWithSelectedTarget(true)\" class=\"primary\" translate>eo.upload.global.choose.multi</button>\r\n    </div>\r\n  </div>\r\n\r\n  <!-- invalid input dialog -->\r\n  <div class=\"batch-dialog\" *ngIf=\"hasValidUploadTargets && invalidInput\">\r\n\r\n    <h2 translate>eo.upload.global.invalid.title</h2>\r\n    <p translate>eo.upload.global.invalid.message</p>\r\n    <div class=\"actions\">\r\n      <button (click)=\"close()\" translate>eo.upload.global.close</button>\r\n    </div>\r\n  </div>\r\n\r\n  <!-- no upload targets available -->\r\n  <div class=\"batch-dialog\" *ngIf=\"!hasValidUploadTargets\">\r\n\r\n    <h2 translate>eo.upload.global.notarget.title</h2>\r\n    <p translate>eo.upload.global.notarget.message</p>\r\n    <div class=\"actions\">\r\n      <button (click)=\"close()\" translate>eo.upload.global.close</button>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"contents\" *ngIf=\"hasValidUploadTargets && !invalidInput && !selectedUploadTarget && !isUploading\">\r\n\r\n    <!-- list of available upload targets -->\r\n    <div class=\"targets\">\r\n\r\n      <div class=\"target-list\">\r\n\r\n        <div class=\"upload-target\" *ngFor=\"let t of validUploadTargets; trackBy: targetTrackByFn\"\r\n             (click)=\"proceedWithUpload(t)\"\r\n             [ngSwitch]=\"t.type\">\r\n\r\n          <!-- upload to root -->\r\n          <ng-container *ngSwitchCase=\"'root'\" >\r\n            <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document.svg'\"></eo-icon>\r\n            <div class=\"upload-target-general\">\r\n              <div class=\"name\" translate>eo.upload.global.root.title</div>\r\n              <div class=\"description\" translate>eo.upload.global.root.description</div>\r\n            </div>\r\n          </ng-container>\r\n\r\n          <!-- replace file of a specific dms object -->\r\n          <ng-container *ngSwitchCase=\"'object'\">\r\n            <eo-icon [iconSrc]=\"'assets/_default/svg/ic_document_file.svg'\"></eo-icon>\r\n            <div class=\"upload-target-replace\">\r\n              <div class=\"name\" translate>eo.upload.global.object.title</div>\r\n              <div class=\"description\">{{t.description}}</div>\r\n            </div>\r\n          </ng-container>\r\n\r\n          <!-- add new files to a context folder -->\r\n          <ng-container *ngSwitchCase=\"'context'\">\r\n            <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\r\n            <div class=\"upload-target-context\">\r\n              <div class=\"name\">{{'eo.upload.global.context.title'|translate:({context:t.referenceObject.type.label})}}</div>\r\n              <div class=\"description\">{{t.description}}</div>\r\n            </div>\r\n          </ng-container>\r\n\r\n          <!-- add new files to a context folder structure tree entry -->\r\n          <ng-container *ngSwitchCase=\"'contexttree'\">\r\n            <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\r\n            <div class=\"upload-target-contexttree\">\r\n              <div class=\"name\">{{'eo.add.title.location.subfolder'|translate: ({folder: t.subFolder.name})}}</div>\r\n            </div>\r\n          </ng-container>\r\n\r\n          <!-- custom upload target (e.g. from plugin component) -->\r\n          <ng-container *ngSwitchCase=\"'custom'\">\r\n            <eo-icon [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\r\n            <div class=\"upload-target-custom\">\r\n              <div class=\"name\">{{t.name}}</div>\r\n              <div class=\"description\">{{t.description}}</div>\r\n            </div>\r\n          </ng-container>\r\n        </div>\r\n\r\n      </div>\r\n\r\n    </div>\r\n\r\n    <!-- list of files dragged to the component -->\r\n    <div class=\"files\">\r\n      <div class=\"files-list\">\r\n        <div class=\"file-item\" *ngFor=\"let i of queue; trackBy: trackByFn\">\r\n          <div>\r\n            <div class=\"name\">{{i.name}}</div>\r\n            <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span><span class=\"desc-text\">&nbsp;{{i.type}}</span></div>\r\n          </div>\r\n          <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n  </div>\r\n\r\n  <div class=\"loading\" *ngIf=\"isUploading\"><eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner></div>\r\n\r\n\r\n</div>\r\n","import {Component, HostBinding, HostListener, OnInit} from '@angular/core';\r\nimport {Router, NavigationEnd} from '@angular/router';\r\nimport {Location} from '@angular/common';\r\nimport {GlobalShortcutComponent} from '../shortcuts/global-shortcut-component.interface';\r\nimport {\r\n  UploadRegistryService,\r\n  Capabilities,\r\n  CapabilitiesService,\r\n  UploadTarget,\r\n  UserService,\r\n  AuthService,\r\n  EoUser,\r\n  NotificationsService,\r\n  Config,\r\n  TranslateService, EnvironmentEnaio\r\n} from '@eo-sdk/core';\r\nimport { PendingChangesService } from '../../eo-framework-core/pending-changes/pending-changes.service';\r\n\r\n@Component({\r\n  selector: 'eo-frame',\r\n  templateUrl: './frame.component.html',\r\n  styleUrls: ['./frame.component.scss']\r\n})\r\nexport class FrameComponent implements OnInit {\r\n\r\n\r\n  @HostBinding('class.dashboard') transparentBar = false;\r\n  @HostBinding('class.view-no-bar') noBar = 0;\r\n  @HostBinding('class.view-no-header') noHeader = 0;\r\n  @HostBinding('class.object-state') isObjectState = true;\r\n\r\n  initError: any;\r\n  authenticated = false;\r\n  dir = 'ltr'; // default direction - Left To Right\r\n  isMobileEnv: boolean = EnvironmentEnaio.isMobileEnvironment();\r\n  capabilities: Capabilities;\r\n  docu: {link: string, label: string};\r\n  user: EoUser\r\n\r\n  // shortcut actions\r\n  shortcuts: GlobalShortcutComponent = {\r\n    id: 'eo.app',\r\n    label: this.translate.instant('eo.shortcuts.general.title'),\r\n    labelKey: 'eo.shortcuts.general.title',\r\n    actions: [\r\n      {\r\n        name: this.translate.instant('eo.shortcuts.action.add'),\r\n        nameKey: 'eo.shortcuts.action.add',\r\n        shortcut: 'C',\r\n        onExecuteAction: () => {\r\n          this.router.navigate([{outlets: {modal: 'add'}}]);\r\n        },\r\n        isHidden: () => {\r\n          return this.capabilities ? !this.capabilities.intray : true;\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.shortcuts.action.search'),\r\n        nameKey: 'eo.shortcuts.action.search',\r\n        shortcut: 'F',\r\n        onExecuteAction: () => {\r\n          this.router.navigate([{outlets: {modal: 'search'}}]);\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.shortcuts.action.logout'),\r\n        nameKey: 'eo.shortcuts.action.logout',\r\n        shortcut: 'L',\r\n        onExecuteAction: () => {\r\n          this.router.navigate([{outlets: {modal: null, primary: ['enter', {logout: true}]}}]);\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.shortcuts.action.adjust.view'),\r\n        nameKey: 'eo.shortcuts.action.adjust.view',\r\n        shortcut: 'V',\r\n        onExecuteAction: () => this.adjustView(),\r\n        isHidden: () => {\r\n          return this.transparentBar;\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.sidebar.help.manual'),\r\n        nameKey: 'eo.sidebar.help.manual',\r\n        shortcut: 'D',\r\n        onExecuteAction: () => {\r\n          window.open(this.docu.link);\r\n        },\r\n      }\r\n    ]\r\n  };\r\n  // navigation shortcuts\r\n  navShortcuts: GlobalShortcutComponent = {\r\n    id: 'eo.app.nav',\r\n    label: this.translate.instant('eo.view.navigation.title'),\r\n    labelKey: 'eo.view.navigation.title',\r\n    actions: [\r\n      {\r\n        name: this.translate.instant('eo.shortcuts.action.dashboard'),\r\n        nameKey: 'eo.shortcuts.action.dashboard',\r\n        shortcut: '0',\r\n        onExecuteAction: () => {\r\n          this.router.navigateByUrl('/dashboard');\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.view.navigation.inbox'),\r\n        nameKey: 'eo.view.navigation.inbox',\r\n        shortcut: '1',\r\n        onExecuteAction: () => {\r\n          this.router.navigateByUrl('/inbox');\r\n        },\r\n        isHidden: () => {\r\n          return this.capabilities ? !this.capabilities.inbox : true;\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.view.navigation.prepare'),\r\n        nameKey: 'eo.view.navigation.prepare',\r\n        shortcut: '2',\r\n        onExecuteAction: () => {\r\n          this.router.navigateByUrl('/prepare');\r\n        },\r\n        isHidden: () => {\r\n          return this.capabilities ? !this.capabilities.intray : true;\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.view.navigation.favorites'),\r\n        nameKey: 'eo.view.navigation.favorites',\r\n        shortcut: '3',\r\n        onExecuteAction: () => {\r\n          this.router.navigateByUrl('/favorites');\r\n        },\r\n        isHidden: () => {\r\n          return this.capabilities ? !this.capabilities.favorites : true;\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.bar.button.settings.title'),\r\n        nameKey: 'eo.bar.button.settings.title',\r\n        shortcut: '4',\r\n        onExecuteAction: () => {\r\n          this.router.navigateByUrl('/settings');\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.view.navigation.process'),\r\n        nameKey: 'eo.view.navigation.process',\r\n        shortcut: '5',\r\n        onExecuteAction: () => {\r\n          this.router.navigateByUrl('/process');\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.view.navigation.notifications'),\r\n        nameKey: 'eo.view.navigation.notifications',\r\n        shortcut: '6',\r\n        onExecuteAction: () => {\r\n          this.router.navigateByUrl('/notifications');\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.view.navigation.storedqueries'),\r\n        nameKey: 'eo.view.navigation.storedqueries',\r\n        shortcut: '7',\r\n        onExecuteAction: () => {\r\n          this.router.navigateByUrl('/stored-queries');\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.view.navigation.recyclebin'),\r\n        nameKey: 'eo.view.navigation.recyclebin',\r\n        shortcut: '8',\r\n        onExecuteAction: () => {\r\n          this.router.navigateByUrl('/recyclebin');\r\n        }\r\n      },\r\n    ]\r\n  };\r\n\r\n\r\n  // @HostListener allows us to also guard against browser refresh, close, etc.\r\n  @HostListener('window:beforeunload', ['$event'])\r\n  unloadNotification($event: any) {\r\n    return !this.pendingChanges.check();\r\n  }\r\n\r\n  @HostBinding('attr.data-roles') roles = '';\r\n\r\n  constructor(private notify: NotificationsService,\r\n              private userService: UserService,\r\n              private router: Router,\r\n              private config: Config,\r\n              private location: Location,\r\n              public translate: TranslateService,\r\n              private authService: AuthService,\r\n              private pendingChanges: PendingChangesService,\r\n              private capabilitiesService: CapabilitiesService,\r\n              private uploadRegistry: UploadRegistryService) {\r\n\r\n    // this.capabilities = this.capabilitiesService.getCapabilities();\r\n\r\n    // Initialization of the core components is done, so we check its state\r\n    // Any errors during global initialization?\r\n    // if (this.init.getState().error !== null) {\r\n    //   this.initError = {\r\n    //     cause: this.init.getState().error\r\n    //   }\r\n    // }\r\n\r\n    this.userService\r\n      .user$\r\n      .subscribe((user: EoUser) => {\r\n        this.dir = user ? user.uiDirection : 'ltr';\r\n        this.roles = user?.roles?.map(r => r.name).join(';') || '';\r\n        this.user = user;\r\n      });\r\n\r\n    this.router\r\n      .events\r\n      .subscribe(event => {\r\n        if (event instanceof NavigationEnd) {\r\n          this.setStyle();\r\n        }\r\n      });\r\n\r\n    this.authService\r\n      .authenticated$\r\n      .subscribe(authenticated => setTimeout(() => {\r\n        this.authenticated = authenticated;\r\n        // fetch capabilities again once a user is authenticated\r\n        if (authenticated) {\r\n          this.capabilities = this.capabilitiesService.getCapabilities();\r\n        }\r\n      }));\r\n\r\n    // add root upload target\r\n    let rootTarget = new UploadTarget('root', UploadTarget.ROOT);\r\n    rootTarget.onUploadSuccess = () => this.router.navigate(['/prepare']);\r\n    this.uploadRegistry.register(rootTarget);\r\n\r\n    this.setStyle();\r\n  }\r\n\r\n  getDocumentation() {\r\n    this.userService\r\n      .user$\r\n      .subscribe(data => {\r\n        const docu = this.config.getRaw('about.docu');\r\n        const link = docu.link.replace('###userLang###', data?.userSettings?.clientlocale?.substring(0, 2) || this.user?.getClientLocale());\r\n        this.docu = {...docu, link};\r\n      })\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.getDocumentation();\r\n  }\r\n\r\n  private setStyle() {\r\n    this.transparentBar = !!this.location.path().match(/\\/dashboard|\\/enter/);\r\n    this.isObjectState = !!this.location.path().match(/\\/object\\//);\r\n  }\r\n\r\n  adjustView() {\r\n    this.noBar = (this.noBar + 1) % 3;\r\n    this.noHeader = this.noBar === 2 ? 1 : 0;\r\n  }\r\n}\r\n\r\n","<!-- global upload component -->\r\n<eo-upload-overlay *ngIf=\"authenticated && capabilities?.intray\"></eo-upload-overlay>\r\n\r\n<!-- main application skeleton -->\r\n<div class=\"application\" [dir]=\"dir\" [eoShortcuts]=\"navShortcuts\">\r\n\r\n  <div class=\"app\" *ngIf=\"!initError\" [eoShortcuts]=\"shortcuts\">\r\n    <eo-app-bar [transparent]=\"transparentBar\" *ngIf=\"authenticated\">\r\n      <eo-sidebar-plugin class=\"navi\" [type]=\"'sidebar-navigation'\"></eo-sidebar-plugin>\r\n      <eo-sidebar-plugin class=\"help\" [type]=\"'sidebar-help'\"></eo-sidebar-plugin>\r\n      <eo-sidebar-plugin class=\"profile\" [type]=\"'sidebar-profile'\"></eo-sidebar-plugin>\r\n    </eo-app-bar>\r\n    <div class=\"eo-app-content\">\r\n      <router-outlet></router-outlet>\r\n    </div>\r\n  </div>\r\n\r\n  <!-- app init failed notification -->\r\n  <div class=\"init-error\" *ngIf=\"initError\">\r\n    <eo-icon [iconSrc]=\"'assets/_default/svg/ic_error.svg'\"></eo-icon>\r\n    <div class=\"message\">\r\n      <div translate>eo.app.init.fail.title</div>\r\n      <div class=\"cause\" translate>eo.app.init.fail.message</div>\r\n      <div class=\"cause error\">{{initError.cause}}</div>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"overlay\">\r\n    <!--<ng-progress [positionUsing]=\"'marginLeft'\" [minimum]=\"0.3\" [maximum]=\"1\"-->\r\n    <!--[speed]=\"300\" [showSpinner]=\"false\"-->\r\n    <!--[direction]=\"dir === 'rtl' ? 'rightToLeftIncreased' : 'leftToRightIncreased'\"-->\r\n    <!--[color]=\"'#bb3f5a'\" [trickleSpeed]=\"300\" [thick]=\"true\" [ease]=\"'linear'\"-->\r\n    <!--&gt;</ng-progress>-->\r\n  </div>\r\n  <router-outlet name=\"modal\"></router-outlet>\r\n  <eo-global-shortcuts *ngIf=\"authenticated && !isMobileEnv\"></eo-global-shortcuts>\r\n  <eo-action-menu></eo-action-menu>\r\n  <section #externalDialog></section>\r\n</div>\r\n","import {Component, OnInit, Input} from '@angular/core';\r\nimport {InboxItem} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-duetimeInfo',\r\n  templateUrl: './duetimeInfo.component.html',\r\n  styleUrls: ['./duetimeInfo.component.scss']\r\n})\r\nexport class DuetimeInfoComponent implements OnInit {\r\n\r\n  _item: InboxItem;\r\n  isOverDue: boolean;\r\n  @Input()\r\n  set item(item: InboxItem) {\r\n    this._item = item;\r\n    this.isOverDue = item.duetime && item.isOverdue();\r\n  }\r\n\r\n  get item(): InboxItem {\r\n    return this._item;\r\n  }\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n}\r\n","<ng-container *ngIf=\"isOverDue; else notOverDue\">\r\n  <div class=\"notice duetime pastDue\"\r\n    [translateParams]=\"{date: item?.duetime | localeDate}\"\r\n    translate>eo.process.task.overdue</div>\r\n</ng-container>\r\n  \r\n<ng-template #notOverDue>\r\n  <div class=\"notice duetime\"\r\n    [translateParams]=\"{date: item?.duetime | localeDate}\"\r\n    translate>eo.process.task.due</div>\r\n</ng-template>","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {DmsObjectHistoryEntry, WorkItemHistoryEntry} from '@eo-sdk/core';\r\n\r\n@Pipe({\r\n  name: 'historyFilter'\r\n})\r\nexport class HistoryFilterPipe implements PipeTransform {\r\n\r\n  transform(value: any[], term?: string): any {\r\n    if (!value || !term) {\r\n      return value;\r\n    }\r\n\r\n    const searchTerm = term.toLowerCase();\r\n    return value.filter((item: WorkItemHistoryEntry & DmsObjectHistoryEntry) => {\r\n\r\n      return (this.check(item, 'title') && item.title.toLowerCase().includes(searchTerm)) ||\r\n\r\n        (this.check(item, 'description') && item.description.toLowerCase().includes(searchTerm)) ||\r\n\r\n        (this.check(item, 'performer') && item.performer.some(u => u.label.toLowerCase().includes(searchTerm))) ||\r\n\r\n        (this.check(item.user, 'name') && item.user.name.toLowerCase().includes(searchTerm)) ||\r\n\r\n        (this.check(item.user, 'lastname') && item.user.lastname.toLowerCase().includes(searchTerm)) ||\r\n\r\n        (this.check(item.user, 'firstname') && item.user.firstname.toLowerCase().includes(searchTerm)) ||\r\n\r\n        (this.check(item.parameter, 'processName') && item.parameter.processName.toLowerCase().includes(searchTerm)) ||\r\n\r\n        (this.check(item.parameter, 'activityName') && item.parameter.activityName.toLowerCase().includes(searchTerm));\r\n    });\r\n  }\r\n\r\n\r\n  check(item, leaf) {\r\n    return (item && item[leaf] && item[leaf].length > 0)\r\n  }\r\n}\r\n","import {Component, Input, ChangeDetectionStrategy} from '@angular/core';\r\nimport {WorkItemHistoryEntry} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-process-history',\r\n  templateUrl: './process-history.component.html',\r\n  styleUrls: ['./process-history.component.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ProcessHistoryComponent {\r\n\r\n  @Input() history: WorkItemHistoryEntry[];\r\n  filterterm: string;\r\n\r\n  trackByIndex(index, item) {\r\n    return index;\r\n  }\r\n}\r\n","<div class=\"process-history\">\r\n\r\n  <div class=\"filter\">\r\n    <div class=\"input\" [ngClass]=\"{inactive: !history?.length}\">\r\n      <eo-icon [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"></eo-icon>\r\n      <input type=\"text\" [ngModelOptions]=\"{standalone: true}\" [(ngModel)]=\"filterterm\">\r\n\r\n    </div>\r\n    <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"filterterm = null\" *ngIf=\"filterterm\"></eo-icon>\r\n  </div>\r\n\r\n\r\n  <ng-template #empty>\r\n    <eo-error-message [emptyState]=\"{icon: 'ic_no-file.svg', text: 'eo.timeline.empty', className: 'history empty'}\"></eo-error-message>\r\n  </ng-template>\r\n\r\n\r\n  <div class=\"history eo-timeline\" [ngClass]=\"{single: history?.length === 1}\" *ngIf=\"history?.length; else empty\">\r\n\r\n    <div class=\"timeline-entry\"\r\n         *ngFor=\"let entry of history | historyFilter:filterterm; trackBy: trackByIndex\"\r\n         [ngClass]=\"{user: entry.editor, error: entry.type === 'error' || entry?.errorType}\">\r\n\r\n      <div class=\"when\">\r\n        <div class=\"date\">{{entry.time | localeDate: 'eoShortDate'}}</div>\r\n        <div class=\"time\">{{entry.time | localeDate: 'eoShortTime'}}</div>\r\n      </div>\r\n      <div class=\"marker\">\r\n        <img *ngIf=\"entry.editor\"\r\n             title=\"{{entry.editor.lastname}}, {{entry.editor.firstname}} ({{entry.editor.name}})\"\r\n             [src]=\"entry.data?.image\">\r\n      </div>\r\n      <div class=\"what\">\r\n        <div class=\"title\">{{entry.title}}</div>\r\n\r\n        <div class=\"description\" *ngIf=\"entry.data?.periodFireTime && entry.type === 'DEADLINE_START'; else description\">\r\n          <div class=\"deadline-fire\">\r\n            <eo-icon [iconSrc]=\"'assets/_default/svg/ic_timer.svg'\"></eo-icon>\r\n            <span>{{entry.data.periodFireTime | localeDate}}</span>\r\n          </div>\r\n        </div>\r\n        <ng-template #description>\r\n          <div *ngIf=\"entry.type !== 'USERDEFINED'; else userDefined\" class=\"description\">\r\n            {{'eo.process.details.history.entry.type.' + entry.type + '.title'|translate}}\r\n          </div>\r\n\r\n          <ng-template #userDefined>\r\n            <div class=\"description\">\r\n              {{entry.description}}\r\n            </div>\r\n          </ng-template>\r\n        </ng-template>\r\n\r\n        <div class=\"performer\" *ngIf=\"entry.editor\">\r\n          <span *ngIf=\"entry.editor.lastname\">{{entry.editor.lastname}}, </span>\r\n          <span *ngIf=\"entry.editor.firstname\">{{entry.editor.firstname}}</span>\r\n          ({{entry.editor.name}})\r\n        </div>\r\n\r\n        <div class=\"meta\" *ngIf=\"entry.performer?.length\">\r\n          <span *ngFor=\"let p of entry.performer; trackBy: trackByIndex\">\r\n            {{p.label}}\r\n          </span>\r\n        </div>\r\n      </div>\r\n\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {Component, Input, Output, EventEmitter} from '@angular/core';\r\nimport {Clipboard, EnaioEvent, EventService, FileEntry} from '@eo-sdk/core';\r\nimport {FileEntryPermissions} from './file-entry-permissions.interface';\r\n\r\n\r\n\r\n@Component({\r\n  selector: 'eo-process-file',\r\n  templateUrl: './process-file.component.html',\r\n  styleUrls: ['./process-file.component.scss'],\r\n  animations: []\r\n})\r\nexport class ProcessFileComponent {\r\n\r\n  private defaultFileEntryPermissions = {add: false, remove: false};\r\n\r\n  private _processFile: FileEntry[];\r\n  private _permissions: FileEntryPermissions = this.defaultFileEntryPermissions;\r\n\r\n  @Input()\r\n  set processFile(file: FileEntry[]) {\r\n    this._processFile = file  || [];\r\n  };\r\n  get processFile() {\r\n    return this._processFile;\r\n  }\r\n  @Input()\r\n  set permissions(permission: FileEntryPermissions) {\r\n    this._permissions = permission || this.defaultFileEntryPermissions;\r\n  }\r\n  get permissions() {\r\n    return this._permissions;\r\n  }\r\n\r\n  @Input() clipboard: Clipboard;\r\n  @Input() selectedContentFileId: string;\r\n  @Input() isDisabled: boolean;\r\n  @Input() editable: boolean;\r\n\r\n  @Output() onOpenWorkItemContentInContext: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onOpenWorkItemContent: EventEmitter<FileEntry> = new EventEmitter<FileEntry>();\r\n  @Output() onRemoveWorkItemContent: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onPasteProcessFile: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n  constructor(private eventService: EventService){\r\n    this.eventService.on(EnaioEvent.PROCESS_FILE_CHANGED).subscribe(event => {\r\n      this.processFile = event.data;\r\n    });\r\n  }\r\n\r\n  openWorkItemContentInContext(file, $event) {\r\n    $event.data = file;\r\n    this.onOpenWorkItemContentInContext.emit($event);\r\n  }\r\n\r\n  openWorkItemContent(file) {\r\n    this.onOpenWorkItemContent.emit(file);\r\n  }\r\n\r\n  addFromClipboard() {\r\n    this.onPasteProcessFile.emit(true);\r\n  }\r\n\r\n  removeWorkItemContent(file, $event) {\r\n    $event.data = file;\r\n    this.onRemoveWorkItemContent.emit($event);\r\n  }\r\n\r\n  trackByIndex(index, item) {\r\n    return index;\r\n  }\r\n\r\n  hasAlreadyAllCopiedFiles() {\r\n    const attachmentIds = this.processFile.map(e => e.id);\r\n    return this.clipboard.elements.filter(e => attachmentIds.indexOf(e.id) === -1).length === 0;\r\n  }\r\n}\r\n"," <div class=\"process-files\" *ngIf=\"processFile.length; else noFile\">\r\n\r\n\r\n  <!-- section for adding new items to the work items attachments -->\r\n  <div class=\"content-paste\"\r\n       *ngIf=\"permissions.add && clipboard?.elements.length && !hasAlreadyAllCopiedFiles()\"\r\n       (click)=\"addFromClipboard()\"\r\n       [ngClass]=\"{disabled: isDisabled}\"\r\n  >\r\n    <eo-icon [iconSrc]=\"'assets/_default/svg/ic_content_paste.svg'\"></eo-icon>\r\n    <span class=\"label ct\" translate>eo.process.file.add.label</span>\r\n  </div>\r\n\r\n  <!-- list of files attached to the work item -->\r\n  <div class=\"file-item\"\r\n       *ngFor=\"let file of processFile; trackBy: trackByIndex\"\r\n       [ngClass]=\"{selected: file.id === selectedContentFileId}\"\r\n       (dblclick)=\"openWorkItemContentInContext(file, $event)\"\r\n       (click)=\"openWorkItemContent(file)\">\r\n\r\n    <eo-icon [iconSrc]=\"'assets/_default/svg/ic_attachment.svg'\"></eo-icon>\r\n    <div>\r\n      <div *ngIf=\"file.title; else tplNoTitle\" class=\"title\">{{file.title}}</div>\r\n      <ng-template #tplNoTitle>\r\n        <div class=\"title no-dms-object\" translate>eo.bpm.dmsobject.notavailable</div>\r\n      </ng-template>\r\n      <div class=\"description\">{{file.description}}</div>\r\n    </div>\r\n    <eo-icon class=\"button\"\r\n             *ngIf=\"editable && permissions.remove\"\r\n             [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\r\n             (click)=\"removeWorkItemContent(file, $event)\">\r\n    </eo-icon>\r\n  </div>\r\n\r\n</div>\r\n\r\n<!-- no files attached to the work item -->\r\n<ng-template #noFile>\r\n  <div class=\"no-file\">\r\n    <!-- section for adding new items to the work items attachments -->\r\n    <div class=\"content-paste\"\r\n         *ngIf=\"permissions.add && clipboard?.elements.length\"\r\n         (click)=\"addFromClipboard()\"\r\n         [ngClass]=\"{disabled: isDisabled}\">\r\n      <eo-icon [iconSrc]=\"'assets/_default/svg/ic_content_paste.svg'\"></eo-icon>\r\n      <span class=\"label ct\" translate>eo.process.file.add.label</span>\r\n    </div>\r\n    <div class=\"eo-error-message-wrapper\">\r\n      <eo-error-message [emptyState]=\"{icon: 'ic_no-file.svg', text: 'eo.process.file.empty.label', className: 'no-files history empty'}\">\r\n      </eo-error-message>\r\n    </div>\r\n  </div>\r\n</ng-template>\r\n\r\n","import {\r\n  AfterViewInit,\r\n  Component,\r\n  HostBinding,\r\n  Input,\r\n  OnInit,\r\n  ViewChild\r\n} from '@angular/core';\r\nimport {NavigationExtras, Router} from '@angular/router';\r\nimport {\r\n  BpmService,\r\n  Clipboard,\r\n  ClipboardAction,\r\n  ClipboardService,\r\n  EnaioEvent,\r\n  EventService,\r\n  FileEntry,\r\n  InboxItem,\r\n  InboxService,\r\n  LocalStorageService,\r\n  NotificationsService,\r\n  TranslateService,\r\n  UserService,\r\n  Utils,\r\n  WorkItem,\r\n  WorkItemAction,\r\n  WorkItemHistoryEntry\r\n} from '@eo-sdk/core';\r\nimport {Observable, Subscription} from 'rxjs';\r\nimport {catchError, map} from 'rxjs/operators';\r\nimport {EmptyState} from '../../eo-framework-core/empty-state/empty-state.interface';\r\nimport {PendingChangesService} from '../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {SelectionConfig, SelectionService} from '../../eo-framework-core/selection/selection.service';\r\nimport {FormStatusChangedEvent} from '../object-form/form-status-changed-event.interface';\r\nimport {ObjectFormOptions} from '../object-form/object-form-options.interface';\r\nimport {ObjectFormComponent} from '../object-form/object-form/object-form.component';\r\nimport {CellRenderer} from './../../eo-framework-core/api/grid.service';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {IndexData} from '../ui/indexdata-summary/indexdata-summary.component';\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-inbox-details',\r\n  templateUrl: './inbox-details.component.html',\r\n  styleUrls: ['./inbox-details.component.scss']\r\n})\r\nexport class InboxDetailsComponent  implements OnInit, AfterViewInit {\r\n  @ViewChild('bpmForm') bpmFormEl: ObjectFormComponent;\r\n\r\n  private defaultWorkItemAction: WorkItemAction;\r\n\r\n  // ID set by pendingChanges service when editing indexdata\r\n  // Used to finish the pending task when editing is done\r\n  private pendingTaskId: string;\r\n\r\n  private _item: InboxItem;\r\n  workItem: WorkItem;\r\n  history: WorkItemHistoryEntry[];\r\n  // flag indicating whether or not the work item is locked by the user\r\n  locked: boolean;\r\n  // COOL-11506\r\n  preventClickThrough: boolean;\r\n  // current clipboard contents\r\n  clipboard: Clipboard;\r\n\r\n  // used for handling SUBSCRIPTIONS and RESUBMISSIONS\r\n  settings: {\r\n    description: string;\r\n    actionTitle: string;\r\n  };\r\n  formState: FormStatusChangedEvent;\r\n  formOptions: ObjectFormOptions;\r\n  selectedContentFileId: string;\r\n  workItemIndexdata: IndexData;\r\n  performerShow: boolean;\r\n  substituteShow: boolean;\r\n  actionProcessing: Subscription | any = {closed: true};\r\n  initializing: Subscription | any = {closed: true};\r\n  filesAdding: Subscription | any = {closed: true};\r\n  loadError: boolean;\r\n  storageKeyLastItemID = 'eo.inbox.lastItemID';\r\n\r\n  @Input() plugins: any[];\r\n\r\n  @Input() emptyState: EmptyState;\r\n  @Input() applySelection: SelectionConfig;\r\n\r\n  @Input('item')\r\n  set item(i: InboxItem) {\r\n    this._item = i;\r\n    if (i) {\r\n      // reset values\r\n      this.workItem = null;\r\n      this.history = [];\r\n      this.locked = false;\r\n      setTimeout(() => this.process());\r\n    } else {\r\n      this.selection.find(this.applySelection.out).focus(null);\r\n    }\r\n  }\r\n\r\n  get item() {\r\n    return this._item;\r\n  }\r\n\r\n  @HostBinding('attr.data-type') get dataType() {\r\n    return this.item ? this.item.type : 'none';\r\n  }\r\n\r\n  constructor(\r\n    private bpmService: BpmService,\r\n    private userService: UserService,\r\n    private inboxService: InboxService,\r\n    private selection: SelectionService,\r\n    private router: Router,\r\n    private eventService: EventService,\r\n    private clipboardService: ClipboardService,\r\n    private translate: TranslateService,\r\n    private pendingChanges: PendingChangesService,\r\n    private notify: NotificationsService,\r\n    private storageService: LocalStorageService\r\n  ) {\r\n    this.defaultWorkItemAction = {\r\n      code: 0,\r\n      title: this.translate.instant('eo.process.task.actions.default.title'),\r\n      type: 'FORWARD'\r\n    };\r\n  }\r\n\r\n  refresh() {\r\n    if (this.item.type === InboxItem.TYPE_BPM) {\r\n      this.createBPMWorkItem();\r\n    } else {\r\n      this.item = this._item;\r\n    }\r\n  }\r\n\r\n  onFormStatusChanged(evt: FormStatusChangedEvent) {\r\n    this.formState = evt;\r\n    if (this.formState.dirty) {\r\n      this.startPending();\r\n    } else {\r\n      this.finishPending();\r\n    }\r\n  }\r\n\r\n  private startPending() {\r\n    // because this method will be called every time the form status changes,\r\n    // pending task will only be started once until it was finished\r\n    if (!this.pendingChanges.hasPendingTask(this.pendingTaskId || ' ')) {\r\n      this.pendingTaskId = this.pendingChanges.startTask();\r\n    }\r\n  }\r\n\r\n  private finishPending() {\r\n    this.pendingChanges.finishTask(this.pendingTaskId);\r\n  }\r\n\r\n  /**\r\n   * Process the current inbox item\r\n   */\r\n  private process(): void {\r\n    this.loadError = false;\r\n    this.initializing.closed = false;\r\n\r\n    switch (this.item.type) {\r\n      case InboxItem.TYPE_BPM: {\r\n        this.initializing = this.createBPMWorkItem();\r\n        break;\r\n      }\r\n      case InboxItem.TYPE_SUBSCRIPTION: {\r\n        this.createDMSItem('subscription');\r\n        break;\r\n      }\r\n      case InboxItem.TYPE_RESUBMISSION: {\r\n        this.createDMSItem('resubmission');\r\n        break;\r\n      }\r\n    }\r\n  }\r\n\r\n  createDMSItem(dmsType) {\r\n    this.settings = {\r\n      description: this.translate.instant(\r\n        `eo.process.details.task.${dmsType}.description`\r\n      ),\r\n      actionTitle: this.translate.instant(\r\n        `eo.process.details.button.${dmsType}.remove`\r\n      )\r\n    };\r\n    this.openWorkItemContent(this.item.target);\r\n    this.initializing.closed = true;\r\n  }\r\n\r\n  private addDefaultActionIfEmpty = (res: WorkItem): WorkItem => {\r\n    if (!res.actions?.length) {\r\n      res.actions = [this.defaultWorkItemAction];\r\n    }\r\n    return res;\r\n  }\r\n\r\n  // for items of type 'BPM' fetch work item for more informations\r\n  createBPMWorkItem() {\r\n    return this.bpmService\r\n      .getWorkItem(this.item.sourceId, this.item.id)\r\n      .pipe(map(this.addDefaultActionIfEmpty))\r\n      .subscribe(\r\n        res => {\r\n          this.workItem = res;\r\n          this.setupWorkItem();\r\n          this.setFormOptions(\r\n            this.workItem.form,\r\n            this.workItem.data,\r\n            this.workItem.actions\r\n          );\r\n          // auto-select first attached content\r\n          this.openWorkItemContent(\r\n            this.workItem.file.length ? this.workItem.file[0] : null\r\n          );\r\n        },\r\n        () => {\r\n          this.loadError = true;\r\n          this.notify.error(\r\n            this.translate.instant('eo.process.details.workitem.load.fail'),\r\n            this.translate.instant(\r\n              'eo.process.details.workitem.load.fail.description'\r\n            )\r\n          );\r\n        }\r\n      );\r\n  }\r\n\r\n  private setFormOptions(form, data, actions: WorkItemAction[]) {\r\n    if (form) {\r\n      form.situation = 'EDIT';\r\n      this.formOptions = {\r\n        ...{\r\n          formModel: form,\r\n          data: data,\r\n          actions: actions ? this.transformActions(actions) : {},\r\n          // form script will be provided with the list of file entries\r\n          // attached to the current work item\r\n          objects: this.workItem.file\r\n        }\r\n      };\r\n    } else {\r\n      this.transformActions(actions);\r\n    }\r\n  }\r\n\r\n  private updateInboxSate() {\r\n    this.inboxService.refreshInboxState();\r\n  }\r\n\r\n  private transformActions(actions) {\r\n    let transformedActions = {};\r\n    actions.forEach(a => {\r\n      if (a.feasible === undefined) {\r\n        a.feasible = true;\r\n      }\r\n      a.feasibility = value => {\r\n        if (value !== undefined) {\r\n          a.feasible = value;\r\n        }\r\n        return a.feasible;\r\n      };\r\n      transformedActions[a.code.toString()] = a;\r\n    });\r\n    return transformedActions;\r\n  }\r\n\r\n  /* Locks a work item (personalize) */\r\n  lockWorkItem() {\r\n    this.actionProcessing = this.bpmService\r\n      .lockWorkItem(this.workItem)\r\n      .pipe(map(this.addDefaultActionIfEmpty))\r\n      .subscribe(res => {\r\n        const {actions, data, form} = res;\r\n        this.workItem = res;\r\n        this.setupWorkItem();\r\n        this.setFormOptions(form, data, actions);\r\n        this.updateInboxSate();\r\n        this.eventService.trigger(EnaioEvent.INBOX_ITEM_LOCKED);\r\n      }, error => {\r\n        if (error.status === 409) {\r\n          Utils.throw(null, this.translate.instant('eo.bpm.event.script.execution.error'), this.workItem.title).call(this, {});\r\n        } else {\r\n          Utils.throw(null, this.translate.instant('eo.process.activity.lock.denied'), this.workItem.title).call(this, {});\r\n        }\r\n      });\r\n  }\r\n\r\n  /**\r\n   * Un-Locks a work item (de-personalize)\r\n   */\r\n  unlockWorkItem() {\r\n    if (!this.pendingChanges.check()) {\r\n      this.actionProcessing = this.bpmService\r\n        .unlockWorkItem(this.workItem)\r\n        .subscribe(res => {\r\n          this.workItem = res;\r\n          this.setupWorkItem();\r\n          this.updateInboxSate();\r\n          this.eventService.trigger(EnaioEvent.INBOX_ITEM_UNLOCKED);\r\n        }, Utils.throw(null, this.translate.instant('eo.process.activity.unlock.denied'), this.workItem.title));\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Executes a work items action.\r\n   * @param action The action to be executes\r\n   */\r\n  executeWorkItemAction(action: WorkItemAction) {\r\n    this.preventClickThrough = true;\r\n    setTimeout(() => {\r\n      this.preventClickThrough = false;\r\n    }, 1000);\r\n    setTimeout(() => {\r\n      if (!this.formState || !this.formState.invalid) {\r\n        if (action.url) {\r\n          // process external action by saving work item and redirect to actions url\r\n          if (this.bpmFormEl) {\r\n            this.actionProcessing = this.saveWorkItem().subscribe(() => {\r\n              this.openActionUrl(action.url);\r\n            });\r\n          } else {\r\n            this.openActionUrl(action.url);\r\n          }\r\n        } else {\r\n          if (this.bpmFormEl) {\r\n            this.workItem.data = this.bpmFormEl.getFormData();\r\n            // we need to remove pending task because the form will be destroyed without saving\r\n            this.finishPending();\r\n          }\r\n          this.bpmService\r\n            .forwardWorkItem(this.workItem, action)\r\n            .subscribe(() => {\r\n              this.notify.success(\r\n                this.translate.instant('eo.bpm.activity.forward.success'),\r\n                this.item.title\r\n              );\r\n              this.item = undefined;\r\n            }, Utils.throw(null, this.translate.instant('eo.bpm.activity.forward.error'), this.workItem.title));\r\n        }\r\n      }\r\n    }, 500);\r\n  }\r\n\r\n  private openActionUrl(url: string) {\r\n    if (url.substr(0, 4) === 'http') {\r\n      window.location.href = url;\r\n    } else {\r\n      this.router.navigateByUrl(url);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Selects a work items file entry.\r\n   * @param file FileEntry element to be selected\r\n   */\r\n  openWorkItemContent(file?: FileEntry) {\r\n    if (!file) {\r\n      this.selectedContentFileId = null;\r\n      if (this.applySelection) {\r\n        this.selection.find(this.applySelection.out).focus(null);\r\n      }\r\n    } else {\r\n      this.selectedContentFileId = file.id;\r\n      let params = {\r\n        id: file.id,\r\n        type: file.type\r\n      };\r\n      if (this.applySelection) {\r\n        this.selection.find(this.applySelection.out).focus(params);\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Opens the file (attached DMSObject) in object state\r\n   * @param file\r\n   */\r\n  openWorkItemContentInContext(evt) {\r\n    const file: FileEntry = evt.data || {};\r\n    const fileType: NavigationExtras = {queryParams: {type: file.type}};\r\n    if (evt.ctrlKey) {\r\n      window.open(CellRenderer.windowURI(this.router.createUrlTree(['object', file.id], fileType)));\r\n    } else {\r\n      this.router.navigate(['/object', file.id], fileType);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Adds clipboard content to the work item\r\n   */\r\n  addFromClipboard() {\r\n    this.bpmService\r\n      .addFileElementsFromClipboard(this.workItem, this.clipboard)\r\n      .subscribe(workItem => {\r\n        this.workItem = workItem;\r\n        this.clipboardService.clear();\r\n\r\n        if (!this.selectedContentFileId) {\r\n          // open first item when nothing is selected\r\n          this.openWorkItemContent(this.workItem.file[0]);\r\n        }\r\n      }, Utils.throw(null, this.translate.instant('eo.process.file.notification.error'), this.translate.instant('eo.process.file.notification.add.message')));\r\n  }\r\n\r\n  /**\r\n   * Remove a file entry from the work items file\r\n   * @param file The file entry to be removed\r\n   * @param evt The click event\r\n   */\r\n  removeWorkItemContent(evt) {\r\n    evt.preventDefault();\r\n    evt.stopPropagation();\r\n    if (evt.data) {\r\n      const file: FileEntry = evt.data;\r\n      this.bpmService\r\n        .removeFileElement(this.workItem.processId, this.workItem.id, file.id)\r\n        .subscribe(() => {\r\n          this.workItem.file = this.workItem.file.filter(f => f.id !== file.id);\r\n          if (this.selectedContentFileId === file.id) {\r\n            this.openWorkItemContent(\r\n              this.workItem.file.length ? this.workItem.file[0] : null\r\n            );\r\n          }\r\n        }, Utils.throw(null, this.translate.instant('eo.process.file.notification.remove'), this.translate.instant('eo.process.file.notification.remove.message')));\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Save the work items form data\r\n   */\r\n  saveWorkItemData() {\r\n    setTimeout(() => {\r\n      if (this.formState && !this.formState.invalid && this.formState.dirty) {\r\n        this.actionProcessing = this.saveWorkItem().subscribe(() => {\r\n          this.finishPending();\r\n          this.updateInboxSate();\r\n        });\r\n      }\r\n    }, 500);\r\n  }\r\n\r\n  prepareNewWorkItem(workItem: WorkItem): boolean {\r\n    this.workItem = workItem;\r\n    const {actions, form, data} = this.workItem;\r\n    this.setupWorkItem();\r\n    this.setFormOptions(form, data, actions);\r\n    this.notify.success(\r\n      this.translate.instant('eo.bpm.activity.indexdata.save.success')\r\n    );\r\n    return true;\r\n  }\r\n\r\n  /**\r\n   * Saves the current work item\r\n   */\r\n  private saveWorkItem(): Observable<any> {\r\n    this.workItem.data = this.bpmFormEl.getFormData();\r\n    return this.bpmService.saveWorkItem(this.workItem).pipe(\r\n      map(this.addDefaultActionIfEmpty),\r\n      map(workItem => this.prepareNewWorkItem(workItem)),\r\n      catchError(\r\n        Utils.catch(\r\n          null,\r\n          this.translate.instant('eo.bpm.activity.indexdata.save.error')\r\n        )\r\n      )\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Removes the current item from the inbox.\r\n   */\r\n  confirmInboxItem() {\r\n    this.preventClickThrough = true;\r\n    setTimeout(() => {\r\n      this.preventClickThrough = false;\r\n    }, 1000);\r\n    this.actionProcessing = this.inboxService\r\n      .removeItem(this.item)\r\n      .subscribe(() => {\r\n        this.notify.success(\r\n          this.translate.instant('eo.inbox.activity.confirm.success')\r\n        );\r\n        this.eventService.trigger(EnaioEvent.INBOX_ITEM_CONFIRMED, this.item);\r\n        this.item = undefined;\r\n        this.inboxService.refreshInboxState();\r\n      }, Utils.catch(null, this.translate.instant('eo.process.item.remove.fail')));\r\n  }\r\n\r\n  /**\r\n   * Sets up state and data for the current work item.\r\n   */\r\n  private setupWorkItem() {\r\n    this.locked = this.workItem.state === 'PERSON';\r\n    this.preventClickThrough = true;\r\n    setTimeout(() => this.preventClickThrough = false, 1000);\r\n    const {form, data} = this.workItem;\r\n    const workItem = {form, data};\r\n    this.workItemIndexdata = form && data ? workItem : null;\r\n\r\n    // fetch history\r\n    this.bpmService\r\n      .getProcessHistory(this.workItem.processId)\r\n      .pipe(map(res => {\r\n        res.forEach(item => {\r\n          if (item.editor) {\r\n            item.data.image = this.userService.getUserImageUri(item.editor.id);\r\n          }\r\n        });\r\n        // sort by number because this is the auto-incrementing\r\n        // index of added history entries\r\n        this.history = res.sort((a, b) => b.number - a.number);\r\n      }))\r\n      .subscribe();\r\n  }\r\n\r\n  trackByCode(index, item) {\r\n    return item.code;\r\n  }\r\n\r\n  trackById(index, item) {\r\n    return item.id;\r\n  }\r\n\r\n  trackByIndex(index, item) {\r\n    return index;\r\n  }\r\n\r\n  ngOnInit() {\r\n    // subscribe for changes to the clipboard to enable adding contents to the work item\r\n    this.clipboardService.clipboard$\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe(\r\n        (clipboard: Clipboard) =>\r\n        (this.clipboard =\r\n          clipboard.action === ClipboardAction.COPY ? clipboard : null)\r\n      );\r\n    // component is only interested in copied items\r\n\r\n    if (this.applySelection) {\r\n      this.selection\r\n        .find(this.applySelection.in)\r\n        .focus$.pipe(untilDestroyed(this))\r\n        .subscribe((item: any) => {\r\n          if (item) {\r\n            this.item = item;\r\n            this.storageService.setItem(this.storageKeyLastItemID, this.item.id);\r\n          }\r\n        });\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n  }\r\n}\r\n","<div class=\"inbox-details\" *ngIf=\"item; else noItem\" [ngClass]=\"{bpm: item.type === 'BPM'}\">\r\n\r\n  <div class=\"eo-head\" [ngClass]=\"{'eo-head-tabs': item.type === 'BPM'}\">\r\n    <header class=\"eo-header\">\r\n      <eo-icon class=\"eo-header-icon\" *ngIf=\"!item.iconId\" title=\"{{item?.type}}\"\r\n        [iconSrc]=\"'assets/_default/svg/ic_loop.svg'\"></eo-icon>\r\n      <eo-icon class=\"eo-header-icon\" *ngIf=\"item.iconId\" title=\"{{item?.type}}\" [iconId]=\"item.iconId\"></eo-icon>\r\n      <div class=\"eo-header-info\">\r\n        <h2 class=\"eo-header-title\">{{item.title}}</h2>\r\n        <h3 *ngIf=\"item.description\" class=\"eo-header-subtitle\">{{item.description}}</h3>\r\n        <h3 *ngIf=\"workItem && !item.description\" class=\"eo-header-subtitle\">{{workItem.processTitle ? workItem.processTitle : workItem.qmodelname}}</h3>\r\n      </div>\r\n      <div class=\"eo-header-actions\">\r\n        <eo-icon class=\"button refresh-button\" *ngIf=\"initializing.closed\" (click)=\"refresh()\"\r\n          [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n      </div>\r\n    </header>\r\n  </div>\r\n\r\n  <div class=\"eo-body\" *ngIf=\"initializing.closed\">\r\n\r\n    <div class=\"load-error\" *ngIf=\"loadError\">\r\n      <eo-error-message></eo-error-message>\r\n    </div>\r\n\r\n    <!-- details for BPM items -->\r\n    <yvc-tabs *ngIf=\"item.type === 'BPM'; else dmsTask\" layoutSettingsID=\"eo.inbox.details.tabs\">\r\n      <!-- task -->\r\n      <ng-template [yvcTab]=\"{id: 'task', label: 'eo.process.details.tab.task' | translate}\">\r\n        <div class=\"tab-panel\">\r\n          <div class=\"panel task\">\r\n\r\n            <div class=\"process-description\" *ngIf=\"workItem?.description\">\r\n              <h3 translate>eo.process.details.tab.task.description</h3>\r\n              <div>{{workItem.description}}</div>\r\n            </div>\r\n\r\n            <eo-duetimeInfo *ngIf=\"item?.duetime\" [item]=\"item\"></eo-duetimeInfo>\r\n\r\n            <div class=\"process-performer\" *ngIf=\"workItem?.inSubstituteOf?.length\">\r\n              <div class=\"head\" [ngClass]=\"{performerShow: substituteShow}\">\r\n                <div class=\"label\" translate>eo.process.substitute</div>\r\n                <div class=\"action\" (click)=\"substituteShow = !substituteShow\">\r\n                  <div class=\"count\">{{workItem.inSubstituteOf.length}}</div>\r\n                  <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\r\n                </div>\r\n              </div>\r\n              <div class=\"body\" *ngIf=\"substituteShow\">\r\n                <div class=\"performer\" *ngFor=\"let u of workItem.inSubstituteOf\">\r\n                  <div class=\"icon-wrap\">\r\n                    <eo-icon [iconSrc]=\"'assets/_default/svg/ic_orga_user.svg'\"></eo-icon>\r\n                  </div>\r\n                  <div class=\"name\">{{u.firstname}} {{u.lastname}} <span class=\"qname\">{{u.name}}</span></div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            <ng-container *ngIf=\"locked; else unlocked\">\r\n\r\n              <div class=\"process-form\">\r\n                <eo-object-form [formOptions]=\"formOptions\" *ngIf=\"workItem?.form\"\r\n                  (statusChanged)=\"onFormStatusChanged($event)\" #bpmForm></eo-object-form>\r\n              </div>\r\n            </ng-container>\r\n\r\n            <ng-template #unlocked>\r\n\r\n              <div class=\"notice\" translate>eo.process.task.continue</div>\r\n\r\n              <div class=\"process-performer\" *ngIf=\"workItem\">\r\n                <div class=\"head\" [ngClass]=\"{performerShow: performerShow}\">\r\n                  <div class=\"label\" translate>eo.process.recipients</div>\r\n                  <div class=\"action\" (click)=\"performerShow = !performerShow\">\r\n                    <div class=\"count\">{{workItem.performer.users.length + workItem.performer.roles.length +\r\n                      workItem.performer.groups.length}}</div>\r\n                    <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\r\n                  </div>\r\n                </div>\r\n                <div class=\"body\" *ngIf=\"performerShow\">\r\n\r\n                  <div class=\"performer\" *ngFor=\"let g of workItem.performer.groups\">\r\n                    <div class=\"icon-wrap\">\r\n                      <eo-icon [iconSrc]=\"'assets/_default/svg/ic_orga_group.svg'\"></eo-icon>\r\n                    </div>\r\n                    <div class=\"name\">{{g.name}}</div>\r\n                  </div>\r\n\r\n                  <div class=\"performer\" *ngFor=\"let r of workItem.performer.roles\">\r\n                    <div class=\"icon-wrap\">\r\n                      <eo-icon [iconSrc]=\"'assets/_default/svg/ic_orga_role.svg'\"></eo-icon>\r\n                    </div>\r\n                    <div class=\"name\">{{r.name}}</div>\r\n                  </div>\r\n\r\n                  <div class=\"performer\" *ngFor=\"let u of workItem.performer.users\">\r\n                    <div class=\"icon-wrap\">\r\n                      <eo-icon [iconSrc]=\"'assets/_default/svg/ic_orga_user.svg'\"></eo-icon>\r\n                    </div>\r\n                    <div class=\"name\">{{u.firstname}} {{u.lastname}} <span class=\"qname\">{{u.name}}</span></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div class=\"indexdata\" *ngIf=\"workItemIndexdata?.data\">\r\n                <h3 translate>eo.process.details.tab.task.indexdata</h3>\r\n                <eo-indexdata-summary [indexdata]=\"workItemIndexdata\"></eo-indexdata-summary>\r\n              </div>\r\n\r\n            </ng-template>\r\n          </div>\r\n\r\n          <ng-container *ngIf=\"locked; else unlockedActions\">\r\n            <div class=\"process-actions\" [ngClass]=\"{disabled: !actionProcessing.closed}\">\r\n\r\n              <div class=\"secondary\">\r\n                <button class=\"btn-unlock\" (click)=\"unlockWorkItem()\" translate>eo.process.depersonalize</button>\r\n                <button class=\"btn-save\" (click)=\"saveWorkItemData()\"\r\n                  *ngIf=\"workItem?.form && !formState?.invalid && formState?.dirty\"\r\n                  translate>eo.object.indexdata.save</button>\r\n              </div>\r\n\r\n              <div class=\"primary\" [ngClass]=\"{disabled: preventClickThrough}\">\r\n                <button class=\"primary btn-execute\" *ngFor=\"let action of workItem.actions; trackBy: trackByCode\"\r\n                  (click)=\"executeWorkItemAction(action)\" [ngClass]=\"{ext: action.url}\"\r\n                  [disabled]=\"(!!formState && formState?.invalid) || !action.feasible\">{{action.title}}</button>\r\n              </div>\r\n            </div>\r\n          </ng-container>\r\n\r\n          <ng-template #unlockedActions>\r\n            <div class=\"process-actions\" [ngClass]=\"{disabled: !actionProcessing.closed || !workItem}\">\r\n              <div class=\"primary\">\r\n                <button class=\"primary btn-lock\" (click)=\"lockWorkItem()\" translate>eo.process.personalize</button>\r\n              </div>\r\n            </div>\r\n          </ng-template>\r\n\r\n        </div>\r\n      </ng-template>\r\n\r\n      <!-- history -->\r\n      <ng-template [yvcTab]=\"{id: 'history', label: 'eo.process.details.tab.progress' | translate}\">\r\n        <div class=\"tab-panel\">\r\n          <div class=\"panel process-history\">\r\n            <eo-process-history [history]=\"history\"></eo-process-history>\r\n          </div>\r\n        </div>\r\n      </ng-template>\r\n\r\n      <!-- attachments -->\r\n      <ng-template [yvcTab]=\"{id: 'file', label: 'eo.process.details.tab.attachments' | translate}\">\r\n        <div class=\"tab-panel\">\r\n          <div class=\"panel process-files\">\r\n            <eo-process-file [processFile]=\"workItem?.file\" [permissions]=\"workItem?.fileEntryPermissions\"\r\n              [isDisabled]=\"!filesAdding.closed\" [clipboard]=\"clipboard\" [editable]=\"true\"\r\n              [selectedContentFileId]=\"selectedContentFileId\"\r\n              (onOpenWorkItemContentInContext)=\"openWorkItemContentInContext($event)\"\r\n              (onOpenWorkItemContent)=\"openWorkItemContent($event)\"\r\n              (onRemoveWorkItemContent)=\"removeWorkItemContent($event)\" (onPasteProcessFile)=\"addFromClipboard()\">\r\n            </eo-process-file>\r\n          </div>\r\n        </div>\r\n      </ng-template>\r\n\r\n      <!-- plugin tabs -->\r\n      <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\r\n        <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\r\n      </ng-template>\r\n    </yvc-tabs>\r\n\r\n    <!-- body when we have a subscription or a resubmission -->\r\n    <ng-template #dmsTask>\r\n      <div class=\"tab-panel\">\r\n        <div class=\"panel\">\r\n          <div class=\"process-description\">\r\n            <h3 translate>eo.process.details.tab.task.description</h3>\r\n            <div>{{settings?.description}}</div>\r\n          </div>\r\n        </div>\r\n\r\n        <!-- actions for the current process item -->\r\n        <div class=\"process-actions\" [ngClass]=\"{disabled: !actionProcessing.closed}\">\r\n          <div class=\"primary\">\r\n            <button class=\"primary btn-confirm\" [disabled]=\"preventClickThrough\"\r\n              (click)=\"confirmInboxItem()\">{{settings?.actionTitle}}</button>\r\n          </div>\r\n        </div>\r\n\r\n      </div>\r\n    </ng-template>\r\n\r\n  </div>\r\n</div>\r\n<ng-template #noItem>\r\n  <eo-error-message [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\r\n    <ng-content select=\".error\"></ng-content>\r\n  </eo-error-message>\r\n</ng-template>\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport {IVisibleFilter} from './history-filter';\r\n\r\n@Component({\r\n  selector: 'eo-history-filter',\r\n  templateUrl: './history-filter.component.html',\r\n  styleUrls: ['./history-filter.component.scss']\r\n})\r\nexport class HistoryFilterComponent {\r\n\r\n  filterterm: string;\r\n\r\n  @Input() visibleFilter: IVisibleFilter = {select: true, input: true};\r\n  @Input() filters: any;\r\n  @Output() onToggleFilter: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  @Input() history: any;\r\n  @Output() termChange = new EventEmitter<any>();\r\n\r\n  @Input()\r\n  get term() {\r\n    return this.filterterm;\r\n  }\r\n\r\n  set term(val) {\r\n    this.filterterm = val;\r\n    this.termChange.emit(this.filterterm);\r\n  }\r\n\r\n  typeinput(event) {\r\n    this.term = event.target.value;\r\n  }\r\n\r\n  resetFilter() {\r\n    this.filterterm = null;\r\n    this.term = null;\r\n  }\r\n\r\n  hasFilter(filter: string) {\r\n    return this.filters.indexOf(filter) !== -1;\r\n  }\r\n\r\n  toggleFilter(type) {\r\n    const filter = this.hasFilter(type);\r\n    this.onToggleFilter.emit([type, filter]);\r\n  }\r\n\r\n}\r\n","<section class=\"history-filter\">\r\n\r\n  <div class=\"filter history-filter__input\" *ngIf=\"visibleFilter.input\">\r\n    <div class=\"filter__input\" [ngClass]=\"{inactive: !history?.length}\">\r\n      <eo-icon class=\"filter__input--icon\"[iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"></eo-icon>\r\n      <input class=\"filter__input--field\" type=\"text\" (keyup)=\"typeinput($event)\" [(ngModel)]=\"filterterm\">\r\n\r\n    </div>\r\n    <div class=\"history-filter__input--clear\">\r\n      <eo-icon class=\"history-filter__input--clear-icon\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"resetFilter()\" [ngClass]=\"{reset: filterterm}\"></eo-icon>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"filter history-filter__selection\" *ngIf=\"visibleFilter.select\">\r\n    <div (click)=\"toggleFilter('MODIFICATION')\" class=\"selection-filter mod\"\r\n         [ngClass]=\"{inactive: hasFilter('MODIFICATION')}\"\r\n         translate>eo.object.history.filter.modification</div>\r\n    <div (click)=\"toggleFilter('PROCESS')\" class=\"selection-filter bpm\"\r\n         [ngClass]=\"{inactive: hasFilter('PROCESS')}\"\r\n         translate>eo.object.history.filter.process</div>\r\n    <div (click)=\"toggleFilter('INFORMATIONAL')\" class=\"selection-filter inf\"\r\n         [ngClass]=\"{inactive: hasFilter('INFORMATIONAL')}\"\r\n         translate>eo.object.history.filter.informational</div>\r\n  </div>\r\n\r\n</section>\r\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input} from '@angular/core';\r\nimport {DmsObjectHistoryEntry, DmsParams, DmsService, EnaioEvent, EventService, TranslateService} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {map} from 'rxjs/operators';\r\nimport {IVisibleFilter} from './history-filter/history-filter';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-object-history',\r\n  templateUrl: './object-history.component.html',\r\n  styleUrls: ['./object-history.component.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ObjectHistoryComponent {\r\n\r\n  _params: DmsParams;\r\n  private _history: DmsObjectHistoryEntry[] = [];\r\n  completeHistory: DmsObjectHistoryEntry[] = [];\r\n  filters: string[] = [];\r\n  filterterm: string;\r\n  visibleFilter: IVisibleFilter = {select: true, input: true};\r\n\r\n  set history(historyObj: DmsObjectHistoryEntry[]) {\r\n    this._history = historyObj;\r\n  }\r\n\r\n  get history(): DmsObjectHistoryEntry[] {\r\n    return this._history;\r\n  }\r\n\r\n  @Input()\r\n  set params(p: DmsParams) {\r\n    this._params = p;\r\n    this.fetchHistory(p.id, p.type);\r\n  }\r\n\r\n  get params() {\r\n    return this._params;\r\n  }\r\n\r\n  constructor(private dmsService: DmsService, private cd: ChangeDetectorRef, private eventService: EventService, private translate: TranslateService) {\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_UPDATED).pipe(\r\n        untilDestroyed(this))\r\n      .subscribe(event => {\r\n        if (event.data && this.params.id === event.data.id) {\r\n          this.params = this.params;\r\n        }\r\n      });\r\n  }\r\n\r\n  toggleFilter(filter) {\r\n    const [type, hasFilter] = filter;\r\n    if (hasFilter) {\r\n      this.filters = this.filters.filter(s => s !== type);\r\n    } else {\r\n      this.filters.push(type);\r\n    }\r\n    this.history = this.completeHistory.filter(entry => this.filters.indexOf(entry.group) === -1);\r\n  }\r\n\r\n  trackByIndex(index, item) {\r\n    return index;\r\n  }\r\n\r\n  private fetchHistory(id: string, type?: string) {\r\n    this.dmsService\r\n      .getHistory(id, type, true)\r\n      .pipe(map((res: DmsObjectHistoryEntry[]) => {\r\n        const reversedRes = res.reverse();\r\n        reversedRes.forEach(res => {\r\n          res.title = this.translate.instant('eo.object.history.entry.type.' + res.type + '.title');\r\n          res.description = this.translate.instant('eo.object.history.entry.type.' + (res.intent ? res.intent : res.type) + '.description');\r\n        });\r\n        this.completeHistory = reversedRes;\r\n        this.history = reversedRes;\r\n        this.cd.markForCheck();\r\n      }))\r\n      .subscribe();\r\n  }\r\n}\r\n","<div class=\"object-history\">\r\n\r\n  <eo-history-filter [filters]=\"filters\"\r\n                     [history]=\"history\"\r\n                     [(term)]=\"filterterm\"\r\n                     [visibleFilter]=\"visibleFilter\"\r\n                     (onToggleFilter)=\"toggleFilter($event)\">\r\n  </eo-history-filter>\r\n\r\n\r\n  <ng-template #empty>\r\n    <div class=\"history empty\" translate>eo.timeline.empty</div>\r\n  </ng-template>\r\n\r\n  <div class=\"history eo-timeline\" [ngClass]=\"{single: history?.length === 1}\" *ngIf=\"history?.length; else empty\">\r\n\r\n    <div class=\"timeline-entry\" [ngClass]=\"{user: !!entry.user, comment: entry.comment}\"\r\n         *ngFor=\"let entry of history | historyFilter: filterterm; trackBy: trackByIndex\">\r\n\r\n      <div class=\"when\">\r\n        <div class=\"date\">{{entry.time | localeDate: 'eoShortDate'}}</div>\r\n        <div class=\"time\">{{entry.time | localeDate: 'eoShortTime'}}</div>\r\n      </div>\r\n      <div class=\"marker\" [ngClass]=\"{bpm: entry.group === 'PROCESS', mod: entry.group === 'MODIFICATION'}\"></div>\r\n      <div class=\"what\">\r\n\r\n        <div class=\"title\"><span>{{entry.title}}</span>\r\n          <a class=\"version\" [routerLink]=\"'/versions/' + params.id\" [queryParams]=\"{type: params.type, version: entry.version}\">\r\n            <span>{{'eo.object.history.version' | translate}} {{entry.version}}</span>\r\n          </a>\r\n        </div>\r\n        <div class=\"description\">{{entry.description}}</div>\r\n        <div class=\"comment\">&quot;{{entry.comment}}&quot;</div>\r\n\r\n        <div class=\"meta\">\r\n          <span *ngIf=\"entry.user.type === 'serveruser'; else user\">{{entry.user.title}}</span>\r\n          <ng-template #user>\r\n            <span>{{entry.user.lastname}}, {{entry.user.firstname}} ({{entry.user.name}})</span>\r\n          </ng-template>\r\n        </div>\r\n\r\n        <div class=\"bpm-meta\" *ngIf=\"entry.parameter?.type === 'bpm'\">\r\n          <span *ngIf=\"entry.parameter.processName\">\r\n          <span translate>eo.object.history.workflowprocess</span>\r\n          <span>'{{entry.parameter.processName}}'</span>\r\n        </span>\r\n          <span *ngIf=\"entry.parameter.activityName\">\r\n          <span translate>eo.object.history.activity</span>\r\n          <span>'{{entry.parameter.activityName}}'</span>\r\n        </span>\r\n        </div>\r\n\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {Component, Input, ViewChild} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {ReferenceService} from '../../../eo-framework-core/references/reference.service';\r\nimport {DmsObject, AppCacheService} from '@eo-sdk/core';\r\nimport {forkJoin} from 'rxjs';\r\nimport {SystemService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-object-links',\r\n  templateUrl: './object-links.component.html',\r\n  styleUrls: ['./object-links.component.scss']\r\n})\r\nexport class ObjectLinksComponent {\r\n\r\n  item: DmsObject;\r\n  inReferences = [];\r\n  outReferences = [];\r\n  queries;\r\n  superQueryParams = {};\r\n\r\n  showInReferences = true;\r\n  showOutReferences = false;\r\n\r\n  @ViewChild('gridIn') gridIn;\r\n  @ViewChild('gridOut') gridOut;\r\n\r\n  @Input('dmsObject')\r\n  set dmsObject(dmsObject: DmsObject) {\r\n    if (dmsObject) {\r\n      this.item = dmsObject;\r\n      this.init(dmsObject);\r\n    }\r\n  }\r\n\r\n  constructor(private referenceService: ReferenceService,\r\n    private cache: AppCacheService,\r\n    private systemService: SystemService) {\r\n  }\r\n\r\n  switchListVisibilityTo(list: 'in' | 'out') {\r\n    if (list === 'in') {\r\n      this.showInReferences = true;\r\n      this.showOutReferences = false;\r\n    } else {\r\n      this.showInReferences = false;\r\n      this.showOutReferences = true;\r\n    }\r\n    this.cache.setItem('yuv.reference.list.show.' + this.item.typeName, list);\r\n  }\r\n\r\n  private init(item) {\r\n    this.cache.getItem('yuv.reference.list.show.' + item.typeName).subscribe(res => this.switchListVisibilityTo(res));\r\n    const obs = [\r\n      this.referenceService.getInReferences(item),\r\n      this.referenceService.getOutReferences(item)\r\n    ];\r\n    forkJoin(obs)\r\n      .subscribe(results => {\r\n        [this.inReferences, this.outReferences] = results;\r\n      }, (error) => console.error({error}));\r\n\r\n    this.referenceService\r\n      .getQueries(item)\r\n      .subscribe(queries => {\r\n        this.queries = queries;\r\n        const superQuery = this.createSuperQueryFromQueries(this.queries);\r\n        this.superQueryParams = {'query': encodeURIComponent(JSON.stringify(superQuery)), 'silent': true};\r\n      });\r\n  }\r\n\r\n  private createSuperQueryFromQueries(queries) {\r\n    let superQuery = {\r\n      term: '',\r\n      options: {\r\n        expertmode: true\r\n      }\r\n    };\r\n\r\n    queries.outReferenceQueries.forEach(query => {\r\n      if (query.filters) {\r\n        Object.keys(query.filters)\r\n          .forEach(filterName => superQuery.term += this.createSuperQueryTermPart(query, filterName));\r\n      } else {\r\n        superQuery.term += '(' + query.term + ')' + ' OR ';\r\n      }\r\n    });\r\n\r\n    queries.inReferenceQueries.forEach((query) => {\r\n      if (query.filters) {\r\n        Object.keys(query.filters)\r\n          .forEach(filterName => superQuery.term += this.createSuperQueryTermPart(query, filterName));\r\n      } else {\r\n        superQuery.term += query.term;\r\n      }\r\n    });\r\n\r\n    superQuery.term = superQuery.term.replace(new RegExp(',', 'g'), ' '); // replace all ',' with ' '\r\n    superQuery.term = superQuery.term.replace(new RegExp(' OR ' + '$'), ''); // remove last ' OR '\r\n\r\n    return superQuery;\r\n  }\r\n\r\n  private createSuperQueryTermPart(query, filterName) {\r\n    // reserved characters of elastic search\r\n    // todo: add '||'\r\n    const reservedChars = ['\\\\', '/', '\\+', '-', '=', '&&', '>', '<', '!', '\\(', '\\)', '\\{', '\\}', '\\[', '\\]', '\\^', '\"', '\\~', '\\*', '\\?', ':'];\r\n\r\n    const filter = query.filters[filterName];\r\n    let value = '' + filter.v1 + '';\r\n    reservedChars.forEach(char => {\r\n      if (value.indexOf(char) > -1) {\r\n        value = value.replace(new RegExp('\\\\' + char, 'g'), '\\\\' + char); // escapes all reserved characters\r\n      }\r\n    });\r\n    let types = this.getSubTypes(query.types[0]);\r\n    types.push(query.types[0]);\r\n    let indexName = this.getIndexNameByQName(filterName);\r\n    if (!indexName) {\r\n      indexName = 'str_' + filterName.replace('.', '_');\r\n    }\r\n    return '(' + indexName + ':(' + value + ') AND key_type:(' + types + ')) OR ';\r\n  }\r\n\r\n  private getIndexNameByQName(qname: string): string {\r\n    const types = this.systemService.getObjectTypes();\r\n    for (let i = 0; i < types.length; i++) {\r\n      const element = types[i].elements.find(el => el.qname === qname);\r\n      if (element) {\r\n        return element.indexname;\r\n      }\r\n    }\r\n    return null;\r\n  }\r\n\r\n  private getSubTypes(typeName) {\r\n    let types = this.systemService.getObjectTypes();\r\n    let subTypes = [];\r\n    types.forEach(objectType => {\r\n      const validator = !!objectType.supertypes.find((t: any) => t.name === typeName);\r\n      if (validator) {\r\n        subTypes.push(objectType.qname);\r\n      }\r\n    }\r\n    );\r\n    return subTypes;\r\n  }\r\n\r\n  navigateToReference(event, entry) {\r\n    const url = window.location.href.split(/object|result|favorites|inbox|process|notifications|recyclebin/)[0] + 'object/' + entry?.id;\r\n    window.open(url, (event && event?.ctrlKey) ? '_blank' : '_self');\r\n  }\r\n}\r\n","<div class=\"eo-references\">\r\n  <div class=\"object-not-found\" *ngIf=\"!inReferences?.length && !outReferences?.length; else refContainer\">\r\n    <div>{{'eo.references.object.notfound' | translate}}</div>\r\n  </div>\r\n\r\n  <ng-template #refContainer>\r\n    <div class=\"form-buttons\">\r\n      <div class=\"gridlabels\">\r\n          <div class=\"gridlabel\" [ngClass]=\"{'active': showInReferences}\" (click)=\"switchListVisibilityTo('in')\"\r\n            title=\"{{'eo.references.to.label' | translate}}\">\r\n              <span>{{'eo.references.to.label' | translate}}</span>\r\n          </div>\r\n          <div class=\"gridlabel\" [ngClass]=\"{'active': showOutReferences}\" (click)=\"switchListVisibilityTo('out')\"\r\n            title=\"{{'eo.references.from.label' | translate}}\">\r\n              <span>{{'eo.references.from.label' | translate}}</span>\r\n          </div>\r\n      </div>\r\n      <a class=\"button primary\" [routerLink]=\"'/result'\" [queryParams]=\"superQueryParams\" title=\"{{'eo.references.open.resultlist' | translate}}\">\r\n        <span>{{'eo.references.open.resultlist' | translate}}</span>\r\n      </a>\r\n    </div>\r\n\r\n    <div class=\"eo-references-lists\">\r\n\r\n      <!-- list of inReferences -->\r\n      <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showInReferences}\">\r\n\r\n        @if (inReferences?.length) {\r\n          <div class=\"referenceList\">\r\n            @for (entry of inReferences; track entry) {\r\n              <div class=\"content\" (click)=\"navigateToReference($event, entry)\">\r\n                <div class=\"flex-row\">\r\n                  <eo-icon class=\"icon\" [objectType]=\"entry?.metaData?.objectType\" [iconTitle]=\"entry?.metaData?.objectType?.label\"></eo-icon>\r\n                  <div class=\"title\">\r\n                    {{entry?.title}}\r\n                  </div>\r\n                </div>\r\n                <div class=\"description\">\r\n                  {{entry?.description}}\r\n                </div>\r\n                <div class=\"remote-element\">\r\n                  {{'eo.references.field.label' | translate}} {{entry?.metaData?.remoteElement?.label}}\r\n                </div>\r\n              </div>\r\n            }\r\n          </div>\r\n        } @else {\r\n          <div class=\"notfound\">{{'eo.references.object.notfound' | translate}}</div>\r\n        }\r\n      </div>\r\n\r\n      <!-- list of outReferences -->\r\n      <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showOutReferences}\">\r\n        @if (outReferences?.length) {\r\n          <div class=\"referenceList\">\r\n            @for (entry of outReferences; track entry) {\r\n              <div class=\"content\" (click)=\"navigateToReference($event, entry)\">\r\n                <div class=\"flex-row\">\r\n                  <eo-icon class=\"icon\" [objectType]=\"entry?.metaData?.objectType\" [iconTitle]=\"entry?.metaData?.objectType?.label\"></eo-icon>\r\n                  <div class=\"title\">\r\n                    {{entry?.title}}\r\n                  </div>\r\n                </div>\r\n                <div class=\"description\">\r\n                  {{entry?.description}}\r\n                </div>\r\n                <div class=\"remote-element\">\r\n                  {{'eo.references.field.label' | translate}} {{entry?.metaData?.element?.label}}\r\n                </div>\r\n              </div>\r\n            }\r\n          </div>\r\n        } @else {\r\n          <div class=\"notfound\">{{'eo.references.object.notfound' | translate}}</div>\r\n        }\r\n      </div>\r\n    </div>\r\n  </ng-template>\r\n</div>\r\n","\r\nimport {Component, ElementRef, Input, ViewChild} from '@angular/core';\r\nimport {DmsObject, EnaioEvent, EventService, NotificationsService, UserService} from '@eo-sdk/core';\r\nimport {EnaioErrorKeys} from '../../../eo-framework-core/error-handler/error-keys';\r\n\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-favorite-icon',\r\n  templateUrl: './favorite-icon.component.html',\r\n  styleUrls: ['./favorite-icon.component.scss']\r\n})\r\nexport class FavoriteIconComponent {\r\n  display = false;\r\n  value = '';\r\n  tooltip: '';\r\n  private _item: DmsObject;\r\n\r\n  @Input()\r\n  set item(item: DmsObject) {\r\n    this._item = item;\r\n    this.tooltip = this.translate.instant(\r\n      'eo.favorite.icon.tooltip.' + (item.isFavorite ? 'remove' : 'add')\r\n    );\r\n  }\r\n\r\n  get item() {\r\n    return this._item;\r\n  }\r\n\r\n  @ViewChild('favName') favNameInputElement: ElementRef;\r\n\r\n  constructor(private userService: UserService,\r\n    private eventService: EventService,\r\n    private toasty: NotificationsService,\r\n    public translate: TranslateService) {\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_FAVORITE_ON).pipe(untilDestroyed(this))\r\n      .subscribe((event: any) => event.data === this.item.id && this.onSave());\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_FAVORITE_OFF).pipe(untilDestroyed(this))\r\n      .subscribe((event: any) => event.data === this.item.id && this.onRemove());\r\n  }\r\n\r\n  toggle(event, hide?: boolean) {\r\n    this.display = hide || this.item.isFavorite ? false : !this.display;\r\n\r\n    if (!hide && this.item.isFavorite) {\r\n      this.remove();\r\n    } else {\r\n      this.value = this.generateSuggestedName(this.item);\r\n    }\r\n\r\n    if (hide && this.value.length > 0) {\r\n      this.value = '';\r\n    }\r\n\r\n    if (this.display) {\r\n      setTimeout(() => {\r\n        this.favNameInputElement.nativeElement.select();\r\n      })\r\n    }\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n  }\r\n\r\n  generateSuggestedName(item) {\r\n    const pre = (!item.isContextFolder && item.contextFolder) ? item.contextFolder.title + ' > ' : '';\r\n    const title = pre + item.title;\r\n    return title//.substring(0, 250);\r\n  }\r\n\r\n\r\n  onError(error) {\r\n    let {key, callerinput} = error.error;\r\n    callerinput = callerinput.match(/\\d+/)[0];\r\n\r\n    if (key === EnaioErrorKeys.FAVORITE_TITLE_TOO_LONG) {\r\n      this.toasty\r\n        .error(this.translate.instant('eo.favorite.dialog.input.error.title'),\r\n          this.translate.instant('eo.favorite.dialog.input.error.message', {val1: callerinput}))\r\n    }\r\n  }\r\n\r\n  save() {\r\n    const title = this.value || this.generateSuggestedName(this.item.title);\r\n    this.userService\r\n      .createFavorite(this.item.id, this.item.typeName, title)\r\n      .subscribe(() => this.onSave(), (error) => this.onError(error));\r\n  }\r\n\r\n  remove() {\r\n    this.userService\r\n      .removeFavoritesForTarget(this.item.id)\r\n      .subscribe(() => this.onRemove());\r\n  }\r\n\r\n  onRemove() {\r\n    this.item.isFavorite = false;\r\n    this.tooltip = this.translate.instant('eo.favorite.icon.tooltip.add');\r\n  }\r\n\r\n  onSave() {\r\n    this.item.isFavorite = true;\r\n    this.display = false;\r\n    this.tooltip = this.translate.instant('eo.favorite.icon.tooltip.remove');\r\n  }\r\n}\r\n","<eo-icon class=\"button favorite\"\r\n         [ngClass]=\"{active: item.isFavorite}\"\r\n         [iconTitle]=\"tooltip\"\r\n         [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\r\n         (click)=\"toggle($event)\">\r\n</eo-icon>\r\n\r\n<eo-dialog\r\n  [title]=\"('eo.favorite.icon.dialog.title' | translate)\"\r\n  [(visible)]=\"display\"\r\n  [minWidth]=\"400\"\r\n  [styleClass]=\"'favorite-form__dialog'\">\r\n\r\n  <form name=\"favoriteForm\" (ngSubmit)=\"save()\">\r\n    <eo-form-input [label]=\" 'eo.favorite.icon.dialog.input.label' | translate\">\r\n      <input [(ngModel)]=\"value\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\" #favName />\r\n    </eo-form-input>\r\n    <div class=\"action-buttons favorite-form__dialog--action-buttons flex-row\">\r\n      <button type=\"button\" class=\"button cancel\" (click)=\"toggle($event, true)\" translate>eo.cta.button.cancel</button>\r\n      <button type=\"submit\" [disabled]=\"!value\" class=\"button primary\" translate>eo.favorite.icon.dialog.save</button>\r\n    </div>\r\n  </form>\r\n</eo-dialog>\r\n","export enum LockSettings {\r\n  always = 'always',\r\n  never = 'never',\r\n  ask = 'ask'\r\n}\r\n","import {agentConfigKeys, AgentService} from './../../../eo-framework-core/agent/agent.service';\r\nimport {DmsObject, UserService} from '@eo-sdk/core';\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport {LockSettings} from '../../../eo-client/settings/agent-lock-settings.enum';\r\nimport {take, withLatestFrom} from 'rxjs/operators';\r\n\r\n@Component({\r\n  selector: 'eo-edit-icon',\r\n  templateUrl: './edit-icon.component.html',\r\n  styleUrls: ['./edit-icon.component.scss']\r\n})\r\nexport class EditIconComponent implements OnInit {\r\n\r\n  @Input() item: DmsObject;\r\n\r\n  display = false;\r\n  agentAlwayslock: string;\r\n\r\n  constructor(private userService: UserService, private agentService: AgentService) { }\r\n\r\n  toggle(event) {\r\n    this.display = !this.display;\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n  }\r\n\r\n  editOriginalContent() {\r\n    const lock = this.agentAlwayslock && this.agentAlwayslock === 'always';\r\n    this.agentService.openDocument(this.item, lock);\r\n  }\r\n\r\n  fetchAgentAlwayslock() {\r\n    this.agentService.isConnected$.pipe(take(1), withLatestFrom(this.agentService.agentConfig$)).subscribe(([isConnected, config]) => {\r\n      if (config.hasOwnProperty(agentConfigKeys.LOCKSETTINGS) && Object.values(LockSettings).includes(config[agentConfigKeys.LOCKSETTINGS])) {\r\n        this.agentAlwayslock = config[agentConfigKeys.LOCKSETTINGS];\r\n      } else {\r\n        this.agentAlwayslock = this.userService.getCurrentUser().userSettings.alwayslock;\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.fetchAgentAlwayslock();\r\n  }\r\n\r\n}\r\n","<eo-icon class=\"button favorite\"\r\n         [iconTitle]=\"('eo.action.menu.edit.document.label' | translate)\"\r\n         [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\r\n         (click)=\"agentAlwayslock === 'ask' && !item.lock ? toggle($event) : editOriginalContent()\">\r\n</eo-icon>\r\n\r\n<eo-dialog\r\n  [title]=\"('eo.action.menu.edit.document.label' | translate)\"\r\n  [(visible)]=\"display\"\r\n  [minWidth]=\"400\">\r\n\r\n  <eo-open-document *ngIf=\"display\" [selection]=\"[item]\" (finished)=\"fetchAgentAlwayslock(); display = false\" (canceled)=\"display = false\"></eo-open-document>\r\n</eo-dialog>\r\n","import {\r\n  AfterViewInit,\r\n  Component,\r\n  EventEmitter,\r\n  HostBinding,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  QueryList,\r\n  ViewChild,\r\n  ViewChildren\r\n} from '@angular/core';\r\nimport {ActivatedRoute, NavigationExtras, Router} from '@angular/router';\r\nimport {\r\n  BackendService,\r\n  BaseParams,\r\n  BpmService,\r\n  Capabilities,\r\n  CapabilitiesService,\r\n  Config,\r\n  DmsObject,\r\n  DmsParams,\r\n  DmsService,\r\n  EnaioEvent,\r\n  EventService,\r\n  SubscriptionMode,\r\n  SystemService,\r\n  TranslateService,\r\n  UploadRegistryService,\r\n  UploadTarget,\r\n  Utils,\r\n} from '@eo-sdk/core';\r\nimport {Observable, of} from 'rxjs';\r\nimport {map, throttleTime} from 'rxjs/operators';\r\n\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {AgentService} from '../../eo-framework-core/agent/agent.service';\r\nimport {EmptyState} from '../../eo-framework-core/empty-state/empty-state.interface';\r\nimport {EmptyStateService} from '../../eo-framework-core/empty-state/empty-state.service';\r\nimport {LocaleDatePipe} from '../../eo-framework-core/pipes/locale-date.pipe';\r\nimport {SelectionConfig, SelectionService} from '../../eo-framework-core/selection/selection.service';\r\nimport {ActionService} from '../actions/action-service/action.service';\r\nimport {ContentPreviewService} from '../media/content-preview.service';\r\nimport {MediaComponent} from '../media/media.component';\r\nimport {GlobalShortcutComponent} from '../shortcuts/global-shortcut-component.interface';\r\nimport {Shortcut} from '../shortcuts/shortcut.interface';\r\nimport {IndexData} from '../ui/indexdata-summary/indexdata-summary.component';\r\nimport {Tabs} from '@yuuvis/components/tabs';\r\nimport {SplitTabsComponent, SplitTabsLayoutSettings} from '@yuuvis/components/split-tabs';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-object-details',\r\n  templateUrl: './object-details.component.html',\r\n  styleUrls: ['./object-details.component.scss'],\r\n  providers: [ContentPreviewService]\r\n})\r\nexport class ObjectDetailsComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n  @ViewChild('viewer') preview: MediaComponent;\r\n  @ViewChild(SplitTabsComponent) eoSplitTabs: SplitTabsComponent;\r\n  @ViewChildren(Tabs) tabContainers: QueryList<Tabs>;\r\n\r\n  @Input() plugins: any[];\r\n\r\n  // generate unique id to pass to upload registry\r\n  private uploadTarget = new UploadTarget(Utils.uuid(), UploadTarget.OBJECT);\r\n  item: DmsObject;\r\n  indexDataPreview: IndexData;\r\n  baseparams: BaseParams;\r\n  hasError = false;\r\n  lockTooltip: string;\r\n  nodmsobject = false;\r\n  showLoader = false;\r\n  processTooltip = '';\r\n  panelOrder = {'master': ['summary', 'indexdata', 'history', 'links', 'signature'], 'slave': ['preview']};\r\n\r\n  agentIsConnected$: Observable<boolean> = this.agentService.isConnected$;\r\n  subscriptionIconTooltip: string;\r\n  split: boolean = false;\r\n  splitTabConfig: SplitTabsLayoutSettings;\r\n  @HostBinding('class.reference') isReference: boolean;\r\n\r\n  @Input() set reference(isRef: boolean) {\r\n    this.isReference = isRef;\r\n  }\r\n  @Input() searchTerm: string;\r\n  @Input() enableCompare = false;\r\n  @Input() recyclebinTabs = false;\r\n  @Input() versionComponentTabs = false;\r\n  @Input() enableDiff = true;\r\n  @Input() enableSync = false;\r\n  @Input() cacheLayout: any;\r\n  item2: DmsObject;\r\n  onEnableSync = true;\r\n  tabs = []\r\n  indexDataPreview2: IndexData;\r\n  baseparams2: BaseParams;\r\n  private _emptyState: EmptyState = {icon: 'ic_no-file.svg', text: '', className: ''};\r\n\r\n  @Input()\r\n  set emptyState(e: EmptyState) {\r\n    this._emptyState = e || EmptyStateService.defaultEmptyState();\r\n  }\r\n\r\n  get emptyState() {\r\n    return this._emptyState;\r\n  }\r\n\r\n  @Input('params')\r\n  set dmsParams(params: DmsParams) {\r\n    this.showLoader = true;\r\n    this.loadDmsObject(params).subscribe((res: DmsObject) => {\r\n      this.dmsObject = res;\r\n      this.showLoader = false;\r\n    },\r\n      Utils.throw(() => this.onHasError(true, true, false))\r\n    );\r\n  }\r\n\r\n  @Input('params2')\r\n  set dmsParams2(params: DmsParams) {\r\n    this.loadDmsObject(params)\r\n      .subscribe((res: DmsObject) => {\r\n        this.dmsObject2 = res;\r\n      }, Utils.throw(() => this.onHasError(true, true, false)));\r\n  }\r\n\r\n  @Input('item')\r\n  set dmsObject(v: DmsObject) {\r\n    const isDifferent = this.item?.id !== v?.id;\r\n    this.item = v;\r\n    this.onHasError();\r\n    if (this.item?.id) {\r\n      this.fetchAtiveProcessData(this.item?.id);\r\n    }\r\n    // prepare indexdata preview\r\n    this.onIndexDataSaved(null, this.item);\r\n    this.eventService.trigger(EnaioEvent.DMS_OBJECT_LOADED, this.item);\r\n\r\n    if (this.item) {\r\n      if (isDifferent && this.item.isActiveVersion && !this.enableCompare) {\r\n        this.uploadTarget.referenceObject = this.item;\r\n        this.uploadTarget.onUploadSuccess = () => this.dmsParams = {id: v.id, type: v.typeName};\r\n        this.uploadRegistry.register(this.uploadTarget);\r\n      } else {\r\n        this.uploadRegistry.unregister(this.uploadTarget.id);\r\n        this.uploadTarget.referenceObject = this.item;\r\n        this.uploadTarget.onUploadSuccess = () => this.dmsParams = {id: v.id, type: v.typeName};\r\n        this.uploadRegistry.register(this.uploadTarget);\r\n      }\r\n\r\n      if (this.item.lock) {\r\n        this.lockTooltip = this.translate.instant('eo.object.lock') + ' '\r\n          + (new LocaleDatePipe(this.translate).transform(this.item.lock.on))\r\n          + ', ' + this.item.lock.by.label + ' (' + this.item.lock.by.name + ')';\r\n      }\r\n    } else {\r\n      this.emptyState = this.empty.getEmptyState(0);\r\n    }\r\n\r\n    if (this.item?.subscriptions.length) {\r\n      this.subscriptionIconTooltip = this.createSubscriptionIconTooltip(this.item);\r\n    }\r\n  }\r\n\r\n  @Input('item2')\r\n  set dmsObject2(v: DmsObject) {\r\n    this.item2 = v;\r\n    this.enableSync = !!this.item2?.version;\r\n    this.onHasError();\r\n    this.onIndexDataSaved(null, this.item2);\r\n  }\r\n\r\n  capabilities: Capabilities;\r\n  preventClickThrough = false;\r\n\r\n  // shortcut actions\r\n  shortcuts: GlobalShortcutComponent = {\r\n    id: 'eo.object-details',\r\n    label: this.translate.instant('eo.shortcuts.eo-object-details.title'),\r\n    labelKey: 'eo.shortcuts.eo-object-details.title',\r\n    actions: [\r\n      {\r\n        name: this.translate.instant('eo.shortcuts.action.open.context'),\r\n        nameKey: 'eo.shortcuts.action.open.context',\r\n        shortcut: new Shortcut('O', false, false),\r\n        onExecuteAction: () => {\r\n          this.openObject(this.item.id, this.item.typeName);\r\n        },\r\n        isHidden: () => {\r\n          return false;\r\n        }\r\n      },\r\n      {\r\n        name: this.translate.instant('eo.object.details.actions.title'),\r\n        nameKey: 'eo.object.details.actions.title',\r\n        shortcut: new Shortcut('A', false, false),\r\n        onExecuteAction: () => {\r\n          this.showActions();\r\n        },\r\n        isHidden: () => {\r\n          return false;\r\n        }\r\n      }\r\n    ]\r\n  };\r\n\r\n  @Input() applySelection: SelectionConfig;\r\n  @Input() parseDmsParams: (data) => {} = this.getDmsParams;\r\n  @Output() hasContent: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n  @HostBinding('attr.data-type') get dataType() {\r\n    return this.item ? this.item.typeName : 'none';\r\n  }\r\n\r\n  // undockWinActive = false;\r\n\r\n  constructor(private router: Router,\r\n    private route: ActivatedRoute,\r\n    private system: SystemService,\r\n    private empty: EmptyStateService,\r\n    private agentService: AgentService,\r\n    private backend: BackendService,\r\n    private dmsService: DmsService,\r\n    private selection: SelectionService,\r\n    private actionService: ActionService,\r\n    private capabilityService: CapabilitiesService,\r\n    private uploadRegistry: UploadRegistryService,\r\n    private eventService: EventService,\r\n    private configService: Config,\r\n    private bpmService: BpmService,\r\n    private translate: TranslateService) {\r\n\r\n    this.panelOrder = this.configService.getRaw('objectDetailsTabs') || this.panelOrder;\r\n\r\n    this.agentService.setAgentStatus(this.route.snapshot.queryParams['connectagent']).subscribe((hasStatus: boolean) => {\r\n      if (hasStatus) {\r\n        this.router.navigate([], {queryParams: {connectagent: null}, queryParamsHandling: 'merge'});\r\n      }\r\n    });\r\n  }\r\n\r\n  private getDmsParams(data: any): DmsParams {\r\n    return data ? {...data, type: data.typeName || data.type} : null;\r\n  }\r\n\r\n  private updateContent() {\r\n\r\n    if (this.applySelection) {\r\n      if (this.enableCompare) {\r\n        this.selection\r\n          .find(this.applySelection.in)\r\n          .selection$\r\n          .pipe(\r\n            untilDestroyed(this),\r\n            throttleTime(500)\r\n          )\r\n          .subscribe((res: any[]) => {\r\n            this.dmsParams = this.parseDmsParams(res[0]) as DmsParams;\r\n            this.dmsParams2 = this.parseDmsParams(res[1]) as DmsParams;\r\n          });\r\n        return;\r\n      } else {\r\n        this.selection\r\n          .find(this.applySelection.in)\r\n          .focus$\r\n          .pipe(\r\n            untilDestroyed(this)\r\n          )\r\n          .subscribe(res => {\r\n            this.showLoader = true;\r\n            this.loadDmsObject(this.parseDmsParams(res) as DmsParams).subscribe((res: DmsObject) => {\r\n              // refreshing object details may result in an updated version of the object\r\n              // so we'll use this trigger to also emitt those changes to other listening components\r\n              if (this.item && res && (this.item.id === res.id)) {\r\n                this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, res);\r\n              }\r\n              this.dmsObject = res;\r\n              this.showLoader = false;\r\n            },\r\n              Utils.throw((error) => {\r\n                this.uploadRegistry.unregister(this.uploadTarget.id);\r\n                return this.onHasError(true, true, false);\r\n              })\r\n            );\r\n          });\r\n\r\n      }\r\n    }\r\n  }\r\n\r\n  refreshContent() {\r\n    if (!this.preventClickThrough) {\r\n      this.preventClickThrough = true;\r\n      this.updateContent();\r\n    }\r\n    setTimeout(() => {\r\n      this.preventClickThrough = false;\r\n    }, 5000);\r\n  }\r\n\r\n  private prepareIndexDataPreview(item: DmsObject, formData?: any) {\r\n    const {id, data, type, created, modified, content, contentFileName, contentFileSize, version} = item;\r\n\r\n    return this.system\r\n      .getObjectTypeForm(type.name, 'EDIT')\r\n      .pipe(\r\n        map(form => {\r\n          let indexDataPreview = {\r\n            form,\r\n            data: formData || data\r\n          };\r\n          let baseparams: BaseParams = {\r\n            id,\r\n            type: type.name,\r\n            createdOn: new Date(created.on),\r\n            modifiedOn: new Date(modified.on),\r\n            createdBy: `${created.by.title} (${created.by.name})`,\r\n            modifiedBy: `${modified.by.title} (${modified.by.name})`,\r\n            contentFileName: contentFileName ? contentFileName : null,\r\n            contentFileSize: contentFileSize ? Number(contentFileSize) : null,\r\n            version: version || 0,\r\n            mimeGroup: content ? content.contents ? content.contents[0].mimegroup : null : null,\r\n            digest: content ? content.contents ? content.contents[0].digest : null : null,\r\n            contentId: content ? content.contents ? content.id : null : null,\r\n            mimeType: content ? content.contents ? content.contents[0].mimetype : null : null,\r\n          };\r\n          return {indexDataPreview, baseparams};\r\n        }));\r\n  }\r\n\r\n  private onHasError(hasError = false, nodmsobject = false, showLoader = false) {\r\n    this.hasError = hasError;\r\n    this.nodmsobject = nodmsobject;\r\n    this.showLoader = showLoader;\r\n    this.hasContent.emit(!hasError);\r\n  }\r\n\r\n  loadDmsObject(params: DmsParams) {\r\n    if (!this.enableCompare && params) {\r\n      delete params.version;\r\n    }\r\n    // check for valid id\r\n    return params?.id?.length === 32 ? this.dmsService.getDmsObjectByParams(params) : of(null);\r\n  }\r\n\r\n  downloadOriginalContent() {\r\n    this.backend.downloadContent([this.item]);\r\n  }\r\n\r\n  showActions() {\r\n    const actions = [this.item, this.item2].filter(v => v);\r\n    this.actionService.showActions(actions, 'DMS_OBJECT');\r\n  }\r\n\r\n  openObject(id, _type?) {\r\n    const queryParams: NavigationExtras = {queryParams: {'type': _type}};\r\n    return this.router.navigate(['/object', id], queryParams);\r\n  }\r\n\r\n  // executed when the dms object changed due to saving its indexdata\r\n  onIndexDataSaved(formData, item) {\r\n    if (!this.item) {\r\n      this.indexDataPreview = null;\r\n      this.baseparams = null;\r\n    }\r\n    if (!this.item2) {\r\n      this.indexDataPreview2 = null;\r\n      this.baseparams2 = null;\r\n    }\r\n    if (item) {\r\n      this.prepareIndexDataPreview(item, formData)\r\n        .subscribe(data => {\r\n          if (item === this.item) {\r\n            this.indexDataPreview = data.indexDataPreview;\r\n            this.baseparams = data.baseparams;\r\n          } else {\r\n            this.indexDataPreview2 = data.indexDataPreview;\r\n            this.baseparams2 = data.baseparams;\r\n          }\r\n        });\r\n    }\r\n  }\r\n\r\n  fetchAtiveProcessData(objectId: string): void {\r\n    this.bpmService.getProcessData(objectId).subscribe((res) => {\r\n      let content = {\r\n        modelname: res.map(item => item.modelname),\r\n        starttime: res.map(item => new LocaleDatePipe(this.translate).transform(item.starttime, '')),\r\n        endtime: res.map(item => new LocaleDatePipe(this.translate).transform(item.endtime, ''))\r\n      };\r\n      this.processTooltip = '\\n';\r\n      for (let i = 0; i < content.modelname.length; i++) {\r\n        if (content.endtime[i]) {\r\n          this.processTooltip += content.modelname[i] + ' | ' + content.starttime[i] + ' - ' + content.endtime[i] + '\\n';\r\n        } else {\r\n          this.processTooltip += content.modelname[i] + ' | ' + content.starttime[i] + '\\n';\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  onCompareTabChange(event) {\r\n    if (this.enableSync && this.onEnableSync) {\r\n      this.tabContainers.forEach(t => {\r\n        if (t.selectedTab !== event) {\r\n          t.selectById(event)\r\n        }\r\n      })\r\n    }\r\n  }\r\n\r\n  get referenceTitle(): string {\r\n    return this.item.contextFolder ? this.item.contextFolder.title : this.item.title;\r\n  }\r\n\r\n  isJournalObject(item) {\r\n    return item.type.supertypes.find(sT => sT === 'sysjournalobject');\r\n  }\r\n\r\n  private createSubscriptionIconTooltip(item: DmsObject): string {\r\n    let tooltip = '';\r\n    const modes = this.item.subscriptions.map(subscription => subscription.mode);\r\n    const subscribedToAllChanges = modes.includes(SubscriptionMode.DMS_OBJECT_CHANGED) || (modes.includes(SubscriptionMode.ONLY_DOCUMENT_CONTENT_CHANGED) && modes.includes(SubscriptionMode.ONLY_INDEX_DATA_CHANGED));\r\n    const subscribedToMetaChangesOnly = modes.includes(SubscriptionMode.ONLY_INDEX_DATA_CHANGED) && !modes.includes(SubscriptionMode.ONLY_DOCUMENT_CONTENT_CHANGED) && !modes.includes(SubscriptionMode.DMS_OBJECT_CHANGED);\r\n    const subscribedToContentChangesOnly = modes.includes(SubscriptionMode.ONLY_DOCUMENT_CONTENT_CHANGED) && !modes.includes(SubscriptionMode.ONLY_INDEX_DATA_CHANGED) && !modes.includes(SubscriptionMode.DMS_OBJECT_CHANGED);\r\n    if (subscribedToAllChanges) {\r\n      tooltip = this.translate.instant('eo.object.subscription.icon.tooltip.allChanges');\r\n    }\r\n    else if (subscribedToMetaChangesOnly) {\r\n      tooltip = this.translate.instant('eo.object.subscription.icon.tooltip.meta');\r\n    }\r\n    else if (subscribedToContentChangesOnly) {\r\n      tooltip = this.translate.instant('eo.object.subscription.icon.tooltip.content');\r\n    }\r\n    return tooltip;\r\n  }\r\n\r\n  private setupCapabilities() {\r\n    const block = this.capabilities && !this.capabilities.signing ? ['signature'] : [];\r\n    const cachedOrder = this.cacheLayout && JSON.parse(localStorage.getItem(this.cacheLayout));\r\n    const primary = cachedOrder?.primary?.tabs;\r\n    const secondary = cachedOrder?.secondary?.tabs;\r\n    const _primary = this.panelOrder.master || [];\r\n    const _secondary = this.panelOrder.slave || [];\r\n    const plugins = this.plugins?.map(p => p.id) || [];\r\n\r\n\r\n    this.tabs = [..._primary, ..._secondary, ...plugins].filter(t => !block.includes(t));\r\n\r\n    if (this.versionComponentTabs) {\r\n      this.tabs = this.tabs.filter(tab => [\"summary\", \"indexdata\", \"preview\", \"signature\"].includes(tab));\r\n    }\r\n\r\n    const diff = this.tabs.filter(t => !primary?.includes(t) && !secondary?.includes(t));\r\n    const _pTabs = [..._primary, ...plugins.filter(p => !_primary.includes(p))];\r\n    const pTabs = primary ? [...primary, ...diff] : _pTabs;\r\n    const sTabs = secondary || _secondary;\r\n\r\n    const p = pTabs.filter(t => this.tabs.includes(t));\r\n    const s = sTabs.filter(t => this.tabs.includes(t));\r\n    // reset primary tabs order if no secondary tabs are available\r\n    !s.length && p.sort((a, b) => this.tabs.indexOf(a) - this.tabs.indexOf(b));\r\n\r\n    this.splitTabConfig = {\r\n      primary: { tabs: p, active: p.includes(cachedOrder?.primary?.active) ? cachedOrder?.primary?.active : p[0] || ''},\r\n      secondary: { tabs: s, active: s.includes(cachedOrder?.secondary?.active) ? cachedOrder?.secondary?.active : s[0] || ''},\r\n      split: cachedOrder?.split\r\n    };\r\n\r\n    // force save of layout settings to include plugin tabs\r\n    this.onLayoutSettingsChanged(this.splitTabConfig);\r\n  }\r\n\r\n  // custom event handler for layout settings to make sure plugin tabs are saved\r\n  onLayoutSettingsChanged(event: SplitTabsLayoutSettings) {\r\n    this.cacheLayout && localStorage.setItem(this.cacheLayout, JSON.stringify(event));\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.capabilities = this.capabilityService.getCapabilities();\r\n    this.setupCapabilities();\r\n    this.updateContent();\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_UPDATED)\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe((event: any) => {\r\n        if (event.data && this.item && this.item.id === event.data.id) {\r\n          this.dmsObject = this.dmsService.createLocalCopyOfDMSObject(event.data);\r\n          if (this.preview) {\r\n            this.preview.refresh();\r\n          }\r\n        }\r\n      });\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.INBOX_ITEM_CONFIRMED)\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe((event: any) => {\r\n        if (this.item && this.item.id === event.data.target.id) {\r\n          this.dmsParams = null;\r\n        }\r\n      });\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.uploadRegistry.unregister(this.uploadTarget.id);\r\n  }\r\n}\r\n","<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\r\n  <eo-loading-spinner class=\"object-detail__loader\"></eo-loading-spinner>\r\n</div>\r\n<ng-container *ngIf=\"item && !hasError; else noItem\">\r\n\r\n  <div class=\"eo-head eo-head-tabs\" [eoShortcuts]=\"shortcuts\">\r\n    <header class=\"eo-header\">\r\n      <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\r\n      <div class=\"eo-header-info\">\r\n        <h2 class=\"eo-header-title\">{{item.title}}</h2>\r\n        <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\r\n      </div>\r\n\r\n      <div class=\"eo-header-actions-container\">\r\n        <div class=\"eo-header-actions\">\r\n          <ng-container>\r\n            <eo-icon class=\"button refresh-button\" *ngIf=\"!recyclebinTabs\"\r\n              [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" [iconTitle]=\"('eo.list.refresh' | translate)\"\r\n              [ngClass]=\"{'disable-refresh': preventClickThrough}\" (click)=\"refreshContent()\"></eo-icon>\r\n            <eo-icon class=\"button sync-tab-btn\" *ngIf=\"enableCompare && !recyclebinTabs\"\r\n              [ngClass]=\"{'enabled': onEnableSync,'disable': !enableSync}\" [iconSrc]=\"'assets/_default/svg/ic_link.svg'\"\r\n              [iconTitle]=\"'eo.versions.detail.glue.tooltip' | translate\" (click)=\"onEnableSync = !onEnableSync\"></eo-icon>\r\n            <eo-favorite-icon [item]=\"item\"\r\n              *ngIf=\"!enableCompare && !recyclebinTabs && capabilities.favorites && !isJournalObject(item)\">\r\n            </eo-favorite-icon>\r\n            <eo-icon class=\"button oc-button\" *ngIf=\"!enableCompare && item.content?.id\" (click)=\"downloadOriginalContent()\"\r\n              [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\"\r\n              [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"></eo-icon>\r\n            <eo-edit-icon [item]=\"item\"\r\n              *ngIf=\"!enableCompare && !recyclebinTabs && item.content?.id && item.rights.edit && (agentIsConnected$ | async)\r\n              && !item.isFinalized && item.data.yuvsigstatus !== 'signed' && item.data.yuvsigstatus !== 'inprocess'\">\r\n            </eo-edit-icon>\r\n            <eo-icon class=\"button am-button\" *ngIf=\"!recyclebinTabs\" (click)=\"showActions()\"\r\n              [iconTitle]=\"('eo.object.details.actions.title' | translate)\"\r\n              [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\r\n          </ng-container>\r\n\r\n        </div>\r\n\r\n        <div class=\"eo-header-status-icons\">\r\n          <a class=\"content-link\" [title]=\"'eo.object.contentlink.tooltip' | translate\" *ngIf=\"item.content?.linked\"\r\n            [routerLink]=\"'/object/' + item.content.id\" [queryParams]=\"{type: item.content.type}\">\r\n            <span>{{'eo.object.contentlink' | translate}}</span>\r\n          </a>\r\n          <eo-icon class=\"subscription-icon\" *ngIf=\"item.subscriptions.length\"\r\n            [iconSrc]=\"'assets/_default/svg/ic_subscription.svg'\" [iconTitle]=\"subscriptionIconTooltip\"></eo-icon>\r\n          <eo-icon class=\"resubmission-icon\" *ngIf=\"item.resubmissions.length\"\r\n            [iconSrc]=\"'assets/_default/svg/ic_resubmission.svg'\"\r\n            [iconTitle]=\"'eo.object.resubmission.tooltip' | translate: {due: item.resubmissions[0].due | localeDate, info: item.resubmissions[0].info}\"></eo-icon>\r\n          <eo-icon class=\"shared-icon\" *ngIf=\"item.additionalvisibility.length && !recyclebinTabs\"\r\n            [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\r\n            [iconTitle]=\"'eo.object.shared.tooltip' | translate\"></eo-icon>\r\n          <eo-icon class=\"lock\" [ngClass]=\"{'myLock': item.lock.by.me}\" *ngIf=\"item.lock\"\r\n            [iconSrc]=\"'assets/_default/svg/ic_lock.svg'\" [iconTitle]=\"lockTooltip\"></eo-icon>\r\n          <eo-icon class=\"finalized-icon\" *ngIf=\"item.isFinalized\" [iconSrc]=\"'assets/_default/svg/ic_finalized.svg'\"\r\n            [iconTitle]=\"'eo.object.finalized.tooltip' | translate\"></eo-icon>\r\n          <eo-icon class=\"signed-icon inprocess\" *ngIf=\"item.data?.yuvsigstatus === 'inprocess'\"\r\n            [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\r\n            [iconTitle]=\"'eo.object.signature.tooltip.inprocess' | translate\"></eo-icon>\r\n          <eo-icon class=\"signed-icon signed\" *ngIf=\"item.data?.yuvsigstatus === 'signed'\"\r\n            [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\r\n            [iconTitle]=\"'eo.object.signature.tooltip.signed' | translate\"></eo-icon>\r\n          <eo-icon class=\"signed-icon stopped\"\r\n            *ngIf=\"item.data?.yuvsigstatus === 'canceled'\r\n                    || item.data?.yuvsigstatus === 'revised' || item.data?.yuvsigstatus === 'error' || item.data?.yuvsigstatus === 'expired'\"\r\n            [iconSrc]=\"'assets/_default/svg/ic_signature.svg'\"\r\n            [iconTitle]=\"'eo.object.signature.tooltip.stopped' | translate\"></eo-icon>\r\n            @if (item.processcount > 0) {\r\n              <eo-icon class=\"resubmission-icon\"\r\n                      [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"\r\n                      [iconTitle]=\"'eo.object.processcount.tooltip' | translate : {processcount: item?.processcount, text: processTooltip}\"></eo-icon>\r\n            }\r\n        </div>\r\n      </div>\r\n    </header>\r\n  </div>\r\n  <div class=\"eo-body\">\r\n\r\n    <yvc-split-tabs [layoutSettingsID]=\"cacheLayout\" [config]=\"splitTabConfig\" *ngIf=\"!item2; else tplCompare\">\r\n      <!-- summary -->\r\n      <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\r\n        <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"\r\n          [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\r\n      </ng-template>\r\n      <!-- metadata -->\r\n      <ng-template [yvcTab]=\"{id: 'indexdata', label: 'eo.object.indexdata.title' | translate}\">\r\n        <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\"\r\n          [formDisabled]=\"enableCompare\"></eo-object-form-edit>\r\n      </ng-template>\r\n      <!-- preview -->\r\n      <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\r\n        <eo-media [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" [dmsObject]=\"item\"\r\n          #viewer></eo-media>\r\n      </ng-template>\r\n      <!-- history -->\r\n      <ng-template [yvcTab]=\"{id: 'history', label: 'eo.object.history.title' | translate}\">\r\n        <eo-object-history [params]=\"{id: item.id, type: item.type?.qname}\">\r\n        </eo-object-history>\r\n      </ng-template>\r\n      <!-- links -->\r\n      <ng-template [yvcTab]=\"{id: 'links', label: 'eo.object.links.title' | translate}\">\r\n        <eo-object-links [dmsObject]=\"item\"></eo-object-links>\r\n      </ng-template>\r\n      <!-- signature -->\r\n      <ng-template [yvcTab]=\"{id: 'signature', label: 'eo.object.signature-tab.title' | translate}\">\r\n        <eo-signature-tab [dmsObject]=\"item\"></eo-signature-tab>\r\n      </ng-template>\r\n\r\n      <!-- plugin tabs -->\r\n      <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\r\n        <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\r\n      </ng-template>\r\n\r\n    </yvc-split-tabs>\r\n\r\n    <ng-template #tplCompare>\r\n      <yvc-split-view>\r\n        <ng-template yvcSplitArea [size]=\"50\">\r\n\r\n          <div class=\"cmp-wrapper\">\r\n            <div class=\"cmp-info\">\r\n              <div class=\"version\">{{'eo.versions.details.label' | translate}}<span>{{item.version}}</span></div>\r\n            </div>\r\n            <ng-container\r\n              *ngTemplateOutlet=\"tplTabs; context: {item, baseparams, indexdata: indexDataPreview, searchTerm}\"></ng-container>\r\n          </div>\r\n\r\n        </ng-template>\r\n        <ng-template yvcSplitArea [size]=\"50\">\r\n\r\n          <div class=\"cmp-wrapper\">\r\n            <div class=\"cmp-info\">\r\n              <div class=\"version\">{{'eo.versions.details.label' | translate}}<span>{{item2.version}}</span></div>\r\n            </div>\r\n            <ng-container\r\n              *ngTemplateOutlet=\"tplTabs; context: {item: item2, baseparams: baseparams2, indexdata: indexDataPreview2, searchTerm, diff: {baseparams, baseparams2, indexdata: indexDataPreview, indexdata2: indexDataPreview2}}\"></ng-container>\r\n          </div>\r\n        </ng-template>\r\n\r\n      </yvc-split-view>\r\n    </ng-template>\r\n\r\n    <ng-template #tplTabs let-item=\"item\" let-indexdata=\"indexdata\" let-baseparams=\"baseparams\"\r\n      let-searchTerm=\"searchTerm\" let-diff=\"diff\">\r\n      <yvc-tabs (tabChange)=\"onCompareTabChange($event)\" layoutSettingsID=\"{{'eo.object.details.compare.tabs' + (diff ? '.0' : '.1')}}\">\r\n        <!-- summary -->\r\n        <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\r\n          <eo-indexdata-summary [indexdata]=\"indexdata\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"></eo-indexdata-summary>\r\n        </ng-template>\r\n        <!-- metadata -->\r\n        <ng-template [yvcTab]=\"{id: 'indexdata', label: 'eo.object.indexdata.title' | translate}\">\r\n          <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\" [formDisabled]=\"enableCompare\"></eo-object-form-edit>\r\n        </ng-template>\r\n        <!-- preview -->\r\n        <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\r\n          <eo-media [useVersion]=\"true\" [searchTerm]=\"searchTerm\" [dmsObject]=\"item\" #viewer></eo-media>\r\n        </ng-template>\r\n        <!-- signature -->\r\n        @if(this.capabilities.signing){\r\n          <ng-template [yvcTab]=\"{id: 'signature', label: 'eo.object.signature-tab.title' | translate}\">\r\n            <eo-signature-tab [dmsObject]=\"item\"></eo-signature-tab>\r\n          </ng-template>\r\n        }\r\n        <!-- changes -->\r\n        <ng-template *ngIf=\"diff\"\r\n          [yvcTab]=\"{id: 'changes', label: 'eo.object.changes.title' | translate}\">\r\n          <eo-indexdata-summary [diff]=\"diff\" [enableVersions]=\"false\" [isChangesTab]=\"versionComponentTabs\" [dmsObject]=\"item\"></eo-indexdata-summary>\r\n        </ng-template>\r\n\r\n\r\n      </yvc-tabs>\r\n    </ng-template>\r\n\r\n  </div>\r\n</ng-container>\r\n\r\n<ng-template #noItem>\r\n  <span class=\"not-found\" *ngIf=\"nodmsobject\" translate>eo.bpm.nodmsobject</span>\r\n  <eo-error-message *ngIf=\"!showLoader\"\r\n    [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\r\n    <ng-content select=\".error\"></ng-content>\r\n  </eo-error-message>\r\n</ng-template>\r\n","import {\r\n  AfterViewInit,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  HostBinding,\r\n  Input,\r\n  OnInit,\r\n  Output,\r\n  ViewChild\r\n} from '@angular/core';\r\nimport {of} from 'rxjs';\r\nimport {map, takeUntil} from 'rxjs/operators';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {\r\n  BackendService, BaseParams, Capabilities, CapabilitiesService, Config, DmsObject, DmsParams,\r\n  DmsService, EnaioEvent, EventService, NotificationsService, SystemService, TranslateService, UserService, Utils\r\n} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {EmptyState} from '../../eo-framework-core/empty-state/empty-state.interface';\r\nimport {EmptyStateService} from '../../eo-framework-core/empty-state/empty-state.service';\r\nimport {LocaleDatePipe} from '../../eo-framework-core/pipes/locale-date.pipe';\r\nimport {\r\n  SelectionConfig,\r\n  SelectionService\r\n} from '../../eo-framework-core/selection/selection.service';\r\nimport {MediaComponent} from '../media/media.component';\r\nimport {IndexData} from '../ui/indexdata-summary/indexdata-summary.component';\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-recyclebin-details',\r\n  templateUrl: './recyclebin-details.component.html',\r\n  styleUrls: ['./recyclebin-details.component.scss']\r\n})\r\nexport class RecyclebinDetailsComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('viewer') preview: MediaComponent;\r\n  @ViewChild('confirmDelete') confirmDeleteButton: ElementRef;\r\n\r\n  // generate unique id to pass to upload registry\r\n  user$ = this.userService.user$;\r\n  _showDeleteDialog = false;\r\n  userId = '';\r\n  item: DmsObject;\r\n  indexDataPreview: IndexData;\r\n  baseparams: BaseParams;\r\n  hasError = false;\r\n  lockTooltip: string;\r\n  nodmsobject = false;\r\n  showLoader = false;\r\n  panelOrder = {'master': ['summary', 'history'], 'slave': ['preview']};\r\n\r\n  @Input() plugins: any[];\r\n  @Input() cacheLayout: any;\r\n  item2: DmsObject;\r\n  indexDataPreview2: IndexData;\r\n  baseparams2: BaseParams;\r\n  private _emptyState: EmptyState = {icon: 'ic_no-file.svg', text: '', className: ''};\r\n\r\n  capabilities: Capabilities;\r\n  @Input() applySelection: SelectionConfig;\r\n  @Input() parseDmsParams: (data) => {} = this.getDmsParams;\r\n  @Output() hasContent: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n  set showDeleteDialog(val: boolean) {\r\n    this._showDeleteDialog = val;\r\n\r\n    if (this._showDeleteDialog) {\r\n      setTimeout(() => this.confirmDeleteButton.nativeElement.focus(), 0);\r\n    }\r\n  }\r\n\r\n  get showDeleteDialog() {\r\n    return this._showDeleteDialog;\r\n  }\r\n\r\n  showDialog() {\r\n    if (this.item.rights.delete) {\r\n      this.showDeleteDialog = true;\r\n    }\r\n  }\r\n\r\n  @Input()\r\n  set emptyState(e: EmptyState) {\r\n    this._emptyState = e || EmptyStateService.defaultEmptyState();\r\n  }\r\n\r\n  get emptyState() {\r\n    return this._emptyState;\r\n  }\r\n\r\n  @Input('params')\r\n  set dmsParams(params: DmsParams) {\r\n    this.showLoader = true;\r\n    this.loadDmsObject(params).subscribe((res: DmsObject) => {\r\n      this.dmsObject = res;\r\n      this.showLoader = false;\r\n    },\r\n      Utils.throw(() => this.onHasError(true, true, false))\r\n    );\r\n  }\r\n\r\n  @Input('item')\r\n  set dmsObject(v: DmsObject) {\r\n    this.item = v;\r\n    this.onHasError();\r\n    // prepare indexdata preview\r\n    this.onIndexDataSaved(null, this.item);\r\n    this.eventService.trigger(EnaioEvent.DMS_OBJECT_LOADED, this.item);\r\n\r\n    if (this.item) {\r\n\r\n      if (this.item.lock) {\r\n        this.lockTooltip = this.translate.instant('eo.object.lock') + ' '\r\n          + (new LocaleDatePipe(this.translate).transform(this.item.lock.on))\r\n          + ', ' + this.item.lock.by.label + ' (' + this.item.lock.by.name + ')';\r\n      }\r\n    } else {\r\n      this.emptyState = this.empty.getEmptyState(0);\r\n    }\r\n  }\r\n\r\n  @HostBinding('attr.data-type') get dataType() {\r\n    return this.item ? this.item.typeName : 'none';\r\n  }\r\n\r\n  constructor(private router: Router,\r\n    private system: SystemService,\r\n    private empty: EmptyStateService,\r\n    private backend: BackendService,\r\n    private userService: UserService,\r\n    private toast: NotificationsService,\r\n    private dmsService: DmsService,\r\n    private selection: SelectionService,\r\n    private capabilityService: CapabilitiesService,\r\n    private eventService: EventService,\r\n    private configService: Config,\r\n    private translate: TranslateService) {\r\n\r\n    this.panelOrder = this.configService.getRaw('recyclebinDetailsTabs') || this.panelOrder;\r\n    this.user$.subscribe(user => {this.userId = user.id; });\r\n  }\r\n\r\n  private getDmsParams(data: any): DmsParams {\r\n    return data ? {...data, type: data.type} : null;\r\n  }\r\n\r\n  private updateContent() {\r\n    if (this.applySelection) {\r\n      this.selection\r\n        .find(this.applySelection.in)\r\n        .focus$\r\n        .pipe(\r\n          untilDestroyed(this)\r\n        )\r\n        .subscribe(result => {\r\n          this.showLoader = true;\r\n          this.loadDmsObject(this.parseDmsParams(result) as DmsParams).subscribe((res: DmsObject) => {\r\n            if (this.item && res && (this.item.id === res.id) && res.version > this.item.version) {\r\n              this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, res);\r\n            }\r\n            this.dmsObject = res;\r\n            this.showLoader = false;\r\n          },\r\n            Utils.throw((error) => {\r\n              return this.onHasError(true, true, false);\r\n            })\r\n          );\r\n        });\r\n    }\r\n  }\r\n\r\n  restoreFile(openLocationAfterRestore = false) {\r\n    this.dmsService.restore(this.item.id, this.userId, this.item.typeName).subscribe(() => {\r\n      this.updateContent();\r\n      if (openLocationAfterRestore) {\r\n        this.router.navigate(['/object', this.item.id]);\r\n      }\r\n      this.toast.success(\r\n        this.translate.instant('eo.recyclebin.details.restore.done.title'),\r\n        this.translate.instant('eo.recyclebin.details.restore.done.message', {item : this.item.title}),\r\n      );\r\n      this.eventService.trigger(EnaioEvent.DMS_OBJECT_RESTORED_OR_DELETED);\r\n    }, (error) => {\r\n      if (error.status === 409) {\r\n        this.toast.error(this.translate.instant('eo.recyclebin.details.restore.dms.object.error.409'));\r\n      }\r\n    });\r\n  }\r\n  deleteDmsObject() {\r\n    this.dmsService\r\n      .deleteDmsObject(this.item.id, this.item.type.name, true)\r\n      .subscribe(() => {\r\n          this.toast.success(\r\n            this.translate.instant('eo.recyclebin.details.delete.done.title'),\r\n            this.translate.instant('eo.recyclebin.details.delete.done.message', {item : this.item.title})\r\n          );\r\n          this._showDeleteDialog = false;\r\n          this.eventService.trigger(EnaioEvent.DMS_OBJECT_RESTORED_OR_DELETED);\r\n        });\r\n      }\r\n\r\n  private prepareIndexDataPreview(item: DmsObject, formData?: any) {\r\n    const {id, data, type, created, modified, content, contentFileName, contentFileSize, version} = item;\r\n\r\n    return this.system\r\n      .getObjectTypeForm(type.name, 'EDIT')\r\n      .pipe(\r\n        map(form => {\r\n          let indexDataPreview = {\r\n            form,\r\n            data: formData || data\r\n          };\r\n          let baseparams: BaseParams = {\r\n            id,\r\n            type: type.name,\r\n            createdOn: new Date(created.on),\r\n            modifiedOn: new Date(modified.on),\r\n            createdBy: `${created.by.title} (${created.by.name})`,\r\n            modifiedBy: `${modified.by.title} (${modified.by.name})`,\r\n            contentFileName: contentFileName ? contentFileName : null,\r\n            contentFileSize: contentFileSize ? Number(contentFileSize) : null,\r\n            version: version || 0,\r\n            mimeGroup: content ? content.contents ? content.contents[0].mimegroup : null : null,\r\n            digest: content ? content.contents ? content.contents[0].digest : null : null,\r\n            contentId: content ? content.contents ? content.id : null : null,\r\n            mimeType: content ? content.contents ? content.contents[0].mimetype : null : null,\r\n          };\r\n          return {indexDataPreview, baseparams};\r\n        }));\r\n  }\r\n\r\n  private onHasError(hasError = false, nodmsobject = false, showLoader = false) {\r\n    this.hasError = hasError;\r\n    this.nodmsobject = nodmsobject;\r\n    this.showLoader = showLoader;\r\n    this.hasContent.emit(!hasError);\r\n  }\r\n\r\n  loadDmsObject(params: DmsParams) {\r\n    if (params) {\r\n      delete params.version;\r\n    }\r\n    // check for valid id\r\n    return params?.id?.length === 32 ? this.dmsService.getDmsObjectByParams(params) : of(null);\r\n  }\r\n\r\n  downloadOriginalContent() {\r\n    this.backend.downloadContent([this.item], null, false, true);\r\n  }\r\n\r\n  // executed when the dms object changed due to saving its indexdata\r\n  onIndexDataSaved(formData, item) {\r\n    if (!this.item) {\r\n      this.indexDataPreview = null;\r\n      this.baseparams = null;\r\n    }\r\n    if (!this.item2) {\r\n      this.indexDataPreview2 = null;\r\n      this.baseparams2 = null;\r\n    }\r\n    if (item) {\r\n      this.prepareIndexDataPreview(item, formData)\r\n        .subscribe(data => {\r\n          if (item === this.item) {\r\n            this.indexDataPreview = data.indexDataPreview;\r\n            this.baseparams = data.baseparams;\r\n          } else {\r\n            this.indexDataPreview2 = data.indexDataPreview;\r\n            this.baseparams2 = data.baseparams;\r\n          }\r\n        });\r\n    }\r\n  }\r\n\r\n  isVisible(id: string) {\r\n    return this.panelOrder.master.includes(id) || this.panelOrder.slave.includes(id);\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.capabilities = this.capabilityService.getCapabilities();\r\n    this.updateContent();\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_UPDATED)\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe(event => {\r\n        if (event.data && this.item.id === event.data.id) {\r\n          this.dmsObject = this.dmsService.createLocalCopyOfDMSObject(event.data);\r\n          if (this.preview) {\r\n            this.preview.refresh();\r\n          }\r\n        }\r\n      });\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n  }\r\n}\r\n","<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\r\n    <eo-loading-spinner class=\"recyclebin-detail__loader\"></eo-loading-spinner>\r\n</div>\r\n<ng-container *ngIf=\"item && !hasError\">\r\n\r\n    <div class=\"eo-head eo-head-tabs\">\r\n        <header class=\"eo-header\">\r\n            <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\r\n\r\n            <div class=\"eo-header-info\">\r\n                <h2 class=\"eo-header-title\">{{item.title}}</h2>\r\n                <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\r\n            </div>\r\n\r\n            <div class=\"actions\">\r\n                <eo-icon *ngIf=\"item.content\"\r\n                         class=\"button\"\r\n                    [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"\r\n                    [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\"\r\n                    (click)=\"downloadOriginalContent()\"></eo-icon>\r\n                <eo-icon class=\"button\" [ngClass]=\"{disabled: !this.item.rights.delete}\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"\r\n                    [iconTitle]=\"this.item.rights.delete ? ('eo.recyclebin.details.delete.tooltip' | translate) : ('eo.recyclebin.details.delete.disabled.tooltip' | translate)\"\r\n                    (click)=\"showDialog();\"></eo-icon>\r\n                <button (click)=\"restoreFile()\" translate>eo.recyclebin.details.restore</button>\r\n                <button (click)=\"restoreFile(true)\" class=\"primary\"\r\n                    translate>eo.recyclebin.details.restoreopen</button>\r\n            </div>\r\n        </header>\r\n    </div>\r\n    <div class=\"eo-body\">\r\n        <yvc-split-tabs>\r\n\r\n            <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\r\n                <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\"\r\n                    [dmsObject]=\"item\"></eo-indexdata-summary>\r\n            </ng-template>\r\n\r\n            <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\r\n                <eo-media *ngIf=\"item\" [useVersion]=\"item.id === item.content?.id\" [dmsObject]=\"item\" #viewer></eo-media>\r\n            </ng-template>\r\n\r\n            <ng-template *ngIf=\"isVisible('history')\"\r\n                [yvcTab]=\"{id: 'history', label: 'eo.object.history.title' | translate}\">\r\n                <eo-object-history [params]=\"{id: item.id, type: item.type?.qname}\">\r\n                </eo-object-history>\r\n            </ng-template>\r\n\r\n            <!-- plugin tabs -->\r\n            <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\r\n                <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\r\n            </ng-template>\r\n        </yvc-split-tabs>\r\n    </div>\r\n</ng-container>\r\n\r\n<eo-dialog [title]=\"'eo.recyclebin.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\r\n    [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'recyclebin-delete__dialog'\">\r\n\r\n    <div>\r\n        <span>{{'eo.recyclebin.details.delete.dialog.message' | translate}}</span>\r\n        <br>\r\n        <span class=\"recyclebin-delete__dialog_warning\">{{'eo.recyclebin.details.delete.dialog.message.warning' |\r\n            translate}}</span>\r\n    </div>\r\n    <div class=\"action-buttons flex-row\">\r\n        <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\r\n            translate>eo.cta.button.cancel</button>\r\n        <button type=\"button\" #confirmDelete (click)=\"deleteDmsObject()\" class=\"button primary\"\r\n            translate>eo.cta.button.delete</button>\r\n    </div>\r\n</eo-dialog>\r\n","import {NgModule, ModuleWithProviders} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {PluginService, ENTRY_COMPONENTS, ENTRY_LINKS} from './plugin.service';\r\nimport {PluginDirective} from './plugin.directive';\r\nimport {PluginComponent, SidebarPluginComponent, PluginPipe} from './plugin.component';\r\nimport {RouterModule} from '@angular/router';\r\nimport {EoSharedModule} from '@eo-sdk/core';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    EoSharedModule,\r\n    RouterModule\r\n  ],\r\n  declarations: [PluginDirective, PluginComponent, SidebarPluginComponent, PluginPipe],\r\n  providers: [PluginService, {\r\n    provide: ENTRY_COMPONENTS,\r\n    useValue: []\r\n  }, {\r\n    provide: ENTRY_LINKS,\r\n    useValue: []\r\n  }],\r\n  exports: [PluginComponent, SidebarPluginComponent, PluginPipe]\r\n})\r\nexport class PluginsModule {\r\n  static forRoot(components: any[] = [], links: any[] = []): ModuleWithProviders<PluginsModule> {\r\n    return {\r\n      ngModule: PluginsModule,\r\n      providers: [{\r\n        provide: ENTRY_COMPONENTS,\r\n        useValue: components\r\n      }, {\r\n        provide: ENTRY_LINKS,\r\n        useValue: links\r\n      }]\r\n    };\r\n  }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {UiModule} from '../ui/ui.module';\r\nimport {ObjectDetailsComponent} from './object-details.component';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {MediaModule} from '../media/media.module';\r\nimport {ShortcutsModule} from '../shortcuts/shortcuts.module';\r\n// import {TabContainerModule} from '../tab-container/tab-container.module';\r\nimport {ObjectFormModule} from '../object-form/object-form.module';\r\nimport {PipesModule} from '../../eo-framework-core/pipes/pipes.module';\r\nimport {ObjectHistoryComponent} from './object-history/object-history.component';\r\nimport {ObjectLinksComponent} from './object-links/object-links.component';\r\nimport {FavoriteIconComponent} from './favorite-icon/favorite-icon.component';\r\nimport {FormElementsModule} from '../form-elements/form-elements.module';\r\nimport {RouterModule} from '@angular/router';\r\nimport {HistoryFilterPipe} from './object-history/history-filter/history-filter-pipe/history-filter.pipe';\r\nimport {HistoryFilterComponent} from './object-history/history-filter/history-filter.component';\r\nimport {AgGridModule} from '@ag-grid-community/angular';\r\nimport {EditIconComponent} from './edit-icon/edit-icon.component';\r\nimport {ActionModule} from '../actions/action.module';\r\nimport {YvcTabsModule} from '@yuuvis/components/tabs';\r\nimport {YvcSplitTabsModule} from '@yuuvis/components/split-tabs';\r\nimport {RecyclebinDetailsComponent} from '../recyclebin-details/recyclebin-details.component';\r\nimport {YvcSplitViewModule} from '@yuuvis/components/split-view';\r\nimport {PluginsModule} from '../plugins/plugins.module';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    FormElementsModule,\r\n    ObjectFormModule,\r\n    MediaModule,\r\n    ShortcutsModule,\r\n    UiModule,\r\n    PipesModule,\r\n    RouterModule,\r\n    PipesModule,\r\n    AgGridModule,\r\n    ActionModule,\r\n    YvcTabsModule,\r\n    YvcSplitTabsModule,\r\n    YvcSplitViewModule,\r\n    PluginsModule\r\n  ],\r\n  declarations: [\r\n    ObjectDetailsComponent,\r\n    RecyclebinDetailsComponent,\r\n    ObjectHistoryComponent,\r\n    ObjectLinksComponent,\r\n    FavoriteIconComponent,\r\n    HistoryFilterPipe,\r\n    HistoryFilterComponent,\r\n    EditIconComponent\r\n  ],\r\n  exports: [ObjectDetailsComponent, RecyclebinDetailsComponent, ObjectHistoryComponent, ObjectLinksComponent, FavoriteIconComponent, HistoryFilterPipe]\r\n})\r\nexport class ObjectDetailsModule {\r\n}\r\n","import {AfterViewInit, Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {AppCacheService, DmsObject, DmsService, EnaioEvent, EventService} from '@eo-sdk/core';\r\n\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {PendingChangesService} from '../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {SelectionService} from '../../eo-framework-core/selection/selection.service';\r\nimport {ActionService} from '../actions/action-service/action.service';\r\nimport {Tabs} from '@yuuvis/components/tabs';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-object-state-details',\r\n  templateUrl: './object-state-details.component.html',\r\n  styleUrls: ['./object-state-details.component.scss']\r\n})\r\nexport class ObjectStateDetailsComponent implements OnInit, AfterViewInit {\r\n\r\n  static LAST_SEEN_LIMIT = 10;\r\n\r\n  @ViewChild(Tabs) eoTabs: Tabs;\r\n\r\n  @Input() plugins: any[];\r\n\r\n  @Input() context: DmsObject;\r\n  @Input() selectedItem: DmsObject;\r\n  @Input() seenItems: any[] = [];\r\n  @Input() frontPageData;\r\n\r\n  @HostBinding('class.visible')\r\n  @Input() visible = true;\r\n\r\n  @Output() onTabChange = new EventEmitter();\r\n\r\n  @HostBinding('attr.data-type') get dataType() {\r\n    return this.context ? this.context.typeName : 'none';\r\n  }\r\n\r\n  @HostBinding('attr.data-id') get dataId() {\r\n    return this.context ? this.context.id : 'none';\r\n  }\r\n\r\n  @HostBinding('style.height') get visibility() {\r\n    return !this.visible ? 0 : '100%';\r\n  }\r\n\r\n  get title() {\r\n    return this.eoTabs?.tabs?.find(t => t.id === this.eoTabs.selectedTab)?.label || '';\r\n  }\r\n\r\n  constructor(private selection: SelectionService, private actionService: ActionService, private appCache: AppCacheService,\r\n    private dmsService: DmsService, private eventService: EventService, private pendingChanges: PendingChangesService) {\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_LOADED)\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe(event => this.onFocus(event.data));\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_UPDATED)\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe(event => this.onFocus(event.data));\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_DELETED)\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe(event => (this.onRemove(event.data), this.onRemoveModification(event.data)));\r\n  }\r\n\r\n  onFocus(item: DmsObject) {\r\n    this.selectedItem = item;\r\n    if (item && item.id !== this.context.id) {\r\n      const notSeenTab = false //!this.lastSeenTab TODO: enable again?\r\n      const notModified = this.seenItems.find(i => i.id === item.id)?.modified?.on === item.modified.on;\r\n      let {id, typeName, title, description, modified} = item;\r\n      if (notSeenTab || !notModified) this.onRemove(item, [{id, type: typeName, title, description, modified}]);\r\n    }\r\n  }\r\n\r\n  onRemove(item: DmsObject, seen = []) {\r\n    if (item && item.id) {\r\n      this.seenItems = seen.concat(this.seenItems.filter(i => i.id !== item.id)).slice(0, ObjectStateDetailsComponent.LAST_SEEN_LIMIT);\r\n      this.appCache.setItem('eo.last.seen.objects-' + this.context.id, this.seenItems).subscribe();\r\n    }\r\n  }\r\n\r\n  onRemoveModification(item: DmsObject) {\r\n    if (item && item.id && this.frontPageData) {\r\n      this.frontPageData.lastModifications = this.frontPageData.lastModifications && this.frontPageData.lastModifications.filter(i => i.id !== item.id);\r\n    }\r\n  }\r\n\r\n\r\n  selectFrontPageDoc(doc, event) {   \r\n    if (!this.pendingChanges.check() && !event?.ctrlKey) {\r\n      this.selection.focus(doc);\r\n    }\r\n    if (event?.ctrlKey) {\r\n      const url = window.location.href.split('/object')[0] + '/object/' + doc.id + '?type=' + doc.type;\r\n      window.open(url, '_blank');\r\n    }\r\n  }\r\n\r\n  onContextMenuClicked(evt, doc?) {\r\n    evt.preventDefault();\r\n    evt.stopPropagation();\r\n    if (!this.pendingChanges.check()) {\r\n      this.dmsService.getDmsObjectByParams(doc || this.context).subscribe(o => this.actionService.showActions([o], 'DMS_OBJECT'));\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.appCache.getItem('eo.last.seen.objects-' + this.context.id)\r\n      .subscribe(ls => this.seenItems = ls || []);\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n  }\r\n\r\n}\r\n","<header class=\"eo-head\">\r\n  <div class=\"eo-header dark\">\r\n    <div class=\"eo-header-info eo-header__content\">\r\n      <!-- <h2 translate>eo.state.object.frontpage.title</h2> -->\r\n      <h2 class=\"eo-header-title\">{{ title }}</h2>\r\n      <h3 class=\"eo-header-subtitle flex-row\">{{context.title}}</h3>\r\n      <div class=\"sizing\" *ngIf=\"frontPageData\">\r\n        <div translate [translateParams]=\"{doccount: frontPageData?.documentCount.value}\">eo.state.object.frontpage.doccount</div>\r\n        <div translate [translateParams]=\"{filesize: frontPageData?.totalFilesize | fileSize}\">eo.state.object.frontpage.filesize</div>\r\n      </div>\r\n    </div>\r\n    <div class=\"eo-header-actions\"></div>\r\n  </div>\r\n</header>\r\n\r\n<yvc-tabs (tabChange)=\"onTabChange.emit($event)\" layoutSettingsID=\"eo.object.state.details.tabs\">\r\n  <ng-template [yvcTab]=\"{id: 'last-changes', label: 'eo.state.object.frontpage.lastchanges' | translate}\">\r\n    <div class=\"panel last-changes\">\r\n        <div class=\"doc\" *ngFor=\"let doc of frontPageData?.lastModifications\"\r\n          [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc, $event)\"\r\n          (contextmenu)=\"onContextMenuClicked($event, doc)\">\r\n          <div class=\"marker\"></div>\r\n          <div class=\"content\">\r\n            <div class=\"date\">{{doc.modified | localeDate}}</div>\r\n            <strong>{{doc.title}}</strong>\r\n            <div class=\"desc\">{{doc.description}}</div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n  </ng-template>\r\n\r\n  <ng-template [yvcTab]=\"{id: 'last-seen', label: 'eo.state.object.frontpage.lastseen' | translate}\">\r\n   <div class=\"panel last-seen\">\r\n        <div class=\"doc\" *ngFor=\"let doc of seenItems\"\r\n          [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc, $event)\"\r\n          (contextmenu)=\"onContextMenuClicked($event, doc)\">\r\n          <div class=\"marker\"></div>\r\n          <div class=\"content\">\r\n            <div class=\"date\">{{doc.modified.on | localeDate}}</div>\r\n            <strong>{{doc.title}}</strong>\r\n            <div class=\"desc\">{{doc.description}}</div>\r\n          </div>\r\n        </div>\r\n    </div> \r\n  </ng-template>\r\n\r\n  <!-- plugin tabs -->\r\n  <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\r\n    <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\r\n  </ng-template>\r\n  \r\n</yvc-tabs>","import {Component, OnInit, Input} from '@angular/core';\r\nimport {PreparedItemContent} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-prepare-content-exists-info',\r\n  templateUrl: './prepare-content-exists-info.component.html',\r\n  styleUrls: ['./prepare-content-exists-info.component.scss']\r\n})\r\nexport class PrepareContentExistsInfoComponent {\r\n\r\n  queryParam: any;\r\n\r\n  private _content;\r\n  @Input() set content(c: PreparedItemContent) {\r\n    this._content = c;\r\n    this.queryParam = encodeURIComponent(JSON.stringify({\r\n      \"filters\": {\r\n        \"digest\": {\r\n          \"o\": \"eq\",\r\n          \"v1\": c.digest\r\n        }\r\n      }\r\n    }));\r\n  }\r\n\r\n  get content() {\r\n    return this._content;\r\n  }\r\n}\r\n","<ng-container *ngIf=\"content?.existscount > 0\">\r\n  <a [routerLink]=\"['/result']\" [queryParams]=\"{query: queryParam}\">\r\n    {{'eo.prepare.content.existscount.message'|translate: ({count: content.existscount})}} &raquo;\r\n  </a>\r\n</ng-container>","import {ColDef, GridOptions} from '@ag-grid-community/core';\r\nimport {Component, ElementRef, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {\r\n  BackendService, CapabilitiesService,\r\n  NotificationsService,\r\n  ObjectType,\r\n  PrepareService,\r\n  PreparedItem,\r\n  PreparedItemTemplate,\r\n  PreparedItemType,\r\n  SystemService,\r\n  TranslateService,\r\n  Utils,\r\n  DmsObject\r\n} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {PendingChangesService} from '../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {SelectionConfig, SelectionService} from '../../eo-framework-core/selection/selection.service';\r\nimport {PreviewFile} from '../media/media.component';\r\nimport {FormStatusChangedEvent} from '../object-form/form-status-changed-event.interface';\r\nimport {ObjectFormOptions} from '../object-form/index';\r\nimport {ObjectFormComponent} from '../object-form/object-form/object-form.component';\r\n\r\nexport interface PreparePhase {\r\n  name: string;\r\n  data: {\r\n    previewIndex?: number,\r\n    previewFile?: PreviewFile,\r\n    file?: boolean,\r\n    withoutFile?: boolean,\r\n    templates?: any[]\r\n  };\r\n}\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-prepare-details',\r\n  templateUrl: './prepare-details.component.html',\r\n  styleUrls: ['./prepare-details.component.scss']\r\n})\r\nexport class PrepareDetailsComponent implements OnInit {\r\n  gridOptions: GridOptions;\r\n\r\n  // ID set by pendingChanges service when editing indexdata\r\n  // Used to finish the pending task when editing is done\r\n  private pendingTaskId: string;\r\n  private selectedTypeObject;\r\n\r\n  // hidden file input to trigger file uploads\r\n  @ViewChild('file') file: ElementRef;\r\n  @ViewChild('form') objectForm: ObjectFormComponent;\r\n  @ViewChild('confirmDelete') confirmDeleteButton: ElementRef;\r\n  @ViewChild('confirmContentDelete') confirmContentDeleteButton: ElementRef;\r\n\r\n  // preparation is divided into several phases\r\n  // select an object type\r\n  PHASE_TYPE = 'type';\r\n  // add content\r\n  PHASE_CONTENT = 'content';\r\n  // set indexdata\r\n  PHASE_INDEXDATA = 'indexdata';\r\n\r\n  _preparedItem: PreparedItem;\r\n  pseudoDmsObject: DmsObject;\r\n\r\n  @Input('preparedItem')\r\n  set preparedItem(item: PreparedItem) {\r\n    const objectToStringifiedValueArray = (obj) => JSON.stringify(Object.keys(obj || {}).sort().map(key => obj[key]));\r\n    const isProcessingAllowed = objectToStringifiedValueArray(this._preparedItem) !== objectToStringifiedValueArray(item);\r\n    if (item && item.types) {\r\n      item.types = item.types.sort(Utils.sortValues('label'));\r\n    }\r\n    this._preparedItem = item;\r\n    if (this.preparedItem && this.preparedItem.id && isProcessingAllowed) {\r\n      this.process();\r\n      // we need this for the O365 integration TUK-3576\r\n      this.pseudoDmsObject = new DmsObject({id: this.preparedItem.id, version: 0});\r\n    }\r\n  }\r\n\r\n  get preparedItem() {\r\n    return this._preparedItem;\r\n  }\r\n\r\n\r\n  @Input() emptyState = {icon: 'assets/_default/svg/ic_error.svg', text: '', className: 'details-error'};\r\n\r\n  preparePhase: PreparePhase;\r\n  selectedTemplate: PreparedItemTemplate;\r\n  selectedTemplateFile: PreviewFile;\r\n  formOptions: ObjectFormOptions;\r\n  formState: FormStatusChangedEvent;\r\n  chooseTemplate: boolean;\r\n  uploadInProgress: boolean;\r\n  committing: boolean;\r\n  loading = false;\r\n  tagFilterOptions: any;\r\n  _showDeleteDialog = false;\r\n  _showContentDeleteDialog = false;\r\n  deletedContentIndex: number;\r\n\r\n  // title to be displayed in the details header\r\n  header = {\r\n    title: null,\r\n    location: {\r\n      label: null,\r\n      link: null\r\n    },\r\n    subtitle: null\r\n  };\r\n\r\n  colDefs: ColDef[] = [{\r\n    headerName: '',\r\n    field: 'title',\r\n    cellRenderer: this.cellRenderer,\r\n    filter: false\r\n  }];\r\n\r\n  @Input() applySelection: SelectionConfig;\r\n\r\n  @Output() onItemChanged = new EventEmitter<PreparedItem>();\r\n  @Output() onCommit = new EventEmitter<string>();\r\n  @Output() onItemRemove = new EventEmitter<PreparedItem>();\r\n\r\n  @HostBinding('attr.data-type')\r\n  get dataType() {\r\n    return this.preparedItem && this.preparedItem.selectedtype ? this.preparedItem.selectedtype.name : 'none';\r\n  }\r\n\r\n  set showDeleteDialog(val: boolean) {\r\n    this._showDeleteDialog = val;\r\n\r\n    if (this._showDeleteDialog) {\r\n      setTimeout(() => this.confirmDeleteButton.nativeElement.focus(), 0);\r\n    }\r\n  }\r\n\r\n  get showDeleteDialog() {\r\n    return this._showDeleteDialog;\r\n  }\r\n\r\n  set showContentDeleteDialog(val: boolean) {\r\n    this._showContentDeleteDialog = val;\r\n\r\n    if (this._showContentDeleteDialog) {\r\n      setTimeout(() => this.confirmContentDeleteButton.nativeElement.focus(), 0);\r\n    }\r\n  }\r\n\r\n  get showContentDeleteDialog() {\r\n    return this._showContentDeleteDialog;\r\n  }\r\n\r\n  constructor(private prepareService: PrepareService,\r\n    private router: Router,\r\n    private pendingChanges: PendingChangesService,\r\n    private translate: TranslateService,\r\n    private notification: NotificationsService,\r\n    private systemService: SystemService,\r\n    private selection: SelectionService,\r\n    private backend: BackendService,\r\n    private capabilites: CapabilitiesService) {\r\n  }\r\n\r\n  cellRenderer(params) {\r\n    return `<div class=\"template\">\r\n              <div class=\"title\">${params.data.title || ''}${params.data.content ? '<span class=\"title\">' + ' (' + params.data.content.mimegroup + ')' + '</span>' : ''}</div>\r\n              <div class=\"description\">${params.data.description || ''}</div>\r\n              <div class=\"tags\">\r\n                ${params.data.tags.map(tag => `<span class=\"chip\">${tag}</span>`).join('')}\r\n              </div>\r\n            </div>\r\n          `;\r\n  }\r\n\r\n  private startPending() {\r\n    // because this method will be called every time the form status changes,\r\n    // pending task will only be started once until it was finished\r\n    if (!this.pendingChanges.hasPendingTask(this.pendingTaskId || ' ')) {\r\n      this.pendingTaskId = this.pendingChanges.startTask();\r\n    }\r\n  }\r\n\r\n  private finishPending() {\r\n    this.pendingChanges.finishTask(this.pendingTaskId);\r\n  }\r\n\r\n  prepareFormContent(formData?) {\r\n    const data = formData || this.selectedTypeObject.data;\r\n    this.formOptions = {\r\n      formModel: this.selectedTypeObject.form,\r\n      data: data\r\n    };\r\n    if (this.preparedItem.parent) {\r\n      this.formOptions.context = {\r\n        id: this.preparedItem.parent.id,\r\n        title: this.preparedItem.parent.title,\r\n        typeName: this.preparedItem.parent.type\r\n      };\r\n    }\r\n  }\r\n\r\n  resetObjectType() {\r\n    this.prepareService.updateChildType('dms:sysobject', this.preparedItem.id).subscribe(updatedPrepareItem => {\r\n      this.preparedItem = updatedPrepareItem;\r\n      this.onItemChanged.emit(updatedPrepareItem);\r\n      this.initPreparePhase(this.PHASE_TYPE);\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Commits a prepared item. This will cause the temporary prepared object to be converted to a real DMS-Object.\r\n   * @param openLocationAfterCommit - when set to true, application will navigate to the objects location\r\n   */\r\n  commit(openLocationAfterCommit?: boolean) {\r\n    setTimeout(() => {\r\n      if (this.formState && !this.formState.invalid) {\r\n        const formData = this.objectForm.getFormData();\r\n        this.committing = true;\r\n        this.prepareService\r\n          .commitPreparedItem(this.preparedItem.id, this.preparedItem.getSelectedTypeObject().name, formData)\r\n          .subscribe((res) => {\r\n            this.onCommit.emit(res);\r\n            this.finishPending();\r\n            if (openLocationAfterCommit) {\r\n              this.router.navigate(['/object', res]);\r\n            }\r\n          }, error => {\r\n            const {key, cause, uniquefields, created} = error.error;\r\n            if (key && key === 'DMS_METADATA_UNIQUE_VIOLATION_ERROR') {\r\n              this.notification.error(null, this.translate.instant('eo.unique.validation.error.hint', {field: uniquefields.toString()}));\r\n            } else if (key && key === 'DMS_SYNCHRONOUS_INDEXING_FAILED') {\r\n              this.notification.warning(null, this.translate.instant('eo.prepare.commit.error.indexFailed'));\r\n              this.onCommit.emit(created.id);\r\n              this.finishPending();\r\n              if (openLocationAfterCommit) {\r\n                this.router.navigate(['/object', created.id]);\r\n              }\r\n            } else if (cause) {\r\n              this.notification.error(null, cause.messages[0]);\r\n            } else {\r\n              this.notification.error(\r\n                  this.translate.instant('eo.prepare.created.error.title'),\r\n                  this.translate.instant('eo.prepare.created.error.message')\r\n              );\r\n            }\r\n            this.committing = false;\r\n            this.finishPending();\r\n            this.prepareFormContent(formData);\r\n          })\r\n      }\r\n    }, 500);\r\n  }\r\n\r\n  removeItem(item: PreparedItem) {\r\n    this.finishPending();\r\n    this.onItemRemove.emit(item);\r\n    this._showDeleteDialog = false;\r\n  }\r\n\r\n  removeItemContent(item: PreparedItem, deletedContentIndex: number) {\r\n    this.prepareService.deletePreparedItemContent(item.id, deletedContentIndex)\r\n      .subscribe((updatedItem: PreparedItem) => {\r\n        this.preparedItem = updatedItem;\r\n        this.showContentDeleteDialog = false;\r\n      });\r\n  }\r\n\r\n  getFileNames(item: PreparedItem) {\r\n    return (item.contents || []).map(c => c.path).join(', ');\r\n  }\r\n\r\n  /**\r\n   * Select a target object type for the current prepared item.\r\n   * @param type - the object types name to be set as target\r\n   */\r\n  selectObjectType(type: PreparedItemType) {\r\n    this.preparedItem.types\r\n      .forEach((t) => t.selected = (t.name === type.name));\r\n\r\n    this.prepareService\r\n      .updateChildType(type.name, this.preparedItem.id)\r\n      .subscribe(updatedPreparedItem => {\r\n        this.preparedItem = updatedPreparedItem;\r\n        this.onItemChanged.emit(updatedPreparedItem);\r\n      });\r\n  }\r\n\r\n  /**\r\n   * Add a template to the current prepared item.\r\n   * @param template - the template to be added\r\n   */\r\n  addTemplate(template: PreparedItemTemplate) {\r\n\r\n    this.prepareService\r\n      .addTemplate(this.preparedItem.id, template.id)\r\n      .subscribe((updatedPreparedItem) => {\r\n        this.preparedItem = updatedPreparedItem;\r\n        this.onItemChanged.emit(updatedPreparedItem);\r\n      }, Utils.throw(null,\r\n        this.translate.instant('eo.prepare.template.error.title'),\r\n        this.translate.instant('eo.prepare.template.error.message')));\r\n  }\r\n\r\n  /**\r\n   * Select a template. Will show preview for the selected template.\r\n   * @param template - the template to be selected\r\n   */\r\n  selectTemplate(template: PreparedItemTemplate) {\r\n    this.selectedTemplate = template;\r\n    this.selectedTemplateFile = !(template && template.content) ? null : {\r\n      uri: this.prepareService.getTemplatePreviewUri(this.selectedTemplate.id),\r\n      uriPdf: this.prepareService.getTemplatePreviewUri(this.selectedTemplate.id, 'PDF'),\r\n      mimetype: template.content.mimetype,\r\n      mimegroup: template.content.mimegroup,\r\n      size: template.content.size\r\n    };\r\n  }\r\n\r\n  setPreviewUri(index: number) {\r\n    Object.assign(this.preparePhase.data, this.getPreviewData(index));\r\n  }\r\n\r\n  // skip content selection for the current prepared item\r\n  // and continue setting indexdata\r\n  noFile() {\r\n    this.initPreparePhase(this.PHASE_INDEXDATA);\r\n  }\r\n\r\n  // trigger file upload\r\n  upload() {\r\n    // after the user selected a file fileChangeListener() will continue\r\n    this.file.nativeElement.click();\r\n  }\r\n\r\n  // onChange listener on hidden file input\r\n  fileChangeListener(event) {\r\n    const file: File = event[0];\r\n    this.uploadInProgress = true;\r\n    this.prepareService\r\n      .uploadContent(this.preparedItem.id, file)\r\n      .subscribe(res => {\r\n        // upload succeeded so we can go on to the next prepare phase\r\n        this.preparedItem = new PreparedItem(res);\r\n        this.onItemChanged.emit(this.preparedItem);\r\n        this.initPreparePhase(this.PHASE_INDEXDATA);\r\n        this.uploadInProgress = false;\r\n      }, Utils.throw(error => {\r\n        if (error.error && error.error.cause) {\r\n          this.notification.error(null, error.error.cause.messages[0]);\r\n        } else if (error.error) {\r\n          this.notification.error(null, error.error.message);\r\n        } else {\r\n          this.notification.error(this.translate.instant('eo.prepare.created.error.title'));\r\n        }\r\n        this.file.nativeElement.value = null;\r\n        this.committing = false;\r\n        this.uploadInProgress = false;\r\n      },\r\n        this.translate.instant('eo.upload.global.error.title'),\r\n        this.translate.instant('eo.upload.global.error.description')\r\n      ));\r\n  }\r\n\r\n  onFormStatusChanged(evt) {\r\n    this.formState = evt;\r\n\r\n    if (this.formState.dirty) {\r\n      this.startPending();\r\n    } else {\r\n      this.finishPending();\r\n    }\r\n  }\r\n\r\n  private process() {\r\n    // todo: reset stuff\r\n    this.formState = null;\r\n    this.formOptions = null;\r\n    this.getPreparePhase();\r\n  }\r\n\r\n  /**\r\n   * Determine the prepare phase to be initialized based on the conditions\r\n   * of the current prepared item.\r\n   */\r\n  private getPreparePhase() {\r\n    if (!this.preparedItem.getSelectedTypeObject()) {\r\n      // Step #1 select an object type if not yet set\r\n      this.initPreparePhase(this.PHASE_TYPE);\r\n    } else if (!this.preparedItem.hasContent()) {\r\n      // Step #2 add content if not yet contained\r\n      this.initPreparePhase(this.PHASE_CONTENT);\r\n    } else {\r\n      // Step #3 edit indexdata and save\r\n      this.initPreparePhase(this.PHASE_INDEXDATA);\r\n    }\r\n  }\r\n\r\n  private createTemplate(selectedTypeObject) {\r\n    const type: ObjectType = this.systemService.getObjectType(selectedTypeObject.name);\r\n    this.loading = true;\r\n    this.prepareService\r\n      .getTemplates(selectedTypeObject.name)\r\n      .subscribe((templates: PreparedItemTemplate[]) => {\r\n        const fileRequired = this.preparedItem.state.contentstate === 'REQUIRED';\r\n        const data = {\r\n          file: type.maxFiles > 0,\r\n          withoutFile: !(type.minFiles > 0) && !fileRequired,\r\n          templates: templates || []\r\n        };\r\n\r\n        // if the current object type does not support file upload or template contents\r\n        // we skip content phase and move on to indexdata phase\r\n        if (!data.file) {\r\n          this.initPreparePhase(this.PHASE_INDEXDATA);\r\n        } else {\r\n          this.preparePhase = {\r\n            name: this.PHASE_CONTENT,\r\n            data: data\r\n          };\r\n          this.setupTitle();\r\n        }\r\n        this.tagFilterOptions = this.createTagFilterOptions(templates);\r\n        this.gridOptions = {\r\n          context: {count: this.preparePhase.data.templates.length},\r\n          rowData: this.preparePhase.data.templates.sort(Utils.sortValues('title')),\r\n          columnDefs: this.colDefs,\r\n          rowHeight: 80\r\n        };\r\n        this.loading = false;\r\n      });\r\n  }\r\n\r\n  createTagFilterOptions(templates: PreparedItemTemplate[]) {\r\n    let tagFilterOptions = [];\r\n    templates.forEach(template => {\r\n      template.tags.forEach(tag => {\r\n        tagFilterOptions.push({label: tag, filter: (node) => node.data.tags.includes(tag), value: true});\r\n      });\r\n    });\r\n    return Utils.uniqBy(tagFilterOptions, 'label');\r\n  }\r\n\r\n  /**\r\n   * Initialize a specific prepare phase.\r\n   * @param phase - phase to init (PHASE_TYPE, PHASE_CONTENT, PHASE_INDEXDATA)\r\n   */\r\n  private initPreparePhase(phase: string) {\r\n    this.preparePhase = null;\r\n    this.selectedTypeObject = this.preparedItem.getSelectedTypeObject();\r\n\r\n    switch (phase) {\r\n      // init prepare phase for selecting the target object type\r\n      case this.PHASE_TYPE: {\r\n\r\n        this.preparePhase = {\r\n          name: this.PHASE_TYPE,\r\n          data: this.getPreviewData()\r\n        };\r\n        this.setupTitle();\r\n        break;\r\n      }\r\n\r\n      // init prepare phase for setting up content\r\n      case this.PHASE_CONTENT: {\r\n\r\n        this.chooseTemplate = false;\r\n        this.selectedTemplate = null;\r\n\r\n        // check whether or not the preparedItem already contains a file or template\r\n        if (this.preparedItem.hasContent()) {\r\n          if (!this.preparedItem.state.typeselectedallowed) {\r\n            // if the selected type is not allowed, we'll go back to the type select state ...\r\n            this.initPreparePhase(this.PHASE_TYPE);\r\n          } else {\r\n            // ... otherwise we go on setting indexdata\r\n            this.initPreparePhase(this.PHASE_INDEXDATA);\r\n          }\r\n        } else {\r\n\r\n          if (this.preparedItem.state.contentstate === 'NOCONTENTALLOWED') {\r\n            this.initPreparePhase(this.PHASE_INDEXDATA);\r\n          } else {\r\n            this.createTemplate(this.selectedTypeObject);\r\n          }\r\n        }\r\n        break;\r\n      }\r\n      // init prepare phase for adding indexdata\r\n      case this.PHASE_INDEXDATA: {\r\n\r\n        this.chooseTemplate = false;\r\n\r\n        if (!this.preparedItem.state.typeselectedallowed) {\r\n          // if the selected type is not allowed, we'll go back to the type select state ...\r\n          this.initPreparePhase(this.PHASE_TYPE);\r\n        } else {\r\n\r\n          this.prepareFormContent();\r\n\r\n          this.preparePhase = {\r\n            name: this.PHASE_INDEXDATA,\r\n            data: this.getPreviewData()\r\n          };\r\n          this.setupTitle();\r\n        }\r\n        break;\r\n      }\r\n    }\r\n  }\r\n\r\n  private getPreviewData(index?: number): any {\r\n    if (this.preparedItem && this.preparedItem.contents && this.preparedItem.contents.length) {\r\n      index = index || 0;\r\n      return {\r\n        previewIndex: index,\r\n        previewFile: {\r\n          uri: this.prepareService.getPreviewUri(this.preparedItem.id, index),\r\n          uriPdf: this.prepareService.getPreviewUri(this.preparedItem.id, index, 'PDF'),\r\n          mimetype: this.preparedItem.contents[index].mimetype,\r\n          mimegroup: this.preparedItem.contents[index].mimegroup,\r\n          path: this.preparedItem.contents[index].path,\r\n          size: this.preparedItem.contents[index].size\r\n        }\r\n      };\r\n    }\r\n\r\n    return {previewFile: null};\r\n  }\r\n\r\n  /**\r\n   * Setup title for the current prepared item based on the\r\n   * current prepare phase. Should be called after prepare phase is identified.\r\n   */\r\n  private setupTitle() {\r\n\r\n    this.translate.get([\r\n      'eo.prepare.location.title.sysroot',\r\n      'eo.prepare.location.title.prefix',\r\n      'eo.prepare.details.type.title',\r\n      'eo.prepare.details.type.subtitle',\r\n      'eo.prepare.details.content.subtitle',\r\n      'eo.prepare.details.indexdata.subtitle'\r\n    ]).subscribe(t => {\r\n\r\n      let header = {\r\n        title: null,\r\n        location: {\r\n          label: null,\r\n          link: null\r\n        },\r\n        subtitle: null\r\n      };\r\n      switch (this.preparePhase.name) {\r\n        case this.PHASE_TYPE: {\r\n          header.title = t['eo.prepare.details.type.title'];\r\n          header.subtitle = t['eo.prepare.details.type.subtitle'];\r\n          break;\r\n        }\r\n        case this.PHASE_CONTENT: {\r\n          const typeObject = this.preparedItem.getSelectedTypeObject();\r\n          header.title = typeObject ? typeObject.label : '';\r\n          header.subtitle = t['eo.prepare.details.content.subtitle'];\r\n          break;\r\n        }\r\n        case this.PHASE_INDEXDATA: {\r\n          const typeObject = this.preparedItem.getSelectedTypeObject();\r\n          header.title = typeObject ? typeObject.label : '';\r\n          header.subtitle = t['eo.prepare.details.indexdata.subtitle'];\r\n          break;\r\n        }\r\n      }\r\n\r\n      // set up location info\r\n      if (this.preparedItem.parent.type === 'sysroot') {\r\n        header.location = {\r\n          label: t['eo.prepare.location.title.sysroot'],\r\n          link: null\r\n        };\r\n      } else {\r\n        const parentType = this.systemService.getObjectType(this.preparedItem.parent.type);\r\n        header.location = {\r\n          label: ` ${parentType.label}: ${this.preparedItem.parent.title}`,\r\n          link: `/object/${this.preparedItem.parent.id}`\r\n        };\r\n      }\r\n      this.header = header;\r\n    });\r\n  }\r\n\r\n  showTemplateSelector(show: boolean) {\r\n    this.chooseTemplate = show;\r\n    this.selectTemplate(this.preparePhase.data.templates[0]);\r\n  }\r\n\r\n  download() {\r\n    if (this.preparePhase) {\r\n      const file = this.preparePhase.name === 'content' ? this.selectedTemplateFile : this.preparePhase.data.previewFile;\r\n      file.uri = file.uri.replace(this.backend.getServiceBase(), '');\r\n      if (file) {\r\n        this.backend.download(file.uri);\r\n      }\r\n    }\r\n  }\r\n\r\n  hasTemplateCapability() {\r\n    return this.capabilites.hasCapability('template');\r\n  }\r\n\r\n  public trackByIdFn(index, item) {\r\n    return item.id;\r\n  }\r\n\r\n  public trackByIndexFn(index, item) {\r\n    return index;\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this.applySelection) {\r\n      this.loading = true;\r\n      this.selection\r\n        .find(this.applySelection.in).focus$\r\n        .pipe(\r\n          untilDestroyed(this)\r\n        )\r\n        .subscribe((res: PreparedItem) => {\r\n          this.loading = false;\r\n          this.committing = false;\r\n          this.preparedItem = res;\r\n        });\r\n    }\r\n  }\r\n\r\n}\r\n","<div class=\"prepareDetails__wrapper\" *ngIf=\"!loading; else mainSpinner\">\r\n  <section class=\"prepareDetails\" *ngIf=\"preparedItem && preparePhase; else noItem\"\r\n    [ngClass]=\"{multifile: preparedItem.contentcount > 1, committing: committing}\">\r\n    <div class=\"eo-head\">\r\n\r\n      <div class=\"header-info\">\r\n        <div class=\"header-title\">{{header.title}}</div>\r\n        <div class=\"header-sub-title h-location\" *ngIf=\"!header.location.link; else linked\">{{header.location.label}}\r\n        </div>\r\n        <div class=\"header-sub-title h-subtitle\">{{header.subtitle}}</div>\r\n\r\n        <ng-template #linked>\r\n          <div class=\"header-sub-title h-subtitle-detailed\">\r\n            <span translate>eo.prepare.location.title.prefix</span>\r\n            <a [routerLink]=\"header.location.link\">{{header.location.label}}</a>\r\n          </div>\r\n        </ng-template>\r\n      </div>\r\n\r\n      <div class=\"actions\">\r\n        <eo-icon class=\"btn btn-download\"\r\n          *ngIf=\"preparePhase.name === 'content' ? selectedTemplateFile : preparePhase.data.previewFile\"\r\n          [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"\r\n          [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\" (click)=\"download()\"></eo-icon>\r\n        <eo-icon class=\"btn btn-delete\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"\r\n          (click)=\"showDeleteDialog = true;\"></eo-icon>\r\n        <!-- buttons while choosing a template -->\r\n        <ng-container *ngIf=\"chooseTemplate\">\r\n          <button class=\"btn-tpl-abort\" (click)=\"showTemplateSelector(false)\"\r\n            translate>eo.cta.button.cancel</button>\r\n          <button class=\"primary btn-tpl-apply\" (click)=\"addTemplate(selectedTemplate)\" [disabled]=\"!selectedTemplate\"\r\n            translate>eo.prepare.template.select</button>\r\n        </ng-container>\r\n\r\n        <ng-container *ngIf=\"preparePhase.name === 'indexdata'\">\r\n          <button (click)=\"resetObjectType()\" translate>eo.prepare.resetObject</button>\r\n          <button (click)=\"commit()\" class=\"btn-idx-save\"\r\n            [ngClass]=\"{primary: preparedItem.state.parentisroot && preparedItem.contentcount > 1}\"\r\n            [disabled]=\"formState?.invalid || committing\" translate>eo.prepare.save</button>\r\n\r\n          <button (click)=\"commit(true)\" [disabled]=\"formState?.invalid || committing\" class=\"primary btn-idx-saveopen\"\r\n            [hidden]=\"preparedItem?.state.parentisroot && preparedItem?.contentcount > 1\"\r\n            translate>eo.prepare.saveopen</button>\r\n\r\n        </ng-container>\r\n      </div>\r\n\r\n    </div>\r\n\r\n    <div class=\"eo-body\" [ngSwitch]=\"preparePhase.name\" *ngIf=\"!committing; else spinner\">\r\n\r\n      <!-- PHASE TYPE -->\r\n      <div class=\"phase type\" *ngSwitchCase=\"'type'\">\r\n\r\n        <!-- with preview -->\r\n        <yvc-split-view *ngIf=\"preparePhase.data.previewFile; else nopreview\"\r\n          [layoutSettingsID]=\"'prepare.details.phase.type'\">\r\n          <ng-template yvcSplitArea [size]=\"30\">\r\n            <div class=\"form-files\">\r\n              <div class=\"object-type-select empty\" *ngIf=\"preparedItem.types.length == 0\" translate>\r\n                eo.prepare.details.type.empty</div>\r\n              <div class=\"object-type-select empty\"\r\n                *ngIf=\"!preparedItem.state.typeselectedallowed && preparedItem.state.typeselected\"\r\n                [translateParams]=\"{type: preparedItem.selectedtype.label, filename: getFileNames(preparedItem)}\"\r\n                translate>eo.prepare.details.type.notallowed</div>\r\n\r\n              <div class=\"object-type-select\">\r\n                <div class=\"object-type\" *ngFor=\"let type of preparedItem.types; trackBy: trackByIdFn\"\r\n                  (click)=\"selectObjectType(type)\">\r\n                  <div class=\"type-icon\">\r\n                    <eo-icon [iconId]=\"type.icon.id\"></eo-icon>\r\n                  </div>\r\n                  <div class=\"content\">\r\n                    <div class=\"title\">{{type.label}}</div>\r\n                    <div class=\"description\">{{type.description}}</div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n\r\n              <div class=\"content-select\">\r\n                <h2 translate>eo.prepare.details.contents.title</h2>\r\n                <div class=\"content\"\r\n                  *ngFor=\"let content of preparedItem.contents; trackBy: trackByIndexFn; index as idx;\"\r\n                  [ngClass]=\"{selected: preparePhase.data.previewIndex == idx}\" (click)=\"setPreviewUri(idx)\">\r\n                  <span>{{content.path}}</span>\r\n                  <eo-icon class=\"btn btn-delete-content\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"\r\n                    (click)=\"showContentDeleteDialog = true; deletedContentIndex = idx;\"></eo-icon>\r\n                  <div *ngIf=\"content.existscount > 0\" class=\"attention\"\r\n                    title=\"{{'eo.prepare.content.existscount.message'|translate: ({count: content.existscount})}}\">!\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </ng-template>\r\n          <ng-template yvcSplitArea [size]=\"70\">\r\n            <div class=\"eo-media-wrap\">\r\n              <eo-prepare-content-exists-info [content]=\"preparedItem.contents[preparePhase.data.previewIndex]\">\r\n              </eo-prepare-content-exists-info>\r\n              <eo-media [dmsObject]=\"pseudoDmsObject\" [previewFile]=\"preparePhase.data.previewFile\"></eo-media>\r\n            </div>\r\n          </ng-template>\r\n        </yvc-split-view>\r\n\r\n        <!-- without preview -->\r\n        <ng-template #nopreview>\r\n          <div class=\"form-files\">\r\n            <div class=\"object-type-select\">\r\n              <div class=\"object-type\" *ngFor=\"let type of preparedItem.types; trackBy: trackByIdFn\"\r\n                (click)=\"selectObjectType(type)\">\r\n                <div class=\"type-icon\">\r\n                  <eo-icon [iconId]=\"type.icon.id\"></eo-icon>\r\n                </div>\r\n                <div class=\"content\">\r\n                  <div class=\"title\">{{type.label}}</div>\r\n                  <div class=\"description\">{{type.description}}</div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </ng-template>\r\n\r\n      </div>\r\n\r\n      <!-- PHASE CONTENT -->\r\n      <div class=\"phase content\" *ngSwitchCase=\"'content'\">\r\n\r\n        <!-- panel for selecting a template to be used as items content -->\r\n        <yvc-split-view *ngIf=\"chooseTemplate; else attach\" [layoutSettingsID]=\"'prepare.details.phase.content'\">\r\n          <ng-template yvcSplitArea [size]=\"40\">\r\n            <!-- list of available templates -->\r\n            <eo-list-container #eoList [loading]=\"false\" class=\"templates\">\r\n              <div class=\"eo-header\">\r\n                <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_template.svg'\"></eo-icon>\r\n                <div class=\"eo-header-info\">\r\n                  <div class=\"eo-header-title\" translate>eo.prepare.template.list.title</div>\r\n                </div>\r\n                <div class=\"eo-header-actions\">\r\n\r\n                  <eo-overlay #oFilter [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconClass]=\"'primary'\"\r\n                    class=\"overlay-filter\" [title]=\"'eo.list.filter' | translate\"\r\n                    (active)=\"oFilter.onActiveChanged($event)\">\r\n                    <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\r\n                      (active)=\"oFilter.onActiveChanged($event)\">\r\n                      <eo-text-filter [title]=\"'eo.prepare.template.filter.text.title' | translate\"\r\n                        [matchFields]=\"['title', 'description', 'tags']\"\r\n                        [placeholder]=\"'eo.prepare.template.filter.text.title'\"></eo-text-filter>\r\n                      <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.prepare.template.filter.set.title' | translate\"\r\n                        *ngIf=\"tagFilterOptions?.length\" [options]=\"tagFilterOptions\"></eo-set-filter>\r\n                    </eo-custom-filter>\r\n                  </eo-overlay>\r\n\r\n                </div>\r\n              </div>\r\n              <div class=\"eo-body\">\r\n                <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\"\r\n                  [showHeader]=\"true\" [showFooter]=\"false\" [selectionLimit]=\"1\"\r\n                  (eoGridSelectionChanged)=\"selectTemplate($event[0])\">\r\n                </eo-grid>\r\n              </div>\r\n            </eo-list-container>\r\n          </ng-template>\r\n\r\n          <ng-template yvcSplitArea [size]=\"60\">\r\n            <!-- preview of selected template -->\r\n            <eo-media [previewFile]=\"selectedTemplateFile\"></eo-media>\r\n          </ng-template>\r\n        </yvc-split-view>\r\n\r\n        <!-- add content general overview (upload, template, none) -->\r\n        <ng-template #attach>\r\n\r\n          <div class=\"info\" *ngIf=\"!uploadInProgress\" translate>eo.prepare.attachment.info</div>\r\n          <input type=\"file\" #file (change)=\"fileChangeListener($event.target.files)\">\r\n\r\n          <div class=\"attachments\" *ngIf=\"!uploadInProgress; else uploadspinner\">\r\n\r\n            <!-- upload a file -->\r\n            <div class=\"attachment att-file\" *ngIf=\"preparePhase.data.file\" (click)=\"upload()\">\r\n              <div class=\"img\">\r\n                <eo-icon [iconSrc]=\"'assets/_default/svg/ic_file_upload.svg'\"></eo-icon>\r\n              </div>\r\n              <h3 translate>eo.prepare.attachment.upload.title</h3>\r\n              <p translate>eo.prepare.attachment.upload.desc</p>\r\n            </div>\r\n\r\n            <!-- select a template -->\r\n            <div class=\"attachment att-tmpl\" *ngIf=\"preparePhase.data.templates.length > 0 && hasTemplateCapability()\"\r\n              (click)=\"showTemplateSelector(true)\">\r\n              <div class=\"img\">\r\n                <eo-icon [iconSrc]=\"'assets/_default/svg/ic_prepare_add.svg'\"></eo-icon>\r\n              </div>\r\n              <h3 translate>eo.prepare.attachment.template.title</h3>\r\n              <p translate>eo.prepare.attachment.template.desc</p>\r\n            </div>\r\n\r\n            <!-- no file -->\r\n            <div class=\"attachment att-none\" *ngIf=\"preparePhase.data.withoutFile\" (click)=\"noFile()\">\r\n              <div class=\"img\">\r\n                <eo-icon [iconSrc]=\"'assets/_default/svg/ic_no-file.svg'\"></eo-icon>\r\n              </div>\r\n              <h3 translate>eo.prepare.attachment.nofile.title</h3>\r\n              <p translate>eo.prepare.attachment.nofile.desc</p>\r\n            </div>\r\n\r\n          </div>\r\n\r\n        </ng-template>\r\n\r\n        <!-- upload progress indicator -->\r\n        <ng-template #uploadspinner>\r\n          <div class=\"upload-indicator\">\r\n            <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\r\n          </div>\r\n        </ng-template>\r\n      </div>\r\n\r\n      <!-- PHASE INDEXDATA -->\r\n      <div class=\"phase indexdata\" *ngSwitchCase=\"'indexdata'\">\r\n\r\n        <!-- form and preview -->\r\n        <yvc-split-view *ngIf=\"preparedItem.contents; else justform\" [layoutSettingsID]=\"'prepare.state'\">\r\n          <ng-template yvcSplitArea [size]=\"50\">\r\n            <div class=\"form-files\">\r\n\r\n              <!-- indexdata form -->\r\n              <ng-container *ngTemplateOutlet=\"justform\"></ng-container>\r\n\r\n              <!-- list of contents (in case of bulk upload) that can be previewed -->\r\n              <div class=\"content-select\">\r\n\r\n                <h2 translate>eo.prepare.details.contents.title</h2>\r\n                <div class=\"content\"\r\n                  *ngFor=\"let content of preparedItem.contents; trackBy: trackByIndexFn; index as idx\"\r\n                  [ngClass]=\"{selected: preparePhase.data.previewIndex === idx}\" (click)=\"setPreviewUri(idx)\">\r\n                  {{content.path}} <span *ngIf=\"content.existscount > 0\" class=\"attention\"\r\n                    title=\"{{'eo.prepare.content.existscount.message'|translate: ({count: content.existscount})}}\">!</span>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </ng-template>\r\n\r\n          <ng-template yvcSplitArea [size]=\"50\">\r\n            <div class=\"eo-media-wrap\">\r\n              <eo-prepare-content-exists-info [content]=\"preparedItem.contents[preparePhase.data.previewIndex]\">\r\n              </eo-prepare-content-exists-info>\r\n              <eo-media [dmsObject]=\"pseudoDmsObject\" [previewFile]=\"preparePhase.data.previewFile\"></eo-media>\r\n            </div>\r\n          </ng-template>\r\n        </yvc-split-view>\r\n\r\n        <!-- just the form -->\r\n        <ng-template #justform>\r\n          <div class=\"form-container situation-create\" *ngIf=\"formOptions\">\r\n            <eo-object-form #form [formOptions]=\"formOptions\" (statusChanged)=\"onFormStatusChanged($event)\">\r\n            </eo-object-form>\r\n          </div>\r\n        </ng-template>\r\n      </div>\r\n    </div>\r\n  </section>\r\n\r\n  <ng-template #spinner>\r\n    <div class=\"eo-body\">\r\n      <eo-loading-spinner size=\"medium\"></eo-loading-spinner>\r\n    </div>\r\n  </ng-template>\r\n\r\n</div>\r\n\r\n<ng-template #mainSpinner>\r\n  <div class=\"prepareDetails__main-spinner\">\r\n    <eo-loading-spinner size=\"medium\"></eo-loading-spinner>\r\n  </div>\r\n</ng-template>\r\n\r\n\r\n<ng-template #noItem>\r\n  <eo-error-message [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\r\n    <ng-content select=\".error\"></ng-content>\r\n  </eo-error-message>\r\n</ng-template>\r\n\r\n<eo-dialog [title]=\"'eo.prepare.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\r\n  [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'prepare-delete__dialog'\">\r\n\r\n  <div>{{'eo.prepare.details.delete.dialog.message' | translate}}</div>\r\n\r\n  <div class=\"action-buttons prepare-delete--action-buttons flex-row\">\r\n    <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\r\n      translate>eo.cta.button.cancel</button>\r\n    <button type=\"button\" #confirmDelete (click)=\"removeItem(preparedItem)\" class=\"button primary\"\r\n      translate>eo.prepare.details.delete.dialog.ok</button>\r\n  </div>\r\n</eo-dialog>\r\n\r\n<eo-dialog [title]=\"'eo.prepare.details.delete.content.dialog.title' | translate\" [(visible)]=\"showContentDeleteDialog\"\r\n  [minWidth]=\"400\" [styleClass]=\"'prepare-delete__dialog'\">\r\n\r\n  <div>{{'eo.prepare.details.delete.content.dialog.message' | translate: ({contentPath: preparedItem?.contents ?\r\n    preparedItem?.contents[deletedContentIndex]?.path : ''})}}</div>\r\n\r\n  <div class=\"action-buttons prepare-delete--action-buttons flex-row\">\r\n    <button type=\"button\" class=\"button cancel\" (click)=\"showContentDeleteDialog = false\"\r\n      translate>eo.cta.button.cancel</button>\r\n    <button type=\"button\" #confirmContentDelete (click)=\"removeItemContent(preparedItem, deletedContentIndex)\"\r\n      class=\"button primary\" translate>eo.prepare.details.delete.dialog.ok</button>\r\n  </div>\r\n</eo-dialog>\r\n","import {AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {NavigationExtras, Router} from '@angular/router';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {Subscription, forkJoin, of} from 'rxjs';\r\nimport {catchError} from 'rxjs/operators';\r\nimport {EmptyState} from '../../../eo-framework-core/empty-state/empty-state.interface';\r\nimport {EmptyStateService} from '../../../eo-framework-core/empty-state/empty-state.service';\r\nimport {CellRenderer} from './../../../eo-framework-core/api/grid.service';\r\nimport {SelectionConfig, SelectionService} from '../../../eo-framework-core/selection/selection.service';\r\nimport {FormStatusChangedEvent} from '../../object-form/form-status-changed-event.interface';\r\nimport {ObjectFormOptions} from '../../object-form/object-form-options.interface';\r\nimport {ObjectFormComponent} from '../../object-form/object-form/object-form.component';\r\n\r\nimport {\r\n  BpmService,\r\n  Clipboard,\r\n  ClipboardAction,\r\n  ClipboardService,\r\n  DmsParams,\r\n  FileEntry,\r\n  Process,\r\n  SystemService,\r\n  UserService,\r\n  Utils,\r\n  WorkItem,\r\n  WorkItemHistoryEntry\r\n} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-process-details',\r\n  templateUrl: './process-details.component.html',\r\n  styleUrls: ['./process-details.component.scss']\r\n})\r\nexport class ProcessDetailsComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('bpmForm') bpmFormEl: ObjectFormComponent;\r\n\r\n  private _item: Process;\r\n  workItem: WorkItem;\r\n  history: WorkItemHistoryEntry[];\r\n  organisation: any;\r\n  // flag indicating whether or not the work item is locked by the user\r\n  locked: boolean;\r\n\r\n  formState: FormStatusChangedEvent;\r\n  formOptions: ObjectFormOptions;\r\n  selectedContentFileId: string;\r\n  actionProcessing: Subscription | any = {closed: true};\r\n  initializing: Subscription | any = {closed: true};\r\n  loadError: boolean;\r\n  loading: boolean;\r\n  clipboard: Clipboard;\r\n\r\n\r\n  @Input() plugins: any[];\r\n\r\n  @Input() emptyState: EmptyState = EmptyStateService.defaultEmptyState();\r\n  @Input() applySelection: SelectionConfig;\r\n\r\n  @Input('item')\r\n  set item(i: Process) {\r\n    this._item = i;\r\n\r\n    if (i) {\r\n      // reset values\r\n      this.workItem = null;\r\n      this.history = [];\r\n      this.locked = false;\r\n      this.loading = true;\r\n\r\n      setTimeout(() => this.process(), 0);\r\n    }\r\n  }\r\n\r\n  get item() {\r\n    return this._item;\r\n  }\r\n\r\n  @Output() onDmsItemSelected = new EventEmitter<DmsParams>();\r\n\r\n  constructor(private bpmService: BpmService,\r\n    private userService: UserService,\r\n    private systemService: SystemService,\r\n    private selection: SelectionService,\r\n    private clipboardService: ClipboardService,\r\n    private translate: TranslateService,\r\n    private router: Router) {\r\n  }\r\n\r\n  trackByCode(index, item) {\r\n    return item.code;\r\n  }\r\n\r\n  trackByIndex(index, item) {\r\n    return index;\r\n  }\r\n\r\n  onFormStatusChanged(evt) {\r\n    this.formState = evt;\r\n  }\r\n\r\n  private process(): void {\r\n\r\n    this.loadError = false;\r\n    this.initializing.closed = false;\r\n\r\n    const tasks = [\r\n      this.systemService.getOrganizationObjectById(this.item.creatorid).pipe(\r\n        // return default because otherwise forkJoin will fail\r\n        catchError(e => of({\r\n          name: 'unknown'\r\n        }))\r\n      ),\r\n      this.bpmService.getProcessHistory(this.item.processid)\r\n    ];\r\n\r\n    forkJoin(tasks)\r\n      .subscribe(tasksResult => {\r\n\r\n        this.loading = false;\r\n        const [organisation, history] = tasksResult;\r\n        this.organisation = organisation;\r\n        this.getProcessFile(this.item.processid);\r\n        if (history) {\r\n          history.forEach((item) => {\r\n            if (item.editor) {\r\n              item.data.image = this.userService.getUserImageUri(item.editor.id);\r\n            }\r\n          });\r\n          this.history = history.sort((a, b) => b.number - a.number);\r\n        }\r\n      });\r\n  }\r\n\r\n\r\n  getProcessFile(processId) {\r\n    this.bpmService\r\n      .getProcessFile(processId)\r\n      .subscribe((res: FileEntry[]) => {\r\n        this.openProcessItemContent(res[0]);\r\n        this._item.setFile(res);\r\n      }, Utils.throw(() => {\r\n        this.loadError = true;\r\n      }, this.translate.instant('eo.process.details.workitem.load.fail')))\r\n  }\r\n\r\n  /**\r\n   * Selects a work items file entry an emits onDmsItemSelected event.\r\n   * @param file FileEntry element to be selected\r\n   */\r\n  openProcessItemContent(file?: FileEntry) {\r\n    if (!file) {\r\n      this.selectedContentFileId = null;\r\n      this.onDmsItemSelected.emit(null);\r\n      if (this.applySelection) {\r\n        this.selection.find(this.applySelection.out).focus(null);\r\n      }\r\n    } else if (file.id !== this.selectedContentFileId) {\r\n      this.selectedContentFileId = file.id;\r\n      let params = {\r\n        id: file.id,\r\n        type: file.type\r\n      };\r\n      this.onDmsItemSelected.emit(params);\r\n      if (this.applySelection) {\r\n        this.selection.find(this.applySelection.out).focus(params);\r\n      }\r\n    }\r\n  }\r\n\r\n  removeWorkItemContent(event: [FileEntry, MouseEvent]) {\r\n    const [file, evt] = event;\r\n    const {processid, elementid} = this.workItem['content'][0];\r\n    evt.preventDefault();\r\n    evt.stopPropagation();\r\n\r\n    this.actionProcessing = this.bpmService\r\n      .removeFileElement(processid, elementid, file.id)\r\n      .subscribe(res => {\r\n        this.workItem.file = this.workItem.file.filter(f => f.id !== file.id);\r\n        if (this.selectedContentFileId === file.id) {\r\n          this.openProcessItemContent(this.workItem.file.length ? this.workItem.file[0] : null);\r\n        }\r\n      }, Utils.throw(null,\r\n        this.translate.instant('eo.process.file.notification.remove'),\r\n        this.translate.instant('eo.process.file.notification.remove.message'))\r\n      );\r\n  }\r\n\r\n  addPastedProcessFile(event) {\r\n    if (event) {\r\n      this.bpmService.addFileElementsFromClipboard(this.workItem, this.clipboard)\r\n        .pipe(\r\n          catchError(Utils.catch(null,\r\n            this.translate.instant('eo.process.file.notification.add.message'),\r\n            this.translate.instant('eo.process.file.notification.error')))\r\n        )\r\n        .subscribe(workItem => {\r\n          this.workItem = workItem;\r\n          this.clipboardService.clear();\r\n          if (!this.selectedContentFileId) {\r\n            // open first item when nothing is selected\r\n            this.openWorkItemContent(this.workItem.file.length ? this.workItem.file[0] : null);\r\n          }\r\n        }, Utils.throw(null,\r\n          this.translate.instant('eo.process.file.notification.error'),\r\n          this.translate.instant('eo.process.file.notification.add.message')));\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Opens the file (attached DMSObject) in object state\r\n   * @param file\r\n   */\r\n  openWorkItemContentInContext(evt) {\r\n    const file: FileEntry = evt.data || {};\r\n    const fileType: NavigationExtras = {queryParams: {'type': file.type}};\r\n    if (evt.ctrlKey) {\r\n      window.open(CellRenderer.windowURI(this.router.createUrlTree(['object', file.id], fileType)));\r\n    } else {\r\n      this.router.navigate(['/object', file.id], fileType);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Selects a work items file entry an emits onDmsItemSelected event.\r\n   * @param file FileEntry element to be selected\r\n   */\r\n  openWorkItemContent(file?: FileEntry) {\r\n    if (!file) {\r\n      this.selectedContentFileId = null;\r\n      this.onDmsItemSelected.emit(null);\r\n      if (this.applySelection) {\r\n        this.selection.find(this.applySelection.out).focus(null);\r\n      }\r\n    } else if (file.id !== this.selectedContentFileId) {\r\n      this.selectedContentFileId = file.id;\r\n      let params = {\r\n        id: file.id,\r\n        type: file.type\r\n      };\r\n      this.onDmsItemSelected.emit(params);\r\n      if (this.applySelection) {\r\n        this.selection\r\n          .find(this.applySelection.out)\r\n          .focus(params);\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this.applySelection) {\r\n      this.selection\r\n        .find(this.applySelection.in)\r\n        .focus$.pipe(untilDestroyed(this))\r\n        .subscribe((item: any) => this.item = item);\r\n    }\r\n\r\n    this.clipboardService\r\n      .clipboard$.pipe(untilDestroyed(this))\r\n      .subscribe((clipboard: Clipboard) => this.clipboard = clipboard.action === ClipboardAction.COPY ? clipboard : null);\r\n\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n  }\r\n}\r\n","<div class=\"process-details\" *ngIf=\"item; else noItem\">\r\n\r\n  <div class=\"eo-head\">\r\n    <header class=\"eo-header\">\r\n      <eo-icon class=\"eo-header-icon\" [ngClass]=\"{error: item.state === 'ERRORSUSPENDED'}\" *ngIf=\"!item.iconid\" [iconTitle]=\"item.modelname\"\r\n               [iconSrc]=\"item.iconurl\"></eo-icon>\r\n      <eo-icon class=\"eo-header-icon\" *ngIf=\"item.iconid\" [iconId]=\"item.iconid\" [iconTitle]=\"item.modelname\"></eo-icon>\r\n      <div class=\"eo-header-info eo-header__content\">\r\n        <div class=\"eo-header__title\">\r\n          <h2 class=\"eo-header-title\">{{item.localizedsubject}}</h2>\r\n          <h3 class=\"eo-header-subtitle\">{{item.modelname}}<span class=\"starter\" *ngIf=\"organisation && organisation.name !== 'sysroot' && organisation.name !== 'system'\">{{organisation.title}} ({{organisation.name}})</span></h3>\r\n        </div>\r\n      </div>\r\n      <div class=\"eo-header-actions\">\r\n        <eo-loading-spinner *ngIf=\"loading\" [size]=\"'small'\"></eo-loading-spinner>\r\n      </div>\r\n    </header>\r\n  </div>\r\n\r\n  <div class=\"eo-body\">\r\n\r\n    <div class=\"load-error\" *ngIf=\"loadError\">\r\n      <eo-icon [iconSrc]=\"'assets/_default/svg/ic_error.svg'\"></eo-icon>\r\n    </div>\r\n\r\n    <!-- details for BPM items -->\r\n    <yvc-tabs>\r\n      <ng-template [yvcTab]=\"{id: 'history', label: 'eo.process.details.tab.progress' | translate}\">\r\n        <div class=\"tab-panel\">\r\n          <div class=\"panel process-history\">\r\n            <eo-process-history [history]=\"history\"></eo-process-history>\r\n          </div>\r\n        </div>\r\n      </ng-template>\r\n      <ng-template [yvcTab]=\"{id: 'file', label: 'eo.process.details.tab.attachments' | translate}\">\r\n        <div class=\"tab-panel\">\r\n          <div class=\"panel process-files\">\r\n            <eo-process-file [processFile]=\"item?.file\"\r\n                             [isDisabled]=\"false\"\r\n                             [clipboard]=\"clipboard\"\r\n                             [editable]=\"true\"\r\n                             [selectedContentFileId]=\"selectedContentFileId\"\r\n                             (onRemoveWorkItemContent)=\"removeWorkItemContent($event)\"\r\n                             (onOpenWorkItemContentInContext)=\"openWorkItemContentInContext($event)\"\r\n                             (onOpenWorkItemContent)=\"openWorkItemContent($event)\"\r\n                             (onRemoveWorkItemContent)=\"removeWorkItemContent($event)\"\r\n                             (onPasteProcessFile)=\"addPastedProcessFile($event)\">\r\n            </eo-process-file>\r\n          </div>\r\n        </div>\r\n      </ng-template>\r\n      \r\n      <!-- plugin tabs -->\r\n      <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\r\n        <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\r\n      </ng-template>\r\n    </yvc-tabs>\r\n  </div>\r\n</div>\r\n\r\n<ng-template #noItem>\r\n  <eo-error-message class=\"process-details__empty\" [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\r\n    <ng-content select=\".error\"></ng-content>\r\n  </eo-error-message>\r\n</ng-template>\r\n","import {switchMap, tap, debounceTime} from 'rxjs/operators';\r\nimport {Component, AfterViewInit, ElementRef, HostListener, HostBinding, Output, EventEmitter, Input, OnDestroy} from '@angular/core';\r\nimport {Router, NavigationExtras} from '@angular/router';\r\nimport {UntypedFormGroup, UntypedFormBuilder} from '@angular/forms';\r\nimport {Observable, Subscription} from 'rxjs';\r\nimport { groupBy } from 'lodash-es';\r\nimport {QuickSearchResult} from './quick-search-result.interface';\r\nimport {SearchQuery, SearchState, SearchService, SystemService, ObjectType, NotificationsService, Utils} from '@eo-sdk/core';\r\nimport {AppSearchService} from '../../../eo-framework-core/search/app-search.service';\r\n\r\n/**\r\n * QuickSearchComponent displays a search box that the user can type his query to.\r\n * It returns a list of matching object types grouped by their object type group and the\r\n * number of hits for each type. Furthermore it'll provide you with the total number of\r\n * hits matching the users query.\r\n *\r\n * Setting the components `showResults` flag to true, will make the component render the\r\n * results on its own. If you do want to process results by yourself use the `onResult` callback.\r\n */\r\n\r\n@Component({\r\n  selector: 'eo-quick-search',\r\n  templateUrl: './quick-search.component.html',\r\n  styleUrls: ['./quick-search.component.scss']\r\n})\r\nexport class QuickSearchComponent implements AfterViewInit, OnDestroy {\r\n\r\n  private querySubscription: Subscription;\r\n  queryState = new SearchState();\r\n  autocompleteResults: string[];\r\n  query = new SearchQuery();\r\n  lastTerm = '';\r\n  resultGroups;\r\n  resultTypes = [];\r\n  ctrlClicked: boolean;\r\n  selected = {\r\n    index: -1,\r\n    name: null\r\n  };\r\n\r\n  searchForm: UntypedFormGroup;\r\n  invalidTerm: boolean;\r\n  loading: boolean;\r\n\r\n  @HostBinding('class.results') resultsAvailable;\r\n\r\n  // flag whether or not to render results by the component itself\r\n  // by default this flas is false and the result will only be emitted by\r\n  // the components onResult callback\r\n  @Input() showResults: boolean;\r\n  // triggered each time a result is fetched\r\n  @Output() onResult: EventEmitter<QuickSearchResult> = new EventEmitter();\r\n  // triggered when the search term has been changed\r\n  @Output() onInputChange: EventEmitter<string> = new EventEmitter();\r\n\r\n  // private objectTypes: ObjectType[];\r\n\r\n  constructor(private searchService: SearchService,\r\n    private router: Router,\r\n    private elementRef: ElementRef,\r\n    private toaster: NotificationsService,\r\n    private appSearchService: AppSearchService,\r\n    private systemService: SystemService,\r\n    private fb: UntypedFormBuilder) {\r\n\r\n\r\n    this.searchForm = this.fb.group({searchInput: ['']});\r\n\r\n    this.searchForm\r\n      .get('searchInput').valueChanges\r\n      .pipe(\r\n        tap((term) => {\r\n          this.onInputChange.emit(term);\r\n          this.query.term = term;\r\n          this.resultGroups = [];\r\n          this.resultTypes = [];\r\n          this.resultsAvailable = false;\r\n          this.queryState = new SearchState();\r\n        }),\r\n        debounceTime(1500),\r\n        switchMap(term => {\r\n          return this.aggregate();\r\n        })\r\n      )\r\n      .subscribe((queryState: SearchState) => {\r\n\r\n        if (this.query.term) {\r\n          this.queryState = queryState;\r\n          this.resultsAvailable = !queryState.isEmpty;\r\n\r\n          // map aggregations to real types\r\n          let aggTypes = [];\r\n          queryState.aggregations.type.forEach((v, k) => {\r\n\r\n            let type: ObjectType = this.systemService.getObjectType(k);\r\n            if (type) {\r\n              aggTypes.push({\r\n                label: type.label || k,\r\n                count: v,\r\n                group: type.group || '0',\r\n                data: type\r\n              });\r\n            }\r\n          });\r\n          // group by object type group\r\n          this.resultGroups = groupBy(aggTypes.sort(Utils.sortValues('label')), function (t) {\r\n            return t.group;\r\n          });\r\n          this.resultTypes = [];\r\n          Object.keys(this.resultGroups).forEach((k) => {\r\n            this.resultTypes = this.resultTypes.concat(this.resultGroups[k]);\r\n          });\r\n          this.onResult.emit({\r\n            total: this.queryState.totalCount,\r\n            groups: this.resultGroups\r\n          });\r\n        } else {\r\n          this.onResult.emit({\r\n            total: -1,\r\n            groups: []\r\n          });\r\n        }\r\n      });\r\n\r\n    this.querySubscription = appSearchService.query$.subscribe((query: SearchQuery) => {\r\n      if (query && query.term) {\r\n        this.lastTerm = query.term;\r\n      }\r\n    });\r\n  }\r\n\r\n  setTerm(term?: string) {\r\n    this.searchForm.get('searchInput').patchValue(term || '');\r\n    this.focusInput();\r\n  }\r\n\r\n  private aggregate(): Observable<SearchState> {\r\n    this.loading = true;\r\n    return Observable.create(o => {\r\n      this.invalidTerm = false;\r\n      this.searchService\r\n        .getSearchState({aggs: {type: {}}, ...this.query.getQueryJson()})\r\n        .subscribe(res => {\r\n          this.loading = false;\r\n          o.next(res);\r\n          o.complete();\r\n        }, Utils.throw(_ => {\r\n          this.invalidTerm = true;\r\n          this.loading = false;\r\n          o.next(new SearchState());\r\n          o.complete();\r\n        }));\r\n    });\r\n  }\r\n\r\n  @HostListener('keyup', ['$event'])\r\n  onKey(event) {\r\n    if (this.showResults) {\r\n      if (event.which === 38) {\r\n        // up\r\n        this.selected.index--;\r\n        if (this.selected.index < 0) {\r\n          this.selected.index = this.resultTypes.length - 1;\r\n        }\r\n        this.selected.name = this.resultTypes[this.selected.index].data.name;\r\n      } else if (event.which === 40) {\r\n        // down\r\n        this.selected.index++;\r\n        if (this.selected.index >= this.resultTypes.length) {\r\n          this.selected.index = 0;\r\n        }\r\n        this.selected.name = this.resultTypes[this.selected.index].data.name;\r\n      } else {\r\n        // reset selection on any other key\r\n        this.selected = {\r\n          index: -1,\r\n          name: null\r\n        };\r\n      }\r\n    }\r\n  }\r\n\r\n  @HostListener('keydown', ['$event'])\r\n  onKeyDown(event) {\r\n    this.ctrlClicked = false;\r\n    if (event.which === 17) {\r\n      this.ctrlClicked = true;\r\n    }\r\n  }\r\n\r\n  public executeSearch(objectType?: ObjectType) {\r\n\r\n    if (!this.invalidTerm) {\r\n      if (objectType) {\r\n        this.query.types = [objectType];\r\n      } else if (this.selected.index !== -1) {\r\n        this.query.types = [this.resultTypes[this.selected.index].data];\r\n      } else {\r\n        this.query.types = [];\r\n      }\r\n\r\n      const uriParam = encodeURIComponent(JSON.stringify(this.query.getQueryJson()));\r\n      const uriParamQuery: NavigationExtras = {queryParams: {'query': uriParam}};\r\n\r\n      if (this.ctrlClicked) {\r\n        const queryParams = new URLSearchParams(uriParamQuery.queryParams).toString()\r\n        const url = window.location.href.split('/dashboard')[0] + '/result?'+ queryParams;\r\n        window.open(url, '_blank');\r\n        this.ctrlClicked = false;\r\n        this.focusInput();\r\n        this.query.types = [];\r\n      } else {\r\n        this.router.navigate(['/result'], uriParamQuery);\r\n      }\r\n    }\r\n  }\r\n\r\n  private focusInput() {\r\n    // focus search input\r\n    setTimeout(() => {\r\n      this.elementRef.nativeElement.querySelector('input').focus();\r\n    }, 200);\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.focusInput();\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.querySubscription.unsubscribe();\r\n  }\r\n}\r\n","<div class=\"quick-search\" eoRtlAware>\r\n\r\n  <form class=\"search-box\" (ngSubmit)=\"executeSearch()\"\r\n        [ngClass]=\"{invalid: invalidTerm}\"\r\n        [formGroup]=\"searchForm\">\r\n\r\n    <eo-icon (click)=\"executeSearch()\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\r\n    <div class=\"input\">\r\n      <label>{{'eo.quicksearch.label' | translate}}</label>\r\n      <input autofocus=\"autofocus\" formControlName=\"searchInput\">\r\n    </div>\r\n    <eo-loading-spinner *ngIf=\"loading\" [size]=\"'small'\"></eo-loading-spinner>\r\n    <eo-icon class=\"small\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" [iconTitle]=\"('eo.search.clear.search' | translate)\"\r\n    *ngIf=\"query.term\" [ngClass]=\"{active: query.term}\" (click)=\"setTerm()\"></eo-icon>\r\n    <eo-icon class=\"small\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" [iconTitle]=\"('eo.search.result.term' | translate) + ' : &quot;' + lastTerm + '&quot;'\"\r\n    *ngIf=\"lastTerm && !query.term\" (click)=\"setTerm(lastTerm)\"></eo-icon>\r\n\r\n    <div class=\"count\" *ngIf=\"showResults && !queryState.isEmpty\">\r\n      <span class=\"count-total\">{{queryState.totalCount | localeDecimal}}</span><span translate>eo.quicksearch.hits</span>\r\n    </div>\r\n  </form>\r\n\r\n  <div class=\"result\" *ngIf=\"showResults && !queryState.isEmpty\">\r\n    <div class=\"r\"><div class=\"ri\">\r\n      <div class=\"group\" *ngFor=\"let key of resultGroups | keys; index as i\">\r\n        <h2 *ngIf=\"key !== '0'; else maingroup\">{{key}}</h2>\r\n        <ng-template #maingroup>\r\n          <h2 translate>eo.quicksearch.result.group.global</h2>\r\n        </ng-template>\r\n\r\n        <div class=\"type\" *ngFor=\"let type of resultGroups[key]\" (click)=\"executeSearch(type.data)\" [ngClass]=\"{selected: selected.name === type.data.name}\">\r\n          <span class=\"count\">{{type.count}}</span>\r\n          <span class=\"label\">{{type.label}}</span>\r\n        </div>\r\n      </div></div>\r\n      </div>\r\n  </div>\r\n</div>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ReactiveFormsModule} from '@angular/forms';\r\nimport {QuickSearchComponent} from './quick-search/quick-search.component';\r\nimport {UiModule} from '../ui/ui.module';\r\nimport {PipesModule} from '../../eo-framework-core/pipes/pipes.module';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,    \r\n    ReactiveFormsModule,\r\n    UiModule,\r\n    PipesModule\r\n  ],\r\n  exports: [QuickSearchComponent],\r\n  declarations: [QuickSearchComponent]\r\n})\r\nexport class QuickSearchModule {\r\n}\r\n","import {SimpleFilter} from '@ag-grid-community/core';\r\nimport {SearchFilter} from '@eo-sdk/core';\r\n\r\nexport class GridFilter {\r\n  public static operator(property: string, filter: any) {\r\n    let firstValue = Array.isArray(filter) ? filter : (filter.filter || filter.dateFrom);\r\n    const secondValue = filter.filterTo || filter.dateTo;\r\n    const op = Array.isArray(firstValue) ? SearchFilter.OPERATOR.IN :\r\n      filter.type === SimpleFilter.GREATER_THAN ? SearchFilter.OPERATOR.GREATER_THAN :\r\n        filter.type === SimpleFilter.GREATER_THAN_OR_EQUAL ? SearchFilter.OPERATOR.GREATER_OR_EQUAL :\r\n          filter.type === SimpleFilter.LESS_THAN ? SearchFilter.OPERATOR.LESS_THAN :\r\n            filter.type === SimpleFilter.LESS_THAN_OR_EQUAL ? SearchFilter.OPERATOR.LESS_OR_EQUAL :\r\n              filter.type === SimpleFilter.IN_RANGE ? SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH :\r\n                SearchFilter.OPERATOR.EQUAL;\r\n    \r\n    firstValue = firstValue && typeof firstValue === 'string' ? firstValue.replace(/\\*/g, '\\\\*') : firstValue; // wildcard needs to be escaped\r\n\r\n    firstValue = filter.type === SimpleFilter.CONTAINS ? `*${firstValue}*` :\r\n      filter.type === SimpleFilter.STARTS_WITH ? `${firstValue}*` :\r\n        filter.type === SimpleFilter.ENDS_WITH ? `*${firstValue}` :\r\n          op === SearchFilter.OPERATOR.IN ? firstValue.filter(f => f !== '') :\r\n            firstValue;\r\n\r\n    return new SearchFilter(property, op, firstValue, secondValue, filter.filterType === 'date' ? {time: !!filter.withTime} : undefined);\r\n  }\r\n}\r\n","import {debounceTime, switchMap, map} from \"rxjs/operators\";\r\nimport {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  HostBinding,\r\n  ElementRef\r\n} from \"@angular/core\";\r\nimport {ObjectFormHelperService} from \"../../object-form/object-form-helper.service\";\r\nimport {ObjectFormControlWrapper} from \"../../object-form/object-form/object-form-control-wrapper\";\r\nimport {AppSearchService} from \"../../../eo-framework-core/search/app-search.service\";\r\nimport {ObjectFormGroup} from \"../../object-form/object-form/object-form-group.model\";\r\nimport {\r\n  StoredQueriesService,\r\n  SearchFilter,\r\n  SearchState,\r\n  StoredQuery,\r\n  SearchService,\r\n  TranslateService,\r\n  SystemService,\r\n  QueryScope\r\n} from \"@eo-sdk/core\";\r\nimport {UtilitiesService} from \"../../util/services/utilities.service\";\r\nimport {forkJoin, Observable, of} from \"rxjs\";\r\n\r\n@Component({\r\n  selector: \"eo-stored-query\",\r\n  templateUrl: \"./stored-query.component.html\",\r\n  styleUrls: [\"./stored-query.component.scss\"]\r\n})\r\nexport class StoredQueryComponent {\r\n  queryScope: QueryScope;\r\n  _storedQuery: StoredQuery;\r\n  queryFormControls: ObjectFormControlWrapper[];\r\n  queryForm: ObjectFormGroup;\r\n  fulltextFormControl: ObjectFormControlWrapper;\r\n  _formOnly: boolean;\r\n\r\n  @Input(\"query\")\r\n  set query(storedQuery: StoredQuery) {\r\n    if (storedQuery instanceof StoredQuery) {\r\n      this._storedQuery = storedQuery;\r\n      this._storedQuery.state.count = {value : 0};\r\n      this.queryScope = this._storedQuery.scope;\r\n\r\n      this.createQueryForm();\r\n      this.aggregate();\r\n    }\r\n  }\r\n\r\n  get query() {\r\n    return this._storedQuery;\r\n  }\r\n\r\n  // set to true only the stored query form will be rendered, otherwise\r\n  // we'll get the complete control\r\n  @Input()\r\n  set formOnly(b: boolean) {\r\n    this._formOnly = b;\r\n  }\r\n\r\n  @Output() onQueryLoaded = new EventEmitter();\r\n  @Output() onQueryExecute = new EventEmitter();\r\n\r\n  @HostBinding(\"class.open\") isOpen = this.formOnly;\r\n\r\n  constructor(\r\n    private searchService: SearchService,\r\n    private elementRef: ElementRef,\r\n    private translate: TranslateService,\r\n    private systemService: SystemService,\r\n    private storedQueriesService: StoredQueriesService,\r\n    private formHelperService: ObjectFormHelperService,\r\n    private appSearchService: AppSearchService\r\n  ) {}\r\n\r\n  public setQueryScope(scope: QueryScope) {\r\n    this._storedQuery.scope = scope;\r\n    this.queryScope = scope;\r\n    this.aggregate();\r\n  }\r\n\r\n  // generate the form for the dynamic parts of the stored query\r\n  createQueryForm() {\r\n    this.queryFormControls = [];\r\n    this.fulltextFormControl = null;\r\n\r\n    // parameters of a stored query contain the dynamic parts of the query, so\r\n    // these are the fields to be rendered\r\n    if (this._storedQuery.parameter && this._storedQuery.parameter.length > 0) {\r\n      const paramQNames = this._storedQuery.parameter.map(p => p.qname);\r\n      const fulltextParam = this._storedQuery.parameter.find(\r\n        p => p.type === StoredQueriesService.FULLTEXT\r\n      );\r\n\r\n      // fulltext param get a special handling\r\n      if (fulltextParam) {\r\n        this.fulltextFormControl = this.formHelperService.elementToFormControl(\r\n          this.storedQueriesService.getFulltextFormElement(\r\n            this.translate.instant(\"eo.storedquery.search.term\"),\r\n            this._storedQuery.term\r\n          ),\r\n          \"SEARCH\"\r\n        );\r\n      }\r\n\r\n      this.getFormElements().subscribe(elements => {\r\n        if (elements.length) {\r\n          let paramElements = elements.filter(\r\n            e => paramQNames.indexOf(e.qname) !== -1\r\n          );\r\n          // now, create the actual form controls from the param elements\r\n          paramElements.forEach(paramElement => {\r\n            if(paramElement.type === 'TABLE'){\r\n              let filters = this._storedQuery.getTableFilters(paramElement.qname);\r\n              if(filters && filters.length){\r\n                paramElement.value = this.searchService.tableFiltersToElementValue(filters, paramElement.elements);\r\n              } else {\r\n                paramElement.value = [{}];\r\n                delete paramElement.isNotSetValue;\r\n              }\r\n            }else{\r\n              // grab value for the control from corresponding query filters\r\n              let filter = this._storedQuery.getFilter(paramElement.qname);\r\n              // we may have params that are not part of the queries filters. This may be the\r\n              // case when we mark form elements as dynamic fields without providing a value\r\n              if (filter) {\r\n                // filter to have no value\r\n                if (\r\n                  filter.operator === SearchFilter.OPERATOR.EQUAL &&\r\n                  filter.firstValue === null\r\n                ) {\r\n                  paramElement.isNotSetValue = true;\r\n                } else {\r\n                  delete paramElement.isNotSetValue;\r\n                }\r\n  \r\n                paramElement.value = this.searchService.filterToElementValue(\r\n                  this._storedQuery.getFilter(paramElement.qname),\r\n                  paramElement.type\r\n                );\r\n              } else {\r\n                paramElement.value = undefined;\r\n              }\r\n            }\r\n            // name property of stored query param has to be qname of form element\r\n            // because we may combine multiple forms (context form) and in this case name could be not unique\r\n            paramElement.name = paramElement.qname;\r\n            let wrapper = this.formHelperService.elementToFormControl(\r\n              paramElement,\r\n              \"SEARCH\"\r\n            );\r\n            if (wrapper) {\r\n              this.queryFormControls.push(wrapper);\r\n            }\r\n          });\r\n        }\r\n\r\n        let form = new ObjectFormGroup({});\r\n        // add fulltext when available\r\n        if (this.fulltextFormControl) {\r\n          form.addControl(\r\n            this.fulltextFormControl._eoFormControlWrapper.controlName,\r\n            this.fulltextFormControl\r\n          );\r\n        }\r\n        this.queryFormControls.forEach(c =>\r\n          form.addControl(c._eoFormControlWrapper.controlName, c)\r\n        );\r\n\r\n        // only setup the form if we actually have controls applied to it\r\n        if (Object.keys(form.controls).length) {\r\n          this.queryForm = form;\r\n          this.queryForm.valueChanges.pipe(debounceTime(500)).subscribe(() => {\r\n            // update query based on the form values\r\n            //for (let key of Object.keys(formData)) {\r\n            for (let key of Object.keys(this.queryForm.controls)) {\r\n              //let value = formData[key];\r\n              let value = this.getValue(key);\r\n\r\n              if (key === StoredQueriesService.FULLTEXT) {\r\n                this._storedQuery.term = value || \"\";\r\n              } else {\r\n                const wrapper: ObjectFormControlWrapper = this.queryForm\r\n                  .controls[key] as ObjectFormControlWrapper;\r\n                const formElementRef: any =\r\n                  wrapper.controls[wrapper._eoFormControlWrapper.controlName];\r\n\r\n                const filters: SearchFilter[] =\r\n                  UtilitiesService.isEmpty(value) &&\r\n                    !formElementRef._eoFormElement.isNotSetValue\r\n                    ? []\r\n                    : this.searchService.getSearchFilter(\r\n                      this._storedQuery.types,\r\n                      key,\r\n                      formElementRef._eoFormElement.isNotSetValue\r\n                        ? null\r\n                        : value\r\n                    );\r\n                    \r\n                if(formElementRef._eoFormElement.type === 'TABLE'){\r\n                  formElementRef._eoFormElement.elements.forEach(el => {\r\n                    this._storedQuery.removeFilter(el.qname);\r\n                  });\r\n                }\r\n                filters.forEach(f => this._storedQuery.addFilter(f));\r\n                if (!filters.length) {\r\n                  this._storedQuery.removeFilter(key);\r\n                }\r\n              }\r\n            }\r\n            // fetch aggregations every time the form data changes\r\n            this.aggregate();\r\n          });\r\n          // set focus to the first input, needs Timeout because form may not have been rendered\r\n          setTimeout(() => {\r\n            const el = this.elementRef.nativeElement.querySelector(\"input\");\r\n            if (el) {\r\n              el.focus();\r\n            }\r\n          }, 100);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  private getFormElements(): Observable<any[]> {\r\n    // for form fields we use the qname of the parameter to fetch the corresponding form element\r\n    // from object definition although they may be provided, because they may have\r\n    // changed since the query was persisted\r\n    if (this._storedQuery.types.length === 1) {\r\n      // creating params form only makes sense if we have one single target type ...\r\n      let formElements = [];\r\n      const elementFetchTasks = [];\r\n      elementFetchTasks.push(\r\n        this.systemService.getFormElementsFromFormModel(\r\n          this._storedQuery.types[0].qname,\r\n          \"SEARCH\"\r\n        )\r\n      );\r\n      // ... contextfoldertype may also be provided. They will be set up first to be\r\n      // on top of the generated form\r\n      if (this._storedQuery.contextFolderTypes.length === 1) {\r\n        elementFetchTasks.push(\r\n          this.systemService.getFormElementsFromFormModel(\r\n            this._storedQuery.contextFolderTypes[0].qname,\r\n            \"SEARCH\",\r\n            true\r\n          )\r\n        );\r\n        // elements = this._storedQuery.contextFolderTypes[0].elements;\r\n      }\r\n      return forkJoin(elementFetchTasks).pipe(\r\n        map((res: any[]) => {\r\n          formElements = res.length === 2 ? [...res[0], ...res[1]] : res[0];\r\n          return formElements.map(e => ({...e}));\r\n        })\r\n      );\r\n    } else {\r\n      return of([]);\r\n    }\r\n  }\r\n\r\n  private getValue(qname: string): any {\r\n    const control = this.queryForm.controls[qname];\r\n    return control.value && control.value[qname];\r\n  }\r\n\r\n  load() {\r\n    this.appSearchService.setQuery(this._storedQuery);\r\n    this.onQueryLoaded.emit();\r\n  }\r\n\r\n  execute() {\r\n    this.onQueryExecute.emit({\r\n      queryJson: this._storedQuery.getQueryJson()\r\n    });\r\n  }\r\n\r\n  private aggregate() {\r\n    this.searchService\r\n      .getSearchState({aggs: {type: {}}, ...this._storedQuery.getQueryJson()})\r\n      .subscribe((state: SearchState) => {\r\n        this._storedQuery.state = state;\r\n      });\r\n  }\r\n}\r\n","<div *ngIf=\"query\" class=\"eo-stored-query\" [ngClass]=\"{hasForm: queryFormControls?.length > 0}\">\r\n\r\n  <div class=\"title\" *ngIf=\"!_formOnly\">{{query.name}}</div>\r\n  <div class=\"qform\">\r\n\r\n    <div class=\"query-form\" [formGroup]=\"queryForm\" *ngIf=\"queryForm\">\r\n\r\n      <div class=\"form-field fulltext\" *ngIf=\"fulltextFormControl\">\r\n        <eo-query-scope-select [selection]=\"queryScope\" (select)=\"setQueryScope($event)\"></eo-query-scope-select>\r\n        <eo-form-element [element]=\"fulltextFormControl\" [situation]=\"'SEARCH'\"></eo-form-element>\r\n      </div>\r\n\r\n      <div class=\"form-field\" *ngFor=\"let element of queryFormControls\"\r\n           [ngClass]=\"{sfe: element.controls[element._eoFormControlWrapper.controlName]._eoFormElement.selectedforenrichment}\">\r\n        <eo-form-element [element]=\"element\" [situation]=\"'SEARCH'\"></eo-form-element>\r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"actions\">\r\n      <div class=\"state\">\r\n        <span class=\"count\">{{query.state?.totalCount | localeDecimal}}</span>\r\n        <span translate>eo.storedquery.res.count.label</span>\r\n      </div>\r\n      <div class=\"buttons\" *ngIf=\"!_formOnly\">\r\n        <button class=\"secondary\" (click)=\"load()\" translate>eo.storedquery.load</button>\r\n        <button class=\"primary\" [disabled]=\"(queryForm && queryForm.invalid) || query.state?.isEmpty\"\r\n                (click)=\"execute()\" translate>eo.storedquery.run</button>\r\n      </div>\r\n    </div>\r\n\r\n  </div>\r\n</div>\r\n","import {ColDef, GridOptions} from '@ag-grid-community/core';\r\nimport {AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {NavigationExtras, Router} from '@angular/router';\r\nimport {\r\n  BackendService,\r\n  Config,\r\n  EnaioEvent,\r\n  EventService,\r\n  FieldDefinition,\r\n  LocalStorageService,\r\n  ObjectType,\r\n  SearchQuery, SearchResult,\r\n  SearchService,\r\n  SortOption,\r\n  StoredQueriesService, StoredQuery,\r\n  TranslateService, Utils\r\n} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {of as observableOf} from 'rxjs';\r\nimport {GridService} from '../../eo-framework-core/api/grid.service';\r\nimport {AppSearchService} from '../../eo-framework-core/search/app-search.service';\r\nimport {GridFilter} from '../grid/grid-filter.model';\r\nimport {GridComponent} from '../grid/grid.component';\r\nimport {ListContainerComponent} from '../list-container';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-result-list',\r\n  templateUrl: './result-list.component.html',\r\n  styleUrls: ['./result-list.component.scss']\r\n})\r\nexport class ResultListComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('eoGrid') grid: GridComponent;\r\n  @ViewChild('eoList') list: ListContainerComponent;\r\n\r\n  // for lists that exceed the configured max result size, data will be fetched in chunks\r\n  private VIRTUAL_LIST_CHUNK_SIZE: number;\r\n  resolveReferencesCsv: boolean;\r\n  resolveReferencesCsvThreshold: number;\r\n  static COLUMNS_DEFINITION = 'eo.framework.cache.columns.definition';\r\n\r\n  private _result: SearchResult;\r\n  private _query: SearchQuery;\r\n  private _cachedColumns: any[];\r\n  private defaultQuery: SearchQuery;\r\n  csvLoadingSpinnerVisibility = false;\r\n\r\n  visibleConfig = false;\r\n  showLoader = false;\r\n  public totalHits: any;\r\n  public limitedList = false;\r\n  public resultGridOptions: GridOptions = {};\r\n  settings = {};\r\n  querySubtitle = '';\r\n  savedSearchClicked = false;\r\n  storedQuery: StoredQuery;\r\n  showWarnExportCSVThresholdDialog = false;\r\n\r\n  @Input() title = '';\r\n  @Input() configType: ObjectType | null;\r\n  @Input() configContext: ObjectType | null;\r\n\r\n  // If set to true query will be treated like a temporary search.\r\n  // That means, global search will not be affected (global query will be reset after execution)\r\n  @Input() clearAfterExecute: boolean;\r\n  @Input() emptyMessage = '';\r\n  @Input() selectFirst = true;\r\n  @Input() gridOptions: GridOptions;\r\n  @Input() hasIcon = false;\r\n  @Input() reference = false;\r\n  @Output() onSelectionChanged = new EventEmitter();\r\n  @Output() onFocusChanged = new EventEmitter();\r\n  @Output() onDoubleClick = new EventEmitter();\r\n  @Output() onContextMenu = new EventEmitter();\r\n  @Output() onCountChanged = new EventEmitter();\r\n  @Output() onRefresh = new EventEmitter();\r\n  @Output() onResult = new EventEmitter();\r\n  @Output() onQueryInvalid = new EventEmitter();\r\n\r\n  @Input()\r\n  set query(query: any) {\r\n    this.storedQuery = undefined;\r\n    if (!query) {\r\n      this.invalidQuery();\r\n    } else {\r\n      if (query.name) {\r\n        this.storedQueriesService.getStoredQueries$()\r\n          .pipe(untilDestroyed(this))\r\n          .subscribe((queriesSubscription: any) => {\r\n            this.storedQuery = queriesSubscription.queries.filter(q => q.name === query.name)[0];\r\n          });\r\n      }\r\n      this._query = this.searchService.buildQuery(query);\r\n      if (this._query) {\r\n        this.defaultQuery = this.searchService.buildQuery(this._query.getQueryJson());\r\n        this.appSearchService.setQuery(this.defaultQuery);\r\n        this.appSearchService.aggregate();\r\n\r\n        const config = this.searchService.getResultFieldDefinitionConfig(this.query);\r\n        this.configType = config.type;\r\n        this.configContext = config.contextType;\r\n        this.showLoader = true;\r\n        this.searchService\r\n          .getChunkedResult(this._query, 0, this.VIRTUAL_LIST_CHUNK_SIZE)\r\n          .subscribe(result => {\r\n            this.showLoader = false;\r\n            this.clearQuery(this.clearAfterExecute);\r\n            this.searchResult = result;\r\n          }, Utils.throw(() => {\r\n            this.showLoader = false;\r\n            this.clearQuery(true);\r\n            this.invalidQuery();\r\n          }));\r\n        this.querySubtitle = '';\r\n        for (let i = 0; i < this.query.types.length; i++) {\r\n          this.querySubtitle += this.query.types[i].label;\r\n          if (i !== this.query.types.length - 1) {\r\n            this.querySubtitle += ', ';\r\n          }\r\n        }\r\n      } else {\r\n        this.invalidQuery();\r\n      }\r\n    }\r\n  }\r\n\r\n  get query() {\r\n    return this._query;\r\n  }\r\n\r\n  @Input()\r\n  set searchResult(result: SearchResult) {\r\n    // todo: backend should resolve query.fields and return config in specific order\r\n    const _fields = result.fields ? observableOf(result.fields) :\r\n      this.searchService.fetchResultFieldDefinition(this.configType, this.configContext, 'ALL');\r\n    _fields.subscribe(fields => {\r\n      if (fields && this.query && this.query.fields && this.query.fields.length) {\r\n        fields.elements = this.query.fields.map(f => fields.elements.find(e => f === e.hitname));\r\n      }\r\n      result.fields = fields || new FieldDefinition();\r\n      this._result = result;\r\n      this.processResults(this._result);\r\n    });\r\n  }\r\n\r\n  get searchResult() {\r\n    return this._result;\r\n  }\r\n\r\n  constructor(private config: Config, public translate: TranslateService, public gridApi: GridService, private backend: BackendService,\r\n              private appSearchService: AppSearchService, private searchService: SearchService, private eventService: EventService,\r\n              private storageService: LocalStorageService, private storedQueriesService: StoredQueriesService, private router: Router) {\r\n    this.VIRTUAL_LIST_CHUNK_SIZE = this.config.getRaw('search.limit') as number;\r\n    this.resolveReferencesCsv = this.config.getRaw('search.resolveReferencesCSV') as boolean || false;\r\n    this.resolveReferencesCsvThreshold = this.config.getRaw('search.resolveReferencesCSVThreshold') as number || 10000;\r\n    this._cachedColumns = this.storageService.getItem(ResultListComponent.COLUMNS_DEFINITION) || [];\r\n  }\r\n\r\n  clearQuery(clearAfterExecute) {\r\n    if (clearAfterExecute) {\r\n      this.appSearchService.clearQuery();\r\n    }\r\n  }\r\n\r\n  invalidQuery() {\r\n    this.onQueryInvalid.emit();\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_DELETED)\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe((res: any) => {\r\n        if (this.grid) {\r\n          this.grid.updateRows(this.backend.update([res.data], [{id: res.data.id}]));\r\n        }\r\n      });\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_UPDATED)\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe((res: any) => {\r\n        if (this.grid) {\r\n          this.updateRow(res.data.id, res.data.data)\r\n        }\r\n      });\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    setTimeout(() => {\r\n      if (this.grid && this._query) {\r\n        this._query.sortOptions = (this.grid.api.getColumnState() || [])\r\n          .map(model => new SortOption(GridService.qnameFormatter(model.colId + this.postfixSort(model.colId)), model.sort));\r\n        this.query = this._query;\r\n      }\r\n    }, 200);\r\n  }\r\n\r\n  updateRow(id: string, data: any) {\r\n    const matchRow = this.resultGridOptions.rowData.find((r) => r.id === id);\r\n    const systemFields = ['created', 'creatortitle', 'modified', 'modifiertitle', 'title', 'description', 'type', 'version', 'filesize', 'filename', 'mimetypegroup', 'mimetype'];\r\n    let missingColumns = this.resultGridOptions.columnDefs;\r\n    if (matchRow) {\r\n      Object.keys(matchRow).forEach((k) => {\r\n        if (data.hasOwnProperty(k)) {\r\n          if (data.hasOwnProperty(k + '_meta')) {\r\n            // if it is an org field, it will have a title to show, otherwise it is a codesystem and we show the label\r\n            matchRow[k] = data[k + '_meta'].title ? data[k + '_meta'].title : data[k + '_meta'].label;\r\n          } else {\r\n            matchRow[k] = data[k];\r\n          }\r\n          missingColumns = missingColumns.filter((column: ColDef) => column.field !== k);\r\n        } else if (data.hasOwnProperty(k.split('.')[1])) {\r\n          // some technical names have the object type as a prefix, we have to get rid of it\r\n          const kSplit = k.split('.')[1];\r\n          if (data.hasOwnProperty(kSplit + '_meta')) {\r\n            matchRow[k] = data[kSplit + '_meta'].title ? data[kSplit + '_meta'].title : data[kSplit + '_meta'].label;\r\n          } else {\r\n            matchRow[k] = data[kSplit];\r\n          }\r\n          missingColumns = missingColumns.filter((column: ColDef) => column.field !== k);\r\n        }\r\n      });\r\n      // we need to iterate through the not already applied columns, which were changed from null or to null\r\n      missingColumns.forEach((column: ColDef) => {\r\n        if (data.hasOwnProperty(column.field)) {\r\n          matchRow[column.field] = data[column.field];\r\n        } else if (data.hasOwnProperty(column.field.split('.')[1])) {\r\n          matchRow[column.field] = data[column.field.split('.')[1]];\r\n        } else {\r\n          if (!systemFields.includes(column.field)) {\r\n            matchRow[column.field] = null;\r\n          }\r\n        }\r\n      });\r\n      matchRow.id = id;\r\n      const rowNode = this.grid.api.getRowNode(id);\r\n      rowNode && rowNode.setData(matchRow);\r\n    }\r\n  }\r\n\r\n  refreshGrid() {\r\n    if (this.query) {\r\n      this._query.sortOptions = (this.grid.api.getColumnState() || [])\r\n            .map(model => new SortOption(GridService.qnameFormatter(model.colId + this.postfixSort(model.colId)), model.sort));\r\n      this.query = this._query;\r\n    }\r\n    this.onRefresh.emit(this.query);\r\n  }\r\n\r\n  onColumnResized(column: any) {\r\n    let col = this._cachedColumns.find(c => c.qname === column.colDef.refData.qname);\r\n    if (col) {\r\n      col.width = column.actualWidth;\r\n    } else {\r\n      this._cachedColumns.push({qname: column.colDef.refData.qname, width: column.actualWidth});\r\n    }\r\n    this.storageService.setItem(ResultListComponent.COLUMNS_DEFINITION, this._cachedColumns);\r\n  }\r\n\r\n  /**\r\n   * Event handler for grid configuration\r\n   * @param $event\r\n   */\r\n  onConfigChanged(refresh) {\r\n    if (refresh) {\r\n      this.refreshGrid();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Process Search result & generate column definitions\r\n   * @param result\r\n   */\r\n  private processResults(result: SearchResult) {\r\n    this.visibleConfig = false;\r\n    this.onResult.emit(result);\r\n    this.totalHits = result.count.value;\r\n    this.limitedList = this.totalHits > result.hits.length;\r\n    let gridOptions: GridOptions = {context: {}, onSortChanged: () => this.onPageChanged(), onFilterChanged: () => this.onPageChanged()};\r\n    const searchMode = result.fields.mode ? result.fields.mode : null;\r\n\r\n    this.settings = this.limitedList && this.query ? {total: this.totalHits, size: this.VIRTUAL_LIST_CHUNK_SIZE, relation: result.count.relation} : null;\r\n    gridOptions.rowData = result.hits;\r\n\r\n    const {elements, sortorder, grouporder, pinned, alignmentx} = result.fields;\r\n\r\n    gridOptions.context.count = result.count;\r\n    gridOptions.columnDefs = this.gridApi.getColumnDefs(elements, sortorder, grouporder, pinned, alignmentx, false, this._cachedColumns, searchMode);\r\n\r\n    const refreshGrid = this.hasGridOptions;\r\n    Object.assign(this.resultGridOptions, gridOptions, this.gridOptions);\r\n\r\n    if (refreshGrid) {\r\n      // reload grid component\r\n      this.resultGridOptions = {};\r\n      setTimeout(() => Object.assign(this.resultGridOptions, gridOptions, this.gridOptions), 0);\r\n    }\r\n  }\r\n\r\n  private postfixSort(id) {\r\n    // todo: remove when it's fixed on backend\r\n    return id.match(/(^sysobject\\.|^sysdocument\\.)(creator$|modifier$)/) ? 'title' : '';\r\n  }\r\n\r\n  onPageChanged(page: number = 1) {\r\n    if (this.limitedList && this.query) {\r\n      this.fetchRowData({\r\n        startRow: this.VIRTUAL_LIST_CHUNK_SIZE * (page - 1),\r\n        sortModel: this.grid.api.getColumnState(),\r\n        filterModel: this.grid.api.getFilterModel(),\r\n        successCallback: (rows, total, relation) => {\r\n          this.settings = {total, relation, size: this.VIRTUAL_LIST_CHUNK_SIZE, page};\r\n          this.grid.api.setGridOption('rowData', rows);\r\n          this.grid.selectRow(0);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Function for fetching the items to be displayed with a virtual row model.\r\n   *\r\n   * @param params - row model params (incl. startRow, endRow, sortModel and filterModel)\r\n   */\r\n  private fetchRowData(params: any) {\r\n\r\n    if (this.query) {\r\n\r\n      this.updateQuery(params);\r\n\r\n      this.searchService\r\n        .getChunkedResult(this.query, params.startRow, this.VIRTUAL_LIST_CHUNK_SIZE)\r\n        .subscribe(result => {\r\n          this.totalHits = this.grid.gridOptions.context.rowCount = result.count.value;\r\n          this.grid.gridOptions.context.count = result.count;\r\n          params.successCallback(result.hits, this.totalHits, result.count.relation);\r\n        });\r\n    }\r\n  }\r\n\r\n  private updateQuery(params: any) {\r\n    this.query.sortOptions = (params.sortModel || this.grid.api.getColumnState() || [])\r\n        .map(model => new SortOption(GridService.qnameFormatter(model.colId + this.postfixSort(model.colId)), model.sort));\r\n\r\n    this.query.filters = this.defaultQuery.filters\r\n      .concat((Object.keys(params.filterModel || this.grid.api.getFilterModel()) || [])\r\n        .map(key => GridFilter.operator(GridService.qnameFormatter(key), (params.filterModel || this.grid.api.getFilterModel())[key])));\r\n\r\n    this.query.searchMode = SearchQuery.DEFAULT_SEARCH_MODE;\r\n  }\r\n\r\n  executeSuggestSearch() {\r\n    // todo: implement\r\n  }\r\n\r\n  private resultHasReferences(): boolean {\r\n    return this._result.fields.elements.some(element => element.type === 'ORGANIZATION' || element.type === 'REFERENCE');\r\n  }\r\n\r\n  exportCSV(ignoreThreshold = false) {\r\n    if (!ignoreThreshold && this.resolveReferencesCsv\r\n      && (this.list.gridCount.totalCount > this.resolveReferencesCsvThreshold || this.list.gridCount.relation === 'gte')\r\n      && this.resultHasReferences()) {\r\n      this.showWarnExportCSVThresholdDialog = true;\r\n      return;\r\n    }\r\n    this.csvLoadingSpinnerVisibility = true;\r\n    this.updateQuery({});\r\n    this.showWarnExportCSVThresholdDialog = false;\r\n    const queryJson = this.query.getQueryJson(this.resolveReferencesCsv);\r\n    queryJson.fields = [];\r\n    this.resultGridOptions?.columnDefs.forEach(colDef => {\r\n      queryJson.fields.push(colDef['field'] + ' ' + colDef.headerName);\r\n    });\r\n    this.searchService.downloadCsvFromQuery(queryJson).subscribe(() => {\r\n      this.csvLoadingSpinnerVisibility = false;\r\n    });\r\n  }\r\n\r\n  parseDmsParams(data) {\r\n    return {id: data && data.id ? data.id : null, type: data && data.type ? data.type : null};\r\n  }\r\n\r\n  get hasGridOptions() {\r\n    return !!(this.resultGridOptions.datasource || this.resultGridOptions.rowData);\r\n  }\r\n\r\n  onStoredQueryLoaded() {\r\n    this.savedSearchClicked = false;\r\n    this.router.navigate([{outlets: {modal: 'search'}}]);\r\n  }\r\n\r\n  onStoredQueryExecute(evt) {\r\n    this.savedSearchClicked = false;\r\n    const uriParam = encodeURIComponent(JSON.stringify(evt.queryJson));\r\n    const uriParamQuery: NavigationExtras = {queryParams: {'query': uriParam}};\r\n    this.router.navigate(['/result'], uriParamQuery);\r\n  }\r\n}\r\n","<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\r\n  <eo-loading-spinner class=\"result-list__loader\" [size]=\"'medium'\"></eo-loading-spinner>\r\n</div>\r\n<eo-column-configurator *ngIf=\"visibleConfig\" [visible]=\"visibleConfig\"\r\n                        [configType]=\"configType\" [configContext]=\"configContext\" [eoGrid]=\"grid\"\r\n                        (onConfigChanged)=\"visibleConfig = false; onConfigChanged($event)\" ></eo-column-configurator>\r\n\r\n<eo-list-container #eoList [applySelection]=\"{}\" [loading]=\"false\" [parseDmsParams]=\"parseDmsParams\">\r\n  <div class=\"eo-header\">\r\n    <eo-icon class=\"eo-header-icon\" *ngIf=\"hasIcon\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\r\n    <div class=\"eo-header-info\">\r\n      <div class=\"eo-header-title\">{{title || ('eo.search.title' | translate)}}</div>\r\n      <div class=\"eo-header-subtitle\">\r\n        <span *ngIf=\"!storedQuery; else storedQueryText\" class=\"eo-header-subtitle__label\" [title]=\"querySubtitle\">{{querySubtitle}}</span>\r\n        <ng-template #storedQueryText>\r\n          <ng-container *ngIf=\"storedQuery.parameter.length === 0; else storedQueryDialog\">\r\n            <span class=\"eo-header-subtitle__label\" [title]=\"('eo.search.aside.summary.storedquery' | translate) + ': ' + storedQuery.name\">\r\n              {{'eo.search.aside.summary.storedquery' | translate}}: {{storedQuery.name}}\r\n            </span>\r\n          </ng-container>\r\n        </ng-template>\r\n        <ng-template #storedQueryDialog>\r\n          <div class=\"stored-query\">\r\n            <span>\r\n              {{'eo.search.aside.summary.storedquery' | translate}}:\r\n            </span>\r\n            <button class=\"sq\" (click)=\"savedSearchClicked = true\" (keyup.enter)=\"savedSearchClicked = true\" tabindex=\"0\">\r\n              <eo-icon [iconSrc]=\"'assets/_default/svg/ic_stored_query.svg'\"></eo-icon>\r\n              <span>{{storedQuery.name}}</span>\r\n            </button>\r\n          </div>\r\n        </ng-template>\r\n        <span *ngIf=\"query?.contextFolderTypes.length === 1\" translate\r\n              [translateParams]=\"{type: query.contextFolderTypes[0].label}\">eo.search.objecttype.form.context</span>\r\n        <span class=\"term\" *ngIf=\"!storedQuery && query?.term && !clearAfterExecute\" [title]=\"('eo.search.result.term' | translate) + ': ' + query.term\">{{'eo.search.result.term' | translate}} : \"{{query.term}}\"</span>\r\n        <div class=\"suggest\" *ngIf=\"searchResult?.suggests\">{{'eo.search.suggest' | translate}}<a href=\"javascript:void(0)\" (click)=\"executeSuggestSearch()\">{{searchResult.suggests[0]}}</a> ?\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div class=\"eo-header-actions\">\r\n      <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refreshGrid()\"\r\n               [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n      <eo-icon class=\"button export-button\" [hidden]=\"!query\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.resultlist.export.csv' | translate)\"\r\n               (click)=\"exportCSV()\" *ngIf=\"!csvLoadingSpinnerVisibility\"></eo-icon>\r\n      <eo-loading-spinner [size]=\"'small'\" *ngIf=\"csvLoadingSpinnerVisibility\" class=\"spinner\"></eo-loading-spinner>\r\n      <eo-icon class=\"button config-button\" [iconSrc]=\"'assets/_default/svg/ic_settings.svg'\" [iconTitle]=\"('eo.column.config.title' | translate)\"\r\n               (click)=\"visibleConfig = !visibleConfig\"></eo-icon>\r\n      <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"('eo.object.actions.title' | translate)\"\r\n               [iconSrc]=\"'assets/_default/svg/ic_more.svg'\" *ngIf=\"!reference\"></eo-icon>\r\n    </div>\r\n  </div>\r\n  <div class=\"eo-body\">\r\n    <eo-grid #eoGrid [gridOptions]=\"resultGridOptions\" *ngIf=\"hasGridOptions; else error\"\r\n             [showFooter]=\"true\" (eoGridColumnResized)=\"onColumnResized($event)\" [selectFirst]=\"selectFirst\"\r\n             (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged.emit($event);\"\r\n             (eoGridContextMenuClick)=\"eoList.onContextMenu($event);onContextMenu.emit($event)\"\r\n             (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event);onSelectionChanged.emit($event)\"\r\n             (eoGridDoubleClick)=\"eoList.onDoubleClick($event);onDoubleClick.emit($event)\"\r\n             (eoGridFocusChanged)=\"eoList.onFocusChanged($event);onFocusChanged.emit($event)\">\r\n\r\n      <div class=\"footer\">\r\n        <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n        <!--<eo-quick-filter [eoGrid]=\"eoGrid\"></eo-quick-filter>-->\r\n        <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\r\n      </div>\r\n\r\n      <div class=\"empty\">\r\n        <eo-error-message [emptyState]=\"{text: emptyMessage || 'eo.search.result.expired'}\"></eo-error-message>\r\n      </div>\r\n    </eo-grid>\r\n  </div>\r\n  <ng-template #error>\r\n\r\n    <eo-error-message *ngIf=\"hasGridOptions\" [emptyState]=\"{text:'eo.search.mode.expert.result.empty'}\">\r\n    </eo-error-message>\r\n\r\n  </ng-template>\r\n</eo-list-container>\r\n\r\n<eo-dialog [visible]=\"savedSearchClicked\" (hide)=\"savedSearchClicked = false\" [title]=\"'eo.search.aside.summary.storedquery' | translate\">\r\n  <eo-stored-query [query]=\"storedQuery\"\r\n                   (onQueryLoaded)=\"onStoredQueryLoaded()\"\r\n                   (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\r\n</eo-dialog>\r\n\r\n<eo-dialog [title]=\"'eo.resultlist.export.csv.threshold.dialog.title' | translate\"\r\n           [(visible)]=\"showWarnExportCSVThresholdDialog\" [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'threshold__dialog'\">\r\n\r\n  <div>{{'eo.resultlist.export.csv.threshold.dialog.message' | translate}}</div>\r\n\r\n  <div class=\"action-buttons flex-row\">\r\n    <button type=\"button\" class=\"button cancel\" (click)=\"showWarnExportCSVThresholdDialog = false\"\r\n            translate>eo.cta.button.cancel</button>\r\n    <button type=\"button\" cdkFocusInitial (click)=\"exportCSV(true)\" class=\"button primary\"\r\n            translate>eo.resultlist.export.csv.threshold.dialog.export</button>\r\n  </div>\r\n</eo-dialog>\r\n\r\n","import {Component, Input, Output, EventEmitter, HostBinding} from '@angular/core';\r\nimport {ObjectFormControlWrapper} from '../../../object-form/object-form/object-form-control-wrapper';\r\nimport {ObjectFormControl} from '../../../object-form/object-form/object-form-control';\r\n\r\n@Component({\r\n  selector: 'eo-dynamic-property-switch',\r\n  templateUrl: './dynamic-property-switch.component.html',\r\n  styleUrls: ['./dynamic-property-switch.component.scss']\r\n})\r\nexport class DynamicPropertySwitchComponent {\r\n\r\n  value: boolean;\r\n  controlName: string;\r\n  @HostBinding('class.disabled') disabled: boolean;\r\n\r\n  @Input()\r\n  set parentFormControl(fc: ObjectFormControlWrapper) {\r\n    if (fc) {\r\n      let formControl: ObjectFormControl = fc.controls[fc._eoFormControlWrapper.controlName] as ObjectFormControl;\r\n      if (formControl && formControl._eoFormElement) {\r\n        this.value = formControl._eoFormElement._dynamic;\r\n        this.controlName = fc._eoFormControlWrapper.controlName;\r\n        this.disabled = formControl._eoFormElement.type === 'TABLE'; // Form elements of type 'TABLE' make no sense.\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * control: qname of the target form element\r\n   * value: based on whether or not the element should be dynamic\r\n   */\r\n  @Output() onPropertyChanged = new EventEmitter<{control: string, value: boolean}>();\r\n\r\n  constructor() { }\r\n\r\n  toggleValue() {\r\n    if (!this.disabled) {\r\n      this.value = !this.value;\r\n      this.onPropertyChanged.emit({\r\n        control: this.controlName,\r\n        value: this.value\r\n      });\r\n    }\r\n  }\r\n}\r\n","<eo-icon [ngClass]=\"{active: value}\"\r\n         [iconSrc]=\"'assets/_default/svg/ic_input.svg'\"\r\n         (click)=\"toggleValue()\" >\r\n</eo-icon>\r\n","import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {UntypedFormControl, Validators} from '@angular/forms';\r\nimport {NavigationExtras, Router} from '@angular/router';\r\nimport {\r\n  EnaioEvent,\r\n  EventService,\r\n  IStoredQueryParam,\r\n  OrgRole,\r\n  QueryScope,\r\n  SearchFilter,\r\n  SearchQuery,\r\n  SearchService,\r\n  StoredQueriesService,\r\n  StoredQuery,\r\n  SystemService,\r\n  TranslateService,\r\n  UserService,\r\n  Utils\r\n} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {Observable, forkJoin, of} from 'rxjs';\r\nimport {tap} from 'rxjs/operators';\r\nimport {PendingChangesService} from '../../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {LocaleDatePipe} from '../../../eo-framework-core/pipes/locale-date.pipe';\r\nimport {SelectionService} from '../../../eo-framework-core/selection/selection.service';\r\nimport {ObjectFormHelperService} from '../../object-form/object-form-helper.service';\r\nimport {ObjectFormControl} from '../../object-form/object-form/object-form-control';\r\nimport {ObjectFormControlWrapper} from '../../object-form/object-form/object-form-control-wrapper';\r\nimport {ObjectFormGroup} from '../../object-form/object-form/object-form-group.model';\r\nimport {UtilitiesService} from '../../util/services/utilities.service';\r\nimport {EditForm, NotifyList, Restriction} from '../stored-query.interface';\r\nimport {StoredQueryComponent} from '../stored-query/stored-query.component';\r\nimport {WidgetGridWorkspace} from '@yuuvis/widget-grid';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-stored-query-details',\r\n  templateUrl: './stored-query-details.component.html',\r\n  styleUrls: ['./stored-query-details.component.scss']\r\n})\r\nexport class StoredQueryDetailsComponent implements OnInit {\r\n\r\n  private FORM_INPUT_TITLE = 'storedQueryTitle';\r\n  private FORM_INPUT_FULLTEXT = 'storedQueryFulltext';\r\n  private BASE_PARAMS_FIELDS = Object.keys(SearchQuery.BASE_PARAMS).map(k => SearchQuery.BASE_PARAMS[k]);\r\n  private datePipe: LocaleDatePipe;\r\n  private pendingTaskId: string;\r\n\r\n  @ViewChild('storedQueryForm') storedQueryForm: StoredQueryComponent;\r\n\r\n  iconTitles: any;\r\n  storedQuery: StoredQuery;\r\n  queryScope: QueryScope;\r\n  editForm: EditForm;\r\n  restrictions: Restriction[];\r\n  editingShare: boolean;\r\n  isNewQuery: boolean;\r\n  isOwnQuery: boolean;\r\n  enableSharing: boolean;\r\n  systemRoles: OrgRole[];\r\n  workspaces: WidgetGridWorkspace[];\r\n  rolesPicker = {\r\n    title: this.translate.instant('eo.storedquery.roles'),\r\n    codesystem: null,\r\n    value: null\r\n  };\r\n  showDeleteDialog = false;\r\n  info = '';\r\n\r\n  @Input()\r\n  set query(q: StoredQuery) {\r\n    this.setQuery(q);\r\n  }\r\n\r\n  @Output() notifyList: EventEmitter<NotifyList> = new EventEmitter<NotifyList>();\r\n\r\n  constructor(private router: Router,\r\n    private searchService: SearchService,\r\n    private userService: UserService,\r\n    private systemService: SystemService,\r\n    private selection: SelectionService,\r\n    private pendingChanges: PendingChangesService,\r\n    private storedQueriesService: StoredQueriesService,\r\n    private formHelperService: ObjectFormHelperService,\r\n    private elemRef: ElementRef,\r\n    private translate: TranslateService,\r\n    private eventService: EventService) {\r\n\r\n    this.datePipe = new LocaleDatePipe(translate);\r\n    this.fetchRoles();\r\n    this.workspaces = this.userService?.getCurrentUser()?.userSettings?.workspaceOptions?.workspaces;\r\n  }\r\n\r\n  public setQueryScope(scope: QueryScope) {\r\n    this.storedQuery.scope = scope;\r\n    this.queryScope = scope;\r\n  }\r\n\r\n  setQuery(q: StoredQuery) {\r\n    this.editingShare = false;\r\n    this.resetEditForm();\r\n    // grab meta information about the query\r\n    this.storedQuery = q;\r\n    if (q instanceof StoredQuery) {\r\n      this.queryScope = q.scope;\r\n      const user = this.userService.getCurrentUser();\r\n      this.isNewQuery = q.isNew();\r\n      this.isOwnQuery = this.isNewQuery || q.user.toLowerCase() === user.name.toLowerCase();\r\n      this.restrictions = this.getRestrictions();\r\n      this.rolesPicker.value = q.roles;\r\n      this.enableSharing = user.hasPrivilege('SHARE_STORED_QUERIES') && this.isOwnQuery && !this.isNewQuery;\r\n\r\n      if (q.isNew()) {\r\n        this.storedQuery.name = this.translate.instant('eo.search.storedqueries.new.title');\r\n        this.edit();\r\n        this.startPending();\r\n        this.notifyList.emit({unselect: true, update: false});\r\n        setTimeout(() => {\r\n          this.elemRef.nativeElement.querySelector('[name=\"storedQueryTitle\"]').focus()\r\n        }, 500);\r\n      }\r\n    }\r\n  }\r\n\r\n  private startPending() {\r\n    if (!this.pendingChanges.hasPendingTask(this.pendingTaskId || ' ')) {\r\n      this.pendingTaskId = this.pendingChanges.startTask();\r\n    }\r\n  }\r\n\r\n  private finishPending() {\r\n    this.pendingChanges.finishTask(this.pendingTaskId);\r\n  }\r\n\r\n  edit() {\r\n    if (!this.editForm.form) {\r\n      setTimeout(() => {\r\n        this.createEditForm();\r\n        this.notifyList.emit({unselect: false, update: true});\r\n      }, 0);\r\n    }\r\n  }\r\n\r\n  onFormStatusChanged(formState) {\r\n    formState.dirty ? this.startPending() : this.finishPending();\r\n  }\r\n\r\n  toggleShareEdit() {\r\n    this.editingShare = !this.editingShare;\r\n  }\r\n\r\n  share() {\r\n    this.storedQuery.roles = this.rolesPicker.value;\r\n    this.storedQueriesService.saveStoredQuery(this.storedQuery).subscribe(\r\n      _ => {\r\n        this.eventService.trigger(EnaioEvent.STORED_OBJECT_SHARED);\r\n      }, Utils.throw(null, this.translate.instant('eo.search.storedquery.save.error'))\r\n    );\r\n    this.editingShare = false;\r\n  }\r\n\r\n  cancelShare() {\r\n    this.rolesPicker.value = this.storedQuery.roles;\r\n    this.editingShare = false;\r\n    this.eventService.trigger(EnaioEvent.STORED_OBJECT_SHARED);\r\n  }\r\n\r\n  isStoredQueryUsed(): boolean {\r\n    this.info = '';\r\n    let isUsed;\r\n    this.workspaces.filter(workspace => workspace.grid.some(gridItem => {\r\n      if (gridItem.widgetConfig?.storedQuery === this.storedQuery.id) {\r\n        this.info += (this.info ? ', ' : '') + `'${workspace.label}'`;\r\n        isUsed = true;\r\n        return true;\r\n      }\r\n    }));\r\n    return isUsed;\r\n  }\r\n\r\n  delete() {\r\n    this.storedQueriesService\r\n      .removeStoredQuery(this.storedQuery.id)\r\n      .subscribe(() => {\r\n        this.query = null;\r\n        this.notifyList.emit({unselect: false, update: false});\r\n      }, Utils.throw(null, this.translate.instant('eo.search.storedquery.delete.error')));\r\n  }\r\n\r\n  toggleFavoriteState() {\r\n    this.storedQuery.favorite = !this.storedQuery.favorite;\r\n    this.storedQueriesService\r\n      .saveStoredQuery(this.storedQuery)\r\n      .subscribe(_ => {\r\n        this.eventService.trigger(EnaioEvent.STORED_OBJECT_FAVORISED);\r\n      }, Utils.throw(null, this.translate.instant('eo.search.storedquery.save.error')));\r\n  }\r\n\r\n  cancelEdit() {\r\n    this.resetEditForm();\r\n    this.finishPending();\r\n    if (this.storedQuery.isNew()) {\r\n      this.query = null;\r\n    }\r\n    this.notifyList.emit({unselect: false, update: false, payload: this.storedQuery});\r\n  }\r\n\r\n  setQueryToAppSearch() {\r\n    this.storedQueryForm.load();\r\n  }\r\n\r\n  executeQuery() {\r\n    this.storedQueryForm.execute();\r\n  }\r\n\r\n  // Save the current stored query\r\n  updateStoredQuery() {\r\n\r\n    const formData = this.getFormData();\r\n    this.storedQuery.filters = this.storedQuery.filters.filter(f => ~this.BASE_PARAMS_FIELDS.indexOf(f.property));\r\n    Object.keys(formData)\r\n      .forEach(k => {\r\n        if (k === this.FORM_INPUT_TITLE) {\r\n          this.storedQuery.name = formData[k];\r\n        } else if (k === this.FORM_INPUT_FULLTEXT) {\r\n          this.storedQuery.term = formData[k];\r\n        } else {\r\n          let filters: SearchFilter[] = this.searchService.getSearchFilter(this.storedQuery.types, k, formData[k]);\r\n          filters.forEach(f => this.storedQuery.addFilter(f));\r\n        }\r\n      });\r\n\r\n    this.storedQueriesService\r\n      .saveStoredQuery(this.storedQuery)\r\n      .subscribe(updatedStoredQuery => {\r\n        this.query = updatedStoredQuery;\r\n        this.resetEditForm();\r\n        this.finishPending();\r\n        this.notifyList.emit({unselect: false, update: false, payload: updatedStoredQuery});\r\n      }, Utils.throw(null, this.translate.instant('eo.search.storedquery.save.error')));\r\n  }\r\n\r\n  /**\r\n   * Toggle form elements to be a dynamic parameter or not\r\n   * @param event\r\n   */\r\n  parameterChanged(event: {control: string, value: boolean}) {\r\n\r\n    let m = this.storedQuery.parameter.find(p => p.qname === event.control);\r\n    if (m && !event.value) {\r\n      // remove existing parameter\r\n      this.storedQuery.parameter = this.storedQuery.parameter.filter(p => p.qname !== event.control);\r\n    } else if (!m && event.value) {\r\n      // add parameter element\r\n      let param = this.formFieldToParameter(event.control);\r\n      if (param) {\r\n        this.storedQuery.parameter.push(param);\r\n      }\r\n    }\r\n  }\r\n\r\n  private getFormData() {\r\n\r\n    const properties = Object.keys(this.editForm.form.value);\r\n    let data = {};\r\n\r\n\r\n    properties.forEach(property => {\r\n\r\n      const fc: ObjectFormControlWrapper = this.editForm.form.controls[property] as ObjectFormControlWrapper;\r\n      let formElement;\r\n      if (fc.controls && fc.controls[property]) {\r\n        const fe: ObjectFormControl = fc.controls[property] as ObjectFormControl;\r\n        formElement = fe._eoFormElement;\r\n      }\r\n      if (formElement && formElement.isNotSetValue) {\r\n        data[property] = null;\r\n      } else {\r\n\r\n        switch (property) {\r\n          case this.FORM_INPUT_TITLE: {\r\n            data[property] = this.editForm.form.value[property] || '';\r\n            break;\r\n          }\r\n          case this.FORM_INPUT_FULLTEXT: {\r\n            data[property] = this.editForm.form.value[property][StoredQueriesService.FULLTEXT] || '';\r\n            break;\r\n          }\r\n          default: {\r\n            const v = this.editForm.form.value[property][property];\r\n            if (!UtilitiesService.isEmpty(v)) {\r\n              data[property] = v;\r\n            }\r\n          }\r\n        }\r\n      }\r\n    });\r\n    return data;\r\n  }\r\n\r\n  /**\r\n   * Create a dynamic stored query parameter for a form element\r\n   * @param qname The form elements qname\r\n   * @returns\r\n   */\r\n  private formFieldToParameter(qname: string): IStoredQueryParam {\r\n\r\n    try {\r\n      let param: IStoredQueryParam;\r\n      // special handling for fulltext fields\r\n      if (qname === StoredQueriesService.FULLTEXT) {\r\n        param = {\r\n          qname: qname,\r\n          type: qname,\r\n        };\r\n      } else {\r\n        const fc = ((this.editForm.form.controls[qname] as ObjectFormControlWrapper).controls[qname] as ObjectFormControl);\r\n        const fe = fc._eoFormElement;\r\n        param = {\r\n          qname: fe.qname,\r\n          type: fe.type\r\n        };\r\n      }\r\n      return param;\r\n    } catch (e) {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  private resetEditForm() {\r\n    this.editForm = {\r\n      form: null,\r\n      fulltextFormControl: null,\r\n      controls: [],\r\n      contextControls: []\r\n    };\r\n  }\r\n\r\n  onFormChanges(): void {\r\n    this.editForm\r\n      .form\r\n      .valueChanges\r\n      .subscribe(() => this.onFormStatusChanged(this.editForm.form));\r\n  }\r\n\r\n  private createEditForm() {\r\n\r\n    this.resetEditForm();\r\n    this.setupFormControls().subscribe(_ => {\r\n\r\n      let form = new ObjectFormGroup({});\r\n      let fcTitle = new UntypedFormControl('', Validators.required);\r\n      fcTitle.setValue(this.storedQuery.name);\r\n\r\n      let fcFulltext = this.toFormControl(this.storedQueriesService.getFulltextFormElement(\r\n        this.translate.instant('eo.storedquery.search.term'),\r\n        this.storedQuery.term\r\n      ));\r\n      this.editForm.fulltextFormControl = fcFulltext;\r\n\r\n      // add title and fulltext field\r\n      form.addControl(this.FORM_INPUT_TITLE, fcTitle);\r\n      form.addControl(this.FORM_INPUT_FULLTEXT, fcFulltext);\r\n\r\n      if (this.editForm.controls.length || this.editForm.contextControls.length) {\r\n        this.editForm.controls\r\n          .forEach((c) => form.addControl(c._eoFormControlWrapper.controlName, c));\r\n        this.editForm.contextControls\r\n          .forEach((c) => form.addControl(c._eoFormControlWrapper.controlName, c));\r\n      }\r\n\r\n      this.editForm.form = form;\r\n      this.onFormChanges();\r\n    })\r\n  }\r\n\r\n  private setupFormControls(): Observable<any> {\r\n    const tasks = [];\r\n    // setting up object type form only makes sense with one target type\r\n    if (this.storedQuery.types.length === 1) {\r\n      tasks.push(this.systemService.getFormElementsFromFormModel(this.storedQuery.types[0].qname, 'SEARCH').pipe(\r\n        tap((elements: any[]) => {\r\n          elements.forEach(e => {\r\n            // prevent tables and binary types from being rendered in the stored query form\r\n            if (e.type !== 'BINARY') {\r\n              if (e.required) {\r\n                e.required = false;\r\n              }\r\n              if (e.readonly) {\r\n                e.readonly = false;\r\n              }\r\n              const fc = this.toFormControl(e);\r\n              if (fc) {\r\n                this.editForm.controls.push(fc);\r\n              }\r\n            }\r\n          })\r\n        })\r\n      ))\r\n    }\r\n    // add context form controls as well\r\n    if (this.storedQuery.contextFolderTypes.length) {\r\n      tasks.push(this.systemService.getFormElementsFromFormModel(this.storedQuery.contextFolderTypes[0].qname, 'SEARCH', true).pipe(\r\n        tap((elements: any[]) => {\r\n          elements.forEach(e => {\r\n            const fc = this.toFormControl(e);\r\n            if (fc) {\r\n              this.editForm.contextControls.push(fc);\r\n            }\r\n          })\r\n        })\r\n      ))\r\n    }\r\n\r\n    return tasks.length ? forkJoin(tasks) : of(tasks);\r\n  }\r\n\r\n  private fetchRoles() {\r\n    if (!this.systemRoles || this.systemRoles.length === 0) {\r\n      this.systemService\r\n        .getRoles()\r\n        .subscribe(res => {\r\n          this.systemRoles = res;\r\n          this.rolesPicker.codesystem = {\r\n            entries: this.systemRoles.map(role => ({\r\n              id: role.id,\r\n              label: role.name,\r\n              defaultrepresentation: role.name,\r\n              data: role.name\r\n            })).sort(Utils.sortValues('label'))\r\n          }\r\n        }\r\n        )\r\n    }\r\n  }\r\n\r\n  getRestrictions(): Restriction[] {\r\n    let restrictions: Restriction[] = [];\r\n\r\n    // type restriction\r\n    if (this.storedQuery.types && this.storedQuery.types.length) {\r\n      restrictions.push({\r\n        field: SearchQuery.BASE_PARAMS.TYPE,\r\n        label: this.translate.instant('eo.storedquery.restriction.type'),\r\n        items: this.storedQuery.types.map(t => t.label)\r\n      });\r\n    }\r\n\r\n    // add base params restrictions\r\n    (this.storedQuery.filters || []).forEach(filter => {\r\n      if (filter && ~this.BASE_PARAMS_FIELDS.indexOf(filter.property)) {\r\n\r\n        const field = filter.property;\r\n        const label = this.translate.instant('eo.storedquery.restriction.' + field);\r\n\r\n        switch (field) {\r\n          case SearchQuery.BASE_PARAMS.MIMETYPEGROUP:\r\n            restrictions.push({\r\n              field, label, items: Array.isArray(filter.firstValue) ? filter.firstValue : [filter.firstValue]\r\n            });\r\n            break;\r\n          case SearchQuery.BASE_PARAMS.FILENAME:\r\n            restrictions.push({\r\n              field, label, items: [filter.firstValue]\r\n            });\r\n            break;\r\n          case SearchQuery.BASE_PARAMS.FILESIZE:\r\n            restrictions.push({\r\n              field, label, items: [this.translate.instant('eo.search.agg.filesize.' + filter.firstValue)]\r\n            });\r\n            break;\r\n          case SearchQuery.BASE_PARAMS.CREATED:\r\n          case SearchQuery.BASE_PARAMS.MODIFIED:\r\n            restrictions.push({\r\n              field, label, items: [this.createDateRestriction(filter)]\r\n            });\r\n            break;\r\n          case SearchQuery.BASE_PARAMS.CREATOR:\r\n          case SearchQuery.BASE_PARAMS.MODIFIER:\r\n            this.systemService.getOrganizationObjects(filter.firstValue)\r\n              .subscribe(orgUsers => restrictions.push({\r\n                field, label, items: orgUsers.map(u => u.title)\r\n              }));\r\n            break;\r\n        }\r\n      }\r\n\r\n    });\r\n\r\n    return restrictions;\r\n  }\r\n\r\n  createDateRestriction(filter: SearchFilter) {\r\n    switch (filter.operator) {\r\n      case SearchFilter.OPERATOR.RANGE:\r\n        return this.translate.instant(`eo.search.agg.time.${filter.firstValue}`);\r\n      case SearchFilter.OPERATOR.EQUAL:\r\n        return `= ${this.datePipe.transform(filter.firstValue, 'eoShortDate')}`;\r\n      case SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH:\r\n        return `${this.datePipe.transform(filter.firstValue, 'eoShortDate')} - ${this.datePipe.transform(filter.secondValue, 'eoShortDate')}`;\r\n      case SearchFilter.OPERATOR.GREATER_OR_EQUAL:\r\n        return `${this.translate.instant('eo.search.agg.time.span.since')} ${this.datePipe.transform(filter.firstValue, 'eoShortDate')}`;\r\n      case SearchFilter.OPERATOR.LESS_OR_EQUAL:\r\n        return `${this.translate.instant('eo.search.agg.time.span.until')} ${this.datePipe.transform(filter.firstValue, 'eoShortDate')}`;\r\n      default:\r\n        return `(${filter.operator}) ${this.datePipe.transform(filter.firstValue, 'eoShortDate')}`;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Creates a form control from a given form element\r\n   * @param formElement\r\n   * @returns\r\n   */\r\n  private toFormControl(formElement): ObjectFormControlWrapper {\r\n\r\n    // the `name` property of stored query form element has to be `qname` of form element,\r\n    // because we may combine multiple forms (context form) and in this case there may\r\n    // be conflicts in namings\r\n    formElement.name = formElement.qname;\r\n\r\n    if (formElement.type === 'TABLE') {\r\n      let filters = this.storedQuery.getTableFilters(formElement.qname);\r\n      if (filters && filters.length) {\r\n        formElement.value = this.searchService.tableFiltersToElementValue(filters, formElement.elements);\r\n      } else {\r\n        formElement.value = [{}];\r\n        delete formElement.isNotSetValue;\r\n      }\r\n    } else {\r\n      // grab value for the control from corresponding query filters\r\n      let filter = this.storedQuery.getFilter(formElement.qname);\r\n      // we may have params that are not part of the queries filters. This may be the\r\n      // case when we mark form elements as dynamic fields without providing a value\r\n      if (filter) {\r\n\r\n        // filter to have no value\r\n        if (filter.operator === SearchFilter.OPERATOR.EQUAL && filter.firstValue === null) {\r\n          formElement.isNotSetValue = true;\r\n        } else {\r\n          delete formElement.isNotSetValue;\r\n        }\r\n\r\n        formElement.value = this.searchService.filterToElementValue(\r\n          this.storedQuery.getFilter(formElement.qname),\r\n          formElement.type\r\n        );\r\n      } else if (formElement.qname !== StoredQueriesService.FULLTEXT) {\r\n        formElement.value = undefined;\r\n        delete formElement.isNotSetValue;\r\n      }\r\n    }\r\n    // sync with params\r\n    const match: any = this.storedQuery.parameter.find(param => {\r\n      return (param.qname === formElement.qname) || (param.type === StoredQueriesService.FULLTEXT && formElement.qname === StoredQueriesService.FULLTEXT)\r\n    });\r\n    // every field that is part of the params is supposed to be dynamic\r\n    formElement._dynamic = !!match;\r\n\r\n    // create actual form control that could be used with\r\n    // FormElementComponent to then render for elements\r\n    // wrapper may be null in case of an error\r\n    return this.formHelperService.elementToFormControl(formElement, 'SEARCH');\r\n  }\r\n\r\n  onStoredQueryLoaded() {\r\n    this.router.navigate([{outlets: {modal: 'search'}}]);\r\n  }\r\n\r\n  onStoredQueryExecute(evt) {\r\n    const uriParam = encodeURIComponent(JSON.stringify(evt.queryJson));\r\n    const uriParamQuery: NavigationExtras = {queryParams: {'query': uriParam}};\r\n    this.router.navigate(['/result'], uriParamQuery);\r\n  }\r\n\r\n  setIconTitles() {\r\n    this.iconTitles = {\r\n      share: this.translate.instant('eo.storedquery.share.title'),\r\n      shared: this.translate.instant('eo.storedquery.sharedfor.title'),\r\n      favor: this.translate.instant('eo.storedquery.favor.title'),\r\n      favored: this.translate.instant('eo.storedquery.favoredfor.title')\r\n    }\r\n  }\r\n\r\n\r\n  ngOnInit() {\r\n    this.selection.focus$\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe(q => {\r\n        this.query = q;\r\n      });\r\n    this.setIconTitles();\r\n  }\r\n\r\n  trackByQName(index, item) {\r\n    return item.qname;\r\n  }\r\n\r\n  trackByIndex(index, item) {\r\n    return index;\r\n  }\r\n}\r\n","<ng-container *ngIf=\"storedQuery\">\r\n  <div class=\"eo-head\">\r\n    <header class=\"eo-header\">\r\n      <eo-icon class=\"eo-header-icon\"\r\n               [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\r\n               [iconTitle]=\"('eo.view.navigation.storedqueries' | translate)\">\r\n      </eo-icon>\r\n      <div class=\"eo-header-info\">\r\n        <h2 class=\"eo-header-title\">{{ storedQuery.name }}</h2>\r\n        <h3 class=\"eo-header-subtitle\" translate>eo.search.title.storedqueries</h3>\r\n      </div>\r\n    </header>\r\n  </div>\r\n\r\n  <div class=\"eo-body\">\r\n\r\n    <div class=\"form\">\r\n\r\n      <ng-template #queryForm>\r\n        <eo-stored-query [query]=\"storedQuery\" [formOnly]=\"true\" #storedQueryForm\r\n                         (onQueryLoaded)=\"onStoredQueryLoaded()\"\r\n                         (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\r\n      </ng-template>\r\n\r\n      <form class=\"edit-form\" [formGroup]=\"editForm.form\" *ngIf=\"editForm.form; else queryForm\">\r\n\r\n        <div class=\"context dark\">\r\n\r\n          <!-- title and fulltext term fields -->\r\n          <eo-form-input class=\"title\">\r\n            <input type=\"text\" name=\"storedQueryTitle\" maxlength=\"64\" onfocus=\"this.select()\"\r\n                   [formControlName]=\"'storedQueryTitle'\"/>\r\n          </eo-form-input>\r\n\r\n          <eo-query-scope-select [selection]=\"queryScope\" (select)=\"setQueryScope($event)\"></eo-query-scope-select>\r\n          <div class=\"form-field\">\r\n            <eo-form-element [skipToggle]=\"true\" [element]=\"editForm.fulltextFormControl\"\r\n                             [situation]=\"'SEARCH'\"></eo-form-element>\r\n            <eo-dynamic-property-switch [parentFormControl]=\"editForm.fulltextFormControl\"\r\n                                        (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\r\n          </div>\r\n\r\n          <!-- context type form controls -->\r\n          <h3>{{ storedQuery.contextFolderTypes[0]?.label }}</h3>\r\n          <div class=\"form-field\" *ngFor=\"let ctxElement of editForm.contextControls; trackBy: trackByQName\">\r\n            <eo-form-element [element]=\"ctxElement\" [situation]=\"'SEARCH'\"></eo-form-element>\r\n            <eo-dynamic-property-switch [parentFormControl]=\"ctxElement\"\r\n                                        (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\r\n          </div>\r\n        </div>\r\n\r\n        <!-- object type form controls -->\r\n        <div class=\"form-fields\" [ngClass]=\"{empty: !editForm.controls?.length}\">\r\n          <div class=\"form-field\" *ngFor=\"let element of editForm.controls; trackBy: trackByQName\">\r\n            <eo-form-element [element]=\"element\" [situation]=\"'SEARCH'\"></eo-form-element>\r\n            <eo-dynamic-property-switch [parentFormControl]=\"element\"\r\n                                        (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\r\n          </div>\r\n        </div>\r\n      </form>\r\n    </div>\r\n\r\n    <aside class=\"aside\">\r\n\r\n      <!-- favorite and share -->\r\n      <div class=\"meta-actions\" *ngIf=\"!isNewQuery\">\r\n\r\n        <ng-container *ngIf=\"isOwnQuery; else sharedWithMe\">\r\n          <eo-icon class=\"button btn-share\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" *ngIf=\"enableSharing\"\r\n                   [ngClass]=\"{active: storedQuery.shared || storedQuery.roles.length, editing: editingShare}\"\r\n                   (click)=\"toggleShareEdit()\"\r\n                   [iconTitle]=\"iconTitles.share\"></eo-icon>\r\n\r\n          <eo-icon class=\"button btn-fav\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\r\n                   [ngClass]=\"{active: storedQuery.favorite}\"\r\n                   (click)=\"toggleFavoriteState()\"\r\n                   [iconTitle]=\"iconTitles.favor\"></eo-icon>\r\n        </ng-container>\r\n\r\n        <ng-template #sharedWithMe>\r\n          <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\r\n                   [iconTitle]=\"iconTitles.shared\"></eo-icon>\r\n          <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\r\n                   [iconTitle]=\"iconTitles.favored\"></eo-icon>\r\n        </ng-template>\r\n\r\n      </div>\r\n\r\n      <!-- roles that share this query -->\r\n      <div class=\"meta-roles\" *ngIf=\"!isNewQuery\" [ngClass]=\"{dark: editingShare, empty: !storedQuery.roles?.length}\">\r\n\r\n        <div class=\"label\" translate>eo.storedquery.share.sharedwith</div>\r\n        <div class=\"form-field\" *ngIf=\"rolesPicker?.codesystem?.entries\">\r\n          <eo-codesystem [pickerTitle]=\"rolesPicker.title\"\r\n                         [codesystem]=\"rolesPicker.codesystem\"\r\n                         [multiselect]=\"true\"\r\n                         [readonly]=\"!editingShare\"\r\n                         [inputStyleClass]=\"'stored-query__share'\"\r\n                         [(ngModel)]=\"rolesPicker.value\"></eo-codesystem>\r\n        </div>\r\n\r\n        <div class=\"share-actions\" *ngIf=\"editingShare\">\r\n          <button class=\"secondary\" (click)=\"cancelShare()\" translate>eo.cta.button.cancel</button>\r\n          <button class=\"primary\" (click)=\"share()\" translate>eo.storedquery.share.ok</button>\r\n        </div>\r\n      </div>\r\n\r\n      <!-- queries meta info like baseparam settings -->\r\n      <div class=\"meta-data\" *ngIf=\"restrictions?.length\">\r\n        <div class=\"restriction\" *ngFor=\"let restriction of restrictions; trackBy: trackByIndex\">\r\n          <div class=\"label\">{{ restriction.label }}</div>\r\n          <div class=\"items\">\r\n            <div *ngFor=\"let item of restriction.items; trackBy: trackByIndex\">{{ item }}</div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n    </aside>\r\n\r\n  </div>\r\n\r\n  <div class=\"actions\">\r\n    <ng-container *ngIf=\"!editForm.form; else actionEdit\">\r\n      <button class=\"secondary btn-delete\" (click)=\"isStoredQueryUsed() ? showDeleteDialog = true : delete()\"\r\n              [disabled]=\"!isOwnQuery\" translate>eo.cta.button.delete\r\n      </button>\r\n      <button class=\"secondary btn-open\" (click)=\"setQueryToAppSearch()\" translate>eo.storedquery.load</button>\r\n      <button class=\"primary grey btn-edit\" (click)=\"edit()\" [disabled]=\"!isOwnQuery\" translate>\r\n        eo.storedquery.action.edit\r\n      </button>\r\n      <button class=\"primary btn-search\" [disabled]=\"storedQuery.state?.isEmpty\" (click)=\"executeQuery()\" translate>\r\n        eo.storedquery.run\r\n      </button>\r\n    </ng-container>\r\n\r\n    <eo-dialog [title]=\"'eo.storedquery.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\r\n               [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'storedQuery-delete__dialog'\">\r\n      <div>\r\n        <span>{{'eo.storedquery.delete.dialog.message' | translate: {\r\n                  storedquery: this.storedQuery.name,\r\n                  name: this.info\r\n                }\r\n              }}\r\n        </span>\r\n      </div>\r\n      <div class=\"action-buttons flex-row\">\r\n        <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\r\n                translate>eo.cta.button.cancel\r\n        </button>\r\n        <button type=\"button\" #confirmDelete (click)=\"delete(); showDeleteDialog = false\" class=\"button primary\"\r\n                translate>eo.cta.button.delete\r\n        </button>\r\n      </div>\r\n    </eo-dialog>\r\n\r\n    <ng-template #actionEdit>\r\n      <!-- action while editing the query form -->\r\n      <button class=\"secondary btn-cancel\" (click)=\"cancelEdit()\" translate>eo.cta.button.cancel</button>\r\n      <button class=\"primary btn-save\" (click)=\"updateStoredQuery()\" [disabled]=\"editForm.form.invalid\" translate>\r\n        eo.storedquery.action.save\r\n      </button>\r\n    </ng-template>\r\n  </div>\r\n\r\n</ng-container>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ReactiveFormsModule, FormsModule} from '@angular/forms';\r\nimport {StoredQueryComponent} from './stored-query/stored-query.component';\r\nimport {ObjectFormModule} from '../object-form/object-form.module';\r\nimport {UiModule} from '../ui/ui.module';\r\nimport {StoredQueryDetailsComponent} from './stored-query-details/stored-query-details.component';\r\nimport {FormElementsModule} from '../form-elements/form-elements.module';\r\nimport {DynamicPropertySwitchComponent} from './stored-query-details/dynamic-property-switch/dynamic-property-switch.component';\r\nimport {GridModule} from '../grid/grid.module';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    ObjectFormModule,\r\n    UiModule,\r\n    GridModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    FormElementsModule\r\n  ],\r\n  declarations: [\r\n    StoredQueryComponent,\r\n    StoredQueryDetailsComponent,\r\n    DynamicPropertySwitchComponent\r\n  ],\r\n  exports: [\r\n    StoredQueryComponent,\r\n    StoredQueryDetailsComponent\r\n  ]\r\n})\r\nexport class StoredQueryModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {UiModule} from '../ui/ui.module';\r\nimport {GridModule} from '../grid/grid.module';\r\nimport {ResultListComponent} from './result-list.component';\r\nimport {ListContainerModule} from '../list-container/list-container.module';\r\nimport {StoredQueryModule} from '../stored-query/stored-query.module';\r\n\r\n@NgModule({\r\n  imports: [\r\n    UiModule,\r\n    ListContainerModule,\r\n    GridModule,\r\n    StoredQueryModule\r\n  ],\r\n  exports: [ResultListComponent],\r\n  declarations: [ResultListComponent]\r\n})\r\nexport class ResultListModule {\r\n}\r\n","import {Component, Input, EventEmitter, Output} from '@angular/core';\r\nimport {UntypedFormGroup, UntypedFormBuilder, Validators, ValidatorFn} from '@angular/forms';\r\nimport {NotificationsService, UserService} from '@eo-sdk/core';\r\nimport {TranslateService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-change-password-form',\r\n  templateUrl: './change-password-form.component.html',\r\n  styleUrls: ['./change-password-form.component.scss']\r\n})\r\nexport class ChangePasswordFormComponent {\r\n\r\n\r\n  @Input() userRegex = '';\r\n  @Output() onFormSumbit: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  changePasswordForm: UntypedFormGroup;\r\n  passwordIsVisible = false;\r\n  passwordValidation = {type: 'valid', amount: null};\r\n\r\n  constructor(private fb: UntypedFormBuilder,\r\n              private userService: UserService,\r\n              private translate: TranslateService,\r\n              private toaster: NotificationsService) {\r\n    this.generateForm();\r\n  }\r\n\r\n  generateForm() {\r\n    const {compose, required, minLength} = Validators;\r\n    this.changePasswordForm = this.fb.group({\r\n      currentPassword: ['', compose([required, minLength(1)])],\r\n      password: ['', compose([required, minLength(1)])],\r\n      confirmPassword: ['', compose([required, minLength(1)])]\r\n    }, {\r\n      validator: compose([\r\n        this.newPasswordValidator('currentPassword', 'password'),\r\n        this.matchingPasswordsValidator('password', 'confirmPassword')\r\n      ])\r\n    });\r\n\r\n    this.onChanges();\r\n  }\r\n\r\n  newPasswordValidator(current, password): ValidatorFn {\r\n    return (group: UntypedFormGroup) => {\r\n      if (group.controls[current].value !== group.controls[password].value) {\r\n        return null;\r\n      }\r\n      return {'SAME_PASSWORD': true};\r\n    }\r\n  }\r\n\r\n  matchingPasswordsValidator(password, confirm): ValidatorFn {\r\n    return (group: UntypedFormGroup) => {\r\n      if (group.controls[password].value === group.controls[confirm].value) {\r\n        return null;\r\n      }\r\n      return {'matchingPasswords': true}\r\n    }\r\n  }\r\n\r\n  onChanges(): void {\r\n    this.changePasswordForm.valueChanges\r\n      .subscribe(value => {\r\n        if (value.password) {\r\n          this.passwordValidation = this.userService.validatePassword(value.password);\r\n        }\r\n        return this.matchingPasswords;\r\n      });\r\n  }\r\n\r\n  showPasswords() {\r\n    this.passwordIsVisible = !this.passwordIsVisible;\r\n  }\r\n\r\n  get passwordIsNew() {\r\n    const {errors, controls} = this.changePasswordForm;\r\n    let passwordIsNewError = false;\r\n    if (errors) {\r\n      const currentPassword = controls.currentPassword.touched && controls.currentPassword.dirty;\r\n      const password = controls.password.touched && controls.password.dirty;\r\n      passwordIsNewError = errors.SAME_PASSWORD && currentPassword && password;\r\n    }\r\n    return passwordIsNewError;\r\n  }\r\n\r\n  get matchingPasswords() {\r\n    const {errors, controls} = this.changePasswordForm;\r\n    let matchingPasswordsError = false;\r\n    if (errors) {\r\n      const password = controls.password.touched && controls.password.dirty;\r\n      const confirmPassword = controls.confirmPassword.touched && controls.confirmPassword.dirty;\r\n      matchingPasswordsError = errors.matchingPasswords && password && confirmPassword;\r\n    }\r\n    return matchingPasswordsError;\r\n  }\r\n\r\n\r\n  changePasswordOnSuccess() {\r\n    this.changePasswordForm.reset();\r\n    this.changePasswordForm.markAsPristine();\r\n    this.changePasswordForm.markAsUntouched();\r\n    this.onFormSumbit.emit(true);\r\n    this.toaster.success(this.translate.instant('eo.password.reset.success'));\r\n  }\r\n\r\n  changePasswordOnError(error) {\r\n    const errorTitle = this.translate.instant('eo.password.reset.error.password.title');\r\n    if (error.error.key === 'USER_OLD_PASSWORD_WRONG') {\r\n      this.toaster.error(errorTitle, this.translate.instant('eo.password.reset.error.old.password.message'));\r\n    } else if (error.error.key === 'USER_NEW_PASSWORD_INVALID') {\r\n      this.toaster.error(errorTitle, this.translate.instant('eo.password.reset.error.new.password.message'));\r\n    } else {\r\n      this.toaster.error(errorTitle);\r\n    }\r\n  }\r\n\r\n  onSubmit() {\r\n    const {currentPassword, password} = this.changePasswordForm.value;\r\n    const payload = {\r\n      old: currentPassword,\r\n      new: password\r\n    };\r\n\r\n    this.userService\r\n      .changePassword(payload)\r\n      .subscribe(() => this.changePasswordOnSuccess(), (error) => this.changePasswordOnError(error));\r\n  }\r\n}\r\n","<section class=\"change-password\">\r\n  <form #changePasswordFormElement [formGroup]=\"changePasswordForm\" (ngSubmit)=\"onSubmit()\" autocomplete=\"off\">\r\n    <div class=\"form-item\">\r\n\r\n      <eo-form-input [label]=\"('eo.password.reset.current-password' | translate)\" [required]=\"true\" [invalid]=\"passwordIsNew\">\r\n        <eo-password [parent]=\"changePasswordForm\"\r\n                     [element]=\"'currentPassword'\"\r\n                     [canChangepasswordVisiblety]=\"false\"\r\n                     [passwordVisible]=\"passwordIsVisible\"\r\n                     [placeholder]=\"('eo.password.reset.current-password' | translate)\"></eo-password>\r\n      </eo-form-input>\r\n\r\n      <eo-form-input [label]=\"('eo.password.reset.new-password' | translate)\" [required]=\"true\" [invalid]=\"matchingPasswords || passwordIsNew\">\r\n        <eo-password [parent]=\"changePasswordForm\"\r\n                     [element]=\"'password'\"\r\n                     [canChangepasswordVisiblety]=\"false\"\r\n                     [passwordVisible]=\"passwordIsVisible\"\r\n                     [placeholder]=\"('eo.password.reset.new-password' | translate)\"></eo-password>\r\n      </eo-form-input>\r\n\r\n      <eo-form-input [label]=\"('eo.password.reset.confirm-password' | translate)\" [required]=\"true\" [invalid]=\"matchingPasswords\">\r\n        <eo-password [parent]=\"changePasswordForm\"\r\n                     [element]=\"'confirmPassword'\"\r\n                     [canChangepasswordVisiblety]=\"false\"\r\n                     [passwordVisible]=\"passwordIsVisible\"\r\n                     [placeholder]=\"('eo.password.reset.confirm-password' | translate)\"></eo-password>\r\n      </eo-form-input>\r\n\r\n      <div class=\"invalid error\" *ngIf=\"passwordIsNew\">\r\n        {{'eo.password.reset.error.same.password' | translate}}\r\n      </div>\r\n\r\n      <div class=\"invalid error\" *ngIf=\"matchingPasswords\">\r\n        {{'eo.password.reset.error.matiching.password' | translate}}\r\n      </div>\r\n\r\n      <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'short'\">\r\n        eo.password.reset.error.new.password.short\r\n      </div>\r\n\r\n      <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'number'\">\r\n       eo.password.reset.error.new.password.number\r\n      </div>\r\n\r\n      <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'specialchars'\">\r\n       eo.password.reset.error.new.password.specialchars\r\n      </div>\r\n\r\n      <section class=\"change-password__cta\">\r\n        <button class=\"change-password__submit-button\" type=\"submit\"\r\n                [disabled]=\"changePasswordForm.invalid || passwordValidation.type !== 'valid'\" translate>eo.password.reset.confirm-button</button>\r\n\r\n        <a (click)=\"showPasswords()\" tabindex=\"0\" (keydown.enter)=\"showPasswords()\" >\r\n          <eo-icon class=\"change-password__icon-show\"\r\n                   [iconSrc]=\"'assets/_default/svg/ic_eye.svg'\"\r\n                   [iconTitle]=\"('eo.password.reset.toogle.icon' | translate)\"\r\n                   [ngClass]=\"{'visible': passwordIsVisible}\"></eo-icon>\r\n        </a>\r\n      </section>\r\n    </div>\r\n  </form>\r\n\r\n</section>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'eo-permissions',\r\n  templateUrl: './permissions.component.html',\r\n  styleUrls: ['./permissions.component.scss']\r\n})\r\nexport class PermissionsComponent {\r\n\r\n\r\n  @Input() roles: Array<any> = [];\r\n}\r\n","<div class=\"role\" *ngFor=\"let role of roles\">\r\n  <eo-icon [iconSrc]=\"'assets/_default/svg/ic_shield.svg'\"></eo-icon>\r\n  <div>\r\n    <div class=\"name\">{{role.name}}</div>\r\n    <div class=\"description\">{{role.description}}</div>\r\n  </div>\r\n</div>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {FormElementsModule} from '../form-elements/form-elements.module';\r\nimport {UiModule} from '../ui/ui.module';\r\nimport {ReactiveFormsModule} from '@angular/forms';\r\nimport {ChangePasswordFormComponent} from './change-password/change-password-form/change-password-form.component';\r\nimport {EoSharedModule} from '@eo-sdk/core';\r\nimport {PermissionsComponent} from './permissions/permissions.component';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    ReactiveFormsModule,\r\n    FormElementsModule,\r\n    EoSharedModule,\r\n    UiModule\r\n  ],\r\n  declarations: [ChangePasswordFormComponent, PermissionsComponent],\r\n  exports: [ChangePasswordFormComponent, PermissionsComponent]\r\n})\r\nexport class SettingsModule {\r\n}\r\n","import {CommonModule} from '@angular/common';\r\nimport {NgModule} from '@angular/core';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {RouterModule} from '@angular/router';\r\nimport {YvcTabsModule} from '@yuuvis/components/tabs';\r\nimport {PipesModule} from '../eo-framework-core/pipes/pipes.module';\r\nimport {AccordionModule} from './accordion/accordion.module';\r\nimport {ActionModule} from './actions/action.module';\r\nimport {EoAppShellModule} from './app-shell/app-shell.module';\r\nimport {CtaModule} from './cta/cta.module';\r\nimport {ErrorModule} from './error/error.module';\r\nimport {FormElementsModule} from './form-elements/form-elements.module';\r\nimport {FrameComponent} from './frame/frame.component';\r\nimport {GridModule} from './grid/grid.module';\r\nimport {DuetimeInfoComponent} from './inbox-details/duetimeInfo/duetimeInfo.component';\r\nimport {InboxDetailsComponent} from './inbox-details/inbox-details.component';\r\nimport {ListContainerModule} from './list-container/list-container.module';\r\nimport {MediaModule} from './media/media.module';\r\nimport {ObjectDetailsModule} from './object-details/object-details.module';\r\nimport {ObjectFormModule} from './object-form/object-form.module';\r\nimport {ObjectStateDetailsComponent} from './object-state-details/object-state-details.component';\r\nimport {PluginsModule} from './plugins/plugins.module';\r\nimport {PrepareContentExistsInfoComponent} from './prepare-details/prepare-content-exists-info/prepare-content-exists-info.component';\r\nimport {PrepareDetailsComponent} from './prepare-details/prepare-details.component';\r\nimport {ProcessDetailsComponent} from './process/details/process-details.component';\r\nimport {ProcessHistoryComponent} from './process/history/process-history.component';\r\nimport {ProcessFileComponent} from './process/process-file/process-file.component';\r\nimport {QuickSearchModule} from './quick-search/quick-search.module';\r\nimport {ResultListModule} from './result-list/result-list.module';\r\nimport {SettingsModule} from './settings/settings.module';\r\nimport {ShortcutsModule} from './shortcuts/shortcuts.module';\r\nimport {StoredQueryModule} from './stored-query/stored-query.module';\r\nimport {TreeModule} from './tree/tree.module';\r\nimport {UiModule} from './ui/ui.module';\r\nimport {UploadOverlayComponent} from './upload-overlay/upload-overlay.component';\r\nimport {UtilModule} from './util/util.module';\r\nimport {YvcSplitViewModule} from '@yuuvis/components/split-view';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    EoAppShellModule,\r\n    ObjectFormModule,\r\n    UiModule,\r\n    ObjectDetailsModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    MediaModule,\r\n    TreeModule,\r\n    ShortcutsModule,\r\n    QuickSearchModule,\r\n    UtilModule,\r\n    StoredQueryModule,\r\n    GridModule,\r\n    PipesModule,\r\n    ListContainerModule,\r\n    CtaModule,\r\n    ErrorModule,\r\n    SettingsModule,\r\n    AccordionModule,\r\n    PluginsModule,\r\n    RouterModule,\r\n    ActionModule,\r\n    YvcTabsModule,\r\n    YvcSplitViewModule\r\n  ],\r\n  declarations: [\r\n    UploadOverlayComponent,\r\n    PrepareDetailsComponent,\r\n    InboxDetailsComponent,\r\n    ProcessHistoryComponent,\r\n    ProcessDetailsComponent,\r\n    ProcessFileComponent,\r\n    FrameComponent,\r\n    ObjectStateDetailsComponent,\r\n    DuetimeInfoComponent,\r\n    PrepareContentExistsInfoComponent\r\n  ],\r\n  exports: [\r\n    MediaModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    ObjectFormModule,\r\n    EoAppShellModule,\r\n    UiModule,\r\n    PipesModule,\r\n    ResultListModule,\r\n    ObjectDetailsModule,\r\n    TreeModule,\r\n    ShortcutsModule,\r\n    QuickSearchModule,\r\n    UtilModule,\r\n    StoredQueryModule,\r\n    GridModule,\r\n    UploadOverlayComponent,\r\n    FormElementsModule,\r\n    PrepareDetailsComponent,\r\n    InboxDetailsComponent,\r\n    ListContainerModule,\r\n    ErrorModule,\r\n    ProcessDetailsComponent,\r\n    ProcessHistoryComponent,\r\n    ProcessFileComponent,\r\n    SettingsModule,\r\n    AccordionModule,\r\n    PluginsModule,\r\n    FrameComponent,\r\n    ObjectStateDetailsComponent\r\n  ]\r\n})\r\nexport class EoFrameworkModule {\r\n}\r\n","import {style, transition, trigger, animate, stagger, query, AnimationTriggerMetadata} from '@angular/animations'\r\n\r\n// animating entry of list items\r\nexport const listAnimation: AnimationTriggerMetadata = trigger('listAnimation', [\r\n  transition('* => *', [\r\n    query(':enter', style({transform: 'translateX(-32px)', opacity: 0}), {optional: true}),\r\n    query(':enter', stagger('50ms', [\r\n      animate('100ms ease-in', style('*'))\r\n    ]), {optional: true})\r\n  ])\r\n]);\r\n","export enum TypeFilter {\r\n  favored = 'favorite',\r\n  shared = 'roles',\r\n  others = 'others'\r\n}\r\n","import {trigger, transition, state, style, animate, AnimationTriggerMetadata} from '@angular/animations';\r\nimport {Observable, Subscription} from 'rxjs';\r\n\r\nexport const STATE = {\r\n  LOADING: 'loading',\r\n  READY: 'ready',\r\n  ERROR: 'error'\r\n};\r\n\r\nexport class PanelLoading {\r\n  state = '';\r\n\r\n  private _set(_state: string) {\r\n    this.state = _state;\r\n  }\r\n\r\n  loading = () => this._set(STATE.LOADING);\r\n  ready = () => this._set(STATE.READY);\r\n  error = () => this._set(STATE.ERROR);\r\n  isLoading = () => this.state === STATE.LOADING;\r\n  isReady = () => this.state === STATE.READY;\r\n  isError = () => this.state === STATE.ERROR;\r\n\r\n  subscribe(observable: Observable<any>, success?: (res) => void, error?: (err) => void): Subscription {\r\n    this.loading();\r\n    return observable.subscribe((res) => {\r\n      if (success) {\r\n        success.call(this, res);\r\n      }\r\n      this.ready();\r\n    }, (err) => {\r\n      if (error) {\r\n        error.call(this, err);\r\n      }\r\n      this.error();\r\n    });\r\n  }\r\n\r\n}\r\n\r\nexport const panelLoadingAnimations: AnimationTriggerMetadata = trigger('panelLoading', [\r\n  state(STATE.ERROR, style({opacity: 0})),\r\n  state(STATE.LOADING, style({opacity: 0.5})),\r\n  state(STATE.READY, style({opacity: 1})),\r\n  transition(STATE.LOADING + ' <=> ' + STATE.READY, [\r\n    animate(200)\r\n  ])\r\n]);\r\n","import {Component} from '@angular/core';\r\nimport {UserService, Config, BackendService} from '@eo-sdk/core';\r\n\r\n@Component({\r\n  selector: 'eo-about-state',\r\n  templateUrl: './about-state.component.html',\r\n  styleUrls: ['./about-state.component.scss']\r\n})\r\nexport class AboutStateComponent {\r\n\r\n  backgroundImage: string;\r\n  headerLogo: string;\r\n  licenseShow: boolean;\r\n  __libraries__ = [{\"name\":\"@ag-grid-community/angular\",\"version\":\"31.3.2\",\"license\":\"MIT\"},{\"name\":\"@ag-grid-community/client-side-row-model\",\"version\":\"31.3.2\",\"license\":\"MIT\"},{\"name\":\"@ag-grid-community/core\",\"version\":\"31.3.2\",\"license\":\"MIT\"},{\"name\":\"@ag-grid-community/csv-export\",\"version\":\"31.3.2\",\"license\":\"MIT\"},{\"name\":\"@ag-grid-community/styles\",\"version\":\"31.3.2\",\"license\":\"MIT\"},{\"name\":\"@angular/animations\",\"version\":\"18.0.4\",\"license\":\"MIT\"},{\"name\":\"@angular/cdk\",\"version\":\"18.0.4\",\"license\":\"MIT\"},{\"name\":\"@angular/common\",\"version\":\"18.0.4\",\"license\":\"MIT\"},{\"name\":\"@angular/compiler\",\"version\":\"18.0.4\",\"license\":\"MIT\"},{\"name\":\"@angular/core\",\"version\":\"18.0.4\",\"license\":\"MIT\"},{\"name\":\"@angular/forms\",\"version\":\"18.0.4\",\"license\":\"MIT\"},{\"name\":\"@angular/platform-browser\",\"version\":\"18.0.4\",\"license\":\"MIT\"},{\"name\":\"@angular/platform-browser-dynamic\",\"version\":\"18.0.4\",\"license\":\"MIT\"},{\"name\":\"@angular/router\",\"version\":\"18.0.4\",\"license\":\"MIT\"},{\"name\":\"@carbon/charts-angular\",\"version\":\"1.16.3\",\"license\":\"Apache-2.0\"},{\"name\":\"@eo-sdk/core\",\"version\":\"11.7.0-beta.2\",\"license\":\"MIT\"},{\"name\":\"@ngneat/until-destroy\",\"version\":\"10.0.0\",\"license\":\"MIT\"},{\"name\":\"@ngx-pwa/local-storage\",\"version\":\"18.0.0\",\"license\":\"MIT\"},{\"name\":\"@ngx-translate/core\",\"version\":\"15.0.0\",\"license\":\"SEE LICENSE IN LICENSE\"},{\"name\":\"@yuuvis/components\",\"version\":\"18.0.6\",\"license\":\"MIT\"},{\"name\":\"@yuuvis/widget-grid\",\"version\":\"18.0.0\",\"license\":\"MIT\"},{\"name\":\"core-js\",\"version\":\"2.6.12\",\"license\":\"MIT\"},{\"name\":\"file-saver\",\"version\":\"2.0.5\",\"license\":\"MIT\"},{\"name\":\"font-awesome\",\"version\":\"4.7.0\",\"license\":\"(OFL-1.1 AND MIT)\"},{\"name\":\"lodash-es\",\"version\":\"4.17.21\",\"license\":\"MIT\"},{\"name\":\"moment\",\"version\":\"2.30.1\",\"license\":\"MIT\"},{\"name\":\"ngx-toastr\",\"version\":\"19.0.0\",\"license\":\"MIT\"},{\"name\":\"rxjs\",\"version\":\"7.8.1\",\"license\":\"Apache-2.0\"},{\"name\":\"tslib\",\"version\":\"2.6.3\",\"license\":\"0BSD\"},{\"name\":\"zone.js\",\"version\":\"0.14.7\",\"license\":\"MIT\"}];\r\n  userLang: string;\r\n\r\n  ctrl = {\r\n    componentName: 'yuuvis® RAD client',\r\n    componentVersion: '11.7.0-beta.2',\r\n    productName: '',\r\n    productVersion: ''\r\n  };\r\n\r\n  licenses = {\r\n    'MIT': {\r\n      'label': 'MIT',\r\n      'url': 'http://opensource.org/licenses/MIT'\r\n    },\r\n    'Apache-2.0': {\r\n      'label': 'Apache 2.0',\r\n      'url': 'http://www.apache.org/licenses/LICENSE-2.0'\r\n    },\r\n    'BSD-3-Clause-Clear': {\r\n      'label': 'BSD 3-Clause',\r\n      'url': 'http://opensource.org/licenses/BSD-3-Clause'\r\n    },\r\n    'CC0-1.0': {\r\n      'label': 'CC0 1.0',\r\n      'url': 'https://creativecommons.org/publicdomain/zero/1.0/'\r\n    },\r\n    '(OFL-1.1 AND MIT)': {\r\n      'label': 'MIT',\r\n      'url': 'http://opensource.org/licenses/MIT'\r\n    },\r\n    'SILOFL-1.1': {\r\n      'label': 'SIL Open Font License 1.1',\r\n      'url': 'http://scripts.sil.org/OFL_web'\r\n    },\r\n    'Commercial': {\r\n      'label': 'Commercial'\r\n    },\r\n    'ag-grid': {\r\n      'label': 'ag-Grid-Enterprise Software Licence Agreement Version 1.7',\r\n      'url': 'https://github.com/ceolter/ag-grid-enterprise/blob/master/LICENSE.md'\r\n    },\r\n    '0BSD': {\r\n      'label': 'Zero-Clause BSD',\r\n      'url': 'http://opensource.org/licenses/0BSD'\r\n    }\r\n  };\r\n\r\n\r\n  constructor(private backend: BackendService, private userService: UserService, private config: Config) {\r\n    this.getUserLang();\r\n    this.backgroundImage = `url(${this.config.getDashboardBackgroundImage()})`;\r\n    this.headerLogo = this.config.getRaw('about.headerLogo');\r\n    if (!this.headerLogo) {\r\n      this.headerLogo = this.config.getRaw('appLogo');\r\n    }\r\n\r\n    this.backend.getJson('/system/info').subscribe(info => {\r\n      this.ctrl.productName = info.product.name;\r\n      this.ctrl.productVersion = info.product.productversion;\r\n    });\r\n  }\r\n\r\n  getUserLang() {\r\n    this.userService\r\n      .user$\r\n      .subscribe(data => this.userLang = data.userSettings.clientlocale);\r\n  }\r\n\r\n  trackByFn(index, item): number {\r\n    return index;\r\n  }\r\n}\r\n","<div class=\"eo-about-state\">\r\n\r\n  <div class=\"about\">\r\n    <div class=\"header\" [style.background-image]=\"backgroundImage\">\r\n      <img [src]=\"headerLogo\"/>\r\n    </div>\r\n\r\n    <div class=\"body\">\r\n      <div class=\"claim\" translate>eo.help.about.claim</div>\r\n\r\n      <div class=\"wrap\">\r\n        <table>\r\n          <tbody>\r\n          <tr>\r\n            <th translate>eo.help.about.component.label</th>\r\n            <td>{{ctrl.componentName}}</td>\r\n          </tr>\r\n          <tr>\r\n            <th translate>eo.help.about.component.version.label</th>\r\n            <td>{{ctrl.componentVersion}}</td>\r\n          </tr>\r\n          <tr>\r\n            <th translate>eo.help.about.product.label</th>\r\n            <td>{{ ctrl.productName }}</td>\r\n          </tr>\r\n          <tr>\r\n            <th translate>eo.help.about.product.version.label</th>\r\n            <td>{{ ctrl.productVersion }}</td>\r\n          </tr>\r\n          <tr>\r\n            <th translate>eo.help.about.producer.label</th>\r\n            <td translate>eo.help.about.producer.text</td>\r\n          </tr>\r\n          </tbody>\r\n        </table>\r\n      </div>\r\n\r\n\r\n      <h2 translate>eo.help.license.title</h2>\r\n      <p translate>eo.help.license.intro</p>\r\n      <div class=\"showLic\" (click)=\"licenseShow = !licenseShow\">\r\n        <span class=\"toggle\"><span translate>eo.help.license.title</span><span class=\"toggle-indicator\">{{licenseShow ? '-' : '+'}}</span></span></div>\r\n      <div class=\"licenses\" *ngIf=\"licenseShow\">\r\n        <div class=\"lib\" *ngFor=\"let lib of __libraries__; trackBy: trackByFn\">\r\n          <div class=\"name\">{{lib.name}}</div>\r\n          <div class=\"lic\" *ngIf=\"licenses[lib.license]\">\r\n            <a href=\"{{licenses[lib.license].url}}\" target=\"_blank\" *ngIf=\"licenses[lib.license].url\">{{licenses[lib.license].label}}</a>\r\n            <span *ngIf=\"!licenses[lib.license].url\">{{licenses[lib.license].label}}</span>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n</div>\r\n","import {TreeNode} from '../../../../eo-framework/tree/tree.component.interface';\r\nimport {Component, OnInit, ViewChild, HostListener, Input} from '@angular/core';\r\nimport {Router, NavigationExtras} from '@angular/router';\r\nimport {PageTitleService} from '../../../../eo-framework-core/title/page-title.service';\r\nimport {QuickSearchComponent} from '../../../../eo-framework/quick-search/quick-search/quick-search.component';\r\nimport {QuickSearchResult} from '../../../../eo-framework/quick-search/quick-search/quick-search-result.interface';\r\nimport {UserService, Capabilities, StoredQuery, EoUser, Config, ObjectType, CapabilitiesService, StoredQueriesService, Utils} from '@eo-sdk/core';\r\nimport {IWidgetComponent} from '@yuuvis/widget-grid';\r\nimport {listAnimation} from '../../../../eo-framework/animations/animations';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-search-widget',\r\n  templateUrl: './search-widget.component.html',\r\n  styleUrls: ['./search-widget.component.scss'],\r\n  animations: [\r\n    listAnimation\r\n  ]\r\n})\r\nexport class SearchWidgetComponent implements OnInit, IWidgetComponent {\r\n\r\n  capabilities: Capabilities;\r\n  storedQueries: StoredQuery[] = [];\r\n  selectedQuery: StoredQuery;\r\n  quickSearchResult: QuickSearchResult;\r\n  selectedQuickSearchResultItem = {\r\n    index: -1,\r\n    name: null\r\n  };\r\n  tree = {};\r\n  user: EoUser;\r\n  backgroundImage: string;\r\n\r\n  @ViewChild('quickSearch') quickSearchEl: QuickSearchComponent;\r\n  @Input()\r\n  widgetConfig: any;\r\n\r\n  @HostListener('window:keyup', ['$event'])\r\n  onKey(event) {\r\n    if (event.which === 27) {\r\n      this.selectStoredQuery(null);\r\n    }\r\n  }\r\n\r\n  constructor(public userService: UserService,\r\n    private titleService: PageTitleService,\r\n    private router: Router,\r\n    private config: Config,\r\n    private capabilityService: CapabilitiesService,\r\n    private storedQueriesService: StoredQueriesService) {\r\n    this.titleService.setDefaultTitle();\r\n    this.backgroundImage = `url(${this.config.getDashboardBackgroundImage()})`;\r\n  }\r\n  selectStoredQuery(q: StoredQuery) {\r\n    this.selectedQuery = q;\r\n  }\r\n\r\n  // user changed input of quickSearch component\r\n  onQuickSearchInputChange() {\r\n    this.quickSearchResult = null;\r\n  }\r\n\r\n  // quickSearch component is returning results\r\n  onQuickSearchResult(result: QuickSearchResult) {\r\n    this.quickSearchResult = result;\r\n    Object.keys(this.quickSearchResult.groups).map(key => (this.tree[key] = this.getTreeNodes(key)));\r\n  }\r\n\r\n  onStoredQueryLoaded() {\r\n    this.selectStoredQuery(null);\r\n    this.router.navigate([{outlets: {modal: 'search'}}]);\r\n  }\r\n\r\n  onStoredQueryExecute(evt) {\r\n    this.selectStoredQuery(null);\r\n    const uriParam = encodeURIComponent(JSON.stringify(evt.queryJson));\r\n    const uriParamQuery: NavigationExtras = {queryParams: {'query': uriParam}};\r\n    this.router.navigate(['/result'], uriParamQuery);\r\n  }\r\n\r\n  executeSearch(objectType?: ObjectType) {\r\n    this.quickSearchEl.executeSearch(objectType);\r\n  }\r\n\r\n  getTreeNodes(key): TreeNode[] {\r\n    return this.quickSearchResult.groups[key].map(group => ({\r\n      id: group.data.id,\r\n      name: group.label,\r\n      selectable: true,\r\n      data: group.data,\r\n      badges: [{value: group.count}]\r\n    }));\r\n  }\r\n\r\n  onEmitQueryClick(event, q) {\r\n    delete q.fields;\r\n    const uriParam = encodeURIComponent(Utils.formDataStringify(q.getQueryJson()));\r\n    const uriParamQuery: NavigationExtras = {queryParams: {'query': uriParam}};\r\n    const queryParams = new URLSearchParams(uriParamQuery.queryParams).toString();\r\n    const url = window.location.href.split('/dashboard')[0] + '/result?' + queryParams;\r\n    window.open(url, (event && event?.ctrlKey) ? '_blank' : '_self');\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.userService.user$\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe(user => {\r\n        this.user = user;\r\n      });\r\n    this.capabilities = this.capabilityService.getCapabilities();\r\n    if (this.capabilities.storedqueries) {\r\n      this.storedQueriesService.getStoredQueries$()\r\n        .pipe(untilDestroyed(this))\r\n        .subscribe(queriesSubscription => this.storedQueries = queriesSubscription.queries.filter(q => q.favorite).sort(Utils.sortValues('name')));\r\n    }\r\n  }\r\n}\r\n\r\n\r\n","<div class=\"db-content\" [ngClass]=\"{centerFocus: (quickSearchResult && quickSearchResult.total > 0) || selectedQuery}\">\r\n  <div class=\"db-center\">\r\n    <div class=\"top\">\r\n      <div class=\"quick-search\" [ngClass]=\"{disabled: selectedQuery}\">\r\n\r\n        @if (quickSearchResult && quickSearchResult.total !== -1) {\r\n          <div class=\"count\" (click)=\"executeSearch()\">\r\n            @if (quickSearchResult.total) {\r\n              <div>\r\n                <span class=\"count-total\">{{quickSearchResult.total | localeDecimal}}</span>\r\n                <span class=\"label\" translate>eo.quicksearch.hits</span>\r\n              </div>\r\n            } @else {\r\n              <span class=\"label\" translate>eo.quicksearch.reults.empty</span>\r\n            }\r\n          </div>\r\n        }\r\n\r\n        <div class=\"input\">\r\n          <eo-quick-search (onResult)=\"onQuickSearchResult($event)\" (onInputChange)=\"onQuickSearchInputChange()\"\r\n            #quickSearch></eo-quick-search>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"bottom\">\r\n      @if (quickSearchResult && quickSearchResult.total > 0) {\r\n        <div class=\"quick-search-results\">\r\n          @for (key of quickSearchResult.groups | keys; track $index) {\r\n            <div class=\"group\">\r\n              <h2>\r\n                @if (key !== '0') {\r\n                  {{key}}\r\n                } @else {\r\n                  {{'eo.quicksearch.result.group.global' | translate}}\r\n                }\r\n              </h2>\r\n\r\n              <eo-tree [tree]=\"tree[key]\" [(ngModel)]=\"selectedQuickSearchResultItem\"\r\n                       (onSelected)=\"executeSearch($event.data)\" (expandedNodesChanged)=\"executeSearch($event.data)\"\r\n                       [selectionKey]=\"'Enter'\">\r\n              </eo-tree>\r\n            </div>\r\n          }\r\n        </div>\r\n      } @else {\r\n        @if (capabilities.storedqueries && storedQueries.length) {\r\n          <div class=\"stored-queries\">\r\n            @if (selectedQuery) {\r\n              <div class=\"query\">\r\n                <div>\r\n                  <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\r\n                           (click)=\"selectStoredQuery(null)\"></eo-icon>\r\n                </div>\r\n                <eo-stored-query [query]=\"selectedQuery\" (onQueryLoaded)=\"onStoredQueryLoaded()\"\r\n                                 (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\r\n              </div>\r\n            } @else {\r\n              <div class=\"queries\" [@listAnimation]=\"storedQueries.length\">\r\n                <a class=\"sq lead\" [routerLink]=\"['/stored-queries']\" translate>eo.view.navigation.storedqueries</a>\r\n                @for (q of storedQueries; track q.id) {\r\n                  <div class=\"sq\" (keyup.enter)=\"selectStoredQuery(q)\" tabindex=\"0\">\r\n                    <div class=\"icon\">\r\n                      <eo-icon class=\"button primary\" tabindex=\"0\" (keyup.enter)=\"onEmitQueryClick($event, q)\" (click)=\"onEmitQueryClick($event, q)\"\r\n                               [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\r\n                               [iconTitle]=\"('eo.storedquery.run'| translate)\"></eo-icon>\r\n                    </div>\r\n                    <span (click)=\"selectStoredQuery(q)\">{{q.name}}</span>\r\n                  </div>\r\n                }\r\n              </div>\r\n            }\r\n          </div>\r\n        }\r\n      }\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {Component, Input, ViewChild} from '@angular/core';\r\nimport {IWidgetComponent} from '@yuuvis/widget-grid';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({ name: 'safeUrl'})\r\nexport class SafeUrlPipe implements PipeTransform  {\r\n  constructor(private sanitized: DomSanitizer) {}\r\n  transform(value: any) {\r\n    return this.sanitized.bypassSecurityTrustResourceUrl(value);\r\n  }\r\n}\r\nexport interface Iframe {\r\n    title: string;\r\n    url: string;\r\n}\r\n@Component({\r\n  selector: 'eo-iframe-widget',\r\n  templateUrl: './iframe-widget.component.html',\r\n  styleUrls: ['./iframe-widget.component.scss']\r\n})\r\nexport class IframeWidgetComponent implements IWidgetComponent {\r\n\r\n  @ViewChild('iframe', {static: true}) iframe;\r\n  private _widgetConfig: Iframe | undefined;\r\n\r\n  @Input() set widgetConfig(c: Iframe | undefined) {\r\n    this._widgetConfig = c;\r\n  }\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n}\r\n\r\n","@if (widgetConfig?.title) {\r\n  <header>\r\n    <a>{{ widgetConfig?.title }}</a>\r\n  </header>\r\n}\r\n\r\n@if (widgetConfig?.url === '') {\r\n  <div class=\"iframe\"></div>\r\n} @else {\r\n  <div class=\"container\" [style.overflow]=\"'hidden'\">\r\n    <iframe class=\"responsive-iframe\" [src]=\"widgetConfig?.url | safeUrl\" #iframe></iframe>\r\n  </div>\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {IWidgetSetupComponent} from '@yuuvis/widget-grid';\r\nimport {FormBuilder, FormControlStatus, FormGroup, Validators} from '@angular/forms';\r\nimport {Iframe} from '../iframe-widget.component';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {debounceTime} from 'rxjs';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-iframe-setup',\r\n  templateUrl: './iframe-setup.component.html',\r\n  styleUrls: ['./iframe-setup.component.scss']\r\n})\r\nexport class IframeSetupComponent implements IWidgetSetupComponent {\r\n\r\n  private _widgetConfig: Iframe | undefined;\r\n  @Output() widgetConfigChange = new EventEmitter<Iframe>();\r\n  @Output() widgetConfigStateChange = new EventEmitter<FormControlStatus>();\r\n\r\n  pattern = /(http|ftp|https):\\/\\/[\\w-]+(\\.[\\w-]+)+([\\w.,@?^=%&amp;:\\/~+#-]*[\\w@?^=%&amp;\\/~+#-])?/;\r\n\r\n  setupForm: FormGroup = this.fb.group({\r\n    title: ['', [Validators.maxLength(50)]],\r\n    url: ['', [Validators.required, Validators.pattern(this.pattern)]],\r\n  });\r\n  @Input() set widgetConfig(wc: Iframe | undefined) {\r\n    this._widgetConfig = wc;\r\n    this.setupForm.patchValue({\r\n      title: wc ? wc.title : '',\r\n      url: wc ? wc.url : ''\r\n    });\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(\r\n    private fb: FormBuilder\r\n  ) {\r\n    this.setupForm.valueChanges.pipe(debounceTime(1000), untilDestroyed(this)).subscribe((_) => {\r\n      this.setWidgetConfig();\r\n    });\r\n    this.setupForm.statusChanges.pipe(untilDestroyed(this)).subscribe((v) => {\r\n      this.widgetConfigStateChange.emit(v);\r\n    });\r\n  }\r\n\r\n  private setWidgetConfig() {\r\n    if (this.setupForm.valid) {\r\n      this._widgetConfig = {\r\n        ... this.setupForm.value,\r\n      };\r\n      this.widgetConfigChange.emit(this._widgetConfig);\r\n    }\r\n  }\r\n}\r\n","<div class=\"setup\">\r\n  <form [formGroup]=\"setupForm\">\r\n    <eo-form-input [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\"\r\n                   [invalid]=\"setupForm.dirty && setupForm.get('title').invalid\">\r\n      <eo-string formControlName=\"title\"></eo-string>\r\n    </eo-form-input>\r\n    @if (setupForm.dirty && setupForm.get('title').hasError('maxlength')) {\r\n      <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\"\r\n           translate>\r\n        eo.form.property.maxlength\r\n      </div>\r\n    }\r\n    <eo-form-input [label]=\"'eo.workspace.widget.iframe.setup.url'| translate\" [required]=\"true\"\r\n                   [invalid]=\"setupForm.dirty && setupForm.get('url').invalid\">\r\n      <eo-string formControlName=\"url\"></eo-string>\r\n    </eo-form-input>\r\n    @if (setupForm.dirty && setupForm.get('url').invalid) {\r\n      <div class=\"err-msg\" translate>\r\n        @if (setupForm.get('url').hasError('pattern')) {\r\n          eo.form.property.string.error.classification.url\r\n        } @else if (setupForm.get('url').hasError('required')) {\r\n          eo.form.property.required\r\n        }\r\n      </div>\r\n    }\r\n  </form>\r\n</div>\r\n@if (setupForm.valid) {\r\n  <div class=\"preview\">\r\n    <eo-iframe-widget [widgetConfig]=\"widgetConfig\"></eo-iframe-widget>\r\n  </div>\r\n} @else {\r\n  <div class=\"empty\">\r\n    <eo-error-message\r\n      [emptyState]=\"{icon: 'ic_noUrl.svg', text: 'eo.form.property.string.error.classification.url'}\"></eo-error-message>\r\n  </div>\r\n}\r\n","import {Component, Input, QueryList, ViewChildren} from '@angular/core';\r\nimport {IWidgetComponent} from '@yuuvis/widget-grid';\r\nimport {\r\n  UserService,\r\n  EoUser, SearchService, SystemService\r\n} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {LastEditedAndCreated} from './last-edited-and-created';\r\nimport {YvcTabDirective} from '@yuuvis/components/tabs';\r\nimport {tap} from 'rxjs';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-last-edited-and-created',\r\n  templateUrl: './last-edited-and-created.component.html',\r\n  styleUrls: ['./last-edited-and-created.component.scss']\r\n})\r\nexport class LastEditedAndCreatedComponent implements IWidgetComponent {\r\n\r\n  user: EoUser;\r\n  modifiedByMe = {\r\n    size: 10,\r\n    total: 0,\r\n    lately: []\r\n  };\r\n  createdByMe = {\r\n    size: 10,\r\n    total: 0,\r\n    lately: []\r\n  };\r\n  @Input() editMode = false;\r\n  empty = false;\r\n\r\n  private _widgetConfig: LastEditedAndCreated;\r\n  @ViewChildren(YvcTabDirective) availableTabs: QueryList<YvcTabDirective>;\r\n  tabs: YvcTabDirective[] = [];\r\n  @Input() set widgetConfig(c: LastEditedAndCreated) {\r\n\r\n    this._widgetConfig = c;\r\n\r\n    setTimeout(() => {\r\n      this.loadTabs();\r\n    });\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(public userService: UserService,\r\n    private searchService: SearchService,\r\n    private systemService: SystemService\r\n  ) {\r\n\r\n  }\r\n  loadTabs() {\r\n    if (this._widgetConfig?.lastEdited && this._widgetConfig?.lastCreated) {\r\n      this.userService.user$\r\n        .pipe(\r\n          untilDestroyed(this),\r\n          tap(user => this.user = user)\r\n        ).subscribe(() => {\r\n          this.getLastEdited();\r\n          this.getLastCreated();\r\n          if (this._widgetConfig?.lastEdited && this.modifiedByMe?.lately.length) {\r\n            this.tabs = [this.availableTabs?.first];\r\n          }\r\n          if (this._widgetConfig?.lastCreated && this.createdByMe?.lately.length) {\r\n            this.tabs = [this.availableTabs.last];\r\n          }\r\n          if (this._widgetConfig?.lastEdited && this._widgetConfig?.lastCreated && (this.modifiedByMe?.lately.length || this.createdByMe?.lately.length)) {\r\n            this.tabs = this.availableTabs.toArray();\r\n\r\n          }\r\n        });\r\n    } else {\r\n      // Because of update for existing widget\r\n      this.tabs = this.availableTabs.toArray();\r\n      this.userService.user$\r\n        .pipe(untilDestroyed(this))\r\n        .subscribe(user => {\r\n          this.user = user;\r\n          this.getLastEdited();\r\n          this.getLastCreated();\r\n        });\r\n\r\n      this.userService.user$\r\n        .pipe(untilDestroyed(this), tap(user => this.user = user))\r\n        .subscribe(() => {\r\n          this.getLastEdited();\r\n          this.getLastCreated();\r\n          if (this._widgetConfig?.lastEdited && this._widgetConfig?.lastCreated && (this.modifiedByMe?.lately.length || this.createdByMe?.lately.length)) {\r\n            this.tabs = this.availableTabs.toArray();\r\n          } else if (this._widgetConfig?.lastEdited && this.modifiedByMe?.lately.length) {\r\n            this.tabs = [this.availableTabs?.first];\r\n          } else if (this._widgetConfig?.lastCreated && this.createdByMe?.lately.length) {\r\n            this.tabs = [this.availableTabs.last];\r\n          }\r\n        });\r\n    }\r\n  }\r\n\r\n  getLastEdited() {\r\n    const q = {\r\n      filters: {\r\n        modifier: {\r\n          o: 'eq',\r\n          v1: this.user?.name\r\n        }\r\n      },\r\n      fields: ['title', 'description', 'modified', 'type'],\r\n      options: {\r\n        sort: {\r\n          modified: {\r\n            order: ''\r\n          }\r\n        }\r\n      }\r\n    };\r\n\r\n    if (this._widgetConfig?.sortRevert) {\r\n      q.options.sort.modified.order = 'asc';\r\n    } else {\r\n      q.options.sort.modified.order = 'desc';\r\n    }\r\n\r\n    this.searchService\r\n      .executeQuery(q, false, (this._widgetConfig?.number && this._widgetConfig?.number <= 50) ? this._widgetConfig?.number : this._widgetConfig?.number > 50 ? 50 : 10)\r\n      .subscribe(({hits}) => {\r\n        this.modifiedByMe.total = hits.total;\r\n        this.empty = hits.total.value === 0;\r\n        this.modifiedByMe.lately = hits.hits.map(item => {\r\n          const {id, title, description, type, modified} = item._source;\r\n          return {\r\n            id,\r\n            type: this.systemService.getObjectType(type),\r\n            title,\r\n            description,\r\n            modified,\r\n          };\r\n        });\r\n      });\r\n  }\r\n\r\n  getLastCreated() {\r\n    const q = {\r\n      filters: {\r\n        creator: {\r\n          o: 'eq',\r\n          v1: this.user?.name\r\n        }\r\n      },\r\n      fields: ['title', 'description', 'created', 'type'],\r\n      options: {\r\n        sort: {\r\n          created: {\r\n            order: ''\r\n          }\r\n        }\r\n      }\r\n    };\r\n\r\n    if (this._widgetConfig?.sortRevert) {\r\n      q.options.sort.created.order = 'asc';\r\n    } else {\r\n      q.options.sort.created.order = 'desc';\r\n    }\r\n\r\n    this.searchService\r\n      .executeQuery(q, false, (this._widgetConfig?.number && this._widgetConfig?.number <= 50) ? this._widgetConfig?.number : this._widgetConfig?.number > 50 ? 50 : 10)\r\n      .subscribe(({hits}) => {\r\n        this.createdByMe.total = hits.total;\r\n        this.createdByMe.lately = hits.hits.map(item => {\r\n          const {id, title, description, type, created} = item._source;\r\n          return {\r\n            id,\r\n            type: this.systemService.getObjectType(type),\r\n            title,\r\n            description,\r\n            created\r\n          };\r\n        });\r\n      });\r\n  }\r\n\r\n  onItemClick(item, event) {\r\n    const url = window.location.href.split('/dashboard')[0] + '/object/' + item.id + '?type=' + item.type.name + '\\n';\r\n    window.open(url, event?.ctrlKey || this.editMode ? '_blank' : '_self');\r\n  }\r\n}\r\n","@if (tabs && (this.modifiedByMe?.lately.length || this.createdByMe?.lately.length)) {\r\n<yvc-tabs [tabs]=\"tabs\" layoutSettingsID=\"eo.lastEdited.widget.tabs\">\r\n\r\n  <ng-template [yvcTab]=\"{id: 'LastEdited', label: 'eo.dashboard.modified.title' | translate}\">\r\n    @if (modifiedByMe?.lately.length) {\r\n    <div class=\"container\">\r\n      <main class=\"body\">\r\n        @for (item of modifiedByMe.lately; track $index) {\r\n          <div class=\"item\" (click)=\"onItemClick(item, $event)\" target=\"_blank\">\r\n            <eo-icon [objectType]=\"item.type\"></eo-icon>\r\n            <div>\r\n              <div class=\"modified\">{{ item.modified | localeDate }}</div>\r\n              <div class=\"title\">{{ item.title }}</div>\r\n              <div class=\"description\">{{ item.description }}</div>\r\n            </div>\r\n          </div>\r\n        }\r\n      </main>\r\n    </div>\r\n    }\r\n  </ng-template>\r\n\r\n  <ng-template [yvcTab]=\"{id: 'LastCreated', label: 'eo.dashboard.created.title' | translate}\">\r\n    @if (createdByMe?.lately.length) {\r\n    <div class=\"container\">\r\n      <main class=\"body\">\r\n        @for (item of createdByMe.lately; track $index) {\r\n          <div class=\"item\" (click)=\"onItemClick(item, $event)\">\r\n            <eo-icon [objectType]=\"item.type\"></eo-icon>\r\n            <div>\r\n              <div class=\"modified\">{{ item.created | localeDate }}</div>\r\n              <div class=\"title\">{{ item.title }}</div>\r\n              <div class=\"description\">{{ item.description }}</div>\r\n            </div>\r\n          </div>\r\n        }\r\n      </main>\r\n    </div>\r\n    }\r\n  </ng-template>\r\n</yvc-tabs>\r\n}","import {Component, Input, OnInit} from '@angular/core';\r\nimport {IWidgetComponent} from '@yuuvis/widget-grid';\r\nimport {\r\n  UserService, Capabilities, CapabilitiesService, PrepareService} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {InfoIntrayConfig} from './info-intray.model';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-info-intray',\r\n  templateUrl: './info-intray-widget.component.html',\r\n  styleUrls: ['./info-intray-widget.component.scss']\r\n})\r\nexport class InfoIntrayWidgetComponent implements IWidgetComponent, OnInit {\r\n\r\n  capabilities: Capabilities;\r\n  preparedItemsCount: number;\r\n\r\n  private _widgetConfig: InfoIntrayConfig;\r\n  @Input() set widgetConfig(c: InfoIntrayConfig | undefined) {\r\n    this._widgetConfig = c ;\r\n  }\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(public userService: UserService,\r\n    private capabilityService: CapabilitiesService,\r\n    private prepareService: PrepareService,\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    this.capabilities = this.capabilityService.getCapabilities();\r\n    if (this.capabilities.intray) {\r\n      this.prepareService.preparedItemCount$\r\n        .pipe(untilDestroyed(this))\r\n        .subscribe(count => this.preparedItemsCount = count);\r\n    }\r\n  }\r\n}\r\n\r\n","<a class=\"info\" [ngClass]=\"{visible: capabilities.intray && preparedItemsCount > 0}\" [routerLink]=\"['/prepare']\">\r\n    <div>\r\n        <eo-icon [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\r\n        <div class=\"count\">{{preparedItemsCount}}</div>\r\n    </div>\r\n    <div class=\"msg\">{{widgetConfig?.title}}</div>\r\n</a>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport {IWidgetSetupComponent} from '@yuuvis/widget-grid';\r\nimport {FormControlStatus, UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';\r\nimport {Capabilities, CapabilitiesService, PrepareService, TranslateService} from '@eo-sdk/core';\r\nimport {InfoIntrayConfig} from '../info-intray.model';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {debounceTime} from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'eo-info-intray-setup',\r\n  templateUrl: './info-intray-setup.component.html',\r\n  styleUrls: ['./info-intray-setup.component.scss']\r\n})\r\n\r\n@UntilDestroy()\r\nexport class InfoIntraySetupComponent implements IWidgetSetupComponent, OnInit {\r\n\r\n  private _widgetConfig: InfoIntrayConfig;\r\n  capabilities: Capabilities;\r\n  preparedItemsCount: number;\r\n\r\n  @Output() widgetConfigChange = new EventEmitter<InfoIntrayConfig>();\r\n  @Output() widgetConfigStateChange = new EventEmitter<FormControlStatus>();\r\n\r\n  setupForm: UntypedFormGroup = this.fb.group({\r\n    title: [this.translate.instant('eo.dashboard.info.intray.msg'), [Validators.maxLength(50)]],\r\n  });\r\n  @Input() set widgetConfig(wc: InfoIntrayConfig) {\r\n    this._widgetConfig = wc;\r\n    this.setupForm.patchValue({\r\n      title: wc ? wc.title : '',\r\n    });\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(\r\n    private fb: UntypedFormBuilder,\r\n    private translate: TranslateService,\r\n    private capabilityService: CapabilitiesService,\r\n    private prepareService: PrepareService) {\r\n    this.setupForm.valueChanges.pipe(debounceTime(1000), untilDestroyed(this)).subscribe((_) => {\r\n      this.setWidgetConfig();\r\n    });\r\n    this.setupForm.statusChanges.pipe(untilDestroyed(this)).subscribe((v) => {\r\n      this.widgetConfigStateChange.emit(v);\r\n    });\r\n  }\r\n\r\n  private setWidgetConfig() {\r\n    if (this.setupForm.valid) {\r\n      this._widgetConfig = {\r\n        ... this.setupForm.value,\r\n      };\r\n      this.widgetConfigChange.emit(this._widgetConfig);\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.setWidgetConfig();\r\n    this.capabilities = this.capabilityService.getCapabilities();\r\n    if (this.capabilities.intray) {\r\n      this.prepareService.preparedItemCount$\r\n        .pipe(untilDestroyed(this))\r\n        .subscribe(count => this.preparedItemsCount = count);\r\n    }\r\n  }\r\n}\r\n","<div class=\"setup\">\r\n  <form [formGroup]=\"setupForm\">\r\n    <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\"\r\n                   description=\"eo.dashboard.info.intray.msg\">\r\n      <eo-string autocomplete=\"true\" formControlName=\"title\"></eo-string>\r\n    </eo-form-input>\r\n    @if (setupForm.dirty && setupForm.get('title').errors) {\r\n      <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>\r\n        eo.form.property.maxlength\r\n      </div>\r\n    }\r\n  </form>\r\n</div>\r\n\r\n@if (capabilities.intray && preparedItemsCount > 0) {\r\n  <div class=\"preview\">\r\n    <eo-info-intray [widgetConfig]=\"widgetConfig\"></eo-info-intray>\r\n  </div>\r\n} @else {\r\n  <div class=\"empty\">\r\n    <eo-error-message\r\n      [emptyState]=\"{icon: 'ic_prepare.svg', text: 'eo.prepare.list.empty'}\"></eo-error-message>\r\n  </div>\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {IWidgetComponent} from '@yuuvis/widget-grid';\r\nimport {InboxState, Capabilities, CapabilitiesService, InboxService} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {InfoInboxConfig} from './info-inbox.model';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-info-inbox-widget',\r\n  templateUrl: './info-inbox-widget.component.html',\r\n  styleUrls: ['./info-inbox-widget.component.scss']\r\n})\r\nexport class InfoInboxWidgetComponent implements IWidgetComponent, OnInit {\r\n\r\n  capabilities: Capabilities;\r\n  inboxState: InboxState;\r\n  private _widgetConfig: InfoInboxConfig;\r\n  @Input() set widgetConfig(c: InfoInboxConfig | undefined) {\r\n    this._widgetConfig = c ;\r\n  }\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(\r\n    private capabilityService: CapabilitiesService,\r\n    private inboxService: InboxService,\r\n  ) {\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.capabilities = this.capabilityService.getCapabilities();\r\n    if (this.capabilities.inbox) {\r\n      this.inboxService.inboxState$\r\n        .pipe(untilDestroyed(this))\r\n        .subscribe((inboxState: InboxState) => this.inboxState = inboxState);\r\n    }\r\n  }\r\n}\r\n","<a class=\"info\" [ngClass]=\"{visible: capabilities.inbox && inboxState && inboxState.totalmessages > 0}\" [routerLink]=\"['/inbox']\">\r\n    <div>\r\n        <eo-icon [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\r\n        <div class=\"count\">{{inboxState?.totalmessages}}</div>\r\n    </div>\r\n    <div class=\"msg\">{{widgetConfig?.title}}</div>\r\n</a>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport {FormControlStatus, UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {IWidgetSetupComponent} from '@yuuvis/widget-grid';\r\nimport {InfoInboxConfig} from '../info-inbox.model';\r\nimport {debounceTime} from 'rxjs';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-info-inbox-setup',\r\n  templateUrl: './info-inbox-setup.component.html',\r\n  styleUrls: ['./info-inbox-setup.component.scss'],\r\n})\r\nexport class InfoInboxSetupComponent implements IWidgetSetupComponent, OnInit {\r\n\r\n  private _widgetConfig: InfoInboxConfig;\r\n  @Output() widgetConfigChange = new EventEmitter<InfoInboxConfig>();\r\n  @Output() widgetConfigStateChange = new EventEmitter<FormControlStatus>();\r\n\r\n  setupForm: UntypedFormGroup = this.fb.group({\r\n    title: [this.translate.instant('eo.dashboard.info.inbox.msg'), [Validators.maxLength(50)]],\r\n  });\r\n  @Input() set widgetConfig(wc: InfoInboxConfig) {\r\n    this._widgetConfig = wc;\r\n    this.setupForm.patchValue({\r\n      title: wc ? wc.title : '',\r\n    });\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(\r\n    private fb: UntypedFormBuilder,\r\n    private translate: TranslateService\r\n  ) {\r\n    this.setupForm.valueChanges.pipe(debounceTime(1000), untilDestroyed(this)).subscribe((_) => {\r\n      this.setWidgetConfig();\r\n    });\r\n    this.setupForm.statusChanges.pipe(untilDestroyed(this)).subscribe((v) => {\r\n      this.widgetConfigStateChange.emit(v);\r\n    });\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.setWidgetConfig();\r\n  }\r\n\r\n  private setWidgetConfig() {\r\n    if (this.setupForm.valid) {\r\n      this._widgetConfig = {\r\n        ... this.setupForm.value,\r\n      };\r\n      this.widgetConfigChange.emit(this._widgetConfig);\r\n    }\r\n  }\r\n}\r\n","<div class=\"setup\">\r\n  <form [formGroup]=\"setupForm\">\r\n    <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\"\r\n                   description=\"eo.dashboard.info.inbox.msg\">\r\n      <eo-string autocomplete=\"true\" formControlName=\"title\"></eo-string>\r\n    </eo-form-input>\r\n    @if (setupForm.dirty && setupForm.get('title').errors) {\r\n      <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>\r\n        eo.form.property.maxlength\r\n      </div>\r\n    }\r\n  </form>\r\n</div>\r\n<div class=\"preview\">\r\n  <eo-info-inbox-widget [widgetConfig]=\"widgetConfig\"></eo-info-inbox-widget>\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {IWidgetComponent} from '@yuuvis/widget-grid';\r\nimport {IHitlist, IHitlistResult} from './IHitlist';\r\nimport {SearchQuery, SearchService, StoredQueriesService, StoredQuery, SystemService, TranslateService, Utils} from '@eo-sdk/core';\r\nimport {AppSearchService} from '../../../../eo-framework-core/search/app-search.service';\r\nimport {EMPTY, map} from 'rxjs';\r\nimport {NavigationExtras, Router} from '@angular/router';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {tap} from 'rxjs/operators';\r\nimport {LocaleDatePipe, LocaleNumberPipe} from '../../../../eo-framework-core';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-hitlist-widget',\r\n  templateUrl: './hitlist-widget.component.html',\r\n  styleUrls: ['./hitlist-widget.component.scss']\r\n})\r\nexport class HitlistWidgetComponent implements IWidgetComponent {\r\n\r\n  hitlistResult: IHitlistResult[];\r\n  private _query: SearchQuery;\r\n  refreshingRequest: boolean;\r\n  private _widgetConfig: IHitlist;\r\n  storedQuery: StoredQuery;\r\n  @Input() editMode = false;\r\n\r\n  constructor(\r\n    private router: Router,\r\n    private searchService: SearchService,\r\n    private appSearchService: AppSearchService,\r\n    private systemService: SystemService,\r\n    private storedQueriesService: StoredQueriesService,\r\n    private translate: TranslateService\r\n  ) { }\r\n\r\n  @Input() set widgetConfig(c: IHitlist) {\r\n    this._widgetConfig = c;\r\n    if (this._widgetConfig?.storedQuery) {\r\n      this.getStoredQuery(this._widgetConfig.storedQuery).subscribe(() => {\r\n        this._query = this.searchService.buildQuery(this.storedQuery);\r\n        this._widgetConfig.formValue.storedQuery = this.storedQuery.name;\r\n        this.executeQuery();\r\n      }, (error) => {\r\n        if (error.status === 404) {\r\n          return EMPTY;\r\n        }\r\n        throw error;\r\n      });\r\n    }\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  getStoredQuery(id: string) {\r\n    return this.storedQueriesService.getStoredQuery(id).pipe(\r\n      untilDestroyed(this),\r\n      tap(storedQuery => {\r\n        this.storedQuery = storedQuery;\r\n      })\r\n    );\r\n  }\r\n\r\n  private executeQuery() {\r\n    this.refreshingRequest = true;\r\n    const queryName = this._query.name;\r\n    delete this._query.name;\r\n    this._query.fields = ['type', 'id'];\r\n    if (this._widgetConfig?.formValue?.firstLabel) {\r\n      this._query.fields.push(this._widgetConfig?.formValue?.firstLabel);\r\n    }\r\n    if (this._widgetConfig?.formValue?.secondLabel) {\r\n      this._query.fields.push(this._widgetConfig?.formValue?.secondLabel);\r\n    }\r\n    if (this._widgetConfig?.formValue?.thirdLabel) {\r\n      this._query.fields.push(this._widgetConfig?.formValue?.thirdLabel);\r\n    }\r\n    if (this._query.fields.length === 2) {\r\n      this.hitlistResult = null;\r\n      this.refreshingRequest = false;\r\n      return;\r\n    }\r\n    if (this._widgetConfig?.formValue.sortField) {\r\n      if (this._widgetConfig?.formValue.sortRevert) {\r\n        this._query.addSortOption(this._widgetConfig?.formValue.sortField, 'asc');\r\n      } else {\r\n        this._query.addSortOption(this._widgetConfig?.formValue.sortField, 'desc');\r\n      }\r\n    }\r\n    this._query = this.searchService.buildQuery(this._query);\r\n    let propType = [this._widgetConfig.firstLabelpropertyType, this._widgetConfig.secondLabelpropertyType, this._widgetConfig.thirdLabelpropertyType];\r\n    this.searchService\r\n      .executeQuery(this._query.getQueryJson(), false, this._widgetConfig?.formValue.size)\r\n      .pipe(map(result => {\r\n        return result.hits.hits.map(hit => {\r\n          for (let i = 0; i < propType.length; i++) {\r\n            let formField = i === 0 ? this._widgetConfig?.formValue?.firstLabel : i === 1 ? this._widgetConfig?.formValue?.secondLabel : this._widgetConfig?.formValue?.thirdLabel;\r\n            if (hit._source[formField] !== undefined) {\r\n              switch (propType[i]) {\r\n                case 'DATETIME':\r\n                  let datePipe = new LocaleDatePipe(this.translate);\r\n                  let format = hit._source[formField].includes('T') ? '' : 'eoShortDate';\r\n                  hit._source[formField] = datePipe.transform(hit._source[formField], format);\r\n                  break;\r\n                case 'NUMBER':\r\n                  let numberPipe = new LocaleNumberPipe(this.translate);\r\n                  if (hit._source[formField].toString().includes('.')) {\r\n                    hit._source[formField] = numberPipe.numberToString(hit._source[formField]);\r\n                  }\r\n                  break;\r\n                case 'BOOLEAN':\r\n                  hit._source[formField] = hit._source[formField] ? '\\u2611' : '\\u2610';\r\n                  break;\r\n              }\r\n            }\r\n          }\r\n          return {\r\n            'firstLabel': hit._source[this._widgetConfig?.formValue?.firstLabel],\r\n            'secondLabel': hit?._source[this._widgetConfig?.formValue?.secondLabel],\r\n            'thirdLabel': hit?._source[this._widgetConfig?.formValue?.thirdLabel],\r\n            'type': this.systemService.getObjectType(hit._source.type),\r\n            'id': hit._source.id\r\n          };\r\n        });\r\n      }))\r\n      .subscribe((hits) => {\r\n        this.refreshingRequest = false;\r\n        this.hitlistResult = hits;\r\n        this._query.name = queryName;\r\n        this._query.removeSortOption(this._widgetConfig?.formValue.sortField);\r\n      },\r\n        (error) => {\r\n          this.hitlistResult = null;\r\n          this.refreshingRequest = false;\r\n        });\r\n  }\r\n\r\n  setQueryToAppSearch() {\r\n    this.appSearchService.setQuery(this.storedQuery);\r\n    this.router.navigate([{outlets: {modal: 'search'}}]);\r\n  }\r\n\r\n  refresh() {\r\n    this.getStoredQuery(this._widgetConfig.storedQuery).subscribe(() => {\r\n      this._query = this.searchService.buildQuery(this.storedQuery);\r\n      this._widgetConfig.formValue.storedQuery = this.storedQuery.name;\r\n      this.executeQuery();\r\n    },\r\n      (error) => {\r\n        this.hitlistResult = null;\r\n        this.refreshingRequest = false;\r\n      });\r\n  }\r\n\r\n  onItemClick(item, event) {\r\n    const url = window.location.href.split('/dashboard')[0] + '/object/' + item.id + '?type=' + item.type.name + '\\n';\r\n    window.open(url, event?.ctrlKey || this.editMode ? '_blank' : '_self');\r\n  }\r\n\r\n  onEmitQueryClick(event) {\r\n    delete this._query.fields;\r\n    const uriParam = encodeURIComponent(Utils.formDataStringify(this._query.getQueryJson()));\r\n    const uriParamQuery: NavigationExtras = {queryParams: {'query': uriParam}};\r\n    const queryParams = new URLSearchParams(uriParamQuery.queryParams).toString();\r\n    const url = window.location.href.split('/dashboard')[0] + '/result?' + queryParams;\r\n    window.open(url, event?.ctrlKey || this.editMode ? '_blank' : '_self');\r\n  }\r\n}\r\n","<header>\r\n  <div class=\"header-title\">\r\n    @if (widgetConfig?.formValue.storedQuery) {\r\n      <div class=\"title\">\r\n        {{ widgetConfig?.formValue.storedQuery }}\r\n      </div>\r\n      <div class=\"icons-title\">\r\n        <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\r\n                 (click)=\"setQueryToAppSearch()\"\r\n                 [iconTitle]=\"('eo.widget.hitlist.tooltip.savedSearchIcon'| translate)\"></eo-icon>\r\n        <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\r\n                 (click)=\"onEmitQueryClick($event)\"\r\n                 [iconTitle]=\"('eo.widget.hitlist.tooltip.openinresultlist'| translate)\"></eo-icon>\r\n        <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refresh()\"\r\n                 [iconTitle]=\"('eo.widget.hitlist.tooltip.refresh'| translate)\"></eo-icon>\r\n      </div>\r\n    }\r\n  </div>\r\n</header>\r\n\r\n@if (refreshingRequest) {\r\n  <main class=\"loader-overlay__mask\">\r\n    <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\r\n  </main>\r\n} @else if (hitlistResult && !refreshingRequest) {\r\n  <main class=\"hitlist\">\r\n    @for (i of hitlistResult; track $index) {\r\n      <div>\r\n        <div class=\"item\" (click)=\"onItemClick(i, $event)\">\r\n          <div class=\"preTitle\">{{ i.firstLabel }}</div>\r\n          <div class=\"title\">{{ i.secondLabel }}</div>\r\n          <div class=\"description\">{{ i.thirdLabel }}</div>\r\n          <eo-icon [objectType]=\"i.type\"></eo-icon>\r\n        </div>\r\n      </div>\r\n    } @empty {\r\n      <div class=\"empty\">\r\n        <eo-error-message\r\n          [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\r\n      </div>\r\n    }\r\n  </main>\r\n} @else {\r\n  <div class=\"empty\">\r\n    <eo-error-message\r\n      [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\r\n  </div>\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {IWidgetComponent} from '@yuuvis/widget-grid';\r\nimport {UntypedFormGroup, UntypedFormBuilder, Validators, FormControlStatus} from '@angular/forms';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {IHitlist} from '../IHitlist';\r\nimport {StoredQueriesService, StoredQuery, SystemService, TranslateService, UserService, Utils} from '@eo-sdk/core';\r\nimport {EMPTY, skip} from 'rxjs';\r\nimport {catchError, tap} from 'rxjs/operators';\r\nimport {CodesystemComponent} from '../../../../../eo-framework';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-hitlist-setup',\r\n  templateUrl: './hitlist-setup.component.html',\r\n  styleUrls: ['./hitlist-setup.component.scss']\r\n})\r\nexport class HitlistSetupComponent implements IWidgetComponent, OnInit {\r\n  private _widgetConfig: IHitlist;\r\n  @Output() widgetConfigChange = new EventEmitter<IHitlist>();\r\n  @Output() widgetConfigStateChange = new EventEmitter<FormControlStatus>();\r\n  storedQueries: StoredQuery[];\r\n\r\n  setupForm: UntypedFormGroup = this.fb.group({\r\n    storedQuery: [null, Validators.required],\r\n    size: [5, [Validators.max(100), Validators.min(3), Validators.required]],\r\n    sortField: [],\r\n    firstLabel: [],\r\n    secondLabel: [null, Validators.required],\r\n    thirdLabel: [],\r\n    sortRevert: [],\r\n  });\r\n\r\n  storedQueriesPicker = {\r\n    title: this.translate.instant('eo.workspace.widget.label.storedquery'),\r\n    codesystem: null,\r\n  };\r\n\r\n  propertyPicker = {\r\n    title: this.translate.instant('eo.workspace.widget.form.sortField'),\r\n    codesystem: null,\r\n  };\r\n  selectedSavedSearchName = '';\r\n  storedQuery: StoredQuery;\r\n\r\n  @ViewChild('firstLabelPropertyCodesystem') firstLabelPropertyCodesystem: CodesystemComponent;\r\n  @ViewChild('secondLabelPropertyCodesystem') secondLabelPropertyCodesystem: CodesystemComponent;\r\n  @ViewChild('thirdLabelPropertyCodesystem') thirdLabelPropertyCodesystem: CodesystemComponent;\r\n\r\n  @Input() set widgetConfig(wc: IHitlist) {\r\n    this._widgetConfig = wc;\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(\r\n    private fb: UntypedFormBuilder,\r\n    private storedQueriesService: StoredQueriesService,\r\n    private translate: TranslateService,\r\n    private userService: UserService,\r\n    private system: SystemService\r\n  ) {\r\n    this.setupForm.valueChanges.pipe(skip(1), untilDestroyed(this)).subscribe((_) => {\r\n      this.setWidgetConfig();\r\n    });\r\n    this.setupForm.statusChanges.pipe(untilDestroyed(this)).subscribe((v) => {\r\n      this.widgetConfigStateChange.emit(v);\r\n    });\r\n    this.getStoredQuerys();\r\n  }\r\n\r\n  private setWidgetConfig() {\r\n    if (this.setupForm.valid && this.storedQueries) {\r\n      this.storedQuery = this.storedQueries.find((sq) => sq.name === this.setupForm.get('storedQuery').value);\r\n      this.widgetConfig = {\r\n        storedQuery: this.storedQuery?.id,\r\n        formValue: this.setupForm.value,\r\n        firstLabelpropertyType: this._widgetConfig?.firstLabelpropertyType ? this._widgetConfig.firstLabelpropertyType : 'DATETIME',\r\n        secondLabelpropertyType: this._widgetConfig?.secondLabelpropertyType ? this._widgetConfig.secondLabelpropertyType : 'STRING',\r\n        thirdLabelpropertyType: this._widgetConfig?.thirdLabelpropertyType ? this._widgetConfig.thirdLabelpropertyType : 'STRING'\r\n      };\r\n      if (this.setupForm.get('storedQuery').value !== this.selectedSavedSearchName) {\r\n        this.selectedSavedSearchName = this.setupForm.get('storedQuery').value;\r\n        if (this.widgetConfig?.storedQuery) {\r\n          setTimeout(() => {\r\n            this.propertyPicker.codesystem = null;\r\n            if (this.storedQuery.types.length !== 1) {\r\n              this.getFieldDefinition('sysdocument');\r\n            } else {\r\n              this.getFieldDefinition(this.storedQuery.types[0].qname);\r\n            }\r\n            if (this.firstLabelPropertyCodesystem) {\r\n              this.widgetConfig.firstLabelpropertyType = this.firstLabelPropertyCodesystem?.selectedNodes?.data?.type;\r\n              this.widgetConfig.secondLabelpropertyType = this.secondLabelPropertyCodesystem?.selectedNodes?.data?.type;\r\n              this.widgetConfig.thirdLabelpropertyType = this.thirdLabelPropertyCodesystem?.selectedNodes?.data?.type;\r\n            }\r\n          }, 100);\r\n        }\r\n      } else {\r\n        if (this.firstLabelPropertyCodesystem) {\r\n          this.widgetConfig.firstLabelpropertyType = this.firstLabelPropertyCodesystem?.selectedNodes?.data?.type;\r\n          this.widgetConfig.secondLabelpropertyType = this.secondLabelPropertyCodesystem?.selectedNodes?.data?.type;\r\n          this.widgetConfig.thirdLabelpropertyType = this.thirdLabelPropertyCodesystem?.selectedNodes?.data?.type;\r\n        }\r\n      }\r\n      this.widgetConfigChange.emit(this._widgetConfig);\r\n    }\r\n  }\r\n\r\n  getStoredQuerys() {\r\n    this.storedQueriesService\r\n      .fetchStoredQueries().pipe(\r\n        untilDestroyed(this),\r\n      ).subscribe(storedQueries => {\r\n        this.storedQueries = storedQueries;\r\n        this.storedQueriesPicker.codesystem = {\r\n          entries: this.storedQueries.map(storedQuery => ({\r\n            id: storedQuery.id,\r\n            label: storedQuery.name,\r\n            defaultrepresentation: storedQuery.name,\r\n            data: storedQuery.name\r\n          })).sort(Utils.sortValues('label')),\r\n        };\r\n      });\r\n  }\r\n\r\n  getStoredQuery(id: string) {\r\n    return this.storedQueriesService.getStoredQuery(id).pipe(\r\n      untilDestroyed(this),\r\n      tap(storedQuery => {\r\n        this.storedQuery = storedQuery;\r\n      })\r\n    );\r\n  }\r\n\r\n  getFieldDefinition(type) {\r\n    return this.userService.getFieldDefinition(type).pipe(untilDestroyed(this)).subscribe(definition => {\r\n      this.propertyPicker.codesystem = {\r\n        entries: definition.elements.map(field => {\r\n          let fieldLabel = field.baseparam ? this.translate.instant('eo.global.baseparam.' + field.name) : field.label;\r\n          let label = definition.elements.filter(item => item.label === field.label).length > 1\r\n            ? fieldLabel + ' (' + this.system.getObjectType(field.qname.split('.')[0]).label + ')'\r\n            : fieldLabel;\r\n          return {\r\n            id: field.qname,\r\n            defaultrepresentation: label,\r\n            data: field.hitname,\r\n            type: field.type\r\n          };\r\n        }).sort(Utils.sortValues('defaultrepresentation')),\r\n      };\r\n    });\r\n  }\r\n\r\n  private getInitialFormValues() {\r\n    return {\r\n      storedQuery: this.storedQuery ? this.storedQuery.name : '',\r\n      size: this._widgetConfig ? this._widgetConfig.formValue.size : '5',\r\n      firstLabel: this._widgetConfig ? this._widgetConfig.formValue.firstLabel : 'created',\r\n      secondLabel: this._widgetConfig ? this._widgetConfig.formValue.secondLabel : 'title',\r\n      thirdLabel: this._widgetConfig ? this._widgetConfig.formValue.thirdLabel : 'description',\r\n      sortField: this._widgetConfig ? this._widgetConfig.formValue.sortField : 'modified',\r\n      sortRevert: this._widgetConfig ? this._widgetConfig.formValue.sortRevert : '',\r\n    };\r\n  }\r\n\r\n  private setFieldDefinition() {\r\n    const type = this.storedQuery.types.length !== 1 ? this.storedQuery.types[0].qname : 'sysdocument';\r\n    this.getFieldDefinition(type);\r\n  }\r\n\r\n  private runStoredQuery() {\r\n    this.getStoredQuery(this._widgetConfig?.storedQuery).pipe(\r\n      catchError(error => {\r\n        if (error.status === 404) {\r\n          this.setupForm.patchValue({\r\n            storedQuery: '',\r\n            size: '5',\r\n            firstLabel: 'created',\r\n            secondLabel: 'title',\r\n            thirdLabel: 'description',\r\n            sortField: 'modified'\r\n          });\r\n          return EMPTY;\r\n        }\r\n        throw error;\r\n      })).subscribe(() => {\r\n        this.setupForm.patchValue({\r\n          ...this.getInitialFormValues()\r\n        });\r\n        this.setFieldDefinition();\r\n      });\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this._widgetConfig?.storedQuery) {\r\n      this.runStoredQuery();\r\n    } else {\r\n      this.setupForm.patchValue({\r\n        ... this.getInitialFormValues()\r\n      });\r\n    }\r\n  }\r\n}\r\n","<div class=\"setup\">\r\n  <form [formGroup]=\"setupForm\">\r\n\r\n    @if (storedQueriesPicker?.codesystem?.entries) {\r\n      <eo-form-input [skipToggle]=\"true\"\r\n                     [label]=\"'eo.workspace.widget.label.storedquery' | translate\" [required]=\"true\"\r\n                     [description]=\"'eo.workspace.widget.stored.queries.description'\"\r\n                     [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\r\n        <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\r\n                       [codesystem]=\"storedQueriesPicker.codesystem\"\r\n                       [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\r\n      </eo-form-input>\r\n      @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\r\n        <div class=\"err-msg\" translate>\r\n          eo.form.property.required\r\n        </div>\r\n      }\r\n    }\r\n\r\n    @if (widgetConfig?.storedQuery) {\r\n      <div class=\"listOptions\">\r\n        <eo-form-input [skipToggle]=\"true\" [required]=\"true\"\r\n                       [invalid]=\"setupForm.get('size').invalid\"\r\n                       [label]=\"'eo.workspace.widget.form.label.size' | translate\">\r\n          <eo-number [scale]=\"0\" formControlName=\"size\"></eo-number>\r\n        </eo-form-input>\r\n        @if (setupForm.dirty && setupForm.get('size').invalid) {\r\n          <div class=\"err-msg\" translate [translateParams]=\"{min: 3, max: 100}\">\r\n            @if (setupForm.get('size').hasError('required')) {\r\n              eo.form.property.required\r\n            } @else if (setupForm.get('size').hasError('max') || setupForm.get('size').hasError('min')) {\r\n              eo.form.property.string.error.classification.partialValue\r\n            }\r\n          </div>\r\n        }\r\n\r\n        @if (propertyPicker?.codesystem?.entries) {\r\n          <div class=\"propertyPicker\">\r\n            <eo-form-input [skipToggle]=\"true\"\r\n                           [label]=\"'eo.workspace.widget.form.label.firstLabel'|translate\">\r\n              <eo-codesystem #firstLabelPropertyCodesystem formControlName=\"firstLabel\"\r\n                             [pickerTitle]=\"propertyPicker.title\"\r\n                             [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\r\n            </eo-form-input>\r\n            <eo-form-input [skipToggle]=\"true\" [required]=\"true\"\r\n                           [label]=\"'eo.workspace.widget.form.label.secondLabel'|translate\"\r\n                           [invalid]=\"setupForm.get('secondLabel').invalid\">\r\n              <eo-codesystem #secondLabelPropertyCodesystem formControlName=\"secondLabel\"\r\n                             [pickerTitle]=\"propertyPicker.title\"\r\n                             [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\r\n            </eo-form-input>\r\n            @if (setupForm.dirty && setupForm.get('secondLabel').hasError('required')) {\r\n              <div class=\"err-msg\" translate>\r\n                eo.form.property.required\r\n              </div>\r\n            }\r\n\r\n            <eo-form-input [skipToggle]=\"true\"\r\n                           [label]=\"'eo.workspace.widget.form.label.thirdLabel'|translate\">\r\n              <eo-codesystem #thirdLabelPropertyCodesystem formControlName=\"thirdLabel\"\r\n                             [pickerTitle]=\"propertyPicker.title\"\r\n                             [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\r\n            </eo-form-input>\r\n          </div>\r\n          <eo-form-input [skipToggle]=\"true\"\r\n                         [label]=\"'eo.workspace.widget.form.label.sortField'|translate\">\r\n            <eo-codesystem formControlName=\"sortField\" [pickerTitle]=\"propertyPicker.title\"\r\n                           [codesystem]=\"propertyPicker.codesystem\"></eo-codesystem>\r\n          </eo-form-input>\r\n        }\r\n\r\n        <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.sortRevert'|translate\"\r\n                       [skipToggle]=\"true\">\r\n          <eo-checkbox formControlName=\"sortRevert\" [tristate]=\"false\"></eo-checkbox>\r\n        </eo-form-input>\r\n      </div>\r\n    }\r\n  </form>\r\n</div>\r\n\r\n@if (setupForm.valid) {\r\n  <div class=\"preview\">\r\n    <eo-hitlist-widget [widgetConfig]=\"widgetConfig\" [editMode]=\"true\"></eo-hitlist-widget>\r\n  </div>\r\n} @else {\r\n  <div class=\"empty\">\r\n    <eo-error-message\r\n      [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.stored.queries.list.empty'}\"></eo-error-message>\r\n  </div>\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {SearchQuery, SearchService, StoredQueriesService, StoredQuery, SystemService, TranslateService, Utils} from '@eo-sdk/core';\r\nimport {IWidgetComponent} from '@yuuvis/widget-grid';\r\nimport {Icharts} from './icharts';\r\nimport {AppSearchService} from '../../../../eo-framework-core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {NavigationExtras, Router} from '@angular/router';\r\nimport {EMPTY, tap} from 'rxjs';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-charts-widget',\r\n  templateUrl: './charts-widget.component.html',\r\n  styleUrls: ['./charts-widget.component.scss']\r\n})\r\nexport class ChartsWidgetComponent implements IWidgetComponent {\r\n  histogram: any;\r\n\r\n  sharedOptions = {\r\n    title: '',\r\n    color: {\r\n      text: '#925699',\r\n      label: '#925699'\r\n    },\r\n    resizable: true,\r\n    donut: {\r\n      'alignment': 'center'\r\n    },\r\n\r\n    toolbar: {\r\n      enabled: false,\r\n    },\r\n    height: '400px',\r\n    curve: 'curveMonotoneX',\r\n    legend: {\r\n      'alignment': 'center'\r\n    },\r\n    axes: {\r\n      left: {\r\n        mapsTo: 'value',\r\n        title: ''\r\n      },\r\n      bottom: {\r\n        mapsTo: 'group',\r\n        scaleType: 'labels',\r\n        title: ''\r\n      },\r\n    },\r\n  };\r\n\r\n  defaultLineStraightChartOption = {\r\n    ...this.sharedOptions,\r\n    curve: undefined,\r\n    legend: {\r\n      enabled: false,\r\n    },\r\n    axes: {\r\n      bottom: {\r\n        mapsTo: 'date',\r\n        scaleType: 'time',\r\n        title: ''\r\n      },\r\n      left: {\r\n        mapsTo: 'value',\r\n        scaleType: 'linear',\r\n        title: ''\r\n      },\r\n    }\r\n  };\r\n  lineStraightChartOption;\r\n\r\n  defaultLineCurveChartOption = {\r\n    ...this.sharedOptions,\r\n    legend: {\r\n      enabled: false,\r\n    },\r\n    axes: {\r\n      bottom: {\r\n        mapsTo: 'date',\r\n        scaleType: 'time',\r\n        title: ''\r\n      },\r\n      left: {\r\n        mapsTo: 'value',\r\n        scaleType: 'linear',\r\n        title: ''\r\n      },\r\n    },\r\n  };\r\n  lineCurveChartOption;\r\n\r\n  chartData: {group: string; value: any; date: string}[] = [];\r\n  private _query: SearchQuery;\r\n  refreshingRequest: boolean;\r\n  storedQuery: StoredQuery;\r\n  private _widgetConfig: Icharts | undefined;\r\n  rangeValues = [];\r\n\r\n  @Input() editMode = false;\r\n\r\n  @Input() set widgetConfig(c: Icharts | undefined) {\r\n    this._widgetConfig = c;\r\n    if (this._widgetConfig?.storedQuery && this._widgetConfig?.formValue?.aggregation) {\r\n      this.getStoredQuery(this._widgetConfig.storedQuery).subscribe(() => {\r\n        this._query = this.searchService.buildQuery(this.storedQuery);\r\n        this._widgetConfig.formValue.storedQuery = this.storedQuery.name;\r\n        if (this._widgetConfig?.formValue?.aggregation) {\r\n          if (this._widgetConfig?.formValue?.interval) {\r\n            this.rangeValues = this.generateRange(this._widgetConfig?.formValue?.interval, this._widgetConfig?.formValue?.startingpoint, this._widgetConfig?.formValue?.size);\r\n          }\r\n          this.generateChartData(this._widgetConfig?.formValue?.aggregation, this._widgetConfig?.aggregationType,\r\n            this._widgetConfig?.formValue?.histogramType || 'monthly',\r\n            this.rangeValues, this._widgetConfig?.formValue?.sortRevert,\r\n            this._widgetConfig?.formValue?.attributMetric,\r\n            this._widgetConfig?.formValue?.metric, this._widgetConfig?.formValue?.minDocCount\r\n          );\r\n          this.setLegendDiagramm();\r\n        }\r\n      }, (error) => {\r\n        if (error.status === 404) {\r\n          return EMPTY;\r\n        }\r\n        throw error;\r\n      });\r\n    }\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(\r\n    private router: Router,\r\n    private searchService: SearchService,\r\n    private appSearchService: AppSearchService,\r\n    private storedQueriesService: StoredQueriesService,\r\n    private systemService: SystemService\r\n  ) { }\r\n\r\n  getStoredQuery(id: string) {\r\n    return this.storedQueriesService.getStoredQuery(id).pipe(\r\n      untilDestroyed(this),\r\n      tap(storedQuery => {\r\n        this.storedQuery = storedQuery;\r\n      })\r\n    );\r\n  }\r\n\r\n  private generateRange(interval, start, size) {\r\n    const rangeValues = [];\r\n    for (let j = 0; j < size; j++) {\r\n      const rangeItem = {\r\n        o1: parseFloat(start + j * interval),\r\n        o2: parseFloat(start + (j + 1) * interval),\r\n      };\r\n      rangeValues.push(rangeItem);\r\n    }\r\n    return rangeValues;\r\n  }\r\n\r\n  private generateChartData(field, type, histogramType, rangeValues, sort, attributMetric, metric, minDocCount) {\r\n    this.refreshingRequest = true;\r\n    const queryName = this._query.name;\r\n    delete this._query.name;\r\n    this._query = this.searchService.buildQuery(this._query);\r\n    this.lineCurveChartOption = JSON.parse(JSON.stringify(this.defaultLineCurveChartOption));\r\n    this.lineStraightChartOption = JSON.parse(JSON.stringify(this.defaultLineStraightChartOption));\r\n    if (type === 'DATETIME' && histogramType) {\r\n      this.chartWithHistogram(queryName, field, histogramType);\r\n    } else if (attributMetric && metric) {\r\n      this.barChartMetric(queryName, field, sort, minDocCount, attributMetric, metric);\r\n    } else if (type === 'NUMBER' && (this.widgetConfig?.formValue?.chartType === 'lineCurve' || this.widgetConfig?.formValue?.chartType === 'lineStraight')) {\r\n      this.lineChartNumber(queryName, field, type, sort, minDocCount, rangeValues);\r\n    } else {\r\n      this.chartWithNoMetric(queryName, field, type, sort, minDocCount, rangeValues);\r\n    }\r\n  }\r\n\r\n  private chartWithHistogram(queryName, field, histogramType) {\r\n    const histogramConfig = {\r\n      'yearly': {calendar_interval: 'year', format: 'yyyy'},\r\n      'weekly': {calendar_interval: 'week', format: 'yyyy-ww'},\r\n      'monthly': {calendar_interval: 'month', format: 'yyyy-MM'},\r\n      'daily': {calendar_interval: 'day', format: 'yyyy-MM-dd'}\r\n    };\r\n    if (histogramConfig.hasOwnProperty(histogramType)) {\r\n      this.histogram = histogramConfig[histogramType];\r\n      this.histogram.size = this._widgetConfig?.formValue?.size ? this._widgetConfig?.formValue?.size : 10;\r\n      const query = {\r\n        aggs: {\r\n          [field.replace('sysobject.', '')]: {\r\n            histogram: this.histogram\r\n          }\r\n        },\r\n        ...this._query.getQueryJson()\r\n      };\r\n      this.searchService.executeQuery(query, true).subscribe((res) => {\r\n        this.refreshingRequest = false;\r\n        const aggregationKey = Object.keys(res.aggregations)[0];\r\n        this._query.name = queryName;\r\n        if (this.widgetConfig?.formValue?.chartType === 'lineCurve' || this.widgetConfig?.formValue?.chartType === 'lineStraight') {\r\n          this.chartData = res.aggregations[aggregationKey].buckets.map((e) => ({\r\n            group: 'dataset1',\r\n            value: e.doc_count,\r\n            date: new Date(e.key).toISOString(),\r\n          }));\r\n        } else {\r\n          this.chartData = res.aggregations[aggregationKey].buckets.map((e) => ({\r\n            group: e.key_as_string,\r\n            value: e.doc_count,\r\n          }));\r\n        }\r\n      },\r\n        (error) => {\r\n          this.chartData = [];\r\n          this.refreshingRequest = false;\r\n        });\r\n    } else {\r\n      this.refreshingRequest = false;\r\n    }\r\n  }\r\n\r\n  private barChartMetric(queryName, field, sort, minDocCount, attributMetric, metric) {\r\n    const fieldKey = field.replace('sysobject.', '').replace('sysdocument.', '');\r\n    const attributMetricKey = attributMetric.replace('sysobject.', '').replace('sysdocument.', '');\r\n    let aggsQquery;\r\n    aggsQquery = {\r\n      [fieldKey]: {\r\n        size: this._widgetConfig?.formValue?.size || 10,\r\n        order: sort ? 'asc' : 'desc',\r\n        sort: attributMetricKey + '.value',\r\n        min_doc_count: minDocCount,\r\n        sub: {\r\n          [attributMetricKey]: {\r\n            metrics: this._widgetConfig?.formValue?.metric\r\n          }\r\n        }\r\n      }\r\n    };\r\n    this.searchService.executeQuery(\r\n      {\r\n        aggs: aggsQquery\r\n        , ...this._query.getQueryJson()\r\n      }, true).subscribe((res) => {\r\n        this.refreshingRequest = false;\r\n        this._query.name = queryName;\r\n        if (res.aggregations[Object.keys(res.aggregations)[0]].buckets.length > 0) {\r\n          this.chartData = res.aggregations[Object.keys(res.aggregations)[0]].buckets.map((e) => {\r\n            return {\r\n              group: e.key.replace('_', '-'),\r\n              value: e[metric + '#' + attributMetricKey].value,\r\n            };\r\n          });\r\n        } else {\r\n          this.chartData = [];\r\n          this.refreshingRequest = false;\r\n        }\r\n      },\r\n        (error) => {\r\n          this.chartData = [];\r\n          this.refreshingRequest = false;\r\n        });\r\n  }\r\n\r\n  private lineChartNumber(queryName, field, type, sort, minDocCount, rangeValues) {\r\n\r\n    const fieldKey = field.replace('sysobject.', '').replace('sysdocument.', '');\r\n    let aggsQquery;\r\n\r\n    if (Object.keys(rangeValues).length !== 0 && type === 'NUMBER') {\r\n      this.lineStraightChartOption.axes.bottom = {\r\n        mapsTo: 'key',\r\n        scaleType: 'labels',\r\n        title: '',\r\n      };\r\n      this.lineCurveChartOption.axes.bottom = {\r\n        mapsTo: 'key',\r\n        scaleType: 'labels',\r\n        title: '',\r\n      };\r\n\r\n      aggsQquery = {\r\n        [fieldKey]: {\r\n          size: this._widgetConfig?.formValue?.size || 10,\r\n          rg: rangeValues,\r\n          order: sort ? 'asc' : 'desc',\r\n          sort: '_count',\r\n          min_doc_count: minDocCount\r\n        }\r\n      };\r\n    } else {\r\n      this.lineCurveChartOption = JSON.parse(JSON.stringify(this.defaultLineCurveChartOption));\r\n      this.lineStraightChartOption = JSON.parse(JSON.stringify(this.defaultLineStraightChartOption));\r\n\r\n      aggsQquery = {\r\n        [fieldKey]: {\r\n          order: sort ? 'asc' : 'desc',\r\n          histogram: {calendar_interval: 'month', format: 'yyyy-MM'},\r\n          sort: '_count',\r\n          min_doc_count: minDocCount,\r\n          size: this._widgetConfig?.formValue?.size || 10,\r\n        }\r\n      };\r\n    }\r\n\r\n    this.searchService.executeQuery(\r\n      {\r\n        aggs: aggsQquery\r\n        , ...this._query.getQueryJson()\r\n      }, true)\r\n      .subscribe((res) => {\r\n        this.refreshingRequest = false;\r\n        this._query.name = queryName;\r\n        if (res.aggregations[Object.keys(res.aggregations)[0]].buckets.length > 0) {\r\n          this.chartData = res.aggregations[Object.keys(res.aggregations)[0]].buckets.map((e) => {\r\n            return {\r\n              group: 'dataset1',\r\n              value: e.doc_count,\r\n              key: e.key.replace(\"_\", \"-\")\r\n            };\r\n          });\r\n        } else {\r\n          this.chartData = [];\r\n          this.refreshingRequest = false;\r\n        }\r\n      });\r\n  }\r\n\r\n  private chartWithNoMetric(queryName, field, type, sort, minDocCount, rangeValues) {\r\n    const fieldKey = field.replace('sysobject.', '').replace('sysdocument.', '');\r\n    let aggsQquery;\r\n\r\n    if (Object.keys(rangeValues).length !== 0 && type === 'NUMBER') {\r\n      aggsQquery = {\r\n        [fieldKey]: {\r\n          size: this._widgetConfig?.formValue?.size || 10,\r\n          rg: rangeValues,\r\n          order: sort ? 'asc' : 'desc',\r\n          sort: '_count',\r\n          min_doc_count: minDocCount\r\n        }\r\n      };\r\n    } else {\r\n      aggsQquery = {\r\n        [fieldKey]: {\r\n          order: sort ? 'asc' : 'desc',\r\n          histogram: {calendar_interval: 'month', format: 'yyyy-MM'},\r\n          sort: '_count',\r\n          min_doc_count: minDocCount,\r\n          size: this._widgetConfig?.formValue?.size || 10,\r\n        }\r\n      };\r\n    }\r\n    this.searchService.executeQuery(\r\n      {\r\n        aggs: aggsQquery\r\n        , ...this._query.getQueryJson()\r\n      }, true)\r\n      .subscribe((res) => {\r\n        this.refreshingRequest = false;\r\n        this._query.name = queryName;\r\n        if (res.aggregations[Object.keys(res.aggregations)[0]].buckets.length > 0) {\r\n          this.chartData = res.aggregations[Object.keys(res.aggregations)[0]].buckets.map((e) => {\r\n            if (type === 'BOOLEAN') {\r\n              return {\r\n                group: e.key === 0 ? '\\u2610' : '\\u2611',\r\n                value: e.doc_count,\r\n              };\r\n            } else {\r\n              return {\r\n                group: typeof e.key === 'string' ? e.key.replace('_', '-') : e.key,\r\n                value: e.doc_count,\r\n              };\r\n            }\r\n          });\r\n        } else {\r\n          this.chartData = [];\r\n          this.refreshingRequest = false;\r\n        }\r\n        if (this._widgetConfig?.formValue?.aggregation === 'sysobject.modified') {\r\n          this.chartData = res.aggregations.modified.buckets.map((e) => {\r\n            return {\r\n              group: e.key_as_string,\r\n              value: e.doc_count,\r\n            };\r\n          });\r\n        }\r\n        if (this._widgetConfig?.formValue?.aggregation === 'sysobject.created') {\r\n          this.chartData = res.aggregations.created.buckets.map((e) => {\r\n            return {\r\n              group: e.key_as_string,\r\n              value: e.doc_count,\r\n            };\r\n          });\r\n        }\r\n        if (this._widgetConfig?.formValue?.aggregation === 'sysdocument.mimetypegroup') {\r\n          this.chartData = res.aggregations.mimetypegroup.buckets.map((e) => {\r\n            return {\r\n              group: e.key,\r\n              value: e.doc_count,\r\n            };\r\n          });\r\n        }\r\n        if (this._widgetConfig?.formValue?.aggregation === 'sysobject.type') {\r\n          this.chartData = res.aggregations.type.buckets.map((e) => {\r\n            return {\r\n              group: this.systemService.getObjectType(e.key).label,\r\n              value: e.doc_count,\r\n            };\r\n          });\r\n        }\r\n        if (this._widgetConfig?.formValue?.aggregation === 'sysdocument.filesize') {\r\n          this.chartData = res.aggregations.filesize.buckets.map((e) => {\r\n            return {\r\n              group: e.key.replace('_', '-'),\r\n              value: e.doc_count,\r\n            };\r\n          });\r\n        }\r\n      },\r\n        () => {\r\n          this.chartData = [];\r\n          this.refreshingRequest = false;\r\n        });\r\n  }\r\n\r\n  setQueryToAppSearch() {\r\n    this.appSearchService.setQuery(this.storedQuery);\r\n    this.router.navigate([{outlets: {modal: 'search'}}]);\r\n  }\r\n\r\n  private setLegendDiagramm() {\r\n    this.sharedOptions.title = this.widgetConfig?.formValue.title;\r\n    this.sharedOptions.axes.bottom.title = this.widgetConfig?.formValue.xAxe;\r\n    this.sharedOptions.axes.left.title = this.widgetConfig?.formValue.yAxe;\r\n\r\n    this.lineCurveChartOption.title = this.widgetConfig?.formValue.title;\r\n    this.lineCurveChartOption.axes.bottom.title = this.widgetConfig?.formValue.xAxe;\r\n    this.lineCurveChartOption.axes.left.title = this.widgetConfig?.formValue.yAxe;\r\n\r\n    this.lineStraightChartOption.title = this.widgetConfig?.formValue.title;\r\n    this.lineStraightChartOption.axes.bottom.title = this.widgetConfig?.formValue.xAxe;\r\n    this.lineStraightChartOption.axes.left.title = this._widgetConfig?.formValue.yAxe;\r\n  }\r\n\r\n  refresh() {\r\n    this.getStoredQuery(this._widgetConfig.storedQuery).subscribe(() => {\r\n      this._query = this.searchService.buildQuery(this.storedQuery);\r\n      this._widgetConfig.formValue.storedQuery = this.storedQuery.name;\r\n      if (this._widgetConfig?.formValue?.aggregation) {\r\n        this.generateChartData(this._widgetConfig?.formValue?.aggregation, this._widgetConfig?.aggregationType,\r\n          this._widgetConfig?.formValue?.histogramType, this.rangeValues, this._widgetConfig?.formValue?.sortRevert,\r\n          this._widgetConfig?.formValue?.attributMetric, this._widgetConfig?.formValue?.metric,\r\n          this._widgetConfig?.formValue?.minDocCount,\r\n        );\r\n      }\r\n    }, (error) => {\r\n      this.chartData = [];\r\n      this.refreshingRequest = false;\r\n    });\r\n  }\r\n\r\n  onEmitQueryClick(event) {\r\n    delete this._query.fields;\r\n    const uriParam = encodeURIComponent(Utils.formDataStringify(this._query.getQueryJson()));\r\n    const uriParamQuery: NavigationExtras = {queryParams: {'query': uriParam}};\r\n    const queryParams = new URLSearchParams(uriParamQuery.queryParams).toString();\r\n    const url = window.location.href.split('/dashboard')[0] + '/result?' + queryParams;\r\n    window.open(url, event?.ctrlKey || this.editMode ? '_blank' : '_self');\r\n  }\r\n}\r\n","<header>\r\n  <div class=\"header-title\">\r\n    @if (widgetConfig?.formValue?.storedQuery) {\r\n      <div class=\"title\">{{ widgetConfig?.formValue?.storedQuery }}</div>\r\n      <div class=\"icons-title\">\r\n        <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\r\n                 (click)=\"setQueryToAppSearch()\"\r\n                 [iconTitle]=\"('eo.widget.hitlist.tooltip.savedSearchIcon'| translate)\"></eo-icon>\r\n        <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\r\n                 (click)=\"onEmitQueryClick($event)\"\r\n                 [iconTitle]=\"('eo.widget.hitlist.tooltip.openinresultlist'| translate)\"></eo-icon>\r\n        <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refresh()\"\r\n                 [iconTitle]=\"('eo.widget.hitlist.tooltip.refresh'| translate)\"></eo-icon>\r\n      </div>\r\n    }\r\n  </div>\r\n</header>\r\n\r\n@if (refreshingRequest) {\r\n  <main class=\"loader-overlay__mask\">\r\n    <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\r\n  </main>\r\n} @else if (chartData.length > 0 && !refreshingRequest) {\r\n  <main class=\"chart\">\r\n    <div class=\"item\">\r\n      @switch (widgetConfig!.formValue.chartType) {\r\n        @case ('bar') {\r\n          <ibm-simple-bar-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-simple-bar-chart>\r\n        }\r\n        @case ('pie') {\r\n          <ibm-pie-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-pie-chart>\r\n        }\r\n        @case ('donut') {\r\n          <ibm-donut-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-donut-chart>\r\n        }\r\n        @case ('lineStraight') {\r\n          <ibm-line-chart [data]=\"chartData\" [options]=\"lineStraightChartOption\"></ibm-line-chart>\r\n        }\r\n        @case ('lineCurve') {\r\n          <ibm-line-chart [data]=\"chartData\" [options]=\"lineCurveChartOption\"></ibm-line-chart>\r\n        }\r\n      }\r\n    </div>\r\n    @if (widgetConfig?.aggregationType === \"NUMBER\" && widgetConfig?.formValue?.aggregation !== 'sysdocument.filesize') {\r\n      <div class=\"minMax\" [translateParams]=\"{min: widgetConfig?.formValue?.minValue, max: widgetConfig?.formValue?.maxValue }\" translate>eo.workspace.widget.charts.minmax</div>\r\n    }\r\n  </main>\r\n} @else {\r\n  <div class=\"empty\">\r\n    <eo-error-message\r\n      [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\r\n  </div>\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {IWidgetComponent} from '@yuuvis/widget-grid';\r\nimport {Icharts} from '../icharts';\r\nimport {FormControlStatus, UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';\r\nimport {SearchQuery, SearchService, StoredQueriesService, StoredQuery, SystemService, TranslateService, UserService, Utils} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {EMPTY, debounceTime, tap} from 'rxjs';\r\nimport {CodesystemComponent} from '../../../../../eo-framework';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-charts-setup',\r\n  templateUrl: './charts-setup.component.html',\r\n  styleUrls: ['./charts-setup.component.scss']\r\n})\r\nexport class ChartsSetupComponent implements IWidgetComponent, OnInit {\r\n  private _widgetConfig: Icharts;\r\n  @Output() widgetConfigChange = new EventEmitter<Icharts>();\r\n  @Output() widgetConfigStateChange = new EventEmitter<FormControlStatus>();\r\n\r\n  storedQueries: StoredQuery[];\r\n  private _query: SearchQuery;\r\n  setupForm: UntypedFormGroup = this.fb.group({\r\n    storedQuery: [null, Validators.required],\r\n    chartType: [null, Validators.required],\r\n    size: [10, [Validators.max(100), Validators.min(3), Validators.required]],\r\n    aggregation: [null, Validators.required],\r\n    histogramType: [null],\r\n    attributMetric: [null],\r\n    metric: [null],\r\n    sortRevert: [false],\r\n    interval: [null],\r\n    startingpoint: [null],\r\n    minDocCount: [1],\r\n    title: ['', [Validators.maxLength(50)]],\r\n    xAxe: ['', [Validators.maxLength(50)]],\r\n    yAxe: ['', [Validators.maxLength(50)]],\r\n    minValue: [null],\r\n    maxValue: [null]\r\n  });\r\n\r\n  storedQueriesPicker = {\r\n    title: this.translate.instant('eo.workspace.widget.label.storedquery'),\r\n    codesystem: null,\r\n  };\r\n\r\n  aggregationPicker = {\r\n    title: this.translate.instant('eo.workspace.widget.form.label.aggregationField'),\r\n    codesystem: null,\r\n  };\r\n\r\n  chartTypePicker = {\r\n    title: this.translate.instant('eo.workspace.widget.form.label.chartTypeField'),\r\n    codesystem: null,\r\n  };\r\n\r\n  histogramTypePicker = {\r\n    title: this.translate.instant('eo.workspace.widget.form.label.histogram'),\r\n    codesystem: null,\r\n  };\r\n\r\n  attributMetricPicker = {\r\n    title: this.translate.instant('eo.workspace.widget.form.label.attributMetric'),\r\n    codesystem: null,\r\n  };\r\n\r\n  chartMetricPicker = {\r\n    title: this.translate.instant('eo.workspace.widget.form.label.chartMetric'),\r\n    codesystem: null,\r\n  };\r\n\r\n  isDateTimeType = false;\r\n  isNumberType = false;\r\n  selectedSavedSearchName = '';\r\n  selectedAggregationName = '';\r\n  storedQuery: StoredQuery;\r\n\r\n  @ViewChild('aggregationCodesystem') aggregationCodesystem: CodesystemComponent;\r\n\r\n  @Input() set widgetConfig(wc: Icharts) {\r\n    this._widgetConfig = wc;\r\n    this.updateField();\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(\r\n    private fb: UntypedFormBuilder,\r\n    private storedQueriesService: StoredQueriesService,\r\n    private translate: TranslateService,\r\n    private userService: UserService,\r\n    private system: SystemService,\r\n    private searchService: SearchService) {\r\n    this.setupForm.valueChanges.pipe(debounceTime(1000), untilDestroyed(this)).subscribe((_) => {\r\n      this.setWidgetConfig();\r\n    });\r\n    this.setupForm.statusChanges.pipe(untilDestroyed(this)).subscribe((v) => {\r\n      this.widgetConfigStateChange.emit(v);\r\n    });\r\n    this.getStoredQuerys();\r\n    this.getChartField();\r\n    this.getMetricCodesystem();\r\n  }\r\n\r\n  private setWidgetConfig() {\r\n    if (this.setupForm.valid && this.storedQueries) {\r\n      this.storedQuery = this.storedQueries.find((sq) => sq.name === this.setupForm.get('storedQuery').value);\r\n      this.widgetConfig = {\r\n        storedQuery: this.storedQuery?.id,\r\n        formValue: this.setupForm.value,\r\n        aggregationType: 'DATETIME'\r\n      };\r\n      if (this.setupForm.get('storedQuery').value !== this.selectedSavedSearchName) {\r\n        if (this.storedQuery) {\r\n          setTimeout(() => {\r\n            if (this.selectedSavedSearchName !== '') {\r\n              this.setupForm.patchValue({\r\n                aggregation: 'sysobject.created',\r\n              });\r\n            }\r\n            this.updateField();\r\n            this.selectedSavedSearchName = this.setupForm.get('storedQuery').value;\r\n            this.isDateTimeType = this.widgetConfig?.formValue.aggregation === 'sysobject.created' || this.widgetConfig?.aggregationType === 'DATETIME';\r\n            this.isNumberType = this.widgetConfig?.aggregationType === 'NUMBER';\r\n          }, 100);\r\n        }\r\n      } else {\r\n        this.widgetConfig.aggregationType = this.aggregationCodesystem?.selectedNodes?.data?.type;\r\n        this.isDateTimeType = this.widgetConfig?.aggregationType === 'DATETIME';\r\n        this.isNumberType = this.widgetConfig?.aggregationType === 'NUMBER';\r\n        if (this.setupForm.get('aggregation').value !== this.selectedAggregationName) {\r\n          this.selectedAggregationName = this.setupForm.get('aggregation').value;\r\n          if (this.isNumberType) {\r\n            this.getStartEndvalue();\r\n          }\r\n        }\r\n      }\r\n      this.widgetConfigChange.emit(this._widgetConfig);\r\n    }\r\n  }\r\n\r\n  getStartEndvalue() {\r\n    let field = this._widgetConfig?.formValue?.aggregation;\r\n    this._query = this.searchService.buildQuery(structuredClone(this.storedQuery));\r\n    delete this._query.name;\r\n    const queryMinMax = {\r\n      aggs: {\r\n        [field.replace('sysobject.', '')]: {\r\n          metrics: ['min', 'max']\r\n        }\r\n      },\r\n      ...this._query.getQueryJson()\r\n    };\r\n    this.searchService.executeQuery(queryMinMax, true).subscribe((res) => {\r\n      let min = res.aggregations['min#' + field.replace('sysobject.', '') + '_min'].value;\r\n      let max = res.aggregations['max#' + field.replace('sysobject.', '') + '_max'].value;\r\n      this.setupForm.patchValue({\r\n        minValue: min,\r\n        maxValue: max,\r\n      });\r\n      let size = 10;\r\n      min = Math.floor(min);\r\n      max = Math.ceil(max);\r\n      let interval = (max - min) / size;\r\n      let intervalRound = 0;\r\n      if (interval < 10) {\r\n        intervalRound = 1;\r\n      } else {\r\n        const digits = Math.floor(Math.log10(interval)) + 1;\r\n        const divisor = Math.pow(10, digits - 1);\r\n        intervalRound = Math.ceil(interval / divisor) * divisor;\r\n      }\r\n      min = min && Math.round(Math.floor(min / intervalRound) * intervalRound);\r\n      max = max && Math.round(Math.ceil(max / intervalRound) * intervalRound);\r\n      this.setupForm.patchValue({\r\n        interval: intervalRound,\r\n        startingpoint: min,\r\n      });\r\n    });\r\n  }\r\n\r\n  getStoredQuerys() {\r\n    this.storedQueriesService\r\n      .fetchStoredQueries().pipe(\r\n        untilDestroyed(this),\r\n      ).subscribe(storedQueries => {\r\n        this.storedQueries = storedQueries;\r\n        this.storedQueriesPicker.codesystem = {\r\n          entries: this.storedQueries.map(storedQuery => ({\r\n            id: storedQuery.id,\r\n            label: storedQuery.name,\r\n            defaultrepresentation: storedQuery.name,\r\n            data: storedQuery.name\r\n          })).sort(Utils.sortValues('label')),\r\n        };\r\n      });\r\n  }\r\n\r\n  getStoredQuery(id: string) {\r\n    return this.storedQueriesService.getStoredQuery(id).pipe(\r\n      untilDestroyed(this),\r\n      tap(storedQuery => {\r\n        this.storedQuery = storedQuery;\r\n      })\r\n    );\r\n  }\r\n\r\n  updateField() {\r\n    setTimeout(() => {\r\n      const type = this.storedQuery?.types?.length === 1 ? this.storedQuery?.types[0]?.qname : 'sysdocument';\r\n      this.getHistogramField();\r\n      this.getAggregationField(type);\r\n      this.getAttributMetricCodesystem(type);\r\n    }, 100);\r\n  }\r\n\r\n  getAggregationField(type) {\r\n    this.aggregationPicker.codesystem = null;\r\n    return this.userService.getFieldDefinition(type).pipe(untilDestroyed(this)).subscribe(definition => {\r\n      let exclude = new Set(['filename', 'mimetype', 'modifiertitle', 'version', 'creatortitle', 'title', 'description']);\r\n      if (type !== 'sysdocument') {\r\n        exclude.add('type');\r\n      }\r\n      let filteredFields = definition.elements.filter(field => !exclude.has(field.hitname));\r\n      if (this.widgetConfig?.formValue?.chartType === 'lineCurve' || this.widgetConfig?.formValue?.chartType === 'lineStraight') {\r\n        filteredFields = filteredFields.filter(field => field.type === 'DATETIME' || field.type === 'NUMBER');\r\n      }\r\n      this.aggregationPicker.codesystem = {\r\n        entries: filteredFields.map(field => {\r\n          let label = filteredFields.filter(item => item.label === field.label).length > 1\r\n            ? field.label + ' (' + this.system.getObjectType(field.qname.split('.')[0]).label + ')'\r\n            : field.label;\r\n          return {\r\n            id: field.qname,\r\n            defaultrepresentation: label,\r\n            data: field.qname,\r\n            type: field.type\r\n          };\r\n        }).sort(Utils.sortValues('defaultrepresentation')),\r\n      };\r\n    });\r\n  }\r\n\r\n  getMetricCodesystem() {\r\n    return this.chartMetricPicker.codesystem = {\r\n      entries: [\r\n        {\r\n          id: 'min',\r\n          defaultrepresentation: this.translate.instant(\r\n            'eo.workspace.widget.charts.metric.min'),\r\n          label: this.translate.instant(\r\n            'eo.workspace.widget.charts.metric.min'\r\n          ),\r\n          value: 'min',\r\n        },\r\n        {\r\n          id: 'avg',\r\n          defaultrepresentation: this.translate.instant(\r\n            'eo.workspace.widget.charts.metric.avg'),\r\n          label: this.translate.instant(\r\n            'eo.workspace.widget.charts.metric.avg'\r\n          ),\r\n          value: 'avg',\r\n        },\r\n        {\r\n          id: 'max',\r\n          defaultrepresentation: this.translate.instant(\r\n            'eo.workspace.widget.charts.metric.max'\r\n          ),\r\n          label: this.translate.instant(\r\n            'eo.workspace.widget.charts.metric.max'\r\n          ),\r\n          value: 'max',\r\n        },\r\n        {\r\n          id: 'median',\r\n          defaultrepresentation: this.translate.instant(\r\n            'eo.workspace.widget.charts.metric.median'\r\n          ),\r\n          label: this.translate.instant(\r\n            'eo.workspace.widget.charts.metric.median'\r\n          ),\r\n          value: 'median',\r\n        },\r\n        {\r\n          id: 'sum',\r\n          defaultrepresentation: this.translate.instant(\r\n            'eo.workspace.widget.charts.metric.sum'\r\n          ),\r\n          label: this.translate.instant(\r\n            'eo.workspace.widget.charts.metric.sum'\r\n          ),\r\n          value: 'sum',\r\n        }\r\n      ].map((res) => ({\r\n        id: res.id,\r\n        label: res.label,\r\n        defaultrepresentation: res.defaultrepresentation,\r\n        data: res.value\r\n      })).sort(Utils.sortValues('defaultrepresentation')),\r\n    };\r\n  }\r\n\r\n  getChartField() {\r\n    return this.chartTypePicker.codesystem = {\r\n      entries: [\r\n        {\r\n          id: 'bar',\r\n          defaultrepresentation: this.translate.instant(\r\n            'eo.workspace.widget.charts.type.bar'),\r\n          label: this.translate.instant(\r\n            'eo.workspace.widget.charts.type.bar'\r\n          ),\r\n          value: 'bar',\r\n        },\r\n        {\r\n          id: 'pie',\r\n          defaultrepresentation: this.translate.instant(\r\n            'eo.workspace.widget.charts.type.pie'),\r\n          label: this.translate.instant(\r\n            'eo.workspace.widget.charts.type.pie'\r\n          ),\r\n          value: 'pie',\r\n        },\r\n        {\r\n          id: 'donut',\r\n          defaultrepresentation: this.translate.instant(\r\n            'eo.workspace.widget.charts.type.donut'\r\n          ),\r\n          label: this.translate.instant(\r\n            'eo.workspace.widget.charts.type.donut'\r\n          ),\r\n          value: 'donut',\r\n        },\r\n        {\r\n          id: 'lineStraight',\r\n          defaultrepresentation: this.translate.instant(\r\n            'eo.workspace.widget.charts.type.lineStraight'\r\n          ),\r\n          label: this.translate.instant(\r\n            'eo.workspace.widget.charts.type.lineStraight'\r\n          ),\r\n          value: 'lineStraight',\r\n        },\r\n        {\r\n          id: 'lineCurve',\r\n          defaultrepresentation: this.translate.instant(\r\n            'eo.workspace.widget.charts.type.lineCurve'\r\n          ),\r\n          label: this.translate.instant(\r\n            'eo.workspace.widget.charts.type.lineCurve'\r\n          ),\r\n          value: 'lineCurve',\r\n        }\r\n      ].map((res) => ({\r\n        id: res.id,\r\n        label: res.label,\r\n        defaultrepresentation: res.defaultrepresentation,\r\n        data: res.value\r\n      })).sort(Utils.sortValues('defaultrepresentation')),\r\n    };\r\n  }\r\n\r\n  getHistogramField() {\r\n    let entries = [\r\n      {\r\n        id: 'daily',\r\n        defaultrepresentation: this.translate.instant(\r\n          'eo.workspace.widget.charts.histogram.daily'\r\n        ),\r\n        label: this.translate.instant(\r\n          'eo.workspace.widget.charts.histogram.daily'\r\n        ),\r\n        value: 'daily'\r\n      },\r\n      {\r\n        id: 'weekly',\r\n        defaultrepresentation: this.translate.instant(\r\n          'eo.workspace.widget.charts.histogram.weekly'\r\n        ),\r\n        label: this.translate.instant(\r\n          'eo.workspace.widget.charts.histogram.weekly'\r\n        ),\r\n        value: 'weekly'\r\n      },\r\n      {\r\n        id: 'monthly',\r\n        defaultrepresentation: this.translate.instant(\r\n          'eo.workspace.widget.charts.histogram.monthly'),\r\n        label: this.translate.instant(\r\n          'eo.workspace.widget.charts.histogram.monthly'\r\n        ),\r\n        value: 'monthly'\r\n      },\r\n      {\r\n        id: 'yearly',\r\n        defaultrepresentation: this.translate.instant(\r\n          'eo.workspace.widget.charts.histogram.yearly'),\r\n        label: this.translate.instant(\r\n          'eo.workspace.widget.charts.histogram.yearly'\r\n        ),\r\n        value: 'yearly'\r\n      }\r\n    ];\r\n    return this.histogramTypePicker.codesystem = {\r\n      entries: entries.map((res) => ({\r\n        id: res.id,\r\n        label: res.label,\r\n        defaultrepresentation: res.defaultrepresentation,\r\n        data: res.value\r\n      })),\r\n    };\r\n  }\r\n\r\n  getAttributMetricCodesystem(type) {\r\n    return this.userService.getFieldDefinition(type).pipe(untilDestroyed(this)).subscribe(definition => {\r\n      let exclude = new Set(['filename', 'mimetype', 'modifiertitle', 'version', 'creatortitle', 'title', 'description']);\r\n      if (type !== 'sysdocument') {\r\n        exclude.add('type');\r\n      }      \r\n      let filteredFields = definition.elements.filter(field => !exclude.has(field.hitname));\r\n      filteredFields = filteredFields.filter(field => field.type === 'NUMBER');\r\n      this.attributMetricPicker.codesystem = {\r\n        entries: filteredFields.map(field => {\r\n          let label = filteredFields.filter(item => item.label === field.label).length > 1\r\n            ? field.label + ' (' + this.system.getObjectType(field.qname.split('.')[0]).label + ')'\r\n            : field.label;\r\n          return {\r\n            id: field.qname,\r\n            defaultrepresentation: label,\r\n            data: field.qname,\r\n            type: field.type\r\n          };\r\n        }).sort(Utils.sortValues('defaultrepresentation')),\r\n      };\r\n    });\r\n  }\r\n\r\n  private getInitialFormValues() {\r\n    return {\r\n      chartType: this._widgetConfig?.formValue?.chartType || 'pie',\r\n      size: this._widgetConfig?.formValue?.size || 10,\r\n      aggregation: this._widgetConfig?.formValue?.aggregation || 'sysobject.created',\r\n      histogramType: this._widgetConfig?.formValue?.histogramType || 'monthly',\r\n      attributMetric: this._widgetConfig?.formValue?.attributMetric || '',\r\n      metric: this._widgetConfig?.formValue?.metric || 'sum',\r\n      sortRevert: this._widgetConfig?.formValue?.sortRevert || '',\r\n      interval: this._widgetConfig?.formValue?.interval || 1000,\r\n      startingpoint: this._widgetConfig?.formValue?.startingpoint || 0,\r\n      min_doc_count: this._widgetConfig?.formValue?.minDocCount || 1,\r\n      title: this._widgetConfig?.formValue?.title || '',\r\n      xAxe: this._widgetConfig?.formValue?.xAxe || '',\r\n      yAxe: this._widgetConfig?.formValue?.yAxe || '',\r\n    };\r\n  }\r\n\r\n  private updateTypeFlags() {\r\n    setTimeout(() => {\r\n      this.isDateTimeType = this.widgetConfig?.formValue.aggregation === 'sysobject.created' || this.widgetConfig?.aggregationType === 'DATETIME';\r\n      this.isNumberType = this.widgetConfig?.aggregationType === 'NUMBER';\r\n    }, 100);\r\n  }\r\n\r\n  private storedQuerySubscription(): void {\r\n    this.getStoredQuery(this._widgetConfig?.storedQuery).subscribe(() => {\r\n      this.setupForm.patchValue({\r\n        storedQuery: this.storedQuery ? this.storedQuery.name : '',\r\n        ...this.getInitialFormValues(),\r\n      });\r\n      if (this.storedQuery) {\r\n        this.selectedSavedSearchName = this.setupForm.get('storedQuery').value;\r\n        this.setupForm.patchValue({\r\n          aggregation: this._widgetConfig?.formValue?.aggregation || 'sysobject.created',\r\n          attributMetric: this._widgetConfig?.formValue?.attributMetric || '',\r\n        });\r\n        this.updateTypeFlags();\r\n        this.updateField();\r\n\r\n      }\r\n    }, (error) => {\r\n      this.queryError(error);\r\n    });\r\n  }\r\n\r\n  private queryError(error: any) {\r\n    this.isDateTimeType = false;\r\n    this.isNumberType = false;\r\n    this._widgetConfig.aggregationType = null;\r\n    if (error.status === 404) {\r\n      this.setupForm.patchValue({\r\n        ...this.getInitialFormValues(),\r\n      });\r\n      return EMPTY;\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (this._widgetConfig?.storedQuery) {\r\n      this.storedQuerySubscription();\r\n    } else {\r\n      this.setupForm.patchValue({\r\n        ...this.getInitialFormValues(),\r\n      });\r\n    }\r\n  }\r\n}\r\n","<div class=\"setup\">\r\n  <form [formGroup]=\"setupForm\">\r\n    <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\r\n                   [label]=\"'eo.workspace.widget.form.label.chartTypeField' | translate\"\r\n                   [invalid]=\"setupForm.dirty && setupForm.get('chartType').invalid\">\r\n      <eo-codesystem formControlName=\"chartType\" [pickerTitle]=\"chartTypePicker.title\"\r\n                     [codesystem]=\"chartTypePicker.codesystem\"></eo-codesystem>\r\n    </eo-form-input>\r\n    @if (setupForm.dirty && setupForm.get('chartType').hasError('required')) {\r\n      <div class=\"err-msg\" translate>\r\n        eo.form.property.required\r\n      </div>\r\n    }\r\n\r\n    @if (storedQueriesPicker?.codesystem?.entries) {\r\n      <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\r\n                     [label]=\"'eo.workspace.widget.label.storedquery' | translate\"\r\n                     [description]=\"'eo.workspace.widget.stored.queries.description'\"\r\n                     [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\r\n        <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\r\n                       [codesystem]=\"storedQueriesPicker.codesystem\"\r\n                       [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\r\n      </eo-form-input>\r\n      @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\r\n        <div class=\"err-msg\" translate>\r\n          eo.form.property.required\r\n        </div>\r\n      }\r\n    }\r\n\r\n    @if (aggregationPicker?.codesystem?.entries && this.setupForm.get('storedQuery').valid) {\r\n      <eo-form-input [required]=\"true\" [skipToggle]=\"true\"\r\n                     [label]=\"'eo.workspace.widget.form.label.aggregationField' | translate\"\r\n                     [invalid]=\"setupForm.dirty && setupForm.get('aggregation').invalid\">\r\n        <eo-codesystem #aggregationCodesystem formControlName=\"aggregation\" [pickerTitle]=\"aggregationPicker.title\"\r\n                       [codesystem]=\"aggregationPicker.codesystem\"></eo-codesystem>\r\n      </eo-form-input>\r\n      @if (setupForm.dirty && setupForm.get('aggregation').hasError('required')) {\r\n        <div class=\"err-msg\" translate>\r\n          eo.form.property.required\r\n        </div>\r\n      }\r\n    }\r\n\r\n    <eo-form-input [required]=\"true\"\r\n        [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.partialValue' | translate\"\r\n        [invalid]=\"setupForm.dirty && setupForm.get('size').invalid\">\r\n      <eo-number [scale]=\"0\" formControlName=\"size\"></eo-number>\r\n    </eo-form-input>\r\n\r\n    @if (setupForm.dirty && setupForm.get('size').invalid) {\r\n      <div class=\"err-msg\" translate [translateParams]=\"{min: 3, max: 100}\">\r\n        @if (setupForm.get('size').hasError('required')) {\r\n          eo.form.property.required\r\n        } @else if (setupForm.get('size').hasError('max') || setupForm.get('size').hasError('min')) {\r\n          eo.form.property.string.error.classification.partialValue\r\n        }\r\n      </div>\r\n    }\r\n\r\n    @if (isDateTimeType) {\r\n      <eo-form-input [skipToggle]=\"true\"\r\n                     [label]=\"'eo.workspace.widget.form.label.histogram' | translate\"\r\n                     [invalid]=\"setupForm.dirty && setupForm.get('histogramType').invalid\"\r\n                     [description]=\" setupForm.get('histogramType').value ? '': 'eo.workspace.widget.histogram.description'\">\r\n        <eo-codesystem formControlName=\"histogramType\" [pickerTitle]=\"histogramTypePicker.title\"\r\n                       [codesystem]=\"histogramTypePicker.codesystem\"></eo-codesystem>\r\n      </eo-form-input>\r\n    }\r\n    @if (widgetConfig?.formValue?.aggregation && !isDateTimeType && !isNumberType) {\r\n      @if (widgetConfig.formValue.chartType === 'bar') {\r\n        <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.sortRevert'|translate\"\r\n                       [skipToggle]=\"true\">\r\n          <eo-checkbox formControlName=\"sortRevert\" [tristate]=\"false\"></eo-checkbox>\r\n        </eo-form-input>\r\n      }\r\n      @if (widgetConfig.formValue.chartType === 'bar' || widgetConfig.formValue.chartType === 'pie' || widgetConfig.formValue.chartType === 'ring' && !widgetConfig?.formValue?.attributMetric && !isNumberType) {\r\n        <eo-form-input class=\"threshold-success\" [skipToggle]=\"true\"\r\n                       [label]=\"'eo.workspace.widget.form.label.minDocCount' | translate\">\r\n          <eo-number [scale]=\"0\" formControlName=\"minDocCount\">\r\n          </eo-number>\r\n        </eo-form-input>\r\n      }\r\n    }\r\n\r\n    @if (isNumberType) {\r\n      <eo-form-input [skipToggle]=\"true\"\r\n                     [label]=\"'eo.workspace.widget.charts.interval' | translate\"\r\n                     [invalid]=\"setupForm.dirty && setupForm.get('interval').invalid\">\r\n        <eo-number [scale]=\"0\" formControlName=\"interval\"></eo-number>\r\n      </eo-form-input>\r\n\r\n      <eo-form-input [skipToggle]=\"true\"\r\n                     [label]=\"'eo.workspace.widget.charts.startingpoint' | translate\"\r\n                     [invalid]=\"setupForm.dirty && setupForm.get('startingpoint').invalid\">\r\n        <eo-number [scale]=\"0\" formControlName=\"startingpoint\"></eo-number>\r\n      </eo-form-input>\r\n    }\r\n    @if (widgetConfig?.formValue?.chartType === 'bar' && attributMetricPicker?.codesystem?.entries && this.setupForm.get('storedQuery').valid && !isNumberType && !isDateTimeType) {\r\n      <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.label.attributMetric' | translate\">\r\n        <eo-codesystem formControlName=\"attributMetric\" [pickerTitle]=\"attributMetricPicker.title\"\r\n                       [codesystem]=\"attributMetricPicker.codesystem\"></eo-codesystem>\r\n      </eo-form-input>\r\n\r\n      @if (widgetConfig?.formValue?.chartType === 'bar' && widgetConfig?.formValue?.attributMetric) {\r\n        <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.workspace.widget.form.label.chartMetric' | translate\">\r\n          <eo-codesystem formControlName=\"metric\" [pickerTitle]=\"chartMetricPicker.title\"\r\n                         [codesystem]=\"chartMetricPicker.codesystem\"></eo-codesystem>\r\n        </eo-form-input>\r\n      }\r\n    }\r\n\r\n    @if (widgetConfig?.formValue?.chartType) {\r\n      <div class=\"propertyPicker\">\r\n        <eo-form-input tabindex=\"0\"\r\n                       [label]=\"'eo.workspace.widget.charts.title' | translate\"\r\n                       [skipToggle]=\"true\"\r\n                       [invalid]=\"setupForm.dirty && setupForm.get('title').invalid\">\r\n          <eo-string autocomplete=\"true\" formControlName=\"title\"></eo-string>\r\n        </eo-form-input>\r\n        @if (setupForm.dirty && setupForm.get('title').invalid) {\r\n          <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\r\n        }\r\n        @if (widgetConfig?.formValue?.chartType !== 'pie' && widgetConfig?.formValue?.chartType !== 'donut') {\r\n          <eo-form-input tabindex=\"0\"\r\n                         [label]=\"'eo.workspace.widget.charts.xAxe' | translate\"\r\n                         [skipToggle]=\"true\"\r\n                         [invalid]=\"setupForm.dirty && setupForm.get('xAxe').invalid\">\r\n            <eo-string autocomplete=\"true\" formControlName=\"xAxe\"></eo-string>\r\n          </eo-form-input>\r\n          @if (setupForm.dirty && setupForm.get('xAxe').invalid) {\r\n            <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\r\n          }\r\n          <eo-form-input tabindex=\"0\"\r\n                         [label]=\"'eo.workspace.widget.charts.yAxe' | translate\"\r\n                         [skipToggle]=\"true\"\r\n                         [invalid]=\"setupForm.dirty && setupForm.get('yAxe').invalid\">\r\n            <eo-string autocomplete=\"true\" formControlName=\"yAxe\"></eo-string>\r\n          </eo-form-input>\r\n          @if (setupForm.dirty && setupForm.get('yAxe').invalid) {\r\n            <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\r\n          }\r\n        }\r\n      </div>\r\n    }\r\n  </form>\r\n</div>\r\n\r\n@if (setupForm.valid) {\r\n  <div class=\"preview\">\r\n    <eo-charts-widget [widgetConfig]=\"widgetConfig\" [editMode]=\"true\"></eo-charts-widget>\r\n  </div>\r\n} @else {\r\n  <div class=\"empty\">\r\n    <eo-error-message\r\n      [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\r\n  </div>\r\n}\r\n","import {Component, ElementRef, Input} from '@angular/core';\r\nimport {IWidgetComponent} from '@yuuvis/widget-grid';\r\nimport {CountObjectsConfig, HitlistCountTileResult} from './count-objects.model';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {SearchQuery, StoredQuery, SearchService, StoredQueriesService, SystemService, Utils} from '@eo-sdk/core';\r\nimport {tap, map, EMPTY, switchMap} from 'rxjs';\r\nimport {NavigationExtras} from '@angular/router';\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-count-objects-widget',\r\n  templateUrl: './count-objects-widget.component.html',\r\n  styleUrls: ['./count-objects-widget.component.scss']\r\n})\r\nexport class CountObjectsWidgetComponent implements IWidgetComponent {\r\n\r\n  private _query: SearchQuery;\r\n  refreshingRequest: boolean;\r\n  countTileResult: HitlistCountTileResult;\r\n  private _widgetConfig: CountObjectsConfig;\r\n  storedQuery: StoredQuery;\r\n  hitlistResult: any;\r\n  defaultIconId = '852786D8DA774B3487C5C63D5DEE6628';\r\n\r\n  set countTileClass(c: string) {\r\n    setTimeout(() => {\r\n      if (this.elRef.nativeElement.children[0].children[0].classList.contains('clr') && c?.length) {\r\n        this.elRef.nativeElement.children[0].children[0].classList.add(c);\r\n      }\r\n    }, 500);\r\n  }\r\n\r\n  constructor(\r\n    private elRef: ElementRef,\r\n    private searchService: SearchService,\r\n    private systemService: SystemService,\r\n    private storedQueriesService: StoredQueriesService\r\n  ) { }\r\n\r\n  @Input() set widgetConfig(c: CountObjectsConfig) {\r\n    this._widgetConfig = c;\r\n    if (this._widgetConfig?.storedQuery) {\r\n      this.getStoredQuery(this._widgetConfig.storedQuery).subscribe(() => {\r\n        this._query = this.searchService.buildQuery(this.storedQuery);\r\n        this._widgetConfig.formValue.storedQuery = this.storedQuery.name;\r\n        this.executeQuery();\r\n      }, (error) => {\r\n        if (error.status === 404) {\r\n          return EMPTY;\r\n        }\r\n        throw error;\r\n      });\r\n    }\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  get isVisible(): boolean {\r\n    return this.hitlistResult?.length > 0 || !this._widgetConfig?.formValue?.showZero;\r\n  }\r\n\r\n  getStoredQuery(id: string) {\r\n    return this.storedQueriesService.getStoredQuery(id).pipe(\r\n      untilDestroyed(this),\r\n      tap(storedQuery => {\r\n        this.storedQuery = storedQuery;\r\n      })\r\n    );\r\n  }\r\n\r\n  private executeQuery() {\r\n    this.refreshingRequest = true;\r\n    let count = new Map();\r\n    this._query = this.searchService.buildQuery(this._query);\r\n    const queryName = this._query.name;\r\n    delete this._query.name;\r\n    this.searchService\r\n      .executeQuery(this._query.getQueryJson(), false)\r\n      .pipe(map(result => {\r\n        const hasMultipleTypes = result.config.type.name === 'sysobject';\r\n        return result.hits.hits.map(hit => {\r\n          hit._source.type = hasMultipleTypes ? 'sysobject' : hit._source.type;\r\n          return {\r\n            'type': this.systemService.getObjectType(hit._source.type)\r\n          };\r\n        });\r\n      }), switchMap(hits => {\r\n        this.hitlistResult = hits;\r\n        this._query.name = queryName;\r\n        return this.searchService.getSearchState({aggs: {type: {}}, ...this._query.getQueryJson()})\r\n          .pipe(map(state => {\r\n            return count = state.aggregations.type;\r\n          }));\r\n      }))\r\n      .subscribe(() => {\r\n        this.refreshingRequest = false;\r\n        this.countTileResult = {count: Array.from(count.values()).reduce((acc, value) => acc + value, 0)};\r\n        this.setCountTileThresholdClass();\r\n      },\r\n        (error) => {\r\n          this.hitlistResult = null;\r\n          this.refreshingRequest = false;\r\n        });\r\n  }\r\n\r\n  private setCountTileThresholdClass(): void {\r\n    this.countTileClass = '';\r\n    // success threshold set\r\n    if (\r\n      this.meetsThreshold(this._widgetConfig.formValue.countTileSuccessThreshold)\r\n    ) {\r\n      this.countTileClass = 'success';\r\n    }\r\n    // warning threshold set\r\n    if (\r\n      this.meetsThreshold(this._widgetConfig.formValue.countTileWarningThreshold)\r\n    ) {\r\n      this.countTileClass = 'warning';\r\n    }\r\n    // error threshold set\r\n    if (this.meetsThreshold(this._widgetConfig.formValue.countTileErrorThreshold)) {\r\n      this.countTileClass = 'error';\r\n    }\r\n  }\r\n\r\n  private meetsThreshold(threshold: number): boolean {\r\n    if (!this.countTileResult?.count || threshold === null || threshold === undefined) {\r\n      return false;\r\n    }\r\n    return this._widgetConfig?.formValue.countTileThresholdInvert\r\n      ? this.countTileResult.count >= threshold\r\n      : this.countTileResult.count <= threshold;\r\n  }\r\n\r\n  onEmitQueryClick() {\r\n    delete this._query.fields;\r\n    const uriParam = encodeURIComponent(Utils.formDataStringify(this._query.getQueryJson()));\r\n    const uriParamQuery: NavigationExtras = {queryParams: {'query': uriParam}};\r\n    const queryParams = new URLSearchParams(uriParamQuery.queryParams).toString();\r\n    const url = window.location.href.split('/dashboard')[0] + '/result?' + queryParams;\r\n    window.open(url);\r\n  }\r\n}\r\n","@if (hitlistResult && !refreshingRequest) {\r\n  <a class=\"info\" [ngClass]=\"{visible: isVisible, disabled: hitlistResult[0]?.type}\"\r\n     (click)=\"onEmitQueryClick()\">\r\n    <div class=\"clr\">\r\n      @if (hitlistResult[0]?.type) {\r\n        <eo-icon [objectType]=\"hitlistResult[0]?.type\"></eo-icon>\r\n      } @else {\r\n        <eo-icon [iconId]=\"defaultIconId\"></eo-icon>\r\n      }\r\n      <div class=\"count\">{{ countTileResult?.count }}</div>\r\n    </div>\r\n    <div class=\"msg\">{{ widgetConfig?.formValue.storedQuery }}</div>\r\n  </a>\r\n} @else if (refreshingRequest) {\r\n  <main class=\"loader-overlay__mask\">\r\n    <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\r\n  </main>\r\n} @else {\r\n  <div class=\"empty\">\r\n    <eo-error-message\r\n      [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\r\n  </div>\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {IWidgetComponent} from '@yuuvis/widget-grid';\r\nimport {CountObjectsConfig} from '../count-objects.model';\r\nimport {FormControlStatus, UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {StoredQueriesService, StoredQuery, Utils} from '@eo-sdk/core';\r\nimport {EMPTY, catchError, tap} from 'rxjs';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-count-objects-setup',\r\n  templateUrl: './count-objects-setup.component.html',\r\n  styleUrls: ['./count-objects-setup.component.scss']\r\n})\r\nexport class CountObjectsSetupComponent implements IWidgetComponent, OnInit {\r\n\r\n  private _widgetConfig: CountObjectsConfig;\r\n  @Output() widgetConfigChange = new EventEmitter<CountObjectsConfig>();\r\n  @Output() widgetConfigStateChange = new EventEmitter<FormControlStatus>();\r\n  storedQueries: StoredQuery[];\r\n\r\n  setupForm: UntypedFormGroup = this.fb.group({\r\n    storedQuery: [null, Validators.required],\r\n    size: [],\r\n    countTileSuccessThreshold: [],\r\n    countTileWarningThreshold: [],\r\n    countTileErrorThreshold: [],\r\n    countTileThresholdInvert: [false],\r\n    showZero: [true]\r\n  });\r\n\r\n  countTileThresholdDesc = this.translate.instant('eo.widget.hitcount.form.desc.threshold');\r\n\r\n  storedQueriesPicker = {\r\n    title: this.translate.instant('eo.workspace.widget.label.storedquery'),\r\n    codesystem: null,\r\n    value: null,\r\n    parameter: null,\r\n    types: null\r\n  };\r\n  selectedSavedSearchName = '';\r\n  storedQuery: StoredQuery;\r\n\r\n  @Input() set widgetConfig(c: CountObjectsConfig) {\r\n    this._widgetConfig = c;\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(\r\n    private fb: UntypedFormBuilder,\r\n    private translate: TranslateService,\r\n    private storedQueriesService: StoredQueriesService,\r\n  ) {\r\n    this.setupForm.valueChanges.pipe(untilDestroyed(this)).subscribe((_) => {\r\n      this.setWidgetConfig();\r\n    });\r\n    this.setupForm.statusChanges.pipe(untilDestroyed(this)).subscribe((v) => {\r\n      this.widgetConfigStateChange.emit(v);\r\n    });\r\n    this.getStoredQuerys();\r\n  }\r\n\r\n  private setWidgetConfig() {\r\n    this.countTileThresholdDesc = this.setupForm.value.countTileThresholdInvert ?\r\n    this.translate.instant('eo.widget.hitcount.form.desc.threshold') :\r\n    this.translate.instant('eo.widget.hitcount.form.desc.threshold.inverted');\r\n    if (this.setupForm.valid && this.storedQueries) {\r\n      this.storedQuery = this.storedQueries.find((sq) => sq.name === this.setupForm.get('storedQuery').value);\r\n      this.widgetConfig = {\r\n        storedQuery: this.storedQuery?.id,\r\n        formValue: this.setupForm.value,\r\n      };\r\n      if (this.setupForm.get('storedQuery').value !== this.selectedSavedSearchName) {\r\n        this.selectedSavedSearchName = this.setupForm.get('storedQuery').value;\r\n      }\r\n      this.widgetConfigChange.emit(this._widgetConfig);\r\n    }\r\n  }\r\n\r\n  getStoredQuerys() {\r\n    this.storedQueriesService\r\n      .fetchStoredQueries().pipe(\r\n        untilDestroyed(this),\r\n      ).subscribe(storedQueries => {\r\n        this.storedQueries = storedQueries;\r\n        this.storedQueriesPicker.codesystem = {\r\n          entries: this.storedQueries.map(storedQuery => ({\r\n            id: storedQuery.id,\r\n            label: storedQuery.name,\r\n            defaultrepresentation: storedQuery.name,\r\n            data: storedQuery.name\r\n          })).sort(Utils.sortValues('label')),\r\n        };\r\n      });\r\n  }\r\n\r\n  getStoredQuery(id: string) {\r\n    return this.storedQueriesService.getStoredQuery(id).pipe(\r\n      untilDestroyed(this),\r\n      tap(storedQuery => {\r\n        this.storedQuery = storedQuery;\r\n      })\r\n    );\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this._widgetConfig?.storedQuery) {\r\n      this.getStoredQuery(this._widgetConfig?.storedQuery).pipe(\r\n        catchError(error => {\r\n          if (error.status === 404) {\r\n            this.setupForm.patchValue({\r\n              storedQuery: '',\r\n            });\r\n            return EMPTY;\r\n          }\r\n          throw error;\r\n        }\r\n        )).subscribe(() => {\r\n          this.setupForm.patchValue({\r\n            storedQuery: this.storedQuery ? this.storedQuery.name : '',\r\n            countTileSuccessThreshold: this._widgetConfig?.formValue.countTileSuccessThreshold ? this._widgetConfig?.formValue.countTileSuccessThreshold : '',\r\n            countTileWarningThreshold: this._widgetConfig?.formValue.countTileWarningThreshold ? this._widgetConfig?.formValue.countTileWarningThreshold : '',\r\n            countTileErrorThreshold: this._widgetConfig?.formValue.countTileErrorThreshold ? this._widgetConfig?.formValue.countTileErrorThreshold : '',\r\n            showZero: this._widgetConfig?.formValue?.showZero ? this._widgetConfig?.formValue?.showZero : '',\r\n          });\r\n        });\r\n    }\r\n  }\r\n}\r\n","<div class=\"setup\">\r\n  <form [formGroup]=\"setupForm\">\r\n    @if (storedQueriesPicker?.codesystem?.entries) {\r\n      <eo-form-input [skipToggle]=\"true\"\r\n                     [label]=\"'eo.workspace.widget.label.storedquery' | translate\" [required]=\"true\"\r\n                     [description]=\"'eo.workspace.widget.stored.queries.description'\"\r\n                     [invalid]=\"setupForm.dirty && setupForm.get('storedQuery').invalid\">\r\n        <eo-codesystem formControlName=\"storedQuery\" [pickerTitle]=\"storedQueriesPicker.title\"\r\n                       [codesystem]=\"storedQueriesPicker.codesystem\"\r\n                       [emptyMessage]=\"'eo.workspace.widget.stored.queries.list.notAvailable'\"></eo-codesystem>\r\n      </eo-form-input>\r\n      @if (setupForm.dirty && setupForm.get('storedQuery').hasError('required')) {\r\n        <div class=\"err-msg\" translate>\r\n          eo.form.property.required\r\n        </div>\r\n      }\r\n    }\r\n\r\n    @if(widgetConfig?.storedQuery){\r\n\r\n      <eo-form-input class=\"label checkbox\" [skipToggle]=\"true\"\r\n                      [label]=\"'eo.widget.hitcount.form.label.showZero' | translate\">\r\n        <eo-checkbox formControlName=\"showZero\">\r\n        </eo-checkbox>\r\n      </eo-form-input>\r\n    \r\n      <eo-form-input class=\"label checkbox\" [skipToggle]=\"true\"\r\n                     [label]=\"'eo.widget.hitcount.form.label.countTileThresholdInvert' | translate\">\r\n        <eo-checkbox formControlName=\"countTileThresholdInvert\">\r\n        </eo-checkbox>\r\n      </eo-form-input>\r\n      <div class=\"desc\">{{ countTileThresholdDesc }}</div>\r\n\r\n      <eo-form-input class=\"threshold-success\" [skipToggle]=\"true\"\r\n                    [label]=\"'eo.widget.hitcount.form.label.threshold.success' | translate\">\r\n        <eo-number [scale]=\"0\" formControlName=\"countTileSuccessThreshold\">\r\n        </eo-number>\r\n      </eo-form-input>\r\n\r\n      <eo-form-input class=\"threshold-warning\" [skipToggle]=\"true\"\r\n                    [label]=\"'eo.widget.hitcount.form.label.threshold.warning' | translate\">\r\n        <eo-number [scale]=\"0\" formControlName=\"countTileWarningThreshold\">\r\n        </eo-number>\r\n      </eo-form-input>\r\n\r\n      <eo-form-input class=\"threshold-error\" [skipToggle]=\"true\"\r\n                     [label]=\"'eo.widget.hitcount.form.label.threshold.error' | translate\">\r\n        <eo-number [scale]=\"0\" formControlName=\"countTileErrorThreshold\">\r\n        </eo-number>\r\n      </eo-form-input>\r\n    }\r\n  </form>\r\n</div>\r\n@if (setupForm.valid) {\r\n  <div class=\"preview\">\r\n    <eo-count-objects-widget [widgetConfig]=\"widgetConfig\"></eo-count-objects-widget>\r\n  </div>\r\n} @else {\r\n  <div class=\"empty\">\r\n    <eo-error-message\r\n      [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.stored.queries.list.empty'}\"></eo-error-message>\r\n  </div>\r\n}","import {AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {IWidgetSetupComponent} from '@yuuvis/widget-grid';\r\nimport {LastEditedAndCreated} from '../last-edited-and-created';\r\nimport {FormControlStatus, UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {LastEditedAndCreatedComponent} from '../last-edited-and-created.component';\r\n\r\n@Component({\r\n  selector: 'eo-last-edited-and-created-setup',\r\n  templateUrl: './last-edited-and-created-setup.component.html',\r\n  styleUrls: ['./last-edited-and-created-setup.component.scss']\r\n})\r\n\r\n@UntilDestroy()\r\nexport class LastEditedAndCreatedSetupComponent implements IWidgetSetupComponent, OnInit, AfterViewInit {\r\n  private _widgetConfig: LastEditedAndCreated;\r\n  @Output() widgetConfigChange = new EventEmitter<LastEditedAndCreated>();\r\n  @Output() widgetConfigStateChange = new EventEmitter<FormControlStatus>();\r\n  @ViewChild(LastEditedAndCreatedComponent) lastEditedAndCreated;\r\n  isEmpty : boolean = false;\r\n\r\n  isEditedChecked = false;\r\n  isCreatedChecked = false;\r\n  setupForm: UntypedFormGroup = this.fb.group({\r\n    lastEdited: [true],\r\n    lastCreated: [true],\r\n    sortRevert: [],\r\n    number: [10, [Validators.max(50), Validators.min(3), Validators.required]],\r\n  });\r\n\r\n  @Input() set widgetConfig(c: LastEditedAndCreated) {\r\n    this._widgetConfig = c;\r\n    this.setupForm.patchValue({\r\n      lastEdited: this._widgetConfig?.lastEdited === undefined ? true : this._widgetConfig?.lastEdited,\r\n      lastCreated: this._widgetConfig?.lastCreated === undefined ? true : this._widgetConfig?.lastCreated,\r\n      sortRevert: this._widgetConfig?.sortRevert ? this._widgetConfig?.sortRevert : '',\r\n      number: this._widgetConfig?.number ? (this._widgetConfig?.number <= 50 ? this._widgetConfig?.number : 50) : 10,\r\n    });\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(\r\n    private fb: UntypedFormBuilder,\r\n  ) {\r\n    this.setupForm.valueChanges.pipe(untilDestroyed(this)).subscribe((_) => {\r\n      this.setWidgetConfig();\r\n      this.isCreatedChecked = !this._widgetConfig?.lastEdited;\r\n      this.isEditedChecked = !this._widgetConfig?.lastCreated;\r\n    });\r\n    this.setupForm.statusChanges.pipe(untilDestroyed(this)).subscribe((v) => {\r\n      this.widgetConfigStateChange.emit(v);\r\n    });\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    setTimeout(() => {\r\n      this.isEmpty = this.lastEditedAndCreated.empty;\r\n    }, 200);\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.setWidgetConfig();\r\n  }\r\n\r\n  private setWidgetConfig() {\r\n    if (this.setupForm.valid) {\r\n      this._widgetConfig = {\r\n        ... this.setupForm.value,\r\n      };\r\n      this.widgetConfigChange.emit(this._widgetConfig);\r\n    }\r\n  }\r\n}\r\n","<div class=\"setup\">\r\n  <form [formGroup]=\"setupForm\">\r\n    <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.edited'|translate\"\r\n                   [skipToggle]=\"true\">\r\n      <eo-checkbox formControlName=\"lastEdited\" [readonly]=\"isEditedChecked\" [tristate]=\"false\"></eo-checkbox>\r\n    </eo-form-input>\r\n    <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.created'|translate\"\r\n                   [skipToggle]=\"true\">\r\n      <eo-checkbox formControlName=\"lastCreated\" [readonly]=\"isCreatedChecked\" [tristate]=\"false\"></eo-checkbox>\r\n    </eo-form-input>\r\n    <eo-form-input [skipToggle]=\"true\" [required]=\"true\"\r\n                   [invalid]=\"setupForm.dirty && setupForm.get('number').invalid\"\r\n                   [label]=\"'eo.workspace.widget.form.label.size' | translate\">\r\n      <eo-number [scale]=\"0\" formControlName=\"number\"></eo-number>\r\n    </eo-form-input>\r\n    @if (setupForm.dirty && setupForm.get('number').invalid) {\r\n      <div class=\"err-msg\" translate [translateParams]=\"{min: 3, max: 50}\">\r\n        @if (setupForm.get('number').hasError('required')) {\r\n          eo.form.property.required\r\n        } @else if (setupForm.get('number').hasError('max') || setupForm.get('size').hasError('min')) {\r\n          eo.form.property.string.error.classification.partialValue\r\n        }\r\n      </div>\r\n    }\r\n    <eo-form-input class=\"label checkbox\" [label]=\"'eo.workspace.widget.form.label.sortRevert'|translate\"\r\n                   [skipToggle]=\"true\">\r\n      <eo-checkbox formControlName=\"sortRevert\" [tristate]=\"false\"></eo-checkbox>\r\n    </eo-form-input>\r\n  </form>\r\n</div>\r\n\r\n@if (isEmpty) {\r\n  <div class=\"empty\">\r\n    <eo-error-message\r\n      [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.emptyList'}\"></eo-error-message>\r\n  </div>\r\n} @else {\r\n  <div class=\"preview\">\r\n    <eo-last-edited-and-created [widgetConfig]=\"widgetConfig\"></eo-last-edited-and-created>\r\n  </div>\r\n}\r\n","import {CdkDragDrop, moveItemInArray} from '@angular/cdk/drag-drop';\r\nimport {Component, Input, OnDestroy} from '@angular/core';\r\nimport {Validators, UntypedFormBuilder, UntypedFormGroup} from '@angular/forms';\r\nimport {\r\n  UserService\r\n} from '@eo-sdk/core';\r\nimport {Todo, TodoWidgetConfig} from '@eo-sdk/core/lib/interface/todo.interface';\r\nimport {UntilDestroy} from '@ngneat/until-destroy';\r\nimport {IWidgetComponent, WidgetGridRegistry} from '@yuuvis/widget-grid';\r\nimport {Subscription} from 'rxjs';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-todo-widget',\r\n  templateUrl: './todo-widget.component.html',\r\n  styleUrls: ['./todo-widget.component.scss']\r\n})\r\nexport class TodoWidgetComponent implements IWidgetComponent, OnDestroy {\r\n\r\n  private subscriptions: Subscription[] = [];\r\n  private _widgetConfig: TodoWidgetConfig;\r\n  labels: { [key: string]: string } = {};\r\n  todos: Todo[];\r\n  showForm = true;\r\n\r\n  addForm: UntypedFormGroup = this.fb.group({\r\n    task: ['', [Validators.required, Validators.maxLength(50)]],\r\n  });\r\n\r\n  todoWidgets: TodoWidgetConfig[] = [];\r\n\r\n  @Input() set widgetConfig(c: TodoWidgetConfig) {\r\n    this._widgetConfig = c;\r\n    this.todos = c ? c.todos : [];\r\n    if (this._widgetConfig?.id) {\r\n      this.loadTaskList(this._widgetConfig?.id);\r\n    }\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(\r\n    public userService: UserService,\r\n    private widgetGridRegistry: WidgetGridRegistry,\r\n    private fb: UntypedFormBuilder\r\n  ) {\r\n    this.subscriptions.push(\r\n      this.widgetGridRegistry.labels$.subscribe({\r\n        next: (labels) => (this.labels = labels),\r\n      })\r\n    );\r\n  }\r\n\r\n  addTask() {\r\n    if (!this.todos) {\r\n      this.todos = [];\r\n    }\r\n    if (this.addForm.valid) {\r\n      this.todos.push({\r\n        title: this.addForm.value.task,\r\n      });\r\n      this.addForm.reset();\r\n      this.emitChange(this._widgetConfig.id);\r\n    }\r\n  }\r\n\r\n  loadTaskList(id: string) {\r\n    this.todoWidgets = this.userService.getCurrentUser().userSettings.tasks;\r\n    if (this.todoWidgets) {\r\n      const todoItem = this.todoWidgets?.find(item => item.id === id);\r\n      return this.todos = todoItem ? todoItem.todos : [];\r\n    }\r\n  }\r\n\r\n  removeTask(idx: number) {\r\n    this.todos.splice(idx, 1);\r\n    this.emitChange();\r\n  }\r\n\r\n  toggleDone(t: Todo) {\r\n    t.done = !t.done;\r\n    this.emitChange();\r\n  }\r\n\r\n  drop(event: CdkDragDrop<string[]>) {\r\n    moveItemInArray(this.todos, event.previousIndex, event.currentIndex);\r\n    this.emitChange();\r\n  }\r\n\r\n  private emitChange(id?: string) {\r\n    if (!this.todoWidgets) {\r\n      this.todoWidgets = [];\r\n    }\r\n    const currentIndex = this.todoWidgets.findIndex(item => item.id === id);\r\n\r\n    if (currentIndex !== -1) {\r\n      this.todoWidgets[currentIndex].todos = this.todos;\r\n    } else {\r\n      this._widgetConfig.todos = this.todos;\r\n      this.todoWidgets.push(this._widgetConfig);\r\n    }\r\n    return this.userService.saveTodoWidget(this.todoWidgets).subscribe();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.subscriptions.forEach((s) => s.unsubscribe());\r\n  }\r\n}\r\n\r\n","<div class=\"container\">\r\n\r\n  <header>\r\n    <div class=\"header-title\">\r\n      @if (widgetConfig?.headline) {\r\n        <div class=\"title\">{{ widgetConfig?.headline }}</div>\r\n      }\r\n    </div>\r\n  </header>\r\n\r\n  <main class=\"todos\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n    @if (todos.length > 0) {\r\n      @for (t of todos; track $index) {\r\n        <div class=\"todo\" cdkDrag [ngClass]=\"{done: t.done}\">\r\n          <div class=\"dragHandle\" cdkDragHandle>\r\n            <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\">\r\n              <path\r\n                d=\"M9 20q-.825 0-1.412-.587Q7 18.825 7 18q0-.825.588-1.413Q8.175 16 9 16t1.413.587Q11 17.175 11 18q0 .825-.587 1.413Q9.825 20 9 20Zm6 0q-.825 0-1.412-.587Q13 18.825 13 18q0-.825.588-1.413Q14.175 16 15 16t1.413.587Q17 17.175 17 18q0 .825-.587 1.413Q15.825 20 15 20Zm-6-6q-.825 0-1.412-.588Q7 12.825 7 12t.588-1.413Q8.175 10 9 10t1.413.587Q11 11.175 11 12q0 .825-.587 1.412Q9.825 14 9 14Zm6 0q-.825 0-1.412-.588Q13 12.825 13 12t.588-1.413Q14.175 10 15 10t1.413.587Q17 11.175 17 12q0 .825-.587 1.412Q15.825 14 15 14ZM9 8q-.825 0-1.412-.588Q7 6.825 7 6t.588-1.412Q8.175 4 9 4t1.413.588Q11 5.175 11 6t-.587 1.412Q9.825 8 9 8Zm6 0q-.825 0-1.412-.588Q13 6.825 13 6t.588-1.412Q14.175 4 15 4t1.413.588Q17 5.175 17 6t-.587 1.412Q15.825 8 15 8Z\"/>\r\n            </svg>\r\n          </div>\r\n          <button class=\"checkbox\" (click)=\"toggleDone(t)\"></button>\r\n          <div class=\"task\" (click)=\"toggleDone(t)\">{{ t.title }}</div>\r\n          <button class=\"remove\" *ngIf=\"t.done\" (click)=\"removeTask($index)\">\r\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\r\n              <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"/>\r\n            </svg>\r\n          </button>\r\n        </div>\r\n      }\r\n    } @else {\r\n      <div class=\"empty\">\r\n        <eo-error-message\r\n          [emptyState]=\"{icon: 'ic_task.svg', text: 'eo.workspace.widget.todo.noTasks'}\"></eo-error-message>\r\n      </div>\r\n    }\r\n  </main>\r\n\r\n  <footer>\r\n    <form [formGroup]=\"addForm\">\r\n      <eo-form-input tabindex=\"0\" [invalid]=\"addForm.dirty && addForm.get('task').invalid\"\r\n                     [label]=\"'eo.workspace.widget.todo.taskTitle' | translate\" [skipToggle]=\"true\">\r\n        <eo-string [autofocus]=\"true\" [size]=\"'large'\" [maxlength]=\"50\" autocomplete=\"true\" (keyup.enter)=\"addTask()\"\r\n                   formControlName=\"task\"></eo-string>\r\n      </eo-form-input>\r\n\r\n      <button class=\"primary add\" [disabled]=\"!addForm.dirty\" (click)=\"addTask()\">\r\n        <svg\r\n          xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\r\n          <path d=\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7z\"/>\r\n        </svg>\r\n      </button>\r\n\r\n      @if (addForm.dirty && addForm.get('task').invalid) {\r\n        <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>\r\n          eo.form.property.maxlength\r\n        </div>\r\n      }\r\n    </form>\r\n  </footer>\r\n</div>\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {IWidgetComponent, TodoWidgetConfig, WidgetGridRegistry, WidgetGridUtils} from '@yuuvis/widget-grid';\r\nimport {FormControlStatus, UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {Subscription, debounceTime} from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'eo-todo-setup',\r\n  templateUrl: './todo-setup.component.html',\r\n  styleUrls: ['./todo-setup.component.scss']\r\n})\r\n@UntilDestroy()\r\n\r\nexport class TodoSetupComponent implements IWidgetComponent, OnInit {\r\n\r\n  private subscriptions: Subscription[] = [];\r\n  labels: { [key: string]: string } = {};\r\n\r\n  private _widgetConfig: TodoWidgetConfig;\r\n  @Output() widgetConfigChange = new EventEmitter<TodoWidgetConfig>();\r\n  @Output() widgetConfigStateChange = new EventEmitter<FormControlStatus>();\r\n\r\n  setupForm: UntypedFormGroup = this.fb.group({\r\n    headline: ['', [Validators.maxLength(50)]]\r\n  });\r\n\r\n  @Input() set widgetConfig(wc: TodoWidgetConfig) {\r\n    this._widgetConfig = wc;\r\n    this.setupForm.patchValue({\r\n      headline: wc ? wc.headline : '',\r\n    });\r\n  }\r\n\r\n  get widgetConfig() {\r\n    return this._widgetConfig;\r\n  }\r\n\r\n  constructor(\r\n    private fb: UntypedFormBuilder,\r\n    private widgetGridRegistry: WidgetGridRegistry,\r\n  ) {\r\n    this.setupForm.valueChanges.pipe(debounceTime(1000), untilDestroyed(this)).subscribe((_) => {\r\n      this.setWidgetConfig();\r\n\r\n      this.setupForm.statusChanges.pipe(untilDestroyed(this)).subscribe((v) => {\r\n        this.widgetConfigStateChange.emit(v);\r\n      });\r\n    });\r\n\r\n    this.subscriptions.push(\r\n      this.widgetGridRegistry.labels$.subscribe({\r\n        next: (labels) => (this.labels = labels),\r\n      })\r\n    );\r\n  }\r\n\r\n  private setWidgetConfig() {\r\n    if (this.setupForm.valid) {\r\n      this._widgetConfig = {\r\n        id: this._widgetConfig?.id || WidgetGridUtils.uuid(),\r\n        todos: this._widgetConfig?.todos || [],\r\n        ...this.setupForm.value,\r\n      };\r\n      this.widgetConfigChange.emit(this._widgetConfig);\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.setWidgetConfig();\r\n  }\r\n}\r\n","<div class=\"setup\">\r\n  <form [formGroup]=\"setupForm\">\r\n    <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\">\r\n      <eo-string autocomplete=\"true\" formControlName=\"headline\"></eo-string>\r\n    </eo-form-input>\r\n    @if (setupForm.dirty && setupForm.get('headline').errors) {\r\n      <div class=\"err-msg\" [translateParams]=\"{maxlength: 50}\" translate>\r\n        eo.form.property.maxlength\r\n      </div>\r\n    }\r\n  </form>\r\n</div>\r\n<div class=\"preview\">\r\n  <eo-todo-widget [widgetConfig]=\"widgetConfig\"></eo-todo-widget>\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {IWidgetComponent, PictureWidgetConfig} from '@yuuvis/widget-grid';\r\n\r\n@Component({\r\n  selector: 'eo-picture-widget',\r\n  templateUrl: './picture-widget.component.html',\r\n  styleUrls: ['./picture-widget.component.scss']\r\n})\r\nexport class PictureWidgetComponent implements IWidgetComponent {\r\n  imageUri: string | undefined;\r\n  style: any = {};\r\n\r\n  @Input() set widgetConfig(c: PictureWidgetConfig | undefined) {\r\n    this.imageUri = c?.image || undefined;\r\n    this.style['background-image'] = this.imageUri\r\n      ? `url(${this.imageUri})`\r\n      : 'none';\r\n  }\r\n}\r\n","@if (imageUri) {\r\n    <div [ngStyle]=\"style\"></div>\r\n\r\n} @else {\r\n<div class=\"empty\">\r\n    <eo-error-message [emptyState]=\"{icon: 'ic_noImage.svg', text: 'eo.workspace.widget.picture.noImage'}\"></eo-error-message>\r\n</div>\r\n}","import {Component, ElementRef, EventEmitter, Input, Output, ViewChild} from '@angular/core';\r\nimport {IWidgetSetupComponent, PictureWidgetConfig} from '@yuuvis/widget-grid';\r\n\r\n@Component({\r\n  selector: 'eo-picture-widget-setup',\r\n  templateUrl: './picture-widget-setup.component.html',\r\n  styleUrls: ['./picture-widget-setup.component.scss']\r\n})\r\nexport class PictureWidgetSetupComponent implements IWidgetSetupComponent {\r\n  @ViewChild('fileInput') fileInputEl: ElementRef | undefined;\r\n\r\n  @Input() widgetConfig: PictureWidgetConfig | undefined = {\r\n    image: undefined,\r\n  };\r\n  MAX_FILE_SIZE = 5242880;\r\n\r\n  @Output() widgetConfigChange = new EventEmitter<PictureWidgetConfig>();\r\n  fileName: any;\r\n  errorType: string;\r\n  showErrorDialog: boolean;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  pick() {\r\n    this.fileInputEl!.nativeElement.click();\r\n  }\r\n\r\n  fileInputChangeListener(event: any) {\r\n    const file = event.target.files[0];\r\n\r\n    if (file) {\r\n      this.fileName = file.name;\r\n      if (!(file.type.includes('image/') && file.type.includes('jpeg') || file.type.includes('png') || file.type.includes('gif') || file.type.includes('jpg') || file.type.includes('svg'))) {\r\n        this.errorType = 'image';\r\n        this.showErrorDialog = true;\r\n      } else if (file.size > this.MAX_FILE_SIZE) {\r\n        this.errorType = 'size';\r\n        this.showErrorDialog = true;\r\n      } else {\r\n        const reader = new FileReader();\r\n        reader.onload = () => {\r\n          this.widgetConfig = {image: reader.result as string};\r\n          this.widgetConfigChange.emit(this.widgetConfig);\r\n        };\r\n        reader.readAsDataURL(file);\r\n      }\r\n    }\r\n  }\r\n}\r\n","<div class=\"setup\">\r\n  <button class=\"primary\" (click)=\"pick(); $event.target.value = null\">\r\n    <input type=\"file\" accept=\".gif, .jpeg, .jpg, .png, .svg\" #fileInput (change)=\"fileInputChangeListener($event)\">\r\n    <eo-icon class=\"button sync-tab-btn\" [iconSrc]=\"'assets/_default/svg/ic_photo_library.svg'\"\r\n             [iconTitle]=\"'eo.workspace.widget.picture.tooltip' | translate\"></eo-icon>\r\n  </button>\r\n</div>\r\n<div class=\"preview\">\r\n  <eo-picture-widget [widgetConfig]=\"widgetConfig\"></eo-picture-widget>\r\n</div>\r\n\r\n<eo-dialog [title]=\"'eo.workspace.widget.picture.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\r\n           [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\r\n  <div>\r\n    <p>{{ fileName }}</p>\r\n    @if (errorType === 'size') {\r\n      <p translate>eo.workspace.widget.picture.dialog.sizeError</p>\r\n    }\r\n    @if (errorType === 'image') {\r\n      <p translate>eo.workspace.widget.picture.dialog.fileError</p>\r\n    }\r\n  </div>\r\n\r\n  <div class=\"action-buttons image-delete--action-buttons flex-row\">\r\n    <button type=\"button\" class=\"button cancel\" (click)=\"showErrorDialog = false\"\r\n            translate>eo.cta.button.cancel\r\n    </button>\r\n    <button type=\"button\" (click)=\"pick(); showErrorDialog = false\" class=\"button primary\"\r\n            translate>eo.state.settings.details.upload.dialog.back\r\n    </button>\r\n  </div>\r\n</eo-dialog>\r\n","import { HttpClient } from '@angular/common/http';\r\nimport {Component, OnInit} from '@angular/core';\r\nimport {\r\n  Config,\r\n  LocalStorageService,\r\n  TranslateService,\r\n  UserService,\r\n  Utils\r\n} from '@eo-sdk/core';\r\nimport {\r\n  WidgetGridRegistry,\r\n  WidgetGridWorkspaceConfig,\r\n  WidgetGridWorkspaceOptions\r\n} from '@yuuvis/widget-grid';\r\nimport {switchMap} from 'rxjs/operators';\r\nimport {PageTitleService, PendingChangesService} from '../../eo-framework-core';\r\nimport {listAnimation} from '../../eo-framework';\r\nimport {SearchWidgetComponent} from './widgets/search-widget/search-widget.component';\r\nimport {IframeSetupComponent} from './widgets/iframe-widget/iframe-setup/iframe-setup.component';\r\nimport {LastEditedAndCreatedComponent} from './widgets/last-edited-widget/last-edited-and-created.component';\r\nimport {IframeWidgetComponent} from './widgets/iframe-widget/iframe-widget.component';\r\nimport {InfoIntrayWidgetComponent} from './widgets/info-intray-widget/info-intray-widget.component';\r\nimport {InfoIntraySetupComponent} from './widgets/info-intray-widget/info-intray-setup/info-intray-setup.component';\r\nimport {InfoInboxWidgetComponent} from './widgets/info-inbox-widget/info-inbox-widget.component';\r\nimport {InfoInboxSetupComponent} from './widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {HitlistSetupComponent} from './widgets/hitlist-widget/hitlist-setup/hitlist-setup.component';\r\nimport {HitlistWidgetComponent} from './widgets/hitlist-widget/hitlist-widget.component';\r\nimport {AfterViewInit} from '@angular/core';\r\nimport {ChartsWidgetComponent} from './widgets/charts-widget/charts-widget.component';\r\nimport {ChartsSetupComponent} from './widgets/charts-widget/charts-setup/charts-setup.component';\r\nimport {CountObjectsWidgetComponent} from './widgets/count-objects-widget/count-objects-widget.component';\r\nimport {CountObjectsSetupComponent} from './widgets/count-objects-widget/count-objects-setup/count-objects-setup.component';\r\nimport {LastEditedAndCreatedSetupComponent} from './widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component';\r\nimport {TodoWidgetComponent} from './widgets/todowidget/todo-widget.component';\r\nimport {TodoSetupComponent} from './widgets/todowidget/todo-setup/todo-setup.component';\r\nimport {PictureWidgetSetupComponent} from './widgets/picture-widget/picture-widget-setup/picture-widget-setup.component';\r\nimport {PictureWidgetComponent} from './widgets/picture-widget/picture-widget.component';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-dashboard',\r\n  templateUrl: './dashboard.component.html',\r\n  styleUrls: ['./dashboard.component.scss'],\r\n  animations: [\r\n    listAnimation\r\n  ]\r\n})\r\nexport class DashboardComponent implements OnInit, AfterViewInit {\r\n\r\n  workspaceConfig: WidgetGridWorkspaceConfig | undefined;\r\n  workspaceOptions: WidgetGridWorkspaceOptions = {\r\n    gridConfig: {\r\n      rows: 30,\r\n      newItemWidth: 2,\r\n      newItemHeight: 5\r\n    }\r\n  };\r\n  backgroundImage: string;\r\n  STORAGE_KEY = 'eo.client.dashboard.currentWorkspace';\r\n  toolbarVisible: boolean;\r\n  toolbarIconSrc: string;\r\n  toolbarIconTooltip: string;\r\n  pendingTaskID = '';\r\n\r\n\r\n  constructor(public userService: UserService,\r\n    private widgetGridRegistry: WidgetGridRegistry,\r\n    private titleService: PageTitleService,\r\n    private http: HttpClient,\r\n    private config: Config,\r\n    private storageService: LocalStorageService,\r\n    public translate: TranslateService,\r\n    private pendingChanges: PendingChangesService) {\r\n    this.titleService.setDefaultTitle();\r\n    this.backgroundImage = `url(${this.config.getDashboardBackgroundImage()})`;\r\n    this.setWidgetGridLabels();\r\n    this.translate.onLangChange.pipe(untilDestroyed(this)).subscribe((_) => {\r\n      this.setWidgetGridLabels();\r\n    });\r\n  }\r\n\r\n  onWorkspacesConfigChange(c: WidgetGridWorkspaceConfig) {\r\n    this.saveWorkspacesConfig(c);\r\n  }\r\n\r\n  private setWidgetGridLabels() {\r\n    this.widgetGridRegistry.updateRegisteredWidgetsLabels({\r\n      \"yuv.widget.picture\": this.translate.instant('eo.workspace.widget.picture.label'),\r\n      \"yuv.widget.todo\": this.translate.instant('eo.workspace.widgetGrid.widgetTodoHeadlineLabel'),\r\n      \"yuv.widget.LastEdited\": this.translate.instant('eo.workspace.widget.lastEditedOrLastCreated.label'),\r\n      \"yuv.widget.iframe\": this.translate.instant('eo.workspace.widget.iframe.label'),\r\n      \"yuv.widget.infoIntray\": this.translate.instant('eo.workspace.widget.infoIntray.label'),\r\n      \"yuv.widget.infoInbox\": this.translate.instant('eo.workspace.widget.infoInbox.label'),\r\n      \"yuv.widget.quickSearch\": this.translate.instant('eo.workspace.widget.quicksearch.label'),\r\n      \"yuv.widget.hitlist\": this.translate.instant('eo.workspace.widget.hitlist.label'),\r\n      \"yuv.widget.countObjects\": this.translate.instant('eo.workspace.widget.countObject.label'),\r\n      \"yuv.widget.chart\": this.translate.instant('eo.workspace.widget.chart.label'),\r\n    });\r\n\r\n    this.widgetGridRegistry.updateWidgetGridLabels({\r\n      widgetPickerTitle: this.translate.instant('eo.workspace.widgetGrid.widgetPickerTitle'),\r\n      addWorkspaceTooltip: this.translate.instant('eo.workspace.widgetGrid.addWorkspace'),\r\n      noopWidgetLabel: this.translate.instant('eo.workspace.widgetGrid.noopWidgetLabel'),\r\n      workspacesEmptyMessage: this.translate.instant('eo.workspace.widgetGrid.workspacesEmptyMessage'),\r\n      newWorkspaceDefaultLabel: this.translate.instant('eo.workspace.widgetGrid.newWorkspaceDefaultLabel'),\r\n      workspaceLabelPlaceholder: this.translate.instant('eo.workspace.widgetGrid.newWorkspaceDefaultLabel'),\r\n      workspaceRemoveConfirmMessage: this.translate.instant('eo.workspace.widgetGrid.workspaceRemoveConfirmMessage'),\r\n      workspaceEditDone: this.translate.instant('eo.workspace.widgetGrid.workspaceEditDone'),\r\n      workspaceEditCancel: this.translate.instant('eo.cta.button.cancel'),\r\n      save: this.translate.instant('eo.workspace.widgetGrid.save'),\r\n      cancel: this.translate.instant('eo.cta.button.cancel'),\r\n      confirm: this.translate.instant('eo.workspace.widgetGrid.confirm'),\r\n      widgetTodoHeadlineLabel: this.translate.instant('eo.workspace.widgetGrid.widgetTodoHeadlineLabel'),\r\n      widgetTodoTaskTitleLabel: this.translate.instant('eo.workspace.widgetGrid.widgetTitleLabel'),\r\n      addNewWidgetLabel: this.translate.instant('eo.workspace.widgetGrid.addNewWidgetLabel')\r\n    });\r\n  }\r\n\r\n  private registerWidgets() {\r\n\r\n    this.widgetGridRegistry.registerGridWidgets([\r\n      {\r\n        name: 'yuv.widget.picture',\r\n        label: this.translate.instant('eo.workspace.widget.picture.label'),\r\n        setupComponent: PictureWidgetSetupComponent,\r\n        widgetComponent: PictureWidgetComponent,\r\n      },\r\n      {\r\n        name: 'yuv.widget.todo',\r\n        label: this.translate.instant('eo.workspace.widgetGrid.widgetTodoHeadlineLabel'),\r\n        setupComponent: TodoSetupComponent,\r\n        widgetComponent: TodoWidgetComponent,\r\n      },\r\n      {\r\n        name: 'yuv.widget.LastEdited',\r\n        label: this.translate.instant('eo.workspace.widget.lastEditedOrLastCreated.label'),\r\n        widgetComponent: LastEditedAndCreatedComponent,\r\n        setupComponent: LastEditedAndCreatedSetupComponent,\r\n      },\r\n      {\r\n        name: 'yuv.widget.iframe',\r\n        label: this.translate.instant('eo.workspace.widget.iframe.label'),\r\n        widgetComponent: IframeWidgetComponent,\r\n        setupComponent: IframeSetupComponent,\r\n      },\r\n      {\r\n        name: 'yuv.widget.infoIntray',\r\n        label: this.translate.instant('eo.workspace.widget.infoIntray.label'),\r\n        widgetComponent: InfoIntrayWidgetComponent,\r\n        setupComponent: InfoIntraySetupComponent\r\n      },\r\n      {\r\n        name: 'yuv.widget.infoInbox',\r\n        label: this.translate.instant('eo.workspace.widget.infoInbox.label'),\r\n        widgetComponent: InfoInboxWidgetComponent,\r\n        setupComponent: InfoInboxSetupComponent\r\n      },\r\n      {\r\n        name: 'yuv.widget.quickSearch',\r\n        label: this.translate.instant('eo.workspace.widget.quicksearch.label'),\r\n        widgetComponent: SearchWidgetComponent,\r\n      },\r\n      {\r\n        name: 'yuv.widget.hitlist',\r\n        label: this.translate.instant('eo.workspace.widget.hitlist.label'),\r\n        setupComponent: HitlistSetupComponent,\r\n        widgetComponent: HitlistWidgetComponent,\r\n      },\r\n      {\r\n        name: 'yuv.widget.countObjects',\r\n        label: this.translate.instant('eo.workspace.widget.countObject.label'),\r\n        setupComponent: CountObjectsSetupComponent,\r\n        widgetComponent: CountObjectsWidgetComponent,\r\n      },\r\n      {\r\n        name: 'yuv.widget.chart',\r\n        label: this.translate.instant('eo.workspace.widget.chart.label'),\r\n        setupComponent: ChartsSetupComponent,\r\n        widgetComponent: ChartsWidgetComponent,\r\n      }\r\n    ].sort(Utils.sortValues('label')));\r\n  }\r\n\r\n\r\n  ngOnInit() {\r\n    this.loadWorkspacesConfig();\r\n    this.registerWidgets();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    setTimeout(() => {\r\n      this.toolbarVisible = this.userService.getCurrentUser().userSettings.toolbarVisibility;\r\n      const toolbar = document.querySelector('.toolbar') as HTMLElement;\r\n      if (toolbar) {\r\n        if (this.toolbarVisible === false) {\r\n          this.hideToolbar(toolbar);\r\n        } else {\r\n          this.showToolbar(toolbar);\r\n        }\r\n      }\r\n      const showDashboardButton = document.getElementById('dashboardButton');\r\n      showDashboardButton.addEventListener('click', () => {\r\n        this.hideOrShowOnClick(toolbar);\r\n      });\r\n    }, 500);\r\n\r\n  }\r\n\r\n  private hideToolbar(toolbar: HTMLElement) {\r\n    this.toolbarIconSrc = 'assets/_default/svg/ic_arrow_up.svg';\r\n    this.toolbarIconTooltip = 'eo.dashboard.button.show.footer.tooltip';\r\n    toolbar.style.display = 'none';\r\n    this.toolbarVisible = false;\r\n  }\r\n\r\n  private showToolbar(toolbar: HTMLElement) {\r\n    this.toolbarIconSrc = 'assets/_default/svg/ic_arrow_down.svg';\r\n    this.toolbarIconTooltip = 'eo.dashboard.button.hide.footer.tooltip';\r\n    toolbar.style.display = 'flex';\r\n    this.toolbarVisible = true;\r\n  }\r\n\r\n  private hideOrShowOnClick(toolbar: HTMLElement) {\r\n    if (this.toolbarVisible) {\r\n      this.hideToolbar(toolbar);\r\n      this.userService.saveToolbarState(this.toolbarVisible).subscribe();\r\n    } else {\r\n      this.showToolbar(toolbar);\r\n      this.userService.saveToolbarState(this.toolbarVisible).subscribe();\r\n    }\r\n  }\r\n\r\n  private loadWorkspacesConfig() {\r\n    if (!this.userService.getCurrentUser().userSettings.workspaceOptions || this.userService.getCurrentUser().userSettings.workspaceOptions.workspaces.length === 0) {\r\n      this.http.get('assets/dashboard.json').subscribe({\r\n        next: (res: WidgetGridWorkspaceConfig) => {\r\n          this.workspaceConfig = res;\r\n          this.workspaceConfig.workspaces[0].label = this.translate.instant(this.workspaceConfig.workspaces[0].label);\r\n          this.workspaceConfig.workspaces[0].grid.forEach(grid => {\r\n            if (grid.widgetConfig) {\r\n              grid.widgetConfig.title = this.translate.instant(grid.widgetConfig.title);\r\n            }\r\n          });\r\n        },\r\n        error: () => {\r\n          // no config file found\r\n        }\r\n      });\r\n    } else {\r\n      this.workspaceConfig = this.userService.getCurrentUser().userSettings.workspaceOptions;\r\n      const currentWorkspace = this.storageService.getItem(this.STORAGE_KEY);\r\n      if (currentWorkspace && this.workspaceConfig.workspaces.map((w) => w.id).includes(currentWorkspace)) {\r\n        this.workspaceConfig.currentWorkspace = currentWorkspace;\r\n      } else if (!!this.workspaceConfig.workspaces.length) {\r\n        this.workspaceConfig.currentWorkspace = this.workspaceConfig.workspaces[0].id;\r\n      }\r\n    }\r\n  }\r\n\r\n  private saveWorkspacesConfig(c: WidgetGridWorkspaceConfig) {\r\n    // the selected workspace is saved on the device while the workspaces themselves are stored on the user service\r\n    if (c) {\r\n      this.userService.saveChangeWorkspace(c).pipe(switchMap(async () => this.storageService.setItem(this.STORAGE_KEY, c.currentWorkspace))).subscribe();\r\n    }\r\n  }\r\n\r\n  onWorkspaceEditMode(onEdit: boolean) {\r\n    if (onEdit) {\r\n      this.pendingTaskID = this.pendingChanges.startTask();\r\n    } else {\r\n      this.pendingChanges.finishTask(this.pendingTaskID)\r\n    }\r\n  }\r\n}\r\n","<ng-container>\r\n  <div class=\"fade\"></div>\r\n  <div class=\"dashboard\" [style.background-image]=\"backgroundImage\">\r\n    <div class=\"footerButton\" eoRtlAware=\"full\">\r\n      <eo-icon id=\"dashboardButton\" [iconSrc]=\"toolbarIconSrc\" [iconTitle]=\"toolbarIconTooltip | translate\"></eo-icon>\r\n    </div>\r\n    <yuv-widget-grid-workspaces *ngIf=\"workspaceConfig\"\r\n    [workspaceLabelMaxLength]=\"50\"\r\n    [workspaceConfig]=\"workspaceConfig\"\r\n      (configChange)=\"onWorkspacesConfigChange($event)\" (editModeChange)=\"onWorkspaceEditMode($event)\" [options]=\"workspaceOptions\">\r\n    </yuv-widget-grid-workspaces>\r\n  </div>\r\n</ng-container>\r\n","import {AfterViewInit, Component, ElementRef, Renderer2, ViewChild} from '@angular/core';\r\nimport {NgForm, UntypedFormBuilder, UntypedFormControl} from '@angular/forms';\r\nimport {\r\n  AppCacheService,\r\n  Capabilities,\r\n  CapabilitiesService,\r\n  Config,\r\n  EnaioEvent,\r\n  EoUser,\r\n  EventService,\r\n  LocalStorageService,\r\n  NotificationsService,\r\n  SystemService,\r\n  TranslateService,\r\n  UserService,\r\n  Utils\r\n} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {Observable, forkJoin, firstValueFrom} from 'rxjs';\r\nimport {take, withLatestFrom} from 'rxjs/operators';\r\nimport {AgentService, agentConfigKeys} from '../../eo-framework-core/agent/agent.service';\r\nimport {PageTitleService} from '../../eo-framework-core/title/page-title.service';\r\nimport {UserAvatarComponent} from '../../eo-framework/ui/user-avatar/user-avatar.component';\r\nimport {LockSettings} from './agent-lock-settings.enum';\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-settings',\r\n  templateUrl: './settings.component.html',\r\n  styleUrls: ['./settings.component.scss']\r\n})\r\nexport class SettingsComponent implements AfterViewInit {\r\n\r\n  user: EoUser;\r\n  capabilities: Capabilities;\r\n  deputies: {\r\n    data: string[],\r\n    dataMeta: any[]\r\n  };\r\n  showChangePasswordForm: boolean;\r\n  clientLocales: any;\r\n  schemaLocales: any[];\r\n  public LockSettings = LockSettings;\r\n  agentLockSettings: LockSettings;\r\n  useAgentControl: UntypedFormControl;\r\n  showAgentConfig = true;\r\n  defaultLockSetting = false;\r\n\r\n  user$ = this.userService.user$;\r\n  userId = '';\r\n  showDeleteIconTrash = true;\r\n  userImageUri = '';\r\n  preview: string;\r\n  file: any;\r\n  hoverSelector = false;\r\n  showPreviewDialog = false;\r\n  showDeleteDialog = false;\r\n  showErrorDialog = false;\r\n  MAX_FILE_SIZE = 524288;\r\n  viewMode = '';\r\n  fileName: string;\r\n  deleteConfigDashboard: boolean;\r\n\r\n  @ViewChild('files') files: ElementRef = {} as ElementRef;\r\n  @ViewChild('headerBg') headerBg;\r\n  @ViewChild('userAvatar') userAvatar: UserAvatarComponent;\r\n  @ViewChild('confirmDeleteBtn') confirmDeleteBtn: ElementRef;\r\n  @ViewChild('profileImageOverlay') profileImageOverlay: ElementRef;\r\n  @ViewChild(NgForm) deputiesForm: NgForm;\r\n\r\n  constructor(private renderer: Renderer2,\r\n    public userService: UserService,\r\n    public config: Config,\r\n    private notify: NotificationsService,\r\n    private systemService: SystemService,\r\n    private eventService: EventService,\r\n    private capabilitiesService: CapabilitiesService,\r\n    private titleService: PageTitleService,\r\n    private agentService: AgentService,\r\n    private fb: UntypedFormBuilder,\r\n    private cacheService: AppCacheService,\r\n    private storageService: LocalStorageService,\r\n    public translate: TranslateService,\r\n    private elemRef: ElementRef,\r\n    private notification: NotificationsService) {\r\n    this.titleService.setBaseTitle(this.translate.instant('eo.bar.button.settings.title'));\r\n    this.clientLocales = config.getClientLocales();\r\n    this.capabilities = this.capabilitiesService.getCapabilities();\r\n    this.getSchemaLocales();\r\n    this.getUserData();\r\n    this.agentLockSettings = userService.getCurrentUser().userSettings.alwayslock;\r\n    this.agentService.isConnected$.pipe(take(1), withLatestFrom(this.agentService.agentConfig$)).subscribe(([isConnected, config]) => {\r\n      this.useAgentControl = this.fb.control(isConnected);\r\n      if (config.hasOwnProperty(agentConfigKeys.AUTOCONNECT)) {\r\n        this.showAgentConfig = config[agentConfigKeys.AUTOCONNECT];\r\n        this.useAgentControl.disable();\r\n      }\r\n      if (config.hasOwnProperty(agentConfigKeys.LOCKSETTINGS) && Object.values(LockSettings).includes(config[agentConfigKeys.LOCKSETTINGS])) {\r\n        this.defaultLockSetting = true;\r\n        this.agentLockSettings = config[agentConfigKeys.LOCKSETTINGS];\r\n      }\r\n      this.useAgentControl.valueChanges.pipe(untilDestroyed(this)).subscribe(() => this.agentService.isConnected = this.useAgentControl.value);\r\n    });\r\n  }\r\n\r\n  get agentStatus(): Observable<boolean> {\r\n    return this.agentService.isConnected$;\r\n  }\r\n\r\n  get activeSchema(): string {\r\n    return this.user && this.user.getSchemaLocale();\r\n  }\r\n\r\n  hasPrivilege(privilege: string): boolean {\r\n    return this.userService.hasPrivilege(privilege);\r\n  }\r\n\r\n  changeLockSettings(lockSettings: LockSettings) {\r\n    this.userService.changeLockSetting(lockSettings).subscribe(() => this.agentLockSettings = lockSettings);\r\n  }\r\n\r\n  getSchemaLocales() {\r\n    this.systemService.system$.subscribe((systemDefinition) => {\r\n      this.schemaLocales = systemDefinition.locales.sort(Utils.sortValues('displayname'));\r\n    });\r\n  }\r\n\r\n  saveDeputies() {\r\n    this.userService.setDeputies(this.deputies.data)\r\n      .subscribe(res => this.deputiesForm.resetForm({deputies: this.deputies.data}));\r\n  }\r\n\r\n  resetDeputies() {\r\n    this.deputiesForm.resetForm({deputies: this.user.deputies.map(d => d.name)});\r\n  }\r\n\r\n  getUserData() {\r\n    this.userService.user$.subscribe((user) => {\r\n      // this.user = Object.assign(user, {capabilities: this.capabilitiesService.getCapabilities()});\r\n      this.user = user;\r\n      // deputies\r\n      this.deputies = {\r\n        data: this.user.deputies.map(d => d.name),\r\n        dataMeta: this.user.deputies\r\n      };\r\n    });\r\n  }\r\n\r\n  cancel(): void {\r\n    this.showChangePasswordForm = false;\r\n  }\r\n\r\n  changeClientLocale(iso: string) {\r\n    if (this.config.getSupportedClientLocales().includes(iso)) {\r\n      this.userService.changeClientLocale(iso);\r\n    } else {\r\n      this.notify.error(this.translate.instant('eo.state.settings.language.error'));\r\n    }\r\n  }\r\n\r\n  changeSchemaLocale(iso: string) {\r\n    if (this.user.schemaLocale !== iso) {\r\n      this.userService.changeSchemaLocale(iso).subscribe(\r\n        _ => Utils.throw(null,\r\n          this.translate.instant('eo.user.service.schema.locale.error.title'),\r\n          this.translate.instant('eo.user.service.schema.locale.error.description'))\r\n      );\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.elemRef.nativeElement.querySelector('#presence').focus();\r\n    this.user$.subscribe(user => {\r\n      this.userId = user.id;\r\n      this.userImageUri = this.userService.getUserImageUri(this.userId);\r\n      this.refreshUserImageHeaderBackground(this.userImageUri);\r\n      this.showDeleteIconTrash = !!user.imageUri;\r\n    });\r\n  }\r\n\r\n  setPresence(b: boolean) {\r\n    this.userService.setPresence(b)\r\n      .subscribe(_ => {\r\n      }, Utils.throw(null,\r\n        this.translate.instant('eo.state.settings.presence.error.title'),\r\n        this.translate.instant('eo.state.settings.presence.error.description')\r\n      )\r\n      );\r\n  }\r\n  closePreviewDialog() {\r\n    this.showPreviewDialog = false;\r\n    this.profileImageOverlay.nativeElement.focus();\r\n  }\r\n\r\n  deleteUserImage() {\r\n    this.userService\r\n      .setUserImage(null).subscribe({\r\n        next: () => {\r\n          this.refreshUserImageHeaderBackground(this.userImageUri);\r\n          this.eventService.trigger(EnaioEvent.SYSTEM_STATUS_IMAGE_CHANGE);\r\n          this.showDeleteDialog = false;\r\n          this.showDeleteIconTrash = false;\r\n        },\r\n        error: (err) => {\r\n          this.notification.error('', err.error.cause.messages[0]);\r\n          this.file = null;\r\n          this.translate.instant('eo.upload.global.error.title');\r\n          this.translate.instant('eo.upload.global.error.description');\r\n        },\r\n\r\n      });\r\n\r\n  }\r\n\r\n  selectImage(event): void {\r\n    this.file = event.files[0];\r\n    if (this.file) {\r\n      this.fileName = this.file.name;\r\n      switch (false) {\r\n\r\n        case (this.file.type.includes('image/') && this.file.type.includes('jpeg') || this.file.type.includes('png')):\r\n          this.viewMode = 'image';\r\n          this.showErrorDialog = true;\r\n          break;\r\n\r\n        case (this.file.size <= this.MAX_FILE_SIZE):\r\n          this.viewMode = 'size';\r\n          this.showErrorDialog = true;\r\n          break;\r\n\r\n        default:\r\n\r\n          this.preview = '';\r\n          const reader = new FileReader();\r\n          reader.onload = (e: any) => {\r\n            this.preview = e.target.result;\r\n            this.showPreviewDialog = true;\r\n          };\r\n          reader.readAsDataURL(this.file);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  uploadNewUserImage() {\r\n\r\n    this.userService\r\n      .setUserImage(this.file).subscribe({\r\n        next: () => {\r\n          this.profileImageOverlay.nativeElement.focus();\r\n          this.refreshUserImageHeaderBackground(this.userImageUri);\r\n          this.eventService.trigger(EnaioEvent.SYSTEM_STATUS_IMAGE_CHANGE);\r\n          this.closePreviewDialog();\r\n          this.showDeleteIconTrash = true;\r\n        },\r\n        error: (err) => {\r\n          this.notification.error('', err.error.cause.messages[0]);\r\n          this.file = null;\r\n          this.translate.instant('eo.upload.global.error.title');\r\n          this.translate.instant('eo.upload.global.error.description');\r\n        },\r\n  });\r\n}\r\n\r\n  tabAction(input: HTMLInputElement) {\r\n    input.blur();\r\n    this.hoverSelector = false;\r\n  }\r\n  mouseEnter() {\r\n    this.hoverSelector = true;\r\n  }\r\n  mouseLeave() {\r\n    this.hoverSelector = false;\r\n  }\r\n  trashIconClick() {\r\n    this.showDeleteDialog = true;\r\n  }\r\n\r\n  refreshUserImageHeaderBackground(imageUri: string) {\r\n    if (imageUri) {\r\n      const timestamp = new Date().getTime().toString();\r\n      this.renderer.setStyle(this.headerBg.nativeElement, 'background-image', `url(${imageUri + '&t=' + timestamp})`);\r\n    }\r\n  }\r\n\r\n  clearLocalSettings() {\r\n    const actions = [\r\n      this.cacheService.clear(),\r\n      this.storageService.clear(),\r\n    ].filter(a => a);\r\n\r\n    return actions.length ? forkJoin(actions).subscribe(\r\n      () => {\r\n        this.notify.success(this.translate.instant('eo.state.settings.cache.clear.success'));\r\n        this.saveLocalSettings();\r\n      },\r\n      () => this.notify.error(this.translate.instant('eo.state.settings.cache.clear.error'))\r\n    ) && true : false;\r\n  }\r\n\r\n  async saveLocalSettings() {\r\n    const localSettings = this.storageService.getStorage();\r\n    const cacheSettings = await firstValueFrom(this.cacheService.getStorage());\r\n    delete cacheSettings['eo.framework.cache.systemdefinition'];\r\n    this.userService.saveLocalSettings(localSettings, cacheSettings).subscribe();\r\n  }\r\n\r\n  loadLocalSettings() {\r\n    this.userService.loadLocalSettings().subscribe(settings => {\r\n      this.storageService.setStorage(settings.localSettings);\r\n      this.cacheService.replaceStorage(settings.cacheSettings);\r\n    });\r\n  }\r\n\r\n  defaultDashboard() {\r\n    this.userService.saveChangeWorkspace(undefined).subscribe(() => {\r\n      this.notify.success(this.translate.instant('eo.state.settings.dashboard.clear.success'));\r\n      this.saveLocalSettings().then();\r\n    });\r\n\r\n  }\r\n}\r\n","<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\r\n\r\n  <div class=\"header\">\r\n\r\n    <div #headerBg class=\"bg\"></div>\r\n    <div class=\"fill\">\r\n      <div class=\"meta username\">{{user.name}}</div>\r\n      <h1>{{user.firstname}} {{user.lastname}}</h1>\r\n      <div class=\"meta email\">{{user.email}}</div>\r\n\r\n      <div class=\"presence\" *ngIf=\"capabilities.inbox\">\r\n        <button class=\"toggle dark present\" id=\"presence\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\"\r\n         translate>eo.state.settings.presence.present</button>\r\n        <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" (keydown.tab)=\"tabAction($event.target)\" [ngClass]=\"{active: !user.present}\"\r\n          translate>eo.state.settings.presence.absent</button>\r\n      </div>\r\n    </div>\r\n    <div (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\" (keydown.tab)=\"mouseEnter()\">\r\n\r\n      <eo-user-avatar #userAvatar class=\"userImage\" tabindex=\"-1\" eoRtlAware=\"full\">\r\n          <input type=\"file\" accept=\".jpg, .png\" style=\"display:none;\" #files (change)=\"selectImage($event.target)\" (click)=\"$event.target.value=null\">\r\n      </eo-user-avatar>\r\n      <eo-dialog  [styleClass]=\"'view'\" [minWidth]=\"'300px'\" [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\"\r\n        [(visible)]=\"showPreviewDialog\" [focusOnShow]=\"false\">\r\n        <ng-container>\r\n          <div class=\"contain\">\r\n            <div class=\"attachments\">\r\n              <div class=\"atta\">\r\n                <img loading=\"lazy\" [src]=\"preview\">\r\n              </div>\r\n              <div class=\"user-avatar\" *ngIf=\"preview\">\r\n                <eo-user-avatar class=\"preview-round\" [previewUri]=\"preview\"></eo-user-avatar>\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <div class=\"button-block\">\r\n            <button type=\"button\" (click)=\"closePreviewDialog()\" class=\"button danger\"\r\n              translate>eo.cta.button.cancel</button>\r\n            <button type=\"button\" cdkFocusInitial (click)=\"uploadNewUserImage()\" class=\"button primary\"\r\n              translate>eo.state.settings.details.dialog.save</button>\r\n          </div>\r\n        </ng-container>\r\n      </eo-dialog>\r\n\r\n      <div class=\"overlay\" #profileImageOverlay tabindex=\"0\" eoRtlAware=\"full\">\r\n        <span class=\"updateMessage\" *ngIf=\"hoverSelector\">\r\n          <eo-icon tabindex=\"0\" (keydown.enter)=\"files.click()\" [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\r\n            (click)=\"files.click()\"></eo-icon>\r\n          <eo-icon tabindex=\"0\" (keydown.enter)=\"trashIconClick()\" *ngIf=\"showDeleteIconTrash\"\r\n            [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\" aria-disabled=\"true\" (click)=\"trashIconClick()\"></eo-icon>\r\n        </span>\r\n      </div>\r\n    </div>\r\n\r\n  </div>\r\n\r\n  <div class=\"body\" (keydown.tab)=\"tabAction($event.target)\">\r\n\r\n    <div class=\"body-wrap\">\r\n\r\n      <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\r\n        <h3 translate>eo.state.settings.deputies</h3>\r\n\r\n        <!-- deputies -->\r\n        <div class=\"entry deputies\">\r\n          <div class=\"label\" translate>eo.state.settings.deputies.label</div>\r\n          <div class=\"values\">\r\n            <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\r\n              <eo-organization name=\"deputies\" [dataMeta]=\"deputies.dataMeta\" [filterObject]=\"{type: 'USER'}\"\r\n                [exceptions]=\"[user.name]\" [multiselect]=\"true\" tabindex=\"0\" [(ngModel)]=\"deputies.data\"></eo-organization>\r\n              <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\r\n                <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.cta.button.cancel</button>\r\n                <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\r\n              </div>\r\n            </form>\r\n          </div>\r\n        </div>\r\n\r\n        <!-- substitute of -->\r\n        <div class=\"entry substitute\">\r\n          <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\r\n          <div class=\"values\">\r\n            <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\r\n              <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\"\r\n                [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\r\n              <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\"\r\n                [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\r\n              <span>{{sub.title}} ({{sub.name}})</span>\r\n            </span>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <!-- password -->\r\n      <section class=\"section section-password\">\r\n        <div class=\"entry\">\r\n          <div class=\"label\" translate>eo.password.reset</div>\r\n          <div class=\"values\">\r\n            <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\"\r\n              [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\r\n\r\n              <eo-change-password-form (onFormSumbit)=\"simpleAcc.selected = false\"></eo-change-password-form>\r\n            </eo-simple-accordion>\r\n          </div>\r\n        </div>\r\n      </section>\r\n\r\n      <!-- language -->\r\n      <div class=\"section section-lang\">\r\n        <h3 translate>eo.state.settings.language</h3>\r\n        <div class=\"entry lang-app\">\r\n          <div class=\"label\" translate>eo.state.settings.language.client</div>\r\n          <div class=\"values\">\r\n            <button class=\"toggle\" (click)=\"changeClientLocale(locale.iso)\"\r\n              [ngClass]=\"{active: translate.currentLang === locale.iso}\"\r\n              *ngFor=\"let locale of clientLocales\">{{locale.label}}\r\n            </button>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"entry lang-def\">\r\n          <div class=\"label\" translate>eo.state.settings.language.schema</div>\r\n          <div class=\"values\">\r\n            <button class=\"toggle\" (click)=\"changeSchemaLocale(locale.code)\"\r\n              [ngClass]=\"{active: activeSchema === locale.code}\"\r\n              *ngFor=\"let locale of schemaLocales\">{{locale.displayname}}</button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <!-- permissions -->\r\n      <div class=\"section section-perm\">\r\n        <h3 translate>eo.state.settings.permission</h3>\r\n        <div class=\"entry perm-roles\">\r\n          <div class=\"label\" translate>eo.state.settings.roles</div>\r\n          <div class=\"values roles\">\r\n            <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\r\n              <eo-permissions [roles]=\"user.roles\"></eo-permissions>\r\n            </eo-simple-accordion>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <!-- agent -->\r\n      <div class=\"section section-others\">\r\n        <h3 translate>eo.state.settings.others</h3>\r\n        <ng-container *ngIf=\"showAgentConfig\">\r\n          <div class=\"entry\">\r\n            <div class=\"label\" translate>eo.state.settings.agent</div>\r\n            <div class=\"values\">\r\n              <div class=\"use-agent\">\r\n                <eo-checkbox [formControl]=\"useAgentControl\" [readonly]=\"useAgentControl.disabled\"\r\n                  *ngIf=\"useAgentControl\"></eo-checkbox>\r\n                <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\r\n                <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\r\n          <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\r\n        </a> -->\r\n              </div>\r\n            </div>\r\n          </div>\r\n\r\n\r\n          <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\r\n            <div class=\"label\" translate>eo.state.settings.lock</div>\r\n            <div class=\"values\">\r\n              <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\r\n                [ngClass]=\"{active: agentLockSettings === LockSettings.always}\" [disabled]=\"defaultLockSetting\"\r\n                translate>eo.state.settings.lock.enable</button>\r\n              <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\r\n                [ngClass]=\"{active: agentLockSettings === LockSettings.never}\" [disabled]=\"defaultLockSetting\"\r\n                translate>eo.state.settings.lock.disable</button>\r\n              <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\r\n                [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\" [disabled]=\"defaultLockSetting\"\r\n                translate>eo.state.settings.lock.ask</button>\r\n            </div>\r\n          </div>\r\n\r\n\r\n        </ng-container>\r\n        <div class=\"entry\">\r\n          <div class=\"label\" translate>eo.state.settings.localSettings</div>\r\n          <div class=\"values\">\r\n            <div class=\"flex-row\">\r\n              <button translate (click)=\"saveLocalSettings()\">eo.state.settings.localSettings.save</button>\r\n              <button translate (click)=\"loadLocalSettings()\">eo.state.settings.localSettings.load</button>\r\n              <button translate (click)=\"clearLocalSettings()\">eo.state.settings.localSettings.clear</button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <div class=\"entry\">\r\n          <div class=\"label\" translate>eo.state.settings.dashboard.defaut</div>\r\n          <div class=\"values\">\r\n            <div class=\"flex-row\">\r\n              <button translate (click)=\"deleteConfigDashboard = true\">eo.state.settings.dashboard.button.clear</button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n  <eo-dialog [title]=\"'eo.state.settings.dashboard.default.dialog.title' | translate\" [(visible)]=\"deleteConfigDashboard\"\r\n  [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\r\n  <div>{{'eo.state.settings.dashboard.default.dialog.message' | translate}}</div>\r\n\r\n  <div class=\"action-buttons image-delete--action-buttons flex-row\" >\r\n    <button type=\"button\" class=\"button cancel\" (click)=\"deleteConfigDashboard = false\"\r\n    translate>eo.cta.button.cancel</button>\r\n    <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"defaultDashboard(); deleteConfigDashboard = false\" class=\"button primary\"\r\n      translate>eo.state.settings.dashboard.button.reset</button>\r\n  </div>\r\n</eo-dialog>\r\n  <eo-dialog [title]=\"'eo.state.settings.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\r\n    [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\r\n    <div>{{'eo.state.settings.details.delete.dialog.message' | translate}}</div>\r\n\r\n    <div class=\"action-buttons image-delete--action-buttons flex-row\" >\r\n      <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\r\n      translate>eo.cta.button.cancel</button>\r\n      <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"deleteUserImage()\" class=\"button primary\"\r\n        translate>eo.cta.button.delete</button>\r\n    </div>\r\n  </eo-dialog>\r\n\r\n  <eo-dialog [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\r\n    [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\r\n\r\n    <div>\r\n      <p>{{fileName}}</p>\r\n      <p *ngIf=\"viewMode ==='size'\" translate>eo.state.settings.details.upload.dialog.sizeError</p>\r\n      <p *ngIf=\"viewMode ==='image'\" translate>eo.state.settings.details.upload.dialog.fileError </p>\r\n    </div>\r\n\r\n    <div class=\"action-buttons image-delete--action-buttons flex-row\">\r\n      <button type=\"button\" class=\"button cancel\" (click)=\"showErrorDialog = false\"\r\n        translate>eo.cta.button.cancel</button>\r\n      <button type=\"button\" cdkFocusInitial (click)=\"files.click(); showErrorDialog = false\" class=\"button primary\"\r\n        translate>eo.state.settings.details.upload.dialog.back</button>\r\n    </div>\r\n  </eo-dialog>\r\n</div>\r\n","import {finalize, switchMap} from 'rxjs/operators';\r\nimport {of as observableOf} from 'rxjs';\r\nimport {Component, OnInit, ChangeDetectorRef, ViewChild, ElementRef} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\r\nimport {AuthService, Utils, Config, EnvironmentEnaio, TranslateService, UserService} from '@eo-sdk/core';\r\nimport {PageTitleService} from '../../eo-framework-core/title/page-title.service';\r\nimport {PluginsService} from '../../eo-framework-core/api/plugins.service';\r\n\r\n@Component({\r\n  selector: 'eo-login',\r\n  templateUrl: './login.component.html',\r\n  styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n  @ViewChild('setAsPresent') setAsPresentButton: ElementRef;\r\n  backgroundImage: SafeResourceUrl;\r\n  appLogo: string;\r\n  form: any = {};\r\n  profiles: {label: string, value: string}[] = [];\r\n  loading = false;\r\n  invalid = false;\r\n  licenseExceeded = false;\r\n  private returnUrl: string;\r\n  native = false;\r\n  urlToNavigate: string;\r\n  showAbsentDialog = false;\r\n  removeProfile = (p) => p;\r\n\r\n  constructor(private route: ActivatedRoute,\r\n              private router: Router,\r\n              private config: Config,\r\n              private titleService: PageTitleService,\r\n              private translate: TranslateService,\r\n              private sanitizer: DomSanitizer,\r\n              private cd: ChangeDetectorRef,\r\n              private authService: AuthService,\r\n              private userService: UserService,\r\n              private pluginsSerice: PluginsService) {\r\n\r\n    this.backgroundImage = this.sanitizer.bypassSecurityTrustStyle(`url(${this.config.getDashboardBackgroundImage()})`);\r\n    this.titleService.setDefaultTitle();\r\n    // if we are no web app (e.g. cordova or electron) the login\r\n    // form will be extended by a field for selecting a target host\r\n    this.native = !EnvironmentEnaio.isWebEnvironment();\r\n    this.profiles = authService.hosts.map(host => ({\r\n      label: host ? host : 'local',\r\n      value: host || ''\r\n    }));\r\n    this.appLogo = this.config.getRaw('appLogo');\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this.route.snapshot.params['logout']) {\r\n      this.pluginsSerice.unload();\r\n      this.authService.logout(true);\r\n    }\r\n    this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';\r\n    // because returnUrl was fetched from location, we need to grab the actual route\r\n    const currentLoc = location.href.substr(location.origin.length);\r\n\r\n    const prefix = currentLoc.substring(0, currentLoc.indexOf('/enter'));\r\n    this.returnUrl = this.returnUrl.replace(prefix, '').replace('index.html', '');\r\n\r\n    // loading login state as the user is already authenticated will redirect to home\r\n    if (this.authService.isLoggedIn()) {\r\n      this.router.navigate(['/']);\r\n    } else {\r\n      // if there is no logged in user, select the browsers language for\r\n      // the login dialog\r\n      let browserLang = this.translate.getBrowserLang();\r\n      this.translate.use(browserLang.match(/en|de/) ? browserLang : 'en');\r\n    }\r\n  }\r\n\r\n  login() {\r\n    this.loading = true;\r\n    this.invalid = false;\r\n    this.licenseExceeded = false;\r\n    observableOf(null).pipe(\r\n      switchMap(() => {\r\n        return this.authService.login(this.form.host, this.form.username, this.form.password);\r\n      }),\r\n      finalize(() => (this.loading = false))\r\n    ).subscribe(() => {\r\n        this.urlToNavigate = this.returnUrl || '/';\r\n        if (!this.userService.getCurrentUser().present) {\r\n          this.showAbsentDialog = true;\r\n          setTimeout(() => this.setAsPresentButton.nativeElement.focus(), 0);\r\n        } else {\r\n          this.router.navigateByUrl(this.urlToNavigate).then(() => {\r\n            this.cd.markForCheck();\r\n          });\r\n        }\r\n      }, Utils.throw((error) => {\r\n        if (error.status === 429) {\r\n          this.licenseExceeded = true;\r\n        } else {\r\n          this.invalid = true;\r\n        }\r\n      }, undefined, undefined, true)\r\n    );\r\n  }\r\n\r\n  closeShowAbsentDialog(setAsPresent = false) {\r\n    this.showAbsentDialog = false;\r\n\r\n    if (setAsPresent) {\r\n      this.userService.setPresence(setAsPresent).subscribe();\r\n    }\r\n    this.router.navigateByUrl(this.urlToNavigate).then(() => {\r\n      this.cd.markForCheck();\r\n    });\r\n  }\r\n}\r\n","<div class=\"eo-login-container\" [style.background-image]=\"backgroundImage\">\r\n  <div class=\"eo-login\">\r\n\r\n    <div class=\"head\">\r\n      <eo-icon [iconSrc]=\"appLogo\"></eo-icon>\r\n    </div>\r\n\r\n    <div class=\"invalid\" *ngIf=\"invalid\" translate>eo.state.login.msg.invalid</div>\r\n    <div class=\"invalid\" *ngIf=\"licenseExceeded\" translate>eo.state.login.msg.licenseExceeded</div>\r\n\r\n    <form (ngSubmit)=\"login()\" #loginForm=\"ngForm\">\r\n\r\n      <fieldset [ngClass]=\"{loading: loading}\">\r\n\r\n        <div class=\"form-item\" *ngIf=\"native\" [ngClass]=\"{empty: !profiles || profiles.length === 0}\">\r\n          <yvc-dropdown [options]=\"profiles\" placeholder=\"host\"\r\n                      [required]=\"true\"\r\n                      [(ngModel)]=\"form.host\" name=\"profile\">\r\n            <ng-template let-profile pTemplate=\"item\">\r\n              <div class=\"option-row\">\r\n                <div>{{profile.label}}</div>\r\n                <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\r\n                         (click)=\"removeProfile(profile.value)\"></eo-icon>\r\n              </div>\r\n            </ng-template>\r\n          </yvc-dropdown>\r\n          <label translate>eo.state.login.host</label>\r\n        </div>\r\n\r\n        <!-- form login -->\r\n        <div class=\"form-item\">\r\n          <input type=\"text\" class=\"form-control\" id=\"username\" placeholder=\"{{'eo.state.login.username'|translate}}\"\r\n                 [disabled]=\"loading\" autofocus\r\n                 [(ngModel)]=\"form.username\" name=\"username\" required tabindex=\"1\">\r\n          <label for=\"username\" translate>eo.state.login.username</label>\r\n        </div>\r\n        <div class=\"form-item\">\r\n          <input type=\"password\" class=\"form-control\" id=\"password\"\r\n                 placeholder=\"{{'eo.state.login.password'|translate}}\"\r\n                 [disabled]=\"loading\"\r\n                 [(ngModel)]=\"form.password\" name=\"password\" required tabindex=\"2\">\r\n          <label for=\"password\" translate>eo.state.login.password</label>\r\n        </div>\r\n\r\n      </fieldset>\r\n      <div class=\"actions\">\r\n        <button type=\"submit\" class=\"primary\" [disabled]=\"!loginForm.form.valid || loading\"\r\n                [ngClass]=\"{spinner: loading}\"\r\n                translate tabindex=\"3\">eo.state.login.submit</button>\r\n      </div>\r\n    </form>\r\n  </div>\r\n</div>\r\n\r\n<eo-dialog [title]=\"'eo.state.login.presence.dialog.title' | translate\" [(visible)]=\"showAbsentDialog\"\r\n           [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'login-presence__dialog'\">\r\n\r\n  <div>\r\n    <span>{{'eo.state.login.presence.dialog.message' | translate}}</span>\r\n  </div>\r\n\r\n  <div class=\"action-buttons login-presence--action-buttons flex-row\">\r\n    <button type=\"button\" class=\"button cancel\" (click)=\"closeShowAbsentDialog()\"\r\n            translate>eo.cta.button.cancel</button>\r\n    <button type=\"button\" #setAsPresent (click)=\"closeShowAbsentDialog(true)\" class=\"button primary\"\r\n            translate>eo.state.login.presence.dialog.setAsPresent</button>\r\n  </div>\r\n</eo-dialog>\r\n","import {Component, OnDestroy} from '@angular/core';\r\nimport {ActivatedRoute, NavigationExtras, Router} from '@angular/router';\r\nimport {NotificationsService, SearchResult, TranslateService, Utils} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {PendingChangesComponent} from '../../eo-framework-core/pending-changes/pending-changes-component.interface';\r\nimport {PendingChangesService} from '../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {SelectionService} from '../../eo-framework-core/selection/selection.service';\r\nimport {PageTitleService} from '../../eo-framework-core/title/page-title.service';\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-result-state',\r\n  templateUrl: './result-state.component.html',\r\n  styleUrls: ['./result-state.component.scss']\r\n})\r\nexport class ResultStateComponent implements OnDestroy, PendingChangesComponent {\r\n\r\n  query: any;\r\n  clearAfterExecute: boolean;\r\n  searchTerm: string;\r\n  openImmediately = false;\r\n  typeName = 'default';\r\n\r\n  constructor(private pendingChanges: PendingChangesService,\r\n    private route: ActivatedRoute,\r\n    private titleService: PageTitleService,\r\n    private selection: SelectionService,\r\n    private router: Router,\r\n    private notify: NotificationsService,\r\n    public translate: TranslateService) {\r\n    this.titleService.setBaseTitle(this.translate.instant('eo.search.title'));\r\n\r\n    this.route.queryParams\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe((params: any) => {\r\n        if (params.query) {\r\n          if (!!this.pendingChanges.check()) return;\r\n          this.query = Utils.formDataParse(decodeURIComponent(params.query));\r\n          this.typeName = this.query.types && this.query.types.length === 1 ? this.query.types[0] : 'default';\r\n          this.clearAfterExecute = params.silent;\r\n          this.searchTerm = this.query.term;\r\n        }\r\n        if (params.open) {\r\n          this.openImmediately = params.open;\r\n        }\r\n      });\r\n  }\r\n\r\n  hasPendingChanges() {\r\n    return this.pendingChanges.hasPendingTask();\r\n  }\r\n\r\n  onResult(result: SearchResult) {\r\n    if (result.count.value === 1 && this.openImmediately) {\r\n      const queryParams: NavigationExtras = {queryParams: {'type': result.hits[0].type}};\r\n      return this.router.navigate(['/object', result.hits[0].id], queryParams);\r\n    }\r\n    this.openImmediately = false;\r\n  }\r\n\r\n  onQueryInvalid() {\r\n    this.notify.warning(this.translate.instant('eo.search.query.invalid'));\r\n    this.router.navigate(['/']);\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.selection.clear();\r\n  }\r\n}\r\n","<yvc-master-details [layoutOptions]=\"{masterSize: 60, detailsSize: 40}\" [layoutSettingsID]=\"'result.state--' + typeName\"\r\n  [detailsActive]=\"true\">\r\n  <!-- master -->\r\n  <ng-template #yvcMasterPane>\r\n    <eo-result-list [query]=\"query\" [hasIcon]=\"true\" [clearAfterExecute]=\"clearAfterExecute\"\r\n      (onResult)=\"onResult($event)\" (onQueryInvalid)=\"onQueryInvalid()\"></eo-result-list>\r\n  </ng-template>\r\n\r\n  <!-- details -->\r\n  <ng-template #yvcDetailsPane>\r\n    <eo-object-details [searchTerm]=\"searchTerm\" [applySelection]=\"{}\"\r\n      [cacheLayout]=\"'result.state--' + typeName + '.object-details'\" [plugins]=\"'object-details-tab.result' | plugins\">\r\n    </eo-object-details>\r\n  </ng-template>\r\n</yvc-master-details>","import {ColDef, GridOptions} from '@ag-grid-community/core';\r\nimport {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {DmsParams, SystemService, TranslateService, UserService, Utils} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {EmptyState} from '../../eo-framework-core/empty-state/empty-state.interface';\r\nimport {EmptyStateService} from '../../eo-framework-core/empty-state/empty-state.service';\r\nimport {PendingChangesComponent} from '../../eo-framework-core/pending-changes/pending-changes-component.interface';\r\nimport {PendingChangesService} from '../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {SelectionService} from '../../eo-framework-core/selection/selection.service';\r\nimport {PageTitleService} from '../../eo-framework-core/title/page-title.service';\r\nimport {CustomSortComponent} from '../../eo-framework/grid/extensions/custom-sort/custom-sort.component';\r\nimport {SetFilterComponent} from '../../eo-framework/grid/extensions/filter/setFilters/set-filter.component';\r\nimport {ISetFilter} from '../../eo-framework/grid/extensions/filter/setFilters/set-filters.interface';\r\nimport {GridComponent} from '../../eo-framework/grid/grid.component';\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-favorite-state',\r\n  templateUrl: './favorite-state.component.html',\r\n  styleUrls: ['./favorite-state.component.scss']\r\n})\r\nexport class FavoriteStateComponent implements OnInit, PendingChangesComponent, OnDestroy {\r\n\r\n  gridOptions: GridOptions;\r\n  sortFields: ColDef[];\r\n  typeFilterFields: ISetFilter[];\r\n  gridData;\r\n  emptyState: EmptyState = {icon: '', text: '', className: ''};\r\n  showActionsMenu = true;\r\n  textFilterParams: any = {};\r\n\r\n  @ViewChild('eoGrid') eoGrid: GridComponent;\r\n\r\n  constructor(public selection: SelectionService,\r\n              public translate: TranslateService,\r\n              private system: SystemService,\r\n              private empty: EmptyStateService,\r\n              private pendingChanges: PendingChangesService,\r\n              private titleService: PageTitleService,\r\n              private userService: UserService) {\r\n    this.titleService.setBaseTitle(this.translate.instant('eo.favorites.list.title'));\r\n  }\r\n\r\n  set hasContent(hasContent: boolean) {\r\n    this.showActionsMenu = hasContent;\r\n  }\r\n\r\n  get hasContent(): boolean {\r\n    return this.showActionsMenu;\r\n  }\r\n\r\n  hasPendingChanges() {\r\n    return this.pendingChanges.hasPendingTask();\r\n  }\r\n\r\n  refreshGrid() {\r\n    this.userService.getFavorites().subscribe();\r\n  }\r\n\r\n  parseDmsParams(data): DmsParams {\r\n    return data && data.target ? {id: data.target.id, type: data.target.type} : null;\r\n  }\r\n\r\n  typeFilters() {\r\n    const data = this.gridData;\r\n    let uniqueByType = SetFilterComponent.uniqBy(data, 'target.type', this.system.getObjectTypes());\r\n    this.typeFilterFields = uniqueByType.map(t => Object.assign({\r\n      label: t.label,\r\n      value: true,\r\n      filter: (node) => node.data.target.type === t.qname,\r\n      id: t.qname\r\n    })).sort(Utils.sortValues('label'));\r\n  }\r\n\r\n  resetFilters() {\r\n    this.typeFilters();\r\n  }\r\n\r\n  updateGrid(data) {\r\n    this.emptyState = this.empty.getEmptyState(data ? data.length : -1);\r\n    if (this.eoGrid && this.eoGrid.isReady) {\r\n      this.eoGrid.updateRowData(data);\r\n      return this.resetFilters();\r\n    }\r\n\r\n    this.resetFilters();\r\n\r\n    let colDefs: ColDef[] = [\r\n      {\r\n        headerName: '',\r\n        field: '__custom',\r\n        cellRenderer: this.cellRenderer,\r\n        filter: false\r\n      }\r\n    ];\r\n\r\n    this.textFilterParams = {context: {defaultValue: ''}};\r\n    this.sortFields = [\r\n      {field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: null },\r\n      {field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: null }\r\n    ];\r\n\r\n    const sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);\r\n\r\n    this.gridOptions = {\r\n      context: {count: data.length},\r\n      rowData: data,\r\n      columnDefs: colDefs.concat(sortColDefs),\r\n      rowBuffer: 20,\r\n      rowHeight: 80\r\n    };\r\n  }\r\n\r\n  cellRenderer(params) {\r\n    let icon = params.context.cr.render('type', params, {\r\n      value: params.data.target.type\r\n    });\r\n    let createdTime = params.context.cr.render('dateTime', params, {value: params.data.created});\r\n\r\n    return `<div class=\"list-item ${params.data.target.folder ? 'folder' : ''}\" unselectable>\r\n              ${icon}\r\n              <div class='content'>\r\n                <div class='title'>${params.data.title || ''}</div>\r\n                <div class='description date'>\r\n                  ${params.data.created ? '<span class=\"period\">' + createdTime + '</span>' : ''}\r\n                </div>\r\n              </div>\r\n              <div class=\"meta\">\r\n              </div>\r\n           </div>\r\n          `;\r\n  }\r\n\r\n  remove() {\r\n    let focused = this.selection.getFocus();\r\n    if (focused) {\r\n      this.userService.removeFavorite(focused.id).subscribe();\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.refreshGrid();\r\n    this.userService.favoritesGridData$\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe(data => {\r\n        this.gridData = data;\r\n        this.updateGrid(this.gridData);\r\n      });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.selection.clear();\r\n  }\r\n}\r\n","<yvc-split-view [layoutSettingsID]=\"'favorite.state'\">\r\n\r\n  <ng-template yvcSplitArea [size]=\"30\">\r\n    <eo-list-container #eoList [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\">\r\n      <div class=\"eo-header\">\r\n        <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\r\n        <div class=\"eo-header-info\">\r\n          <div class=\"eo-header-title\" translate>eo.favorites.list.title</div>\r\n        </div>\r\n        <div class=\"eo-header-actions\">\r\n          <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\r\n            (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\r\n            [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n\r\n          <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\r\n            [iconTitle]=\"'eo.list.filter' | translate\">\r\n            <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\r\n              (active)=\"oFilter.onActiveChanged($event)\">\r\n              <eo-text-filter [title]=\"'eo.favorites.filter.title' | translate\" [id]=\"'favorites.text'\"\r\n                [matchFields]=\"['title']\" [filterParams]=\"textFilterParams\">\r\n              </eo-text-filter>\r\n              <eo-set-filter [operator]=\"'OR'\" [id]=\"'favorites.set'\"\r\n                [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\r\n                [options]=\"typeFilterFields\"></eo-set-filter>\r\n            </eo-custom-filter>\r\n          </eo-overlay>\r\n\r\n          <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\r\n            [iconTitle]=\"'eo.list.sort' | translate\">\r\n            <eo-custom-sort #cSort [id]=\"'favorites.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\r\n              (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\r\n          </eo-overlay>\r\n\r\n          <eo-icon class=\"button\" (click)=\"hasContent ? eoList.showActions() : false\"\r\n            [ngClass]=\"{'disabled': !hasContent, 'actions-button': hasContent}\"\r\n            [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\r\n        </div>\r\n      </div>\r\n      <div class=\"eo-body\">\r\n        <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\r\n          [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\r\n          (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'DMS_OBJECT')\"\r\n          (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\r\n          (eoGridDoubleClick)=\"eoList.onDoubleClick($event)\" (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\r\n\r\n          <div class=\"header\">\r\n          </div>\r\n\r\n          <div class=\"footer\">\r\n            <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n          </div>\r\n\r\n          <div class=\"empty\">\r\n            <eo-error-message\r\n              [emptyState]=\"{icon: 'ic_favorite.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.favorites.list.empty'}\"></eo-error-message>\r\n            <eo-reset-filter [isFilterActive]=\"oFilter.active\"\r\n              (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\r\n          </div>\r\n\r\n        </eo-grid>\r\n      </div>\r\n    </eo-list-container>\r\n  </ng-template>\r\n\r\n  <ng-template yvcSplitArea [size]=\"70\">\r\n    <eo-object-details [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\" [emptyState]=\"emptyState\"\r\n      [cacheLayout]=\"'favorite.state.object-details'\" (hasContent)=\"hasContent = $event\"\r\n      [plugins]=\"'object-details-tab.favorite' | plugins\">\r\n      <div class=\"error\" *ngIf=\"gridData?.length && !hasContent\">\r\n        <button class=\"button\" (click)=\"remove()\" translate>eo.favorite.details.item.gone.remove</button>\r\n      </div>\r\n    </eo-object-details>\r\n  </ng-template>\r\n</yvc-split-view>","import {ColDef, GridOptions} from '@ag-grid-community/core';\r\nimport {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\r\nimport {EnaioEvent, EoUser, EventService, SearchQuery, StoredQueriesService, StoredQuery, TranslateService, UserService, Utils} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {debounceTime, first} from 'rxjs/operators';\r\nimport {PendingChangesComponent} from '../../eo-framework-core/pending-changes/pending-changes-component.interface';\r\nimport {PendingChangesService} from '../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {AppSearchService} from '../../eo-framework-core/search/app-search.service';\r\nimport {SelectionService} from '../../eo-framework-core/selection/selection.service';\r\nimport {PageTitleService} from '../../eo-framework-core/title/page-title.service';\r\nimport {CustomSortComponent} from '../../eo-framework/grid/extensions/custom-sort/custom-sort.component';\r\nimport {ISetFilter} from '../../eo-framework/grid/extensions/filter/setFilters/set-filters.interface';\r\nimport {GridComponent} from '../../eo-framework/grid/grid.component';\r\nimport {TypeFilter} from '../../eo-framework/stored-query/stored-query-type-filter.enum';\r\nimport {UtilitiesService} from '../../eo-framework/util/services/utilities.service';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-stored-queries-state',\r\n  templateUrl: './stored-queries-state.component.html',\r\n  styleUrls: ['./stored-queries-state.component.scss']\r\n})\r\nexport class StoredQueriesStateComponent implements OnInit, PendingChangesComponent, OnDestroy {\r\n\r\n  storedQueries: StoredQuery[] = [];\r\n  selectedQuery: StoredQuery;\r\n  gridOptions: GridOptions;\r\n  sortFields: ColDef[];\r\n  typeFilterFields: ISetFilter[] = [];\r\n  gridData: StoredQuery[];\r\n  textFilterParams: any = {};\r\n\r\n  user: EoUser;\r\n  selectFirst = true;\r\n\r\n  @ViewChild('eoGrid') eoGrid: GridComponent;\r\n\r\n  constructor(private route: ActivatedRoute,\r\n    private router: Router,\r\n    private pendingChanges: PendingChangesService,\r\n    public translate: TranslateService,\r\n    private selection: SelectionService,\r\n    private storedQueriesService: StoredQueriesService,\r\n    private titleService: PageTitleService,\r\n    private userService: UserService,\r\n    private appSearch: AppSearchService,\r\n    private eventService: EventService) {\r\n    this.titleService.setBaseTitle(this.translate.instant('eo.search.title.storedqueries'));\r\n  }\r\n\r\n  select(query: StoredQuery) {\r\n    this.selection.focus(query);\r\n    if (this.eoGrid) {\r\n      this.eoGrid.api.deselectAll();\r\n      this.eoGrid.api.clearFocusedCell();\r\n    }\r\n  }\r\n\r\n  hasPendingChanges() {\r\n    return this.pendingChanges.hasPendingTask();\r\n  }\r\n\r\n  getStoredQuerys() {\r\n    this.refreshGrid();\r\n    this.storedQueriesService\r\n      .storedQueries$.pipe(\r\n        untilDestroyed(this),\r\n        debounceTime(100)\r\n      ).subscribe((queriesSubscription: any) => {\r\n        this.gridData = queriesSubscription.queries.sort(Utils.sortValues('name')).sort(Utils.sortValues('favorite', 'desc'));\r\n        this.updateGrid(this.gridData, queriesSubscription.select && this.gridData ? queriesSubscription.select : null);\r\n      });\r\n  }\r\n\r\n  refreshGrid() {\r\n    this.storedQueriesService.refreshStoredQueries();\r\n  }\r\n\r\n  getRowIndex(id) {\r\n    if (this.eoGrid && id) {\r\n      const rowNode = this.eoGrid.api.getRowNode(id);\r\n      return rowNode ? rowNode.rowIndex : null;\r\n    }\r\n    return null;\r\n  }\r\n\r\n  notifyList(val) {\r\n    if (this.eoGrid) {\r\n      const {unselect, update, payload} = val;\r\n      if (!unselect && !update && !payload) {\r\n        setTimeout(() => this.eoGrid.selectRow(0), 500);\r\n      }\r\n    }\r\n  }\r\n\r\n  typeFilter(node, item: string) {\r\n    switch (item) {\r\n      case TypeFilter.favored:\r\n      case TypeFilter.shared:\r\n        return !UtilitiesService.isEmptyOrFalse(node.data[item]);\r\n      case TypeFilter.others:\r\n        return UtilitiesService.isEmptyOrFalse(node.data[TypeFilter.favored]) && UtilitiesService.isEmptyOrFalse(node.data[TypeFilter.shared]);\r\n      default:\r\n        return true;\r\n    }\r\n  }\r\n\r\n  typeFilters() {\r\n    this.typeFilterFields = Object.keys(TypeFilter).map(item => ({\r\n      label: this.translate.instant(`eo.storedquery.${item}.filter.title`),\r\n      filter: (node) => this.typeFilter(node, TypeFilter[item]),\r\n      value: true,\r\n      id: item\r\n    }));\r\n  }\r\n\r\n  resetFilters() {\r\n    this.typeFilters();\r\n  }\r\n\r\n  updateGrid(data, id) {\r\n\r\n    if (this.eoGrid && this.eoGrid.isReady) {\r\n      // todo: hotfix: enable auto selection in case it was disabled by new query\r\n      setTimeout(() => (this.selectFirst = true), 1000);\r\n      return this.eoGrid.updateRowData(data, id);\r\n    }\r\n\r\n    this.resetFilters();\r\n\r\n    let colDefs: ColDef[] = [\r\n      {\r\n        headerName: '',\r\n        field: '__custom',\r\n        cellRenderer: this.cellRenderer,\r\n        filter: false\r\n      }\r\n    ];\r\n\r\n    this.textFilterParams = {context: {defaultValue: ''}};\r\n    this.sortFields = [{field: 'name', headerName: this.translate.instant('eo.inbox.sort.title'), sort: null}];\r\n    let sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);\r\n\r\n    this.gridOptions = {\r\n      context: {count: data.length, currentUser: this.userService.getCurrentUser()},\r\n      rowData: data,\r\n      columnDefs: colDefs.concat(sortColDefs),\r\n      rowBuffer: 20,\r\n      rowHeight: 80\r\n    };\r\n  }\r\n\r\n  cellRenderer(params) {\r\n    const own = params.context.currentUser.name.toLowerCase() === params.data.user.toLowerCase();\r\n\r\n    const favIconTitle = !own ? 'eo.storedquery.favoredfor.title' : 'eo.storedquery.favored.title';\r\n    const shareIconTitle = !own ? 'eo.storedquery.sharedfor.title' : 'eo.storedquery.shared.title';\r\n\r\n    const favIcon = UtilitiesService.isEmptyOrFalse(params.data[TypeFilter.favored]) ? '' :\r\n      params.context.cr.render('icon', params, {\r\n        value: {label: params.context.translate.instant(favIconTitle), url: 'assets/_default/svg/ic_favorite.svg'}\r\n      });\r\n\r\n    const shareIcon = UtilitiesService.isEmptyOrFalse(params.data[TypeFilter.shared]) ? '' :\r\n      params.context.cr.render('icon', params, {\r\n        value: {label: params.context.translate.instant(shareIconTitle), url: 'assets/_default/svg/ic_share.svg'}\r\n      });\r\n\r\n\r\n    return `<div class=\"list-item\" unselectable>\r\n              <div class='content'>\r\n                <div class='title'>${params.data.name || ''}</div>\r\n                <div class='icons ${!own ? 'shared-with-me' : ''}'>\r\n                  <span>${favIcon}</span>\r\n                  <span>${shareIcon}</span>\r\n                </div>\r\n              </div>\r\n              <div class=\"meta\">\r\n              </div>\r\n           </div>\r\n          `;\r\n  }\r\n\r\n  remove() {\r\n    let focused = this.selection.getFocus();\r\n    if (focused) {\r\n      this.storedQueriesService.removeStoredQuery(focused.id).subscribe();\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.selection.clear();\r\n  }\r\n\r\n  private createNewStoredQuery() {\r\n    this.appSearch.query$\r\n      .pipe(\r\n        untilDestroyed(this),\r\n        first()\r\n      )\r\n      .subscribe((query: SearchQuery) => {\r\n        let sq = new StoredQuery();\r\n        sq.setQuery(query);\r\n        this.select(sq);\r\n      }\r\n      );\r\n    // get rid of the query param\r\n    this.router.navigate(['/stored-queries'], {replaceUrl: true});\r\n  }\r\n\r\n  ngOnInit() {\r\n\r\n    this.getStoredQuerys();\r\n\r\n    // in case of getting the create param, we'll fetch the latest query from\r\n    // appSearchService and create a new StoredQuery from it\r\n    if (this.route.snapshot.queryParams['create']) {\r\n      this.selectFirst = false;\r\n      this.createNewStoredQuery();\r\n    }\r\n\r\n    this.router.events\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe(event => {\r\n        if (event instanceof NavigationEnd && event.urlAfterRedirects === '/stored-queries?create=true') {\r\n          this.createNewStoredQuery();\r\n        }\r\n      });\r\n\r\n    this.eventService.on(EnaioEvent.STORED_OBJECT_SHARED)\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe(() => {\r\n        this.eoGrid.api.refreshCells({force: true});\r\n      });\r\n\r\n    this.eventService.on(EnaioEvent.STORED_OBJECT_FAVORISED)\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe(() => {\r\n        this.eoGrid.api.refreshCells({force: true});\r\n      });\r\n  }\r\n\r\n}\r\n","<yvc-split-view [layoutSettingsID]=\"'stored.queries.state'\">\r\n  <!-- list -->\r\n  <ng-template yvcSplitArea [size]=\"25\">\r\n    <eo-list-container #eoList [applySelection]=\"{}\">\r\n      <div class=\"eo-header\">\r\n        <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"></eo-icon>\r\n        <div class=\"eo-header-info\">\r\n          <div class=\"eo-header-title\" translate>eo.sidebar.navigation.storedqueries</div>\r\n        </div>\r\n        <div class=\"eo-header-actions\">\r\n          <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\r\n            (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\r\n            [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n\r\n          <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\r\n            [iconTitle]=\"'eo.list.filter' | translate\">\r\n            <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\r\n              (active)=\"oFilter.onActiveChanged($event)\">\r\n              <eo-text-filter [title]=\"'eo.folder.filter.title' | translate\" [id]=\"'stored.queries.text'\"\r\n                [matchFields]=\"['name']\" [filterParams]=\"textFilterParams\"></eo-text-filter>\r\n              <eo-set-filter [operator]=\"'OR'\" [id]=\"'stored.queries.type'\"\r\n                [title]=\"'eo.folder.filter.section.objecttype' | translate\"\r\n                [options]=\"typeFilterFields\"></eo-set-filter>\r\n            </eo-custom-filter>\r\n          </eo-overlay>\r\n\r\n          <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\r\n            [iconTitle]=\"'eo.list.sort' | translate\">\r\n            <eo-custom-sort #cSort [id]=\"'stored.queries.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\r\n              (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\r\n          </eo-overlay>\r\n        </div>\r\n      </div>\r\n      <div class=\"eo-body\">\r\n        <eo-grid #eoGrid [gridOptions]=\"gridOptions\" *ngIf=\"gridOptions?.rowData\" [fullWidth]=\"true\" [showHeader]=\"true\"\r\n          [showFooter]=\"true\" [selectFirst]=\"selectFirst\" (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\r\n          (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\r\n          (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\r\n\r\n          <div class=\"header\">\r\n          </div>\r\n\r\n          <div class=\"footer\">\r\n            <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n          </div>\r\n\r\n          <div class=\"empty\">\r\n            <eo-error-message\r\n              [emptyState]=\"{icon: 'ic_search.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.stored.queries.list.empty'}\"></eo-error-message>\r\n            <eo-reset-filter [isFilterActive]=\"oFilter.active\"\r\n              (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\r\n          </div>\r\n        </eo-grid>\r\n      </div>\r\n    </eo-list-container>\r\n  </ng-template>\r\n\r\n  <!-- details -->\r\n  <ng-template yvcSplitArea [size]=\"75\">\r\n    <eo-stored-query-details (notifyList)=\"notifyList($event)\"></eo-stored-query-details>\r\n  </ng-template>\r\n</yvc-split-view>","import {ColDef, GridOptions} from '@ag-grid-community/core';\r\nimport {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {UntypedFormBuilder, UntypedFormGroup} from '@angular/forms';\r\nimport {AppCacheService, BackendService, BpmService, Process, RangeValue, SearchFilter, TranslateService, Utils} from '@eo-sdk/core';\r\nimport {Observable} from 'rxjs';\r\nimport {map} from 'rxjs/operators';\r\nimport {EmptyState} from '../../eo-framework-core/empty-state/empty-state.interface';\r\nimport {EmptyStateService} from '../../eo-framework-core/empty-state/empty-state.service';\r\nimport {PendingChangesComponent} from '../../eo-framework-core/pending-changes/pending-changes-component.interface';\r\nimport {PendingChangesService} from '../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {SelectionService} from '../../eo-framework-core/selection/selection.service';\r\nimport {PageTitleService} from '../../eo-framework-core/title/page-title.service';\r\nimport {GridComponent} from '../../eo-framework/grid/grid.component';\r\nimport {CustomSortComponent} from \"../../eo-framework\";\r\n\r\n@Component({\r\n  selector: \"eo-process-state\",\r\n  templateUrl: \"./process-state.component.html\",\r\n  styleUrls: [\"./process-state.component.scss\"]\r\n})\r\nexport class ProcessStateComponent\r\n  implements OnInit, OnDestroy, PendingChangesComponent {\r\n  gridOptions: GridOptions;\r\n  processSelectionId = \"process\";\r\n  processSelection: SelectionService;\r\n  emptyState1: EmptyState = { icon: \"\", text: \"\", className: \"\" };\r\n  emptyState2: EmptyState = { icon: \"\", text: \"\", className: \"\" };\r\n  filterCacheKey = \"eo.process.list.filter\";\r\n  sortCacheKey = \"eo.process.list.sort\";\r\n  VIRTUAL_LIST_CHUNK_SIZE = 50;\r\n  filterForm: UntypedFormGroup;\r\n  defaultFilterFormValue = {\r\n    modelFCN: null,\r\n    runningFCN: true,\r\n    pausedFCN: true,\r\n    createdFCN: true,\r\n    canceledFCN: true,\r\n    failedFCN: true,\r\n    completedFCN: true,\r\n    startTimeFCN: null\r\n  };\r\n  sortParams = {\r\n    starttime: ''\r\n  };\r\n  defaultSortParams = {\r\n    starttime: ''\r\n  };\r\n  sortFields: ColDef[];\r\n  settings = {};\r\n  colDefs: ColDef[] = [\r\n    {\r\n      headerName: \"\",\r\n      field: \"__custom\",\r\n      cellRenderer: this.cellRenderer,\r\n      filter: false\r\n    }\r\n  ];\r\n  processModelsListObject = {\r\n    entries: [],\r\n    config: {\r\n      valueField: \"name\",\r\n      subEntriesField: \"models\"\r\n    }\r\n  };\r\n\r\n  @ViewChild(\"eoGrid\") eoGrid: GridComponent;\r\n\r\n  constructor(\r\n    public translate: TranslateService,\r\n    public bpmService: BpmService,\r\n    public selection: SelectionService,\r\n    private empty: EmptyStateService,\r\n    private backend: BackendService,\r\n    private fb: UntypedFormBuilder,\r\n    private titleService: PageTitleService,\r\n    private appCache: AppCacheService,\r\n    private pendingChanges: PendingChangesService\r\n  ) {\r\n    this.titleService.setBaseTitle(this.translate.instant('eo.state.process'));\r\n\r\n    //secondary selection instance for inbox items\r\n    this.processSelection = this.selection.createNew(this.processSelectionId);\r\n\r\n    this.fetchProcessModels().subscribe(processModels => {\r\n      this.processModelsListObject.entries = processModels;\r\n    });\r\n\r\n    this.appCache\r\n      .getItem(this.filterCacheKey)\r\n      .subscribe(\r\n        filterValue =>\r\n          this.initFilter(\r\n            filterValue ? filterValue : this.defaultFilterFormValue\r\n          ),\r\n        () => this.initFilter(this.defaultFilterFormValue)\r\n      );\r\n\r\n    this.appCache.getItem(this.sortCacheKey).subscribe(sortParams => {\r\n      if (sortParams) {\r\n        this.sortParams = sortParams;\r\n      }\r\n    });\r\n  }\r\n\r\n  private fetchProcessModels(): Observable<any> {\r\n    return this.backend.get(\"/bpm/management/project?includeModels=true\");\r\n  }\r\n\r\n  private initFilter(filterValue) {\r\n    this.filterForm = this.fb.group({\r\n      modelFCN: [filterValue.modelFCN],\r\n      runningFCN: [filterValue.runningFCN],\r\n      pausedFCN: [filterValue.pausedFCN],\r\n      createdFCN: [filterValue.createdFCN],\r\n      canceledFCN: [filterValue.canceledFCN],\r\n      failedFCN: [filterValue.failedFCN],\r\n      completedFCN: [filterValue.completedFCN],\r\n      startTimeFCN: [\r\n        filterValue.startTimeFCN ?\r\n        new RangeValue(\r\n          filterValue.startTimeFCN.operator,\r\n          filterValue.startTimeFCN.firstValue,\r\n          filterValue.startTimeFCN.secondValue\r\n        ) : null\r\n      ]\r\n    });\r\n    this.filterForm.valueChanges.subscribe(() => {\r\n      this.appCache.setItem(this.filterCacheKey, this.filterForm.value).subscribe();\r\n      this.onPageChanged();\r\n    });\r\n    setTimeout(() => this.onPageChanged(), 100);\r\n  }\r\n\r\n  refreshList() {\r\n    this.onPageChanged();\r\n  }\r\n\r\n  initGrid() {\r\n    this.settings = {total: 0, size: this.VIRTUAL_LIST_CHUNK_SIZE};\r\n    this.sortFields = [\r\n      {field: 'starttime', headerName: this.translate.instant('eo.grid.sort.date'), sort: null},\r\n    ];\r\n\r\n    const sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);\r\n    this.gridOptions = {\r\n      context: { count: 0 },\r\n      columnDefs: this.colDefs.concat(sortColDefs),\r\n      rowBuffer: 20,\r\n      rowHeight: 80,\r\n      rowSelection: 'single',\r\n      rowData: []\r\n    };\r\n  }\r\n\r\n  resetFilters() {\r\n    if (this.filterForm) {\r\n      this.filterForm.setValue(this.defaultFilterFormValue);\r\n    }\r\n  }\r\n\r\n  sort(evt: CustomEvent) {\r\n    this.sortParams.starttime = evt.detail[0]?.sort ? evt.detail[0].sort : '';\r\n    this.appCache.setItem(this.sortCacheKey, this.sortParams).subscribe();\r\n    this.onPageChanged();\r\n  }\r\n\r\n  onPageChanged(page: number = 1) {\r\n    this.fetchRowData({\r\n      startRow: this.VIRTUAL_LIST_CHUNK_SIZE * (page - 1),\r\n      successCallback: (rows, total) => {\r\n        this.eoGrid.api?.setGridOption('rowData', rows);\r\n        this.settings = {total, size: this.VIRTUAL_LIST_CHUNK_SIZE, page};\r\n        this.eoGrid.selectRow(0);\r\n      }\r\n    });\r\n  }\r\n\r\n  private fetchRowData(params) {\r\n    const page = Math.floor(params.startRow / this.VIRTUAL_LIST_CHUNK_SIZE);\r\n    const sort = this.sortParams.starttime;\r\n    this.getProcesses({ size: this.VIRTUAL_LIST_CHUNK_SIZE, page, sort}).subscribe((processes) => {\r\n      if (params.startRow === 0) {\r\n        this.emptyState1 = this.empty.getEmptyState(processes.content ? processes.content.length : -1, undefined, 'ic_no-file.svg');\r\n        this.emptyState2 = this.empty.getEmptyState(processes.content ? processes.content.length : -1, undefined, 'ic_no-file.svg');\r\n      }\r\n      this.eoGrid.gridOptions.context.rowCount = processes.totalElements;\r\n      this.eoGrid.gridOptions.context.count = processes.totalElements;\r\n      params.successCallback(processes.processes, processes.totalElements);\r\n    });\r\n  }\r\n\r\n  private getProcesses(options) {\r\n    let url = Utils.buildUri(`/processes`, options || {});\r\n    url = this.addFilterParamsToUrl(url);\r\n    url = this.addSortParamsToUrl(url);\r\n    return this.backend\r\n      .getJson(url, this.backend.getBpmBase())\r\n      .pipe(\r\n        map(response => {\r\n          let processes = response.content.map(item => {\r\n            const process = new Process(item);\r\n            return process;\r\n          });\r\n          response.processes = this.addIconUrl(processes);\r\n          return response;\r\n        })\r\n      );\r\n  }\r\n\r\n  private addFilterParamsToUrl(url): string {\r\n    if (!this.filterForm || !this.filterForm.value) {\r\n      return url;\r\n    }\r\n\r\n    if (this.filterForm.value.createdFCN) {\r\n      url += \"&state=0\";\r\n    }\r\n    if (this.filterForm.value.runningFCN) {\r\n      url += \"&state=20\";\r\n    }\r\n    if (this.filterForm.value.completedFCN) {\r\n      url += \"&state=30\";\r\n    }\r\n    if (this.filterForm.value.pausedFCN) {\r\n      url += \"&state=40\";\r\n    }\r\n    if (this.filterForm.value.canceledFCN) {\r\n      url += \"&state=50\";\r\n    }\r\n    if (this.filterForm.value.failedFCN) {\r\n      url += \"&state=60\";\r\n    }\r\n    if (this.filterForm.value.modelFCN) {\r\n      url +=\r\n        \"&modelid=\" + this.getModelIdFromName(this.filterForm.value.modelFCN);\r\n    }\r\n    if (this.filterForm.value.startTimeFCN && this.filterForm.value.startTimeFCN.firstValue) {\r\n\r\n      const {operator, firstValue, secondValue} = this.filterForm.value.startTimeFCN;\r\n      const query: any = new SearchFilter('starttime', operator, firstValue, secondValue, {time: true, timezone: true}).toDateTimeQuery();\r\n\r\n      if (query.o === SearchFilter.OPERATOR.EQUAL) {\r\n        url += '&starttime_eq=' + query.v1;\r\n      }\r\n      if (query.o.match(SearchFilter.OPERATOR.GREATER_OR_EQUAL)) {\r\n        url += \"&starttime_gte=\" + query.v1;\r\n      }\r\n      if (query.o.match(SearchFilter.OPERATOR.LESS_OR_EQUAL)) {\r\n        url += \"&starttime_lte=\" + (query.o === SearchFilter.OPERATOR.INTERVAL_INCLUDE_BOTH ? query.v2 : query.v1);\r\n      }\r\n    }\r\n    return url;\r\n  }\r\n\r\n  private addSortParamsToUrl(url): string {\r\n    if (this.sortParams.starttime) {\r\n      url += '&sort=starttime,' + this.sortParams.starttime;\r\n    }\r\n    return url;\r\n  }\r\n\r\n  private getModelIdFromName(modelName): string {\r\n    let id = \"\";\r\n    this.processModelsListObject.entries.forEach(model => {\r\n      if (model.name === modelName) {\r\n        id = model.id;\r\n      } else if (model.models) {\r\n        model.models.forEach(submodel => {\r\n          if (submodel.name === modelName) {\r\n            id = submodel.id;\r\n          }\r\n        });\r\n      }\r\n    });\r\n    return id;\r\n  }\r\n\r\n  addIconUrl(processes: Process[]) {\r\n    processes.forEach((process: Process) => {\r\n      if (!process.iconid) {\r\n        if (process.state === 'ERRORSUSPENDED') {\r\n          process.iconurl = 'assets/_default/svg/ic_bpm_warning.svg';\r\n        } else if (process.state === 'COMPLETED') {\r\n          process.iconurl = 'assets/_default/svg/ic_bpm_done.svg';\r\n        } else {\r\n          process.iconurl = \"assets/_default/svg/ic_bpm.svg\";\r\n        }\r\n      }\r\n    });\r\n    return processes;\r\n  }\r\n\r\n  cellRenderer(params) {\r\n    if (params.data) {\r\n      let icon = params.context.cr.render(\"icon\", params, {\r\n        value: {\r\n          url: params.data.iconid ? \"\" : params.data.iconurl,\r\n          iconId: !params.data.iconid ? \"\" : params.data.iconid,\r\n          label: params.data.modelname\r\n        }\r\n      });\r\n\r\n      const startTime = params.context.cr.render('dateTime', params, { value: params.data.starttime, pattern: 'eoShortDate' });\r\n      const endTime = params.context.cr.render('dateTime', params, { value: params.data.endtime, pattern: 'eoShortDate' });\r\n      const hasError = params.data.state === 'ERRORSUSPENDED' ? 'error' : '';\r\n      const hasNotYetBeenStarted = params.data.state === 0 ? 'notstarted' : '';\r\n      const endTimeMarkup: string = (endTime.length) ? `<div class=\"date end\">\r\n                                                          <span>${params.context.translate.instant('eo.process.end.time.label')}</span>\r\n                                                          <div class=\"time\"> ${endTime}</div>\r\n                                                        </div>`\r\n        : \"\";\r\n      const startTimeMarkup: string = startTime.length\r\n        ? `<div class=\"date\">\r\n                                                          <span>${params.context.translate.instant(\r\n                                                            \"eo.process.start.time.label\"\r\n                                                          )}</span>\r\n                                                          <div class=\"time\"> ${startTime}</div>\r\n                                                        </div>`\r\n        : \"\";\r\n\r\n      return `<div class=\"list-item ${hasError} ${hasNotYetBeenStarted}\" unselectable>\r\n            ${icon}\r\n            <div class='content'>\r\n              <div class='title'>${params.data.title || \"...\"}</div>\r\n              <div class='description'>${params.data.modelname || \"...\"}</div>\r\n             </div>\r\n            <div class=\"meta\">\r\n              <div class=\"datelabel\">\r\n                ${startTimeMarkup}\r\n                ${endTimeMarkup}\r\n              </div>\r\n            </div>\r\n         </div>\r\n        `;\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.initGrid();\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.selection.clear();\r\n  }\r\n\r\n  hasChanged(oV, nV): boolean {\r\n    return JSON.stringify(oV) !== JSON.stringify(nV);\r\n  }\r\n\r\n  hasPendingChanges() {\r\n    return this.pendingChanges.hasPendingTask();\r\n  }\r\n}\r\n","<yvc-split-view [layoutSettingsID]=\"'inbox.state'\">\r\n  <!-- list -->\r\n  <ng-template yvcSplitArea [size]=\"30\">\r\n    <eo-list-container #eoList [applySelection]=\"{out: processSelectionId}\">\r\n      <div class=\"eo-header\">\r\n        <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"></eo-icon>\r\n        <div class=\"eo-header-info\">\r\n          <div class=\"eo-header-title\" translate>eo.state.process</div>\r\n        </div>\r\n        <div class=\"eo-header-actions\">\r\n          <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\r\n                   (click)=\"refreshList()\"\r\n                   [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n\r\n          <eo-overlay #oFilter [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\r\n                      class=\"overlay-filter\"\r\n                      [iconTitle]=\"'eo.list.filter' | translate\"\r\n                      [active]=\"hasChanged(defaultFilterFormValue, filterForm?.value)\">\r\n            <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\r\n                              (active)=\"oFilter.onActiveChanged($event)\">\r\n              <div class=\"filter-title\" translate>eo.filter.by</div>\r\n              <form [formGroup]=\"filterForm\" *ngIf='filterForm'>\r\n                <eo-form-input [label]=\"('eo.state.process.filter.labels.model' | translate)\" *ngIf=\"processModelsListObject.entries.length\">\r\n                  <eo-dynamic-list formControlName=\"modelFCN\" [pickerTitle]=\"'Models'\" [listObject]=\"processModelsListObject\"></eo-dynamic-list>\r\n                </eo-form-input>\r\n                <eo-form-input [label]=\"('eo.state.process.filter.labels.running' | translate)\">\r\n                  <eo-checkbox formControlName=\"runningFCN\" [tristate]=\"false\"></eo-checkbox>\r\n                </eo-form-input>\r\n                <eo-form-input [label]=\"('eo.state.process.filter.labels.paused' | translate)\">\r\n                  <eo-checkbox formControlName=\"pausedFCN\" [tristate]=\"false\"></eo-checkbox>\r\n                </eo-form-input>\r\n                <eo-form-input [label]=\"('eo.state.process.filter.labels.created' | translate)\">\r\n                  <eo-checkbox formControlName=\"createdFCN\" [tristate]=\"false\"></eo-checkbox>\r\n                </eo-form-input>\r\n                <eo-form-input [label]=\"('eo.state.process.filter.labels.canceled' | translate)\">\r\n                  <eo-checkbox formControlName=\"canceledFCN\" [tristate]=\"false\"></eo-checkbox>\r\n                </eo-form-input>\r\n                <eo-form-input [label]=\"('eo.state.process.filter.labels.failed' | translate)\">\r\n                  <eo-checkbox formControlName=\"failedFCN\" [tristate]=\"false\"></eo-checkbox>\r\n                </eo-form-input>\r\n                <eo-form-input [label]=\"('eo.state.process.filter.labels.completed' | translate)\">\r\n                  <eo-checkbox formControlName=\"completedFCN\" [tristate]=\"false\"></eo-checkbox>\r\n                </eo-form-input>\r\n                <eo-form-input [label]=\"('eo.state.process.filter.labels.starttime' | translate)\">\r\n                  <eo-datetime-range formControlName=\"startTimeFCN\" [withTime]=\"false\"></eo-datetime-range>\r\n                </eo-form-input>\r\n              </form>\r\n              <button class=\"reset-filter\" (click)=\"resetFilters()\" *ngIf=\"hasChanged(defaultFilterFormValue, filterForm?.value)\">Reset filter</button>\r\n            </eo-custom-filter>\r\n          </eo-overlay>\r\n\r\n          <eo-overlay #oSort\r\n                      class=\"overlay-sort\"\r\n                      [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\r\n                      [iconTitle]=\"'eo.list.sort' | translate\"\r\n                      [active]=\"hasChanged(defaultSortParams, sortParams)\">\r\n            <eo-custom-sort [id]=\"'process.sort'\" (change)=\"sort($event)\"\r\n                            (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\r\n          </eo-overlay>\r\n\r\n        </div>\r\n      </div>\r\n      <div class=\"eo-body\">\r\n        <eo-grid #eoGrid\r\n                 *ngIf=\"gridOptions\"\r\n                 [gridOptions]=\"gridOptions\"\r\n                 [fullWidth]=\"true\"\r\n                 [showHeader]=\"true\"\r\n                 [showFooter]=\"true\"\r\n                 [selectFirst]=\"true\"\r\n                 (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\r\n                 (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\r\n                 (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\r\n          <div class=\"header\">\r\n          </div>\r\n\r\n          <div class=\"footer\">\r\n            <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n            <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\r\n          </div>\r\n\r\n          <div class=\"empty\">\r\n            <eo-error-message [emptyState]=\"{icon: 'ic_bpm.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.process.list.empty'}\"></eo-error-message>\r\n            <eo-reset-filter [isFilterActive]=\"oFilter.active\" (click)=\"resetFilters()\"></eo-reset-filter>\r\n          </div>\r\n        </eo-grid>\r\n      </div>\r\n    </eo-list-container>\r\n  </ng-template>\r\n\r\n  <!-- process details -->\r\n  <ng-template yvcSplitArea [size]=\"30\">\r\n    <eo-process-details [applySelection]=\"{in: processSelectionId}\" [emptyState]=\"emptyState1\"\r\n    [plugins]=\"'process-details-tab.process' | plugins\">\r\n    </eo-process-details>\r\n  </ng-template>\r\n\r\n  <!-- object details -->\r\n  <ng-template yvcSplitArea [size]=\"40\">\r\n    <eo-object-details [applySelection]=\"{}\"\r\n                           [cacheLayout]=\"'process.state.object-details'\"\r\n                           [emptyState]=\"emptyState2\"\r\n                           [plugins]=\"'object-details-tab.process' | plugins\">\r\n        </eo-object-details>\r\n  </ng-template>\r\n</yvc-split-view>\r\n","import {ColDef, GridOptions} from '@ag-grid-community/core';\r\nimport {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {\r\n  BackendService, DmsObject,\r\n  DmsParams, DmsService, EnaioEvent,\r\n  EventService, SystemService, TranslateService, UserService, Utils\r\n} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {catchError} from 'rxjs/operators';\r\nimport {EmptyState} from '../../eo-framework-core/empty-state/empty-state.interface';\r\nimport {EmptyStateService} from '../../eo-framework-core/empty-state/empty-state.service';\r\nimport {PendingChangesComponent} from '../../eo-framework-core/pending-changes/pending-changes-component.interface';\r\nimport {PendingChangesService} from '../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {SelectionService} from '../../eo-framework-core/selection/selection.service';\r\nimport {PageTitleService} from '../../eo-framework-core/title/page-title.service';\r\nimport {CustomSortComponent} from '../../eo-framework/grid/extensions/custom-sort/custom-sort.component';\r\nimport {SetFilterComponent} from '../../eo-framework/grid/extensions/filter/setFilters/set-filter.component';\r\nimport {ISetFilter} from '../../eo-framework/grid/extensions/filter/setFilters/set-filters.interface';\r\nimport {GridComponent} from '../../eo-framework/grid/grid.component';\r\nimport {INotificationState, IResubmission, ISubscription} from './notifications-state.interface';\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-notifications-state',\r\n  templateUrl: './notifications-state.component.html',\r\n  styleUrls: ['./notifications-state.component.scss']\r\n})\r\nexport class NotificationsStateComponent implements OnInit, PendingChangesComponent, OnDestroy {\r\n\r\n  gridOptions: GridOptions;\r\n  sortFields: ColDef[];\r\n  typeFilterFields: ISetFilter[];\r\n  objectTypeFilterFields: ISetFilter[];\r\n  selectedItems: DmsObject[];\r\n  gridData;\r\n  emptyState: EmptyState = EmptyStateService.defaultEmptyState();\r\n  textFilterParams: any = {};\r\n\r\n  @ViewChild('eoGrid') eoGrid: GridComponent;\r\n\r\n  constructor(public selection: SelectionService,\r\n    public translate: TranslateService,\r\n    public system: SystemService,\r\n    private pendingChanges: PendingChangesService,\r\n    private empty: EmptyStateService,\r\n    private backend: BackendService,\r\n    private eventService: EventService,\r\n    private dmsService: DmsService,\r\n    private titleService: PageTitleService,\r\n    public userService: UserService) {\r\n    this.titleService.setBaseTitle(this.translate.instant('eo.notifications.list.title'));\r\n  }\r\n\r\n  hasPendingChanges() {\r\n    return this.pendingChanges.hasPendingTask();\r\n  }\r\n\r\n  getNotificationData() {\r\n    this.userService\r\n      .getNotifications()\r\n      .subscribe(([sub, reSub]: [ISubscription[], IResubmission[]]) => {\r\n        const data = [...sub, ...reSub];\r\n        this.gridData = data;\r\n        this.updateGrid(this.gridData);\r\n      });\r\n  }\r\n\r\n  refreshGrid() {\r\n    this.getNotificationData();\r\n  }\r\n\r\n  parseDmsParams(data): DmsParams {\r\n    return data && data.target ? { id: data.target.id, type: data.target.type } : null;\r\n  }\r\n\r\n  remove() {\r\n    const focused = this.selection.getFocus();\r\n    if (focused) {\r\n      this.userService.removeNotifications(focused.id, focused.messagetype)\r\n        .subscribe(val => this.eventService.trigger(EnaioEvent.DMS_OBJECT_DELETED, focused));\r\n    }\r\n  }\r\n\r\n  removeSubscriptionAndResubmissions(){\r\n    const focused = this.selection.getFocus();\r\n    if (focused) {\r\n      this.dmsService.getDmsObject(focused.target.id, null, null, null, true).subscribe(dmsObject => {\r\n        this.dmsService.removeResubmissionsById(focused.target.id, dmsObject).pipe(catchError(Utils.catchSkip(err => err.status === 404))).subscribe();\r\n        this.dmsService.removeSubscriptionById(dmsObject.subscriptions[0].id, dmsObject).pipe(catchError(Utils.catchSkip(err => err.status === 404))).subscribe()\r\n        this.eventService.trigger(EnaioEvent.DMS_OBJECT_DELETED, focused);\r\n      });\r\n    }\r\n  }\r\n\r\n  resetFilters() {\r\n    this.typeFilters(this.gridData);\r\n  }\r\n\r\n  typeFilter(data) {\r\n    const uniqueByType = SetFilterComponent.uniqBy(data, 'target.type', this.system.getObjectTypes());\r\n    this.typeFilterFields = uniqueByType.map((type) => Object.assign({\r\n      label: type.label,\r\n      value: true,\r\n      filter: (node) => node.data.target.type === type.qname,\r\n      id: type.qname\r\n    })).sort(Utils.sortValues('label'));\r\n  }\r\n\r\n  objectTypeFilter(data) {\r\n    const uniqueByMessageType: INotificationState[] = SetFilterComponent.uniqByProperty(data, 'messagetype');\r\n    this.objectTypeFilterFields = uniqueByMessageType.map(type => Object.assign({\r\n      label: this.translate.instant(`eo.notifications.filter.${type.messagetype.toLowerCase()}.label`),\r\n      value: true,\r\n      filter: (node) => node.data.messagetype === type.messagetype,\r\n      id: type.messagetype\r\n    })).sort(Utils.sortValues('label'));\r\n  }\r\n\r\n  typeFilters(data) {\r\n    this.typeFilter(data);\r\n    this.objectTypeFilter(data);\r\n  }\r\n\r\n  updateGrid(data: INotificationState | any) {\r\n    this.emptyState = this.empty.getEmptyState(data ? data.length : -1);\r\n\r\n    if (this.eoGrid && this.eoGrid.isReady) {\r\n      this.eoGrid.updateRowData(data);\r\n      return this.resetFilters();\r\n    }\r\n\r\n    this.resetFilters();\r\n\r\n    const colDefs: ColDef[] = [\r\n      {\r\n        headerName: '',\r\n        field: '__custom',\r\n        cellRenderer: this.cellRenderer,\r\n        filter: false\r\n      }];\r\n\r\n    this.textFilterParams = { context: { defaultValue: '' } };\r\n    this.sortFields = [\r\n      { field: 'due', headerName: this.translate.instant('eo.notifications.sort.due'), sort: null },\r\n      { field: 'info', headerName: this.translate.instant('eo.notifications.sort.title'), sort: null },\r\n      { field: 'messagetype', headerName: this.translate.instant('eo.notifications.sort.type'), sort: null }\r\n    ];\r\n\r\n    const sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);\r\n    this.gridOptions = {\r\n      context: { count: data.length },\r\n      rowData: data,\r\n      columnDefs: colDefs.concat(sortColDefs),\r\n      rowBuffer: 20,\r\n      rowHeight: 80\r\n    };\r\n  }\r\n\r\n  cellRenderer(params) {\r\n\r\n    const icon = params.context.cr.render('icon', params, {\r\n      value: {\r\n        url: `assets/_default/svg/ic_${params.data.messagetype.toLowerCase()}.svg`,\r\n        label: params.context.translate.instant(`eo.notifications.filter.${params.data.messagetype.toLowerCase()}.label`)\r\n      }\r\n    });\r\n\r\n    const folder = params.data.target.isfolder ? 'folder' : '';\r\n    const createdTime = params.context.cr.render('dateTime', params, { value: params.data.due });\r\n\r\n    return `<div class=\"list-item ${folder}\" messagetype=\"${params.data.messagetype}\" unselectable>\r\n              ${icon}\r\n              <div class=\"content\">\r\n                <div class=\"title\">${params.data.info || ''}</div>\r\n                <div class=\"meta\">\r\n                  <div class=\"description\">\r\n                    ${params.data.target.description}\r\n                  </div>\r\n                  <div class='description date'>\r\n                    <span class=\"period\">${createdTime}</span>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>`;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.refreshGrid();\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_UPDATED)\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe(event => {\r\n        let removedEntries = [];\r\n        this.gridData.forEach((entry, i) => {\r\n          if (entry.target.id === event.data.id) {\r\n            if (entry.subscribedactions) {// if subscription entry\r\n              if (!event.data.subscriptions.find(s => s.id === entry.id)) {\r\n                removedEntries.push(entry);\r\n              }\r\n            } else {\r\n              if (!event.data.resubmissions.find(s => s.id === entry.id)) {\r\n                removedEntries.push(entry);\r\n              }\r\n            }\r\n          }\r\n        });\r\n        event.data.resubmissions.concat(event.data.subscriptions).forEach(item => {\r\n          const match = this.gridData.find(gD => gD.id === item.id);\r\n          if (!match) {\r\n            item.target = {\r\n              description: event.data.description,\r\n              id: event.data.id,\r\n              isfolder: event.data.isfolder,\r\n              title: event.data.title,\r\n              type: event.data.typeName\r\n            };\r\n            this.gridData.push(item);\r\n          }\r\n        });\r\n        this.gridData = this.gridData.filter(entry => !removedEntries.find(rEntry => rEntry.id === entry.id));\r\n        if (this.eoGrid && this.eoGrid.isReady) {\r\n          this.eoGrid.updateRowData(this.gridData);\r\n          this.eoGrid.selectRow(this.gridData.length - 1, [this.gridData.length - 1]);\r\n        }\r\n      });\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_DELETED)\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe(res => {\r\n        if (this.eoGrid) {\r\n          this.eoGrid.updateRows(this.backend.update([res.data], [{ id: res.data.id }]));\r\n        }\r\n      })\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.selection.clear();\r\n  }\r\n}\r\n","<yvc-split-view [layoutSettingsID]=\"'notification.state'\">\r\n  <ng-template yvcSplitArea [size]=\"25\"><eo-list-container #eoList [applySelection]=\"{}\"\r\n      [parseDmsParams]=\"parseDmsParams\">\r\n      <div class=\"eo-header\">\r\n        <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\r\n        <div class=\"eo-header-info\">\r\n          <div class=\"eo-header-title\" translate>eo.notifications.list.title</div>\r\n          <div class=\"header-sub-title\" translate>eo.notifications.list.subtitle</div>\r\n        </div>\r\n        <div class=\"eo-header-actions\">\r\n          <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\r\n            (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\r\n            [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n\r\n          <eo-overlay #oFilter [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\r\n            class=\"overlay-filter\" [iconTitle]=\"'eo.list.filter' | translate\">\r\n            <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\r\n              (active)=\"oFilter.onActiveChanged($event)\">\r\n              <eo-text-filter [title]=\"'eo.notifications.filter.title' | translate\" [matchFields]=\"['info']\"\r\n                [filterParams]=\"textFilterParams\" [id]=\"'notifications.text'\"></eo-text-filter>\r\n\r\n              <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.notifications.filter.section.title' | translate\"\r\n                [options]=\"objectTypeFilterFields\" [id]=\"'notifications.object.type'\"></eo-set-filter>\r\n\r\n              <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.notifications.filter.section.objecttype' | translate\"\r\n                [options]=\"typeFilterFields\" [id]=\"'notifications.type'\"></eo-set-filter>\r\n            </eo-custom-filter>\r\n          </eo-overlay>\r\n\r\n          <eo-overlay #oSort [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" class=\"overlay-sort\"\r\n            [iconTitle]=\"'eo.list.sort' | translate\">\r\n            <eo-custom-sort #cSort [id]=\"'notifications.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\r\n              (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\r\n          </eo-overlay>\r\n\r\n          <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\"\r\n            [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"eo-body\">\r\n        <eo-grid #eoGrid [gridOptions]=\"gridOptions\" *ngIf=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\r\n          [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\r\n          (eoGridContextMenuClick)=\"eoList.onContextMenu($event)\"\r\n          (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\r\n          (eoGridDoubleClick)=\"eoList.onDoubleClick($event)\" (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\r\n\r\n          <div class=\"header\">\r\n          </div>\r\n\r\n          <div class=\"footer\">\r\n            <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n          </div>\r\n\r\n          <div class=\"empty\">\r\n            <eo-error-message\r\n              [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.notifications.list.empty'}\"></eo-error-message>\r\n            <eo-reset-filter [isFilterActive]=\"oFilter.active\"\r\n              (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\r\n          </div>\r\n\r\n        </eo-grid>\r\n      </div>\r\n    </eo-list-container>\r\n  </ng-template>\r\n\r\n  <ng-template yvcSplitArea [size]=\"75\">\r\n    <eo-object-details [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\"\r\n      [cacheLayout]=\"'notification.state.object-details'\" [emptyState]=\"emptyState\" [plugins]=\"'object-details-tab.notifications' | plugins\">\r\n      <div class=\"error\" *ngIf=\"gridData?.length\">\r\n        <button class=\"button secondary\" (click)=\"remove()\" translate>eo.notifications.details.item.gone.remove</button>\r\n        <button class=\"button secondary\" (click)=\"removeSubscriptionAndResubmissions()\"\r\n          translate>eo.notifications.details.item.gone.remove.subscriptions</button>\r\n      </div>\r\n    </eo-object-details>\r\n  </ng-template>\r\n\r\n</yvc-split-view>\r\n","import {ColDef, GridOptions} from '@ag-grid-community/core';\r\nimport {Component, OnInit, ViewChild} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {DmsObject, DmsParams, DmsService, EnaioEvent, EventService, TranslateService, Utils} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {PageTitleService} from '../../eo-framework-core/title/page-title.service';\r\nimport {ISetFilter} from '../../eo-framework/grid';\r\nimport {CustomSortComponent} from '../../eo-framework/grid/extensions/custom-sort/custom-sort.component';\r\nimport {SetFilterComponent} from '../../eo-framework/grid/extensions/filter/setFilters/set-filter.component';\r\nimport {GridComponent} from '../../eo-framework/grid/grid.component';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-version-state',\r\n  templateUrl: './version-state.component.html',\r\n  styleUrls: ['./version-state.component.scss']\r\n})\r\nexport class VersionStateComponent implements OnInit {\r\n\r\n  versionItem: DmsObject;\r\n  gridOptions: GridOptions;\r\n  sortFields: ColDef[];\r\n  typeFilterFields: ISetFilter[];\r\n  userFilterFields: ISetFilter[];\r\n  gridData;\r\n  typeName: string = '';\r\n\r\n  @ViewChild('eoGrid') eoGrid: GridComponent;\r\n\r\n  constructor(private route: ActivatedRoute,\r\n              private translate: TranslateService,\r\n              private titleService: PageTitleService,\r\n              private eventService: EventService,\r\n              private dmsService: DmsService) {\r\n    this.titleService.setBaseTitle(this.translate.instant('eo.versions.list.title'));\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.eventService.on(EnaioEvent.DMS_OBJECT_VERSION_RESTORED).pipe(untilDestroyed(this)).subscribe(id => this.refreshGrid());\r\n    this.refreshGrid(this.route.snapshot.queryParams['version'], this.route.snapshot.queryParams['version2']);\r\n  }\r\n\r\n  parseDmsParams(data): DmsParams {\r\n    return data && data.dmsItem ? {id: data.dmsItem.id, type: data.dmsItem.type, version: data.version} : null;\r\n  }\r\n\r\n  refreshGrid(version?: string, version2?: string) {\r\n    let id = this.route.snapshot.params['id'];\r\n    this.typeName = this.route.snapshot.queryParams['type'];\r\n    setTimeout(() => {\r\n      this.dmsService.getVersions(id, this.typeName).subscribe((item: DmsObject) => {\r\n        this.versionItem = item;\r\n        this.gridData = (item.versions || [])\r\n          .map(v => Object.assign(v, {id: v.version, dmsItem: {id: item.id, type: item.typeName}}))\r\n          .sort((a, b) => b.version - a.version);\r\n        let rowIndex = version ? this.gridData.findIndex(d => '' + d.version === version) : -1;\r\n        let rowIndex2 = version2 ? this.gridData.findIndex(d => '' + d.version === version2) : -1;\r\n        this.updateGrid(this.gridData, rowIndex, rowIndex2);\r\n      });\r\n    }, 200);\r\n  }\r\n\r\n  typeFilters(data) {\r\n    let uniqueByType = SetFilterComponent.uniqByProperty(data, 'type');\r\n    this.typeFilterFields = uniqueByType.map((t: any) => Object.assign({\r\n      label: t.title,\r\n      value: true,\r\n      filter: (node) => node.data.type === t.type,\r\n      id: t.type\r\n    })).sort(Utils.sortValues('label'));\r\n  }\r\n\r\n  userFilters(data) {\r\n    let uniqueByType = SetFilterComponent.uniqByProperty(data, 'user.name');\r\n    this.userFilterFields = uniqueByType.map((t: any) => Object.assign({\r\n      label: t.user.title,\r\n      value: true,\r\n      filter: (node) => node.data.user.name === t.user.name,\r\n      id: t.user.name\r\n    })).sort(Utils.sortValues('label'));\r\n  }\r\n\r\n  resetFilters() {\r\n    this.typeFilters(this.gridData);\r\n    this.userFilters(this.gridData);\r\n  }\r\n\r\n  updateGrid(data, rowIndex = -1, rowIndex2 = -1) {\r\n\r\n    if (this.eoGrid && this.eoGrid.isReady) {\r\n      this.eoGrid.updateRowData(data, ~rowIndex ? rowIndex : 0);\r\n      return this.resetFilters();\r\n    }\r\n\r\n    this.resetFilters();\r\n\r\n    let colDefs: ColDef[] = [\r\n      {\r\n        headerName: '',\r\n        field: '__custom',\r\n        cellRenderer: this.cellRenderer,\r\n        filter: false\r\n      }\r\n    ];\r\n\r\n    this.sortFields = [\r\n      {field: 'user.title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: null},\r\n      {field: 'time', headerName: this.translate.instant('eo.inbox.sort.date'), sort: null}\r\n    ];\r\n\r\n    let sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);\r\n\r\n    this.gridOptions = {\r\n      context: {\r\n        count: data.length, rowIndex: ~rowIndex2 ? rowIndex2 : ~rowIndex ? rowIndex : 0,\r\n        selection: ~rowIndex2 && ~rowIndex && rowIndex2 !== rowIndex ? [rowIndex, rowIndex2] : null\r\n      },\r\n      rowData: data,\r\n      columnDefs: colDefs.concat(sortColDefs),\r\n      rowBuffer: 20,\r\n      rowHeight: 80\r\n    };\r\n  }\r\n\r\n  cellRenderer(params) {\r\n    let shortDate = params.context.cr.render('dateTime', params, {value: params.data.time, pattern: 'eoShortDate'});\r\n    let shortTime = params.context.cr.render('dateTime', params, {value: params.data.time, pattern: 'eoShortTime'});\r\n\r\n    return `<div class=\"list-item\" unselectable>\r\n              <div class=\"icon circle\">${params.data.version}</div>\r\n              <div class='content'>\r\n                <div class='title'>${params.data.user.title || ''}</div>\r\n                <div class='description'>\r\n                  ${params.data.description || ''}\r\n                </div>\r\n              </div>\r\n              <div class=\"meta\">\r\n                <div class=\"date\">${shortDate}</div>\r\n                <div class=\"date\">${shortTime}</div>\r\n              </div>\r\n           </div>\r\n          `;\r\n  }\r\n\r\n}\r\n","<yvc-split-view [layoutSettingsID]=\"'version.state'\">\r\n  <!-- list of versions -->\r\n  <ng-template yvcSplitArea [size]=\"30\">\r\n    <eo-list-container #eoList [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\">\r\n      <div class=\"eo-header\">\r\n        <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_format_list_numbered.svg'\"></eo-icon>\r\n        <div class=\"eo-header-info\">\r\n          <div class=\"eo-header-title\" translate>eo.versions.list.title</div>\r\n          <div class=\"eo-header-subtitle\">{{versionItem?.title}}</div>\r\n        </div>\r\n        <div class=\"eo-header-actions\">\r\n          <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\r\n                   (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\r\n                   [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n\r\n          <eo-overlay #oFilter [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconClass]=\"'primary'\" class=\"overlay-filter\"\r\n                      [iconTitle]=\"'eo.list.filter' | translate\">\r\n            <eo-custom-filter #cFilter\r\n                              (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\r\n                              (active)=\"oFilter.onActiveChanged($event)\">\r\n              <!--<eo-text-filter [title]=\"'eo.versions.filter.title' | translate\" [matchFields]=\"['title']\"></eo-text-filter>-->\r\n              <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.versions.list.users' | translate\"\r\n                             [options]=\"userFilterFields\" [id]=\"'versions.user'\"></eo-set-filter>\r\n              <eo-set-filter [operator]=\"'OR'\" [title]=\"'eo.versions.list.types' | translate\"\r\n                             [options]=\"typeFilterFields\" [id]=\"'versions.type'\"></eo-set-filter>\r\n            </eo-custom-filter>\r\n          </eo-overlay>\r\n\r\n          <eo-overlay #oSort [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\" class=\"overlay-sort\"\r\n                      [iconTitle]=\"'eo.list.sort' | translate\">\r\n            <eo-custom-sort #cSort\r\n                            (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\r\n                            (active)=\"oSort.onActiveChanged($event)\"\r\n                            [sortFields]=\"sortFields\" [id]=\"'versions.sort'\"></eo-custom-sort>\r\n          </eo-overlay>\r\n\r\n          <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"'eo.object.actions.title' | translate\"\r\n                   [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\r\n        </div>\r\n      </div>\r\n      <div class=\"eo-body\">\r\n        <eo-grid #eoGrid [gridOptions]=\"gridOptions\" *ngIf=\"gridOptions?.rowData\"\r\n                 [fullWidth]=\"true\"\r\n                 [showHeader]=\"true\"\r\n                 [showFooter]=\"true\"\r\n                 [selectionLimit]=\"2\"\r\n                 (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\r\n                 (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\r\n                 (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\r\n\r\n          <div class=\"header\">\r\n          </div>\r\n\r\n          <div class=\"footer\">\r\n            <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n          </div>\r\n\r\n          <div class=\"empty\">\r\n            <eo-error-message\r\n              [emptyState]=\"{icon: 'ic_no-file.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.versions.list.empty'}\"></eo-error-message>\r\n            <eo-reset-filter [isFilterActive]=\"oFilter.active\" (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\r\n          </div>\r\n        </eo-grid>\r\n      </div>\r\n    </eo-list-container>\r\n  </ng-template>\r\n\r\n  <!-- version compare/details-->\r\n  <ng-template yvcSplitArea [size]=\"70\">\r\n    <eo-object-details [enableCompare]=\"true\" [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\" [versionComponentTabs]=\"true\"\r\n                       [cacheLayout]=\"'version.state--' + typeName + '.object-details'\" [plugins]=\"'object-details-tab.version' | plugins\">\r\n    </eo-object-details>\r\n  </ng-template>\r\n</yvc-split-view>\r\n","import {ColDef, GridOptions} from '@ag-grid-community/core';\r\nimport {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {DmsParams, EnaioEvent, EventService, SystemService, UserService, Utils} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {EmptyState} from '../../eo-framework-core/empty-state/empty-state.interface';\r\nimport {EmptyStateService} from '../../eo-framework-core/empty-state/empty-state.service';\r\nimport {PendingChangesComponent} from '../../eo-framework-core/pending-changes/pending-changes-component.interface';\r\nimport {PendingChangesService} from '../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {SelectionService} from '../../eo-framework-core/selection/selection.service';\r\nimport {PageTitleService} from '../../eo-framework-core/title/page-title.service';\r\nimport {CustomSortComponent} from '../../eo-framework/grid/extensions/custom-sort/custom-sort.component';\r\nimport {SetFilterComponent} from '../../eo-framework/grid/extensions/filter/setFilters/set-filter.component';\r\nimport {ISetFilter} from '../../eo-framework/grid/extensions/filter/setFilters/set-filters.interface';\r\nimport {GridComponent} from '../../eo-framework/grid/grid.component';\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-recyclebin-state',\r\n  templateUrl: './recyclebin-state.component.html',\r\n  styleUrls: ['./recyclebin-state.component.scss']\r\n})\r\nexport class RecyclebinStateComponent implements OnInit, PendingChangesComponent, OnDestroy {\r\n\r\n  gridOptions: GridOptions;\r\n  sortFields: ColDef[];\r\n  typeFilterFields: ISetFilter[];\r\n  gridData;\r\n  inboxDmsObjectSelectionId = 'inbox_dms';\r\n  emptyState: EmptyState = EmptyStateService.defaultEmptyState(); showActionsMenu = true;\r\n  textFilterParams: any = {};\r\n\r\n  @ViewChild('eoGrid') eoGrid: GridComponent;\r\n  constructor(public selection: SelectionService,\r\n    public translate: TranslateService,\r\n    private system: SystemService,\r\n    private empty: EmptyStateService,\r\n    private pendingChanges: PendingChangesService,\r\n    private eventService: EventService,\r\n    private titleService: PageTitleService,\r\n    private userService: UserService) {\r\n    this.titleService.setBaseTitle(this.translate.instant('eo.recyclebin.list.title'));\r\n    this.selection.createNew(this.inboxDmsObjectSelectionId);\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_RESTORED_OR_DELETED).pipe(untilDestroyed(this))\r\n      .subscribe(() => this.refreshGrid());\r\n\r\n  }\r\n\r\n  set hasContent(hasContent: boolean) {\r\n    this.showActionsMenu = hasContent;\r\n  }\r\n\r\n  get hasContent(): boolean {\r\n    return this.showActionsMenu;\r\n  }\r\n\r\n  hasPendingChanges() {\r\n    return this.pendingChanges.hasPendingTask();\r\n  }\r\n\r\n  refreshGrid() {\r\n    this.userService.getRecycleBin().subscribe();\r\n  }\r\n\r\n  parseDmsParams(data): DmsParams {\r\n    return data ? {id: data.id, type: data.type, recyclebin: true} : null;\r\n  }\r\n\r\n  typeFilters() {\r\n    const data = this.gridData;\r\n    let uniqueByType = SetFilterComponent.uniqBy(data, 'type', this.system.getObjectTypes());\r\n    this.typeFilterFields = uniqueByType.map(t => Object.assign({\r\n      label: t.label,\r\n      value: true,\r\n      filter: (node) => node.data === t.qname,\r\n      id: t.qname\r\n    })).sort(Utils.sortValues('label'));\r\n  }\r\n\r\n  resetFilters() {\r\n    this.typeFilters();\r\n  }\r\n\r\n  updateGrid(data): void {\r\n    this.emptyState = this.empty.getEmptyState(data ? data.length : -1, undefined, 'ic_no-file.svg');\r\n    if (this.eoGrid && this.eoGrid.isReady) {\r\n      this.eoGrid.updateRowData(data);\r\n      return this.resetFilters();\r\n    }\r\n\r\n    this.resetFilters();\r\n\r\n    let colDefs: ColDef[] = [{\r\n      headerName: '',\r\n      field: '__custom',\r\n      cellRenderer: this.cellRenderer,\r\n      filter: false\r\n    }];\r\n\r\n    this.textFilterParams = {context: {defaultValue: ''}};\r\n    this.sortFields = [\r\n      {field: 'recycled', headerName: this.translate.instant('eo.inbox.sort.date'), sort: null},\r\n      {field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: null},\r\n      {field: 'description', headerName: this.translate.instant('eo.inbox.sort.description'), sort: null}\r\n    ];\r\n\r\n    const sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);\r\n\r\n    this.gridOptions = {\r\n      context: {count: data.length},\r\n      rowData: data,\r\n      columnDefs: colDefs.concat(sortColDefs),\r\n      rowBuffer: 20,\r\n      rowHeight: 80,\r\n    };\r\n  }\r\n\r\n  cellRenderer(params) {\r\n    let icon = params.context.cr.render('type', params, {\r\n      value: params.data.type\r\n    });\r\n    let recycledTime = params.context.cr.render('dateTime', params, {value: params.data.recycled});\r\n\r\n    return `<div class=\"list-item ${params.data.folder ? 'folder' : ''}\" unselectable>\r\n              ${icon}\r\n              <div class=\"content\">\r\n                <div class=\"title\">${params.data.title || ''}</div>\r\n                <div class=\"meta\">\r\n                  <div class=\"description\">\r\n                    ${params.data.description}\r\n                  </div>\r\n                  <div class='description date'>\r\n                    <span class=\"period\">${recycledTime}</span>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>`;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.refreshGrid();\r\n    this.userService.recyclesGridData$.pipe(\r\n      untilDestroyed(this)\r\n    )\r\n      .subscribe(data => {\r\n        this.gridData = data;\r\n        this.updateGrid(this.gridData);\r\n      });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.selection.clear();\r\n  }\r\n}\r\n","<yvc-split-view [layoutSettingsID]=\"'recyclebin.state'\">\r\n  <ng-template yvcSplitArea [size]=\"25\">\r\n    <eo-list-container #eoList [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\">\r\n      <div class=\"eo-header\">\r\n        <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\r\n        <div class=\"eo-header-info\">\r\n          <div class=\"eo-header-title\" translate>eo.recyclebin.list.title</div>\r\n        </div>\r\n        <div class=\"eo-header-actions\">\r\n          <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\r\n            (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\r\n            [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n\r\n          <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconTitle]=\"'eo.recyclebin.filter.title'  | translate\">\r\n            <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\r\n              (active)=\"oFilter.onActiveChanged($event)\">\r\n              <eo-text-filter [title]=\"'eo.recyclebin.filter.title' | translate\" [id]=\"'recyclebin.text'\"\r\n                [matchFields]=\"['title','description']\" [filterParams]=\"textFilterParams\">\r\n              </eo-text-filter>\r\n\r\n            </eo-custom-filter>\r\n          </eo-overlay>\r\n\r\n          <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconTitle]=\"'eo.recyclebin.sort.title' | translate\">\r\n            <eo-custom-sort #cSort [id]=\"'recyclebin.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\r\n              (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\r\n          </eo-overlay>\r\n\r\n        </div>\r\n      </div>\r\n      <div class=\"eo-body\">\r\n        <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\"\r\n          [showHeader]=\"true\" [showFooter]=\"true\" [selectFirst]=\"true\"\r\n          [selectionLimit]=\"1\"\r\n          (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\r\n          (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\r\n          (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\"\r\n          >\r\n\r\n          <div class=\"header\">\r\n          </div>\r\n\r\n          <div class=\"footer\">\r\n            <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n          </div>\r\n\r\n          <div class=\"empty\">\r\n            <eo-error-message\r\n              [emptyState]=\"{icon: 'ic_trash.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.recyclebin.list.empty'}\"></eo-error-message>\r\n            <eo-reset-filter [isFilterActive]=\"oFilter.active\"\r\n              (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\r\n          </div>\r\n\r\n        </eo-grid>\r\n      </div>\r\n    </eo-list-container>\r\n  </ng-template>\r\n\r\n  <ng-template yvcSplitArea [size]=\"75\">\r\n    <eo-recyclebin-details [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\" [emptyState]=\"emptyState\"\r\n        [cacheLayout]=\"'recyclebin.state.details'\" (hasContent)=\"hasContent = $event\" \r\n        [plugins]=\"'object-details-tab.recyclebin' | plugins\">\r\n      </eo-recyclebin-details>\r\n  </ng-template>\r\n</yvc-split-view>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {RouterModule, Routes} from '@angular/router';\r\nimport {DashboardComponent} from './dashboard/dashboard.component';\r\nimport {NotFoundComponent} from '../eo-framework/error/not-found/not-found.component';\r\nimport {SettingsComponent} from './settings/settings.component';\r\nimport {LoginComponent} from './login/login.component';\r\nimport {ResultStateComponent} from './result-state/result-state.component';\r\nimport {FavoriteStateComponent} from './favorite-state/favorite-state.component';\r\nimport {AboutStateComponent} from './about-state/about-state.component';\r\nimport {StoredQueriesStateComponent} from './stored-queries-state/stored-queries-state.component';\r\nimport {ProcessStateComponent} from './process-state/process-state.component';\r\nimport {NotificationsStateComponent} from './notifications-state/notifications-state.component';\r\nimport {VersionStateComponent} from './version-state/version-state.component';\r\nimport {PendingChangesGuard} from '../eo-framework-core/pending-changes/pending-changes-guard.service';\r\nimport {AuthGuard} from '../eo-framework-core/route-guards/auth/auth-guard.service';\r\nimport {CapabilitiesGuard} from '../eo-framework-core/route-guards/capabilities/capabilities-guard.service';\r\nimport {UploadOverlayGuard} from '../eo-framework/upload-overlay/upload-overlay-guard.service';\r\nimport {RecyclebinStateComponent} from './recyclebin-state/recyclebin-state.component';\r\n\r\n// Configure applications main routes (e.g. 404).\r\n// Child routes will be added by the feature modules link inbox etc.\r\nconst routes: Routes = [\r\n  {path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard, UploadOverlayGuard]},\r\n  {path: 'enter', component: LoginComponent},\r\n  {path: 'settings', component: SettingsComponent, canActivate: [AuthGuard, UploadOverlayGuard]},\r\n  {path: 'result', component: ResultStateComponent, canActivate: [AuthGuard, UploadOverlayGuard], canDeactivate: [PendingChangesGuard]},\r\n  {path: 'favorites', component: FavoriteStateComponent, canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard]},\r\n  {path: 'stored-queries', component: StoredQueriesStateComponent, canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard]},\r\n  {path: 'about', component: AboutStateComponent},\r\n  {path: 'process', component: ProcessStateComponent, canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard]},\r\n  {path: 'notifications', component: NotificationsStateComponent, canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard]},\r\n  {path: 'recyclebin', component: RecyclebinStateComponent, canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard]},\r\n  {path: 'versions/:id', component: VersionStateComponent, canActivate: [AuthGuard, UploadOverlayGuard]},\r\n  // default route\r\n  {path: '', redirectTo: 'dashboard', pathMatch: 'full'},\r\n  // 404 route\r\n  {path: 'not-found', component: NotFoundComponent},\r\n  // redirecting route\r\n  {path: '**', component: NotFoundComponent}\r\n  // modules that contain own routing like inbox|object will\r\n  // automatically applied by importing their module in eo-client.module.ts\r\n];\r\n\r\n@NgModule({\r\n  imports: [CommonModule, RouterModule.forRoot(routes)],\r\n  exports: [RouterModule]\r\n})\r\nexport class EoClientRoutingModule {\r\n}\r\n","export enum InboxTypesFilter {\r\n  acceptedTasks = 'acceptedtasks',\r\n  unacceptedTasks = 'unacceptedtasks',\r\n  absent = 'isdeputy',\r\n  overdue = 'overdue',\r\n}\r\n\r\nexport enum InboxTypes {\r\n  RESUBMISSION = 'resubmission',\r\n  SUBSCRIPTION = 'subscription',\r\n  BPM = 'bpm'\r\n}\r\n","import {ColDef, GridOptions} from '@ag-grid-community/core';\r\nimport {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {EnaioEvent, EventService, InboxItem, InboxService, InboxState, LocalStorageService, TranslateService} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {EmptyState} from '../../../eo-framework-core/empty-state/empty-state.interface';\r\nimport {EmptyStateService} from '../../../eo-framework-core/empty-state/empty-state.service';\r\nimport {PendingChangesComponent} from '../../../eo-framework-core/pending-changes/pending-changes-component.interface';\r\nimport {PendingChangesService} from '../../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {SelectionService} from '../../../eo-framework-core/selection/selection.service';\r\nimport {PageTitleService} from '../../../eo-framework-core/title/page-title.service';\r\nimport {CustomSortComponent} from '../../../eo-framework/grid/extensions/custom-sort/custom-sort.component';\r\nimport {ISetFilter} from '../../../eo-framework/grid/extensions/filter/setFilters/set-filters.interface';\r\nimport {GridComponent} from '../../../eo-framework/grid/grid.component';\r\nimport {InboxTypes, InboxTypesFilter} from './inbox.types.enum';\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-inbox-state',\r\n  templateUrl: './inbox-state.component.html',\r\n  styleUrls: ['./inbox-state.component.scss']\r\n})\r\nexport class InboxStateComponent implements OnInit, OnDestroy, PendingChangesComponent {\r\n\r\n  gridOptions: GridOptions;\r\n  sortFields: ColDef[];\r\n  inboxFilterFields: ISetFilter[] = [];\r\n  typeFilterFields: ISetFilter[] = [];\r\n  inboxSelectionId = 'inbox';\r\n  inboxDmsObjectSelectionId = 'inbox_dms';\r\n  inboxSelection: SelectionService;\r\n  selectFirst = true;\r\n  idMatch = true;\r\n  gridData;\r\n  defaultFilterParams: any = {};\r\n  emptyState: EmptyState = {icon: 'ic_no-file.svg', text: '', className: ''};\r\n  inboxChanged = false;\r\n  storageKeyLastItemID = 'eo.inbox.lastItemID';\r\n\r\n  @ViewChild('eoGrid') eoGrid: GridComponent;\r\n\r\n  constructor(public translate: TranslateService,\r\n    public selection: SelectionService,\r\n    private titleService: PageTitleService,\r\n    public inboxService: InboxService,\r\n    private pendingChanges: PendingChangesService,\r\n    private empty: EmptyStateService,\r\n    private eventService: EventService,\r\n    private route: ActivatedRoute,\r\n    private storageService: LocalStorageService) {\r\n    this.titleService.setBaseTitle(this.translate.instant('eo.inbox.list.title'));\r\n    //secondary selection instance for inbox items\r\n    this.inboxSelection = this.selection.createNew(this.inboxSelectionId);\r\n    this.selection.createNew(this.inboxDmsObjectSelectionId);\r\n\r\n    this.route.queryParams\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe((params: any) => {\r\n        this.defaultFilterParams = {context: {defaultValue: params.id}};\r\n      });\r\n\r\n    this.inboxService.inboxState$\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe((state: InboxState) => {\r\n        if (this.eoGrid) {\r\n          // todo: temporary fix until status service update\r\n          // this.inboxChanged = this.eoGrid.contextCount !== state.totalmessages;\r\n        }\r\n      });\r\n  }\r\n\r\n  onCountChanged(evt: any) {\r\n    if (this.defaultFilterParams.context && this.defaultFilterParams.context.defaultValue) {\r\n      if (evt.rowCount === 0) {\r\n        this.idMatch = false;\r\n        this.defaultFilterParams.context.defaultValue = '';\r\n        this.inboxSelection.clear();\r\n        this.inboxSelection.disable();\r\n        this.eoGrid.gridOptions.context.count = 0;\r\n      } else {\r\n        this.defaultFilterParams.context.defaultValue = '';\r\n      }\r\n    }\r\n  }\r\n\r\n  hasPendingChanges() {\r\n    return this.pendingChanges.hasPendingTask();\r\n  }\r\n\r\n  refreshGrid() {\r\n    this.inboxChanged = false;\r\n    this.inboxSelection.disable(false);\r\n    this.inboxService.getItems().subscribe();\r\n    this.inboxService.refreshInboxState();\r\n  }\r\n\r\n  itemFilterFields(node, item) {\r\n    const value = node.data[InboxTypesFilter[item]];\r\n    const acceptedAndUnacceptedCombined = this.inboxFilterFields.find(filter => filter.id === 'acceptedTasks').value\r\n      && this.inboxFilterFields.find(filter => filter.id === 'unacceptedTasks').value;\r\n    switch (InboxTypesFilter[item]) {\r\n      case InboxTypesFilter.overdue:\r\n        return node.data.isOverdue();\r\n      case InboxTypesFilter.absent:\r\n        return !!value;\r\n      case InboxTypesFilter.acceptedTasks:\r\n        return acceptedAndUnacceptedCombined ? node.data.type === 'BPM' : node.data.type === 'BPM' && !!node.data.accepted;\r\n      case InboxTypesFilter.unacceptedTasks:\r\n        return acceptedAndUnacceptedCombined ? node.data.type === 'BPM' : node.data.type === 'BPM' && !node.data.accepted;\r\n    }\r\n  }\r\n\r\n  fieldFilters() {\r\n    this.typeFilterFields = Object.keys(InboxTypes).map(item => ({\r\n      label: this.translate.instant(`eo.inbox.${item}`),\r\n      filter: (node) => node.data.type === item,\r\n      value: true,\r\n      id: item\r\n    }));\r\n\r\n    this.inboxFilterFields = Object.keys(InboxTypesFilter).map(item => ({\r\n      label: this.translate.instant(`eo.inbox.filter.${item}`),\r\n      filter: (node) => this.itemFilterFields(node, item),\r\n      value: false,\r\n      id: item\r\n    }));\r\n  }\r\n\r\n  resetFilters() {\r\n    this.fieldFilters();\r\n  }\r\n\r\n  updateGrid(data: InboxItem[]): void {\r\n    this.emptyState = this.empty.getEmptyState(data ? data.length : -1, undefined, 'ic_no-file.svg');\r\n\r\n    if (this.eoGrid && this.eoGrid.isReady) {\r\n      return this.eoGrid.updateRowData(data);\r\n    }\r\n\r\n    this.resetFilters();\r\n\r\n    let colDefs: ColDef[] = [{\r\n      headerName: '',\r\n      field: '__custom',\r\n      cellRenderer: this.cellRenderer,\r\n      filter: false\r\n      // cellRendererFramework: InboxRendererComponent\r\n    }];\r\n\r\n    this.sortFields = [\r\n      {\r\n        field: 'received', headerName: this.translate.instant('eo.inbox.sort.date'), sort: null,\r\n        valueGetter: (p) => (p.data[p.colDef.field] || '').match(/\\+\\d\\d:\\d\\d/) ? new Date(p.data[p.colDef.field]).toISOString() : p.data[p.colDef.field]\r\n      },\r\n      {field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: null},\r\n      {field: 'description', headerName: this.translate.instant('eo.inbox.sort.description'), sort: null}\r\n    ];\r\n\r\n    let sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);\r\n\r\n    this.gridOptions = {\r\n      context: {count: data.length},\r\n      rowData: data,\r\n      columnDefs: colDefs.concat(sortColDefs),\r\n      rowBuffer: 20,\r\n      rowHeight: 80,\r\n      rowSelection: 'single'\r\n    };\r\n  }\r\n\r\n  cellRenderer(params) {\r\n\r\n    let label = '';\r\n    if (Object.keys(InboxTypes).includes(params.data.type)) {\r\n      label = params.context.translate.instant(`eo.inbox.${params.data.type}`);\r\n    }\r\n\r\n    const url = `assets/_default/svg/ic_${InboxTypes[params.data.type]}.svg`;\r\n\r\n    let icon = params.context.cr.render('icon', params, {value: {url, label}});\r\n    let shortDate = params.context.cr.render('dateTime', params, {value: params.data.received, pattern: 'eoShortDate'});\r\n    let shortTime = params.context.cr.render('dateTime', params, {value: params.data.received, pattern: 'eoShortTime'});\r\n    let duetime = params.context.cr.render('dateTime', params, {value: params.data.duetime});\r\n    const titleClass = params.data.accepted ? 'title' : 'title-bold';\r\n\r\n    return `<div class=\"list-item${params.data.folder ? ' folder' : ''}\" unselectable>\r\n              ${icon}\r\n              <div class='content'>\r\n                <div class='${titleClass}'>${params.data.title || ''}</div>\r\n                <div class='description'>${params.data.description || ''}</div>\r\n                <div class='notes${params.data.isOverdue() ? ' pastDue' : ''}'>\r\n                  ${params.data.duetime ? '<span class=\"period\">' + duetime + '</span>' : ''}\r\n                  ${params.data.isdeputy ? '<span>' + params.context.translate.instant('eo.inbox.item.note.absence') + '</span>' : ''}\r\n                </div>\r\n              </div>\r\n              <div class=\"meta\">\r\n                <div class=\"date\">${shortDate}</div>\r\n                <div class=\"date\">${shortTime}</div>\r\n              </div>\r\n           </div>\r\n          `;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.refreshGrid();\r\n    this.inboxService\r\n      .inboxItemsGridData$\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe((data: InboxItem[]) => {\r\n\r\n        this.gridData = data;\r\n        this.updateGrid(this.gridData);\r\n\r\n        const lastInboxItemID = this.storageService.getItem(this.storageKeyLastItemID);\r\n        if (lastInboxItemID && this.gridData.find(i => i.id === lastInboxItemID)) {\r\n          this.selectFirst = false;\r\n          setTimeout(() => this.eoGrid.selectRow(lastInboxItemID), 500);\r\n        }\r\n      });\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.INBOX_ITEM_LOCKED)\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe(() => {\r\n        const lastInboxItemID = this.storageService.getItem(this.storageKeyLastItemID);\r\n        this.gridData.find(i => i.id === lastInboxItemID).accepted = true;\r\n        this.eoGrid.api.redrawRows();\r\n      });\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.INBOX_ITEM_UNLOCKED)\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe(() => {\r\n        const lastInboxItemID = this.storageService.getItem(this.storageKeyLastItemID);\r\n        this.gridData.find(i => i.id === lastInboxItemID).accepted = false;\r\n        this.eoGrid.api.redrawRows();\r\n      });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.selection.clear();\r\n  }\r\n}\r\n","<yvc-split-view [layoutSettingsID]=\"'inbox.state'\">\r\n  <!-- list -->\r\n  <ng-template yvcSplitArea [size]=\"30\">\r\n    <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\r\n      <div class=\"eo-header\">\r\n\r\n        <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\r\n        <div class=\"eo-header-info\">\r\n          <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\r\n        </div>\r\n        <div class=\"eo-header-actions\">\r\n          <eo-icon class=\"button refresh-button\" [ngClass]=\"{inboxChanged: inboxChanged}\"\r\n            (click)=\"cFilter.resetFilter(); refreshGrid()\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\r\n            [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n\r\n          <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconTitle]=\"'eo.list.filter' | translate\">\r\n            <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\r\n              (active)=\"oFilter.onActiveChanged($event)\">\r\n              <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\" [filterParams]=\"defaultFilterParams\"\r\n                [id]=\"'inbox.text'\" [matchFields]=\"['title','description','id']\" [enableSave]=\"true\"></eo-text-filter>\r\n              <eo-set-filter class=\"type-filters\" [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"></eo-set-filter>\r\n              <eo-set-filter class=\"inbox-filters\" [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></eo-set-filter>\r\n            </eo-custom-filter>\r\n          </eo-overlay>\r\n\r\n          <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\r\n            [iconTitle]=\"'eo.list.sort' | translate\">\r\n            <eo-custom-sort #cSort [id]=\"'inbox.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\r\n              (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\r\n          </eo-overlay>\r\n\r\n        </div>\r\n      </div>\r\n      <div class=\"eo-body\">\r\n        <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\r\n          [showFooter]=\"true\" [selectFirst]=\"selectFirst\" [options]=\"{filterActive: oFilter.active}\"\r\n          (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\r\n          (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\r\n          (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\r\n          <div class=\"header\">\r\n          </div>\r\n\r\n          <div class=\"footer\">\r\n            <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n          </div>\r\n\r\n          <div class=\"empty\">\r\n            <eo-error-message\r\n              [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.list.empty'}\"></eo-error-message>\r\n            <eo-reset-filter [isFilterActive]=\"oFilter.active\"\r\n              (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\r\n          </div>\r\n\r\n        </eo-grid>\r\n      </div>\r\n    </eo-list-container>\r\n  </ng-template>\r\n  <!-- inbox details -->\r\n  <ng-template yvcSplitArea [size]=\"30\">\r\n    <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\"\r\n      [emptyState]=\"emptyState\" [plugins]=\"'inbox-details-tab.inbox' | plugins\">\r\n    </eo-inbox-details>\r\n  </ng-template>\r\n  <!-- object details -->\r\n  <ng-template yvcSplitArea [size]=\"40\">\r\n    <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\"\r\n    [plugins]=\"'object-details-tab.inbox' | plugins\">\r\n    </eo-object-details>\r\n  </ng-template>\r\n</yvc-split-view>","import {NgModule} from '@angular/core';\r\nimport {Routes, RouterModule} from '@angular/router';\r\nimport {InboxStateComponent} from './inbox-state/inbox-state.component';\r\nimport {PendingChangesGuard} from '../../eo-framework-core/pending-changes/pending-changes-guard.service';\r\nimport {AuthGuard} from '../../eo-framework-core/route-guards/auth/auth-guard.service';\r\nimport {CapabilitiesGuard} from '../../eo-framework-core/route-guards/capabilities/capabilities-guard.service';\r\nimport {UploadOverlayGuard} from '../../eo-framework/upload-overlay/upload-overlay-guard.service';\r\n\r\nconst routes: Routes = [\r\n  {\r\n    path: 'inbox',\r\n    component: InboxStateComponent,\r\n    canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard]\r\n  }\r\n];\r\n\r\n@NgModule({\r\n  imports: [RouterModule.forChild(routes)],\r\n  exports: [RouterModule]\r\n})\r\nexport class InboxStateRoutingModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport {InboxStateRoutingModule} from './inbox-state-routing.module';\r\nimport {InboxStateComponent} from './inbox-state/inbox-state.component';\r\nimport {GridModule} from '../../eo-framework/grid/grid.module';\r\nimport {EoFrameworkModule} from '../../eo-framework/eo-framework.module';\r\nimport {YvcSplitViewModule} from '@yuuvis/components/split-view';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    InboxStateRoutingModule,\r\n    GridModule,\r\n    EoFrameworkModule,\r\n    YvcSplitViewModule\r\n  ],\r\n  declarations: [InboxStateComponent]\r\n})\r\nexport class InboxStateModule {\r\n}\r\n","import {catchError, map, tap} from 'rxjs/operators';\r\nimport {Injectable} from '@angular/core';\r\nimport {ReplaySubject, Observable} from 'rxjs';\r\nimport {TreeNode} from '../../../eo-framework/tree/tree.component.interface';\r\nimport {FieldDefinition, SearchResult, Utils, BackendService, SearchService, DmsObject} from '@eo-sdk/core';\r\nimport {TranslateService} from '@eo-sdk/core';\r\nimport {TreeData, ObjectSearchResult, FrontPageData, TreeQuery, ViewURI} from './object-state.interface';\r\n\r\n\r\n@Injectable()\r\nexport class ObjectStateService {\r\n\r\n  // component communication\r\n  private treeData: TreeData;\r\n  private treeDataSource = new ReplaySubject<any>();\r\n  public tree$: Observable<any> = this.treeDataSource.asObservable();\r\n\r\n  private treeRefData: TreeData;\r\n  private treeRefDataSource = new ReplaySubject<any>();\r\n  public treeRef$: Observable<any> = this.treeRefDataSource.asObservable();\r\n\r\n  // result list subscribes to this observable to fetch its data\r\n  private _list: ObjectSearchResult;\r\n  private listSource = new ReplaySubject<ObjectSearchResult>();\r\n  public list$: Observable<ObjectSearchResult> = this.listSource.asObservable();\r\n\r\n  constructor(private searchService: SearchService,\r\n    private translate: TranslateService,\r\n    private backend: BackendService) {\r\n  }\r\n\r\n\r\n  selectFrontPage(context: DmsObject): Observable<FrontPageData> {\r\n\r\n    // ... and clear the result list\r\n    this._list = null;\r\n    this.listSource.next(this._list);\r\n\r\n    // todo: grab additional informations about the context\r\n    let metaDataQuery = {\r\n      'fields': [\r\n        'title',\r\n        'description',\r\n        'filesize',\r\n        'modified',\r\n        'modifiertitle',\r\n        'type'\r\n      ],\r\n      'filters': {\r\n        'contextfolderid': {\r\n          'o': 'eq',\r\n          'v1': context.id\r\n        }\r\n      },\r\n      'contextfoldertypes': [context.type.qname],\r\n      'types': []\r\n    };\r\n\r\n    let q = this.searchService.buildQuery(metaDataQuery);\r\n    q.addSortOption('modified', 'desc');\r\n\r\n    return this.searchService.search(q)\r\n      .pipe(\r\n        map((res) => {\r\n          let size = 0;\r\n          let lastModified = null;\r\n\r\n          if (res.hits.length) {\r\n            size = res.hits.map(a => a.filesize || 0).reduce((acc, cur) => acc + cur);\r\n            lastModified = res.hits.sort(Utils.sortValues('modified', 'desc')).slice(0, 100);\r\n          }\r\n\r\n          return <FrontPageData>{\r\n            documentCount: {value: res.count.value},\r\n            totalFilesize: size,\r\n            lastModifications: lastModified\r\n          };\r\n        }),\r\n        catchError(Utils.catch(null, this.translate.instant('eo.search.result.error')))\r\n      );\r\n  }\r\n\r\n  updateTreeByQuery({id: objId, typeName}: DmsObject, options: TreeQuery = {}, uri?: ViewURI): Observable<TreeData> {\r\n    return this.loadTreeByQuery(objId, typeName, options, uri)\r\n      .pipe(\r\n        tap((res: TreeData) => {\r\n          if (uri && uri.match('referenceview')) {\r\n            this.treeRefData = res;\r\n            this.treeRefDataSource.next(this.treeRefData);\r\n          } else {\r\n            this.treeData = res;\r\n            this.treeDataSource.next(this.treeData);\r\n          }\r\n        })\r\n      );\r\n  }\r\n\r\n  loadTreeByQuery(objId: string, typeName: string, options: TreeQuery = {}, uri?: ViewURI): Observable<TreeData> {\r\n    const _uri = uri || 'contextview';\r\n    const postData: TreeQuery = {\r\n      ...(_uri.match('contextview') ? {\r\n        contextid: objId,\r\n        contexttype: typeName\r\n      } : {\r\n          targetid: objId,\r\n          targettype: typeName\r\n        }),\r\n      mode: 'tree',\r\n      timezone: Utils.getTimezoneOffset(),\r\n      ...options\r\n    };\r\n    return this.backend\r\n      .post(`/${_uri}`, postData, this.backend.getContextBase())\r\n      .pipe(map((res: any) => ({...res, folder: (res && res.folder) || []})));\r\n  }\r\n\r\n  /**\r\n   * Select a node from the context tree. This will execute the nodes query\r\n   * and update the result list subject.\r\n   */\r\n  selectTreeNode({id: objId, typeName}: DmsObject, treeNode?: TreeNode, options: TreeQuery = {}, uri?: ViewURI): Observable<SearchResult> {\r\n    const _uri = uri || 'contextview';\r\n    const postData: TreeQuery = {\r\n      ...(_uri.match('contextview') ? {\r\n        contextid: objId,\r\n        contexttype: typeName\r\n      } : {\r\n          targetid: objId,\r\n          targettype: typeName\r\n        }),\r\n      mode: 'result',\r\n      filter: treeNode && treeNode.data ? [treeNode.data.key] : '',\r\n      timezone: Utils.getTimezoneOffset(),\r\n      ...options\r\n    };\r\n\r\n    return this.backend\r\n      .post(`/${_uri}?size=10000`, postData, this.backend.getContextBase())\r\n      .pipe(\r\n        map((res) => {\r\n          let result = new SearchResult();\r\n          let sortorder = (res.sortorder || []).map(s => ({qname: s.qname || s.field, direction: s.direction.toUpperCase()}));\r\n          let grouporder = (res.grouporder || []).map(s => ({qname: s.qname || s.field}));\r\n          let pinned = (res.pinned || []).map(s => ({qname: s.qname || s.field}));\r\n          result.fields = new FieldDefinition(res.fields, sortorder, grouporder, pinned);\r\n          result.hits = res.dms;\r\n          result.count = res.total;\r\n          result.typeName = res.type;\r\n\r\n          this._list = {\r\n            name: treeNode.name,\r\n            result\r\n          };\r\n          this.listSource.next(this._list);\r\n\r\n          return result;\r\n        })\r\n      );\r\n  }\r\n\r\n}\r\n","import {GridOptions} from '@ag-grid-community/core';\r\nimport {Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {DmsObject, DmsService, EnaioEvent, EventService, ObjectType, SearchResult, SystemService, TranslateService, Utils} from '@eo-sdk/core';\r\nimport {forkJoin} from 'rxjs';\r\nimport {debounceTime} from 'rxjs/operators';\r\n\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {GridService} from '../../../eo-framework-core/api/grid.service';\r\nimport {LayoutService} from '../../../eo-framework-core/layout/layout.service';\r\nimport {LocationService} from '../../../eo-framework-core/location/location.service';\r\nimport {PendingChangesComponent} from '../../../eo-framework-core/pending-changes/pending-changes-component.interface';\r\nimport {PendingChangesService} from '../../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {SelectionService} from '../../../eo-framework-core/selection/selection.service';\r\nimport {PageTitleService} from '../../../eo-framework-core/title/page-title.service';\r\nimport {ActionService} from '../../../eo-framework/actions/action-service/action.service';\r\nimport {GridComponent} from '../../../eo-framework/grid/grid.component';\r\nimport {TreeNode} from '../../../eo-framework/tree/tree.component.interface';\r\nimport {PanelLoading, panelLoadingAnimations} from '../../../eo-framework/ui/animations/panel-loading.animation';\r\nimport {FrontPageData, ObjectSearchResult} from '../object-state-service/object-state.interface';\r\nimport {ObjectStateService} from '../object-state-service/object-state.service';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-object-state',\r\n  templateUrl: './object-state.component.html',\r\n  styleUrls: ['./object-state.component.scss'],\r\n  providers: [ObjectStateService],\r\n  animations: [panelLoadingAnimations]\r\n})\r\nexport class ObjectStateComponent implements OnInit, OnDestroy, PendingChangesComponent {\r\n\r\n  @ViewChild('eoGrid') eoGrid: GridComponent;\r\n\r\n  error = false;\r\n  context: DmsObject;\r\n  selectedItem: DmsObject;\r\n  frontPage: boolean;\r\n  frontPageData: FrontPageData;\r\n  contextTree: TreeNode[];\r\n  contextTreeUpdate: TreeNode[];\r\n  contextTreeRef: TreeNode[];\r\n  contextTreeRefUpdate: TreeNode[];\r\n  selectedNodes: TreeNode[];\r\n  selectedNode: TreeNode;\r\n  highlightedNodes: string[];\r\n  isReferenceActive = false;\r\n  private expandedNodeIds: string[] = [];\r\n  termFilter: string;\r\n  allTypes: string[] = [];\r\n  configType: ObjectType;\r\n  @Output() onTermFilterChange = new EventEmitter();\r\n\r\n  gridOptions: GridOptions;\r\n  gridTitle: string;\r\n  emptyGrid = true;\r\n\r\n  searchResult: SearchResult;\r\n  typeName = '';\r\n  cacheLayout = '';\r\n\r\n  loadingState = {\r\n    tree: new PanelLoading(),\r\n    treeRef: new PanelLoading(),\r\n    list: new PanelLoading(),\r\n    details: new PanelLoading(),\r\n  };\r\n\r\n  constructor(private route: ActivatedRoute,\r\n    private titleService: PageTitleService,\r\n    private systemService: SystemService,\r\n    private dmsService: DmsService,\r\n    private selection: SelectionService,\r\n    public translate: TranslateService,\r\n    public objectState: ObjectStateService,\r\n    private actionService: ActionService,\r\n    private location: LocationService,\r\n    private pendingChanges: PendingChangesService,\r\n    private eventService: EventService,\r\n    private gridService: GridService,\r\n    private layoutService: LayoutService) {\r\n\r\n    this.titleService.setBaseTitle(null);\r\n    this.gridOptions = <GridOptions>{};\r\n\r\n    this.onTermFilterChange\r\n      .pipe(debounceTime(1000))\r\n      .subscribe(v => this.setupFrontPage(true));\r\n\r\n    // subscribe for data from the connected service\r\n    this.objectState\r\n      .list$\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe((res: ObjectSearchResult) => {\r\n        this.frontPage = !res;\r\n        if (res) {\r\n          // setup the grid with the new data\r\n          let {name, result} = res;\r\n          this.emptyGrid = result.count.value === 0;\r\n          this.gridTitle = name;\r\n          this.configType = this.systemService.getObjectType(result.typeName) || {qname: result.typeName} as ObjectType;\r\n          this.searchResult = result;\r\n        }\r\n\r\n        // this.loadingState.list.ready();\r\n      });\r\n\r\n    this.objectState.tree$\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe(res => this.buildContextTree(res.folder));\r\n\r\n    this.objectState.treeRef$\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe(res => this.buildContextTreeRef(res.folder));\r\n\r\n    this.selection.focus$\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe((item: DmsObject) => {\r\n        if (item) {\r\n          this.highlight(item.id);\r\n        }\r\n        this.selectedItem = item;\r\n        // this.loadingState.details.ready();\r\n      });\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_DELETED)\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe((evt) => {\r\n        setTimeout(() => {\r\n          if (this.context && this.context.id === evt.data.id) {\r\n            this.context = null;\r\n            this.error = true;\r\n            return;\r\n          }\r\n          if (this.frontPage) {\r\n            this.setupFrontPage();\r\n          }\r\n          this.updateContextTree();\r\n        }, 1000);\r\n      });\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_UPDATED)\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe(event => {\r\n        if (this.context && event.data && this.context.id === event.data.id) {\r\n          this.context = event.data;\r\n        }\r\n        if (this.frontPage) {\r\n          this.setupFrontPage(true);\r\n        }\r\n        this.updateContextTree();\r\n      });\r\n\r\n    this.eventService\r\n      .on(EnaioEvent.DMS_OBJECT_PASTED)\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe((evt) => {\r\n        const name = this.translate.instant('eo.clipboard.paste.resultlist.headline');\r\n        this.objectState\r\n          .selectTreeNode(<any>{}, <any>{name}, {id: evt.data.map(d => d.id)}).subscribe();\r\n        this.updateContextTree();\r\n      });\r\n  }\r\n\r\n  hasPendingChanges() {\r\n    return this.pendingChanges.hasPendingTask();\r\n  }\r\n\r\n  onExpandedNodesChanged(expandedNodes: string[]) {\r\n    this.expandedNodeIds = expandedNodes;\r\n  }\r\n\r\n  // select an entry from the tree\r\n  onTreeSelectionChanged(node: TreeNode) {\r\n    this.location.leave();\r\n    this.selectedNode = node;\r\n    if (node.data.type) {\r\n      this.location.enter(this.context, this.selectedNode);\r\n    } else {\r\n      this.location.enter(this.context);\r\n    }\r\n    if (node) {\r\n      this.gridService.updateContext(node.isReference || this.allTypes.includes(node.data.type) ? [node.data.type] : this.allTypes);\r\n      this.loadingState.list\r\n        .subscribe(node.isReference ?\r\n          this.objectState.selectTreeNode(this.context, node, {term: this.termFilter}, 'referenceview') :\r\n          this.objectState.selectTreeNode(this.context, node, {term: this.termFilter}));\r\n    } else {\r\n      this.setupFrontPage();\r\n    }\r\n  }\r\n\r\n  onContextMenuClicked(evt, doc?) {\r\n    evt.preventDefault();\r\n    evt.stopPropagation();\r\n    this.actionService.showActions([doc || this.context], 'DMS_OBJECT');\r\n  }\r\n\r\n  refreshList() {\r\n    this.onTreeSelectionChanged(this.selectedNode);\r\n  }\r\n\r\n  private process(item: DmsObject, selectedId?) {\r\n    if (item.isContextFolder) {\r\n      // if there already is a context set, we need to leave location for the old context first\r\n      // otherwise UploadTargets will not be unregistered correctly\r\n      if (this.context) {\r\n        this.location.leave();\r\n      }\r\n      this.context = item;\r\n      this.cacheLayout = 'object.state--' + item.typeName;\r\n      // add this location to the location service, which will track active locations\r\n      // and handle a history of visited locations.\r\n      this.location.enter(this.context, this.selectedNode);\r\n\r\n      this.objectState.loadTreeByQuery(this.context.id, this.context.typeName, {definition: [{field: 'type', key: 'Types', size: 1000}]})\r\n        .subscribe(types => (this.allTypes = (types.folder[0].folder || []).map(t => t.type)));\r\n\r\n      this.fetchTreeData('', selectedId);\r\n      this.setupFrontPage(true);\r\n\r\n    } else {\r\n      // fetch the context folder\r\n      if (item.contextFolder) {\r\n        this.cacheLayout = 'object.state--' + item.contextFolder.typeName;\r\n        this.dmsService\r\n          .getDmsObject(item.contextFolder.id, item.contextFolder.typeName, null, 'DETAILS')\r\n          .subscribe((res: DmsObject) => {\r\n            this.process(res, item.id);\r\n          });\r\n      } else {\r\n        // just the document in root\r\n        this.context = null;\r\n        this.cacheLayout = '';\r\n        // hide empty tree & list\r\n        // this.layoutService.hideAreas((a, i) => i < 2);\r\n      }\r\n    }\r\n    // this.layoutService.visibilityUpdate();\r\n  }\r\n\r\n  setupFrontPage(updateSelection = false, updateTree = false) {\r\n    this.objectState\r\n      .selectFrontPage(this.context)\r\n      .subscribe((data) => {\r\n        this.frontPage = true;\r\n        this.frontPageData = data;\r\n      });\r\n\r\n    if (!updateSelection) {\r\n      this.location.leave();\r\n      this.selection.focus(this.context);\r\n      this.location.enter(this.context);\r\n    }\r\n\r\n    if (!updateTree) {\r\n      this.fetchTreeData(this.termFilter);\r\n    }\r\n  }\r\n\r\n  private fetchTreeData(termFilter?: string, selectedId?: any) {\r\n    this.highlight(selectedId);\r\n    this.loadingState.tree.subscribe(this.objectState.updateTreeByQuery(this.context, {term: termFilter}));\r\n    this.loadingState.treeRef.subscribe(this.objectState.updateTreeByQuery(this.context, {term: termFilter}, 'referenceview'));\r\n  }\r\n\r\n  private highlight(selectedId) {\r\n    if (selectedId && this.context) {\r\n      forkJoin([\r\n        this.objectState.loadTreeByQuery(this.context.id, this.context.typeName, {id: selectedId}),\r\n        this.objectState.loadTreeByQuery(this.context.id, this.context.typeName, {id: selectedId}, 'referenceview')\r\n      ]).subscribe((res) => {\r\n        this.highlightedNodes = this.highlightNodes([...res[0].folder, ...res[1].folder]);\r\n        this.isReferenceActive = !!(res[1].total.value && !res[0].total.value);\r\n      });\r\n    } else {\r\n      this.highlightedNodes = [];\r\n    }\r\n  }\r\n\r\n  private updateContextTree() {\r\n    if (this.context) {\r\n      this.objectState\r\n        .loadTreeByQuery(this.context.id, this.context.typeName, {term: this.termFilter})\r\n        .subscribe(res => this.contextTreeUpdate = res.folder.map(f => this.addTreeNode(f, [])));\r\n      this.objectState\r\n        .loadTreeByQuery(this.context.id, this.context.typeName, {term: this.termFilter}, 'referenceview')\r\n        .subscribe(res => this.contextTreeRefUpdate = res.folder.map(f => this.addTreeNode(f, [], true)));\r\n    }\r\n  }\r\n\r\n  private highlightNodes(folder = [], nodes = []) {\r\n    folder.forEach(f => {\r\n      if (f.count) {\r\n        nodes.push(f.key);\r\n      }\r\n      if (f.folder) {\r\n        this.highlightNodes(f.folder, nodes);\r\n      }\r\n    });\r\n    return nodes;\r\n  }\r\n\r\n  private buildContextTree(folder = []) {\r\n    this.contextTreeUpdate = null;\r\n    this.contextTree = folder.map(f => this.addTreeNode(f, []));\r\n  }\r\n\r\n  private buildContextTreeRef(folder = []) {\r\n    this.contextTreeRefUpdate = null;\r\n    this.contextTreeRef = folder.map(f => this.addTreeNode(f, [], true));\r\n\r\n  }\r\n\r\n  private addTreeNode(nodeData, path: string[], isReference = false) {\r\n    const {key, title, folder, expanded, count, stats} = nodeData;\r\n    // important to create clone here, because otherwise path will be messed up\r\n    const p = path.concat([title]);\r\n    let node: TreeNode = {\r\n      id: key,\r\n      name: title,\r\n      path: p,\r\n      children: (folder || []).map(f => this.addTreeNode(f, p, isReference)),\r\n      expanded: expanded || !!~this.expandedNodeIds.indexOf(key),\r\n      selected: false,\r\n      selectable: true,\r\n      isReference,\r\n      badges: (stats || []).map(stat => Object.assign({\r\n        value: stat.value + ' ' + stat.title,\r\n        cssClass: 'stats'\r\n      })),\r\n      data: nodeData\r\n    };\r\n\r\n    if (count) {\r\n      node.badges.push({value: count});\r\n    }\r\n\r\n    return node;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.route.url\r\n      .pipe(\r\n        untilDestroyed(this))\r\n      .subscribe(() => {\r\n        this.cacheLayout = '';\r\n        // this.layoutService.hideAreas(() => false);\r\n        const {params, queryParams} = this.route.snapshot;\r\n        if (params.id) {\r\n          this.typeName = queryParams['type'] || '';\r\n          this.selection.focus({id: params.id, typeName: this.typeName});\r\n          this.dmsService\r\n            .getDmsObject(params.id, this.typeName, null, 'DETAILS')\r\n            .subscribe((res: DmsObject) => {\r\n              this.error = false;\r\n              this.process(res);\r\n              this.selection.focus(res);\r\n              this.isReferenceActive = false;\r\n            }, Utils.throw(() => {\r\n              // this.layoutService.setAreas([]);\r\n              this.error = true;\r\n            }));\r\n        }\r\n      });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    // when the component is destroyed, we tell the location service that we\r\n    // left the location\r\n    this.location.leave();\r\n    this.selection.clear();\r\n  }\r\n\r\n}\r\n","<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\r\n\r\n  <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\r\n    <div class=\"left\">\r\n      <eo-icon class=\"type-icon\" [objectType]=\"context.type\" [iconTitle]=\"context.type.label\"></eo-icon>\r\n      <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\r\n        <div class=\"label\">{{context.title || '&nbsp;'}}</div>\r\n        <div class=\"description\">{{context.description || '&nbsp;'}}</div>\r\n      </div>\r\n    </div>\r\n    <div class=\"right\">\r\n      <div class=\"fold\">\r\n        <span class=\"created-date\">{{context.created.on | localeDate}}</span>\r\n        <span class=\"created-title\">{{context.created.by.title}}</span>\r\n      </div>\r\n      <div class=\"actions\">\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"file-body\">\r\n    <div class=\"file-body-wrap\">\r\n\r\n      <ng-container *ngIf=\"context !== null; else tplDetailsOnly\">\r\n\r\n        <yvc-split-view *ngIf=\"cacheLayout\" [layoutSettingsID]=\"cacheLayout\">\r\n          <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"20\" [visible]=\"true\">\r\n            <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>\r\n              eo.state.object.tree.error</div>\r\n\r\n            <ng-template #tplTree>\r\n\r\n              <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\r\n                <div class=\"eo-header dark\">\r\n                  <div class=\"eo-header-info\">\r\n                    <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\r\n                    <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\r\n                      <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\r\n                        <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\"\r\n                          (ngModelChange)=\"onTermFilterChange.emit($event)\" />\r\n                      </eo-form-input>\r\n                    </form>\r\n                  </div>\r\n                </div>\r\n                <div class=\"eo-body tree\">\r\n                  <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\"\r\n                    [@panelLoading]=\"loadingState.tree.state\" *ngIf=\"contextTree && (contextTree.length > 1 || (contextTree.length === 1 && contextTree[0].children.length && contextTree[0].name))\" [highlightedNodes]=\"highlightedNodes\"\r\n                    [treeUpdate]=\"contextTreeUpdate\" [(ngModel)]=\"selectedNodes\"\r\n                    (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\r\n                  <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\"\r\n                    translate>eo.state.object.tree.references</h3>\r\n                  <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\"\r\n                    [@panelLoading]=\"loadingState.treeRef.state\" *ngIf=\"contextTreeRef?.length\"\r\n                    [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\r\n                    [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"\r\n                    class=\"reference\"></eo-tree>\r\n                </div>\r\n              </eo-list-container>\r\n\r\n            </ng-template>\r\n          </ng-template>\r\n\r\n          <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"35\" [visible]=\"true\">\r\n            <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\"\r\n              [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\" [plugins]=\"'object-state-details-tab.object' | plugins\">\r\n            </eo-object-state-details>\r\n\r\n            <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\"\r\n              [reference]=\"selectedNode?.isReference\" [searchResult]=\"searchResult\" [configType]=\"configType\"\r\n              [configContext]=\"\" [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\r\n            </eo-result-list>\r\n          </ng-template>\r\n\r\n          <ng-template yvcSplitArea [size]=\"45\" [visible]=\"true\">\r\n            <ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container>\r\n          </ng-template>\r\n        </yvc-split-view>\r\n\r\n      </ng-container>\r\n\r\n      <ng-template #tplDetailsOnly><ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container></ng-template>\r\n\r\n      <ng-template #tplObjectDetails>\r\n        <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\"\r\n          [cacheLayout]=\"'object.state--' + typeName + '.object-details'\" [plugins]=\"'object-details-tab.object' | plugins\">\r\n        </eo-object-details>\r\n      </ng-template>\r\n    </div>\r\n  </div>\r\n</div>\r\n\r\n<ng-template #errorTmpl>\r\n  <eo-error404></eo-error404>\r\n</ng-template>\r\n","import {NgModule} from '@angular/core';\r\nimport {Routes, RouterModule} from '@angular/router';\r\nimport {ObjectStateComponent} from './object-state/object-state.component';\r\nimport {PendingChangesGuard} from '../../eo-framework-core/pending-changes/pending-changes-guard.service';\r\nimport {AuthGuard} from '../../eo-framework-core/route-guards/auth/auth-guard.service';\r\nimport {UploadOverlayGuard} from '../../eo-framework/upload-overlay/upload-overlay-guard.service';\r\n\r\nconst routes: Routes = [{\r\n  path: 'object/:id',\r\n  component: ObjectStateComponent,\r\n  canActivate: [AuthGuard, UploadOverlayGuard], canDeactivate: [PendingChangesGuard]\r\n}];\r\n\r\n@NgModule({\r\n  imports: [RouterModule.forChild(routes)],\r\n  exports: [RouterModule]\r\n})\r\nexport class ObjectStateRoutingModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {YvcSplitViewModule} from '@yuuvis/components/split-view';\r\nimport {ObjectStateComponent} from './object-state/object-state.component';\r\nimport {EoFrameworkModule} from '../../eo-framework/eo-framework.module';\r\nimport {ObjectStateRoutingModule} from './object-state-routing.module';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    ObjectStateRoutingModule,\r\n    EoFrameworkModule,\r\n    YvcSplitViewModule\r\n  ],\r\n  declarations: [ObjectStateComponent]\r\n})\r\nexport class ObjectStateModule {\r\n}\r\n","import {ColDef, GridOptions} from '@ag-grid-community/core';\r\nimport {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {BackendService, PrepareService, PreparedItem, SystemService, TranslateService, Utils} from '@eo-sdk/core';\r\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\r\nimport {EmptyState} from '../../../eo-framework-core/empty-state/empty-state.interface';\r\nimport {EmptyStateService} from '../../../eo-framework-core/empty-state/empty-state.service';\r\nimport {PendingChangesComponent} from '../../../eo-framework-core/pending-changes/pending-changes-component.interface';\r\nimport {PendingChangesService} from '../../../eo-framework-core/pending-changes/pending-changes.service';\r\nimport {SelectionService} from '../../../eo-framework-core/selection/selection.service';\r\nimport {PageTitleService} from '../../../eo-framework-core/title/page-title.service';\r\nimport {ISetFilter} from '../../../eo-framework/grid';\r\nimport {CustomSortComponent} from '../../../eo-framework/grid/extensions/custom-sort/custom-sort.component';\r\nimport {SetFilterComponent} from '../../../eo-framework/grid/extensions/filter/setFilters/set-filter.component';\r\nimport {GridComponent} from '../../../eo-framework/grid/grid.component';\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'eo-prepare-state',\r\n  templateUrl: './prepare-state.component.html',\r\n  styleUrls: ['./prepare-state.component.scss']\r\n})\r\nexport class PrepareStateComponent implements OnInit, PendingChangesComponent, OnDestroy {\r\n\r\n  gridOptions: GridOptions;\r\n  sortFields: ColDef[];\r\n  typeFilterFields: ISetFilter[];\r\n  gridData;\r\n  idMatch = true;\r\n  emptyState: EmptyState = {icon: '', text: '', className: ''};\r\n\r\n  @ViewChild('eoGrid') eoGrid: GridComponent;\r\n\r\n  preparedItems: PreparedItem[] = [];\r\n  preparedItem: PreparedItem;\r\n\r\n  constructor(public selection: SelectionService,\r\n              public translate: TranslateService,\r\n              private backend: BackendService,\r\n              private titleService: PageTitleService,\r\n              private prepareService: PrepareService,\r\n              private empty: EmptyStateService,\r\n              private pendingChanges: PendingChangesService,\r\n              private system: SystemService) {\r\n    this.titleService.setBaseTitle(this.translate.instant('eo.prepare.list.title'));\r\n  }\r\n\r\n  hasPendingChanges() {\r\n    return this.pendingChanges.hasPendingTask();\r\n  }\r\n\r\n  removeItem(item: PreparedItem) {\r\n    if (this.preparedItem && item.id === this.preparedItem.id) {\r\n      this.preparedItem = null;\r\n    }\r\n    this.prepareService.deletePreparedItem(item.id).subscribe();\r\n  }\r\n\r\n  updateList(changedItem: PreparedItem) {\r\n    this.updateGrid(this.backend.update(this.gridData, [{id: changedItem.id, item: changedItem}]));\r\n  }\r\n\r\n  refreshGrid() {\r\n    this.prepareService.getPreparedItems$().subscribe();\r\n  }\r\n\r\n  typeFilters() {\r\n    const data = this.gridData;\r\n    let uniqueByType = SetFilterComponent.uniqBy(data, 'selectedtype.name', this.system.getObjectTypes());\r\n    uniqueByType.push({qname: '', label: this.translate.instant('eo.prepare.list.item.type.undefined')});\r\n    this.typeFilterFields = uniqueByType.map(t => Object.assign({\r\n      label: t.label,\r\n      value: true,\r\n      id: '#' + t.qname,\r\n      filter: (node) => node.data.selectedtype ? node.data.selectedtype.name === t.qname : '' === t.qname\r\n    })).sort(Utils.sortValues('label'));\r\n  }\r\n\r\n  resetFilters() {\r\n    this.typeFilters();\r\n  }\r\n\r\n  updateGrid(data) {\r\n    this.emptyState = this.empty.getEmptyState(data ? data.length : -1);\r\n\r\n    if (this.eoGrid && this.eoGrid.isReady) {\r\n      this.eoGrid.updateRowData(data);\r\n      // need to refresh filters based on new grid data\r\n      return this.resetFilters();\r\n    }\r\n\r\n    this.resetFilters();\r\n\r\n    let colDefs: ColDef[] = [\r\n      {\r\n        headerName: '',\r\n        field: '__custom',\r\n        cellRenderer: this.cellRenderer,\r\n        filter: false\r\n      }\r\n    ];\r\n\r\n    this.sortFields = [\r\n      {field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: null},\r\n      {field: 'selectedtype.label', headerName: this.translate.instant('eo.inbox.sort.title'), sort: null}\r\n    ];\r\n\r\n    let sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);\r\n\r\n    this.gridOptions = {\r\n      context: {count: data.length},\r\n      rowData: data,\r\n      columnDefs: colDefs.concat(sortColDefs),\r\n      rowBuffer: 20,\r\n      rowHeight: 80\r\n    };\r\n  }\r\n\r\n  cellRenderer(params) {\r\n    let icon = params.data.selectedtype ? params.context.cr.render('type', params, {\r\n      value: params.data.selectedtype.name\r\n    }) : '<div class=\"iconempty\"></div>';\r\n    let createdTime = params.context.cr.render('dateTime', params, {value: params.data.created, pattern: 'eoNiceShort'});\r\n    let label = params.data.title || params.context.translate.instant('eo.prepare.list.item.type.undefined');\r\n    let location = params.data.parent && params.data.parent.type !== 'sysroot' ? params.context.translate.instant('eo.prepare.list.item.location.set') :\r\n      !params.data.parent || params.data.parent.type === 'sysroot' ? params.context.translate.instant('eo.prepare.list.item.location.notset') : '';\r\n    let template = !params.data.template ? '' :\r\n      `<span>${params.context.translate.instant('eo.prepare.list.item.template')}</span> <span>${params.data.template.title}</span>`;\r\n    let file = template || params.data.state.contentstate === 'NOCONTENTALLOWED' ? '' :\r\n      params.data.contentcount === 0 ? `<span>${params.context.translate.instant('eo.prepare.list.item.file.none')}</span>` :\r\n        params.data.contentcount === 1 ? `<span>${params.data.contents[0].path}</span>` :\r\n          `<span>${params.data.contentcount}x ${params.context.translate.instant('eo.prepare.list.item.files')}</span>`;\r\n\r\n    return `<div class=\"list-item\" unselectable>\r\n              ${icon}\r\n             <div class=\"content\">\r\n              <div class=\"title\">${label}</div>\r\n              <div class=\"location\">${location}</div>\r\n              <div class=\"file\">${template || file}</div>\r\n            </div>\r\n            <div class=\"meta\">\r\n                <div class=\"date\">${createdTime}</div>\r\n              </div>\r\n          </div>\r\n          `;\r\n  }\r\n\r\n  remove() {\r\n    let focused = this.selection.getFocus();\r\n    if (focused) {\r\n      this.prepareService.deletePreparedItem(focused.id).subscribe();\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.refreshGrid();\r\n    this.prepareService.preparedItems$\r\n      .pipe(\r\n        untilDestroyed(this)\r\n      )\r\n      .subscribe(data => {\r\n        this.gridData = data;\r\n        this.updateGrid(this.gridData);\r\n      });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.selection.clear();\r\n  }\r\n}\r\n","<yvc-split-view [layoutSettingsID]=\"'prepare.state'\">\r\n  <ng-template yvcSplitArea [size]=\"30\">\r\n    <eo-list-container #eoList [applySelection]=\"{}\">\r\n      <div class=\"eo-header\">\r\n        <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\r\n        <div class=\"eo-header-info\">\r\n          <div class=\"eo-header-title\" translate>eo.prepare.list.title</div>\r\n          <div class=\"eo-header-subtitle\" translate>eo.prepare.list.title.sub</div>\r\n        </div>\r\n        <div class=\"eo-header-actions\">\r\n          <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\r\n            (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\r\n            [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\r\n\r\n          <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\r\n            [iconClass]=\"'primary'\" [iconTitle]=\"'eo.list.filter' | translate\">\r\n            <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\r\n              (active)=\"oFilter.onActiveChanged($event)\">\r\n              <!--<eo-text-filter [title]=\"'eo.timeline.filter.action' | translate\" [matchFields]=\"['selectedtype.label']\"></eo-text-filter>-->\r\n              <eo-set-filter [operator]=\"'OR'\" [id]=\"'prepare.object.type'\"\r\n                [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\r\n                [options]=\"typeFilterFields\"></eo-set-filter>\r\n            </eo-custom-filter>\r\n          </eo-overlay>\r\n\r\n          <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\"\r\n            [title]=\"'eo.list.sort' | translate\">\r\n            <eo-custom-sort #cSort [id]=\"'prepare.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\r\n              (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\r\n          </eo-overlay>\r\n\r\n          <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions(null, 'PREPARED_ITEM')\"\r\n            [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\r\n        </div>\r\n      </div>\r\n      <div class=\"eo-body dark\">\r\n        <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\r\n          [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event);\"\r\n          (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'PREPARED_ITEM')\"\r\n          (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\r\n          (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\r\n\r\n          <div class=\"header\">\r\n          </div>\r\n\r\n          <div class=\"footer\">\r\n            <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\r\n          </div>\r\n\r\n          <div class=\"empty\">\r\n            <eo-error-message\r\n              [emptyState]=\"{icon: 'ic_prepare.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.prepare.list.empty'}\"></eo-error-message>\r\n            <eo-reset-filter [isFilterActive]=\"oFilter.active\"\r\n              (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\r\n          </div>\r\n        </eo-grid>\r\n      </div>\r\n    </eo-list-container>\r\n  </ng-template>\r\n  <ng-template yvcSplitArea [size]=\"70\">\r\n    <eo-prepare-details [applySelection]=\"{}\" [emptyState]=\"emptyState\" (onItemChanged)=\"updateList($event)\"\r\n      (onItemRemove)=\"remove()\">\r\n      <div class=\"error\" *ngIf=\"gridData?.length\">\r\n        <button class=\"button secondary\" (click)=\"remove()\" translate>eo.prepare.details.item.gone.remove</button>\r\n      </div>\r\n    </eo-prepare-details>\r\n  </ng-template>\r\n</yvc-split-view>","import {NgModule} from '@angular/core';\r\nimport {Routes, RouterModule} from '@angular/router';\r\nimport {PrepareStateComponent} from './prepare-state/prepare-state.component';\r\nimport {AuthGuard} from '../../eo-framework-core/route-guards/auth/auth-guard.service';\r\nimport {CapabilitiesGuard} from '../../eo-framework-core/route-guards/capabilities/capabilities-guard.service';\r\nimport {PendingChangesGuard} from '../../eo-framework-core/pending-changes/pending-changes-guard.service';\r\nimport {UploadOverlayGuard} from '../../eo-framework/upload-overlay/upload-overlay-guard.service';\r\n\r\nconst routes: Routes = [{\r\n  path: 'prepare',\r\n  component: PrepareStateComponent,\r\n  canActivate: [AuthGuard, UploadOverlayGuard, CapabilitiesGuard], canDeactivate: [PendingChangesGuard]\r\n}];\r\n\r\n@NgModule({\r\n  imports: [RouterModule.forChild(routes)],\r\n  exports: [RouterModule]\r\n})\r\nexport class PrepareStateRoutingModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport {GridModule} from '../../eo-framework/grid/grid.module';\r\nimport {EoFrameworkModule} from '../../eo-framework/eo-framework.module';\r\nimport {PrepareStateRoutingModule} from './prepare-state-routing.module';\r\nimport {PrepareStateComponent} from './prepare-state/prepare-state.component';\r\nimport {ListContainerModule} from '../../eo-framework/list-container/list-container.module';\r\nimport {YvcSplitViewModule} from '@yuuvis/components/split-view';\r\n\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    PrepareStateRoutingModule,\r\n    GridModule,\r\n    ListContainerModule,\r\n    EoFrameworkModule,\r\n    YvcSplitViewModule\r\n  ],\r\n  declarations: [PrepareStateComponent]\r\n})\r\nexport class PrepareStateModule {\r\n}\r\n","import {CommonModule} from '@angular/common';\r\nimport {ModuleWithProviders, NgModule, Optional, SkipSelf} from '@angular/core';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {RouterModule} from '@angular/router';\r\nimport {YvcMasterDetailsModule} from '@yuuvis/components/master-details';\r\nimport {YvcSplitViewModule} from '@yuuvis/components/split-view';\r\n\r\nimport {EoFrameworkModule} from '../eo-framework/eo-framework.module';\r\nimport {GridModule} from '../eo-framework/grid/grid.module';\r\nimport {AboutStateComponent} from './about-state/about-state.component';\r\nimport {DashboardComponent} from './dashboard/dashboard.component';\r\nimport {EoClientRoutingModule} from './eo-client-routing.module';\r\nimport {FavoriteStateComponent} from './favorite-state/favorite-state.component';\r\nimport {InboxStateModule} from './inbox-state/inbox-state.module';\r\nimport {LoginComponent} from './login/login.component';\r\nimport {NotificationsStateComponent} from './notifications-state/notifications-state.component';\r\nimport {ObjectStateModule} from './object-state/object-state.module';\r\nimport {PrepareStateModule} from './prepare-state/prepare-state.module';\r\nimport {ProcessStateComponent} from './process-state/process-state.component';\r\nimport {ResultStateComponent} from './result-state/result-state.component';\r\nimport {SettingsComponent} from './settings/settings.component';\r\nimport {StoredQueriesStateComponent} from './stored-queries-state/stored-queries-state.component';\r\nimport {VersionStateComponent} from './version-state/version-state.component';\r\nimport {RecyclebinStateComponent} from './recyclebin-state/recyclebin-state.component';\r\nimport {YvcDropdownModule} from '@yuuvis/components/dropdown';\r\nimport {YuvWidgetGridModule} from '@yuuvis/widget-grid';\r\nimport {provideHttpClient, withInterceptorsFromDi} from '@angular/common/http';\r\nimport {IframeSetupComponent} from './dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component';\r\nimport {InfoInboxSetupComponent} from './dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component';\r\nimport {InfoIntraySetupComponent} from './dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component';\r\nimport {IframeWidgetComponent, SafeUrlPipe} from './dashboard/widgets/iframe-widget/iframe-widget.component';\r\nimport {InfoInboxWidgetComponent} from './dashboard/widgets/info-inbox-widget/info-inbox-widget.component';\r\nimport {InfoIntrayWidgetComponent} from './dashboard/widgets/info-intray-widget/info-intray-widget.component';\r\nimport {LastEditedAndCreatedComponent} from './dashboard/widgets/last-edited-widget/last-edited-and-created.component';\r\nimport {SearchWidgetComponent} from './dashboard/widgets/search-widget/search-widget.component';\r\nimport {YvcTabsModule} from '@yuuvis/components/tabs';\r\nimport {HitlistSetupComponent} from './dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component';\r\nimport {HitlistWidgetComponent} from './dashboard/widgets/hitlist-widget/hitlist-widget.component';\r\nimport {ChartsWidgetComponent} from './dashboard/widgets/charts-widget/charts-widget.component';\r\nimport {ChartsSetupComponent} from './dashboard/widgets/charts-widget/charts-setup/charts-setup.component';\r\nimport {ChartsModule} from '@carbon/charts-angular';\r\nimport {CountObjectsWidgetComponent} from './dashboard/widgets/count-objects-widget/count-objects-widget.component';\r\nimport {CountObjectsSetupComponent} from './dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component';\r\nimport {LastEditedAndCreatedSetupComponent} from './dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component';\r\nimport {TodoWidgetComponent} from './dashboard/widgets/todowidget/todo-widget.component';\r\nimport {TodoSetupComponent} from './dashboard/widgets/todowidget/todo-setup/todo-setup.component';\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\nimport {PictureWidgetComponent} from './dashboard/widgets/picture-widget/picture-widget.component';\r\nimport {PictureWidgetSetupComponent} from './dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    DashboardComponent,\r\n    SettingsComponent,\r\n    LoginComponent,\r\n    ResultStateComponent,\r\n    FavoriteStateComponent,\r\n    NotificationsStateComponent,\r\n    AboutStateComponent,\r\n    StoredQueriesStateComponent,\r\n    ProcessStateComponent,\r\n    VersionStateComponent,\r\n    RecyclebinStateComponent,\r\n    IframeSetupComponent,\r\n    InfoInboxSetupComponent,\r\n    InfoIntraySetupComponent,\r\n    IframeWidgetComponent,\r\n    InfoInboxWidgetComponent,\r\n    InfoIntrayWidgetComponent,\r\n    SearchWidgetComponent,\r\n    SafeUrlPipe,\r\n    LastEditedAndCreatedComponent,\r\n    LastEditedAndCreatedSetupComponent,\r\n    HitlistSetupComponent,\r\n    HitlistWidgetComponent,\r\n    ChartsWidgetComponent,\r\n    ChartsSetupComponent,\r\n    CountObjectsWidgetComponent,\r\n    CountObjectsSetupComponent,\r\n    TodoWidgetComponent,\r\n    TodoSetupComponent,\r\n    PictureWidgetComponent,\r\n    PictureWidgetSetupComponent\r\n  ],\r\n  exports: [RouterModule, EoFrameworkModule],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    ObjectStateModule,\r\n    InboxStateModule,\r\n    PrepareStateModule,\r\n    EoClientRoutingModule,\r\n    EoFrameworkModule,\r\n    GridModule,\r\n    YvcMasterDetailsModule,\r\n    YvcTabsModule,\r\n    YvcSplitViewModule,\r\n    YvcDropdownModule,\r\n    YuvWidgetGridModule,\r\n    ChartsModule,\r\n    DragDropModule\r\n  ],\r\n  providers: [provideHttpClient(withInterceptorsFromDi())]\r\n})\r\nexport class EoClientModule {\r\n\r\n  static forRoot(): ModuleWithProviders<EoClientModule> {\r\n    return {\r\n      ngModule: EoClientModule\r\n    };\r\n  }\r\n\r\n  constructor(@Optional() @SkipSelf() parentModule: EoClientModule) {\r\n    if (parentModule) {\r\n      throw new Error(\r\n        'EoClientModule is already loaded. Import it in the AppModule only');\r\n    }\r\n  }\r\n}\r\n","export enum FilterLabelEnum {\r\n  none = -1,\r\n  created = 0,\r\n  running = 20,\r\n  completed = 30,\r\n  suspended = 40,\r\n  TERMINATED = 50,\r\n  error = 60\r\n}\r\n","/*\r\n * Public API Surface of client\r\n */\r\n\r\nexport * from './app/eo-framework-core/index';\r\nexport * from './app/eo-framework/index';\r\nexport * from './app/eo-client/index';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["observableFrom","i2","i2.AgentService","i3","i3.AgentService","isNaN","groupBy","map","reduce","i3.AppSearchService","filter","i1.PendingChangesService","observableOf","i1","i2.SelectionService","i6.EoIconComponent","i7.RtlAwareDirective","observableForkJoin","i2.ReferenceService","i3.PluginsService","i3.InputFocusDirective","i3.EoIconComponent","i4.RtlAwareDirective","i5.TreeNodeComponent","i4.EoIconComponent","i5.EoDialogComponent","i6.TreeComponent","i5.EoIconComponent","i7.DateComponent","i4.NumberComponent","i4","i5","i6","i4.RouterLinkDirective","i2.EoIconComponent","i1.ReferenceFinderService","i3.LoadingSpinnerComponent","i4.SimpleAccordionComponent","i5.ReferenceFinderEntryComponent","i6.RouterLinkDirective","i8.EoDialogComponent","i9","i10","i11.ReferenceFinderComponent","i12","i5.FormInputComponent","i6.CodesystemComponent","i8.DatetimeRangeComponent","i9.NumberComponent","i10.NumberRangeComponent","i11.OrganizationComponent","i12.CheckboxComponent","i13.StringComponent","i14.ReferenceComponent","i15.DynamicListComponent","i16.IdReferenceComponent","i17.FormElementTemplate","i2.PluginsService","i5.OutsideClickDirective","i6.LoadingSpinnerComponent","i7","i8","i2.ObjectFormScriptService","i3.ObjectFormHelperService","i8.EoIconComponent","i9.EoDialogComponent","i10.CheckboxComponent","i11.FormElementComponent","i2.PendingChangesService","i3.GridService","i7.EoDialogComponent","i9.MediaComponent","i11.RowEditComponent","i4.FormElementComponent","i5.FormElementTableComponent","i6.FormElementTemplate","i7.KeysPipe","i6.RtlAwareDirective","i7.ObjectFormGroupComponent","i6.ObjectFormComponent","i7.CtaComponent","take","i1.ActionService","i6.OutsideClickDirective","i7.RouterLinkDirective","i8.LoadingSpinnerComponent","i9.ActionComponentAnchorDirective","i10.PreventDoubleClickDirective","i2.LocationService","i2.SafeHtmlPipe","i2.GridService","i5.IndexdataSummaryEntryComponent","i7.FileSizePipe","i8.LocaleDatePipe","i4.UserAvatarComponent","i3.ErrorMessageComponent","i5.LocaleDatePipe","i3.ActionService","i6.TrapFocusDirective","i4.EoDialogComponent","i7.TreeComponent","i1.ListSettingsService","i4.CheckboxComponent","i6.SafeHtmlPipe","i1.GridService","i4.PendingChangesService","i3.LocaleDecimalPipe","i3.FormInputComponent","i7.FormInputComponent","i1.CtaComponent","i2.ResetFilterComponent","i1.SelectionService","i4.ActionService","i1.ShortcutsService","i5.GlobalShortcutsSectionComponent","i6.EoDialogComponent","i7.ShortcutsDirective","i8.ObjectFormComponent","i5.TrapFocusDirective","i5.LoadingSpinnerComponent","i7.TrapFocusDirective","i8.CodesystemComponent","i9.CheckboxComponent","i10.StringComponent","i8.DateComponent","i8.OrganizationComponent","i3.TrapFocusDirective","i2.ObjectFormComponent","i3.CtaComponent","i6.FormInputComponent","i7.StringComponent","i9.SequenceListItemComponent","i8.FormInputComponent","i9.CodesystemComponent","i11.StringComponent","i12.CtaComponent","i13.SequenceListComponent","i9.FormInputComponent","i8.TrapFocusDirective","i3.PendingChangesService","i7.UserAvatarComponent","i3.LocaleDatePipe","i8.ClipboardComponent","i9.OverlayComponent","i10.SideBarComponent","i11.UserAvatarOverlayComponent","i12.LicenseWarningComponent","tap","i1.AppSearchService","i9.RtlAwareDirective","i10.LoadingSpinnerComponent","i11.QueryScopeSelectComponent","i13.FormInputComponent","i14.DatetimeRangeComponent","i15.OrganizationComponent","i16.StringComponent","i17.ObjectFormComponent","i18","i19.ContextSearchComponent","i20.LocaleDecimalPipe","i4.LocationService","i2.EoDialogComponent","i3.AppAddDialogComponent","i8.ProcessFormComponent","routes","i1.PageTitleService","i2.Error404Component","i1.PluginService","i2.PluginDirective","i5.AppBarComponent","i7.EoIconComponent","i8.GlobalShortcutsComponent","i9.ShortcutsDirective","i10.SidebarPluginComponent","i11.ActionMenuComponent","i12.UploadOverlayComponent","i6.LocaleDatePipe","i7.HistoryFilterPipe","i5.ErrorMessageComponent","i9.IndexdataSummaryComponent","i10.ErrorMessageComponent","i11.PluginComponent","i13.ProcessHistoryComponent","i14.ProcessFileComponent","i15.DuetimeInfoComponent","i6.HistoryFilterComponent","i7.LocaleDatePipe","i8.HistoryFilterPipe","i1.ReferenceService","i5.RouterLinkDirective","i4.FormInputComponent","i6.OpenDocumentComponent","i3.EmptyStateService","i4.AgentService","i5.SelectionService","i6.ActionService","i8.ObjectFormEditComponent","i10.ShortcutsDirective","i11","i12.EoIconComponent","i13.RouterLinkDirective","i14.LoadingSpinnerComponent","i15.IndexdataSummaryComponent","i16.ErrorMessageComponent","i17.SignatureTabComponent","i21.PluginComponent","i22.ObjectHistoryComponent","i23.ObjectLinksComponent","i24.FavoriteIconComponent","i25.EditIconComponent","i26.LocaleDatePipe","i4.SelectionService","i6.MediaComponent","i9.LoadingSpinnerComponent","i10.IndexdataSummaryComponent","i11.EoDialogComponent","i13","i14.PluginComponent","i15.ObjectHistoryComponent","i2.ActionService","i7.PluginComponent","i9.FileSizePipe","i10.LocaleDatePipe","i2.RouterLinkDirective","i9.RouterLinkDirective","i11.OverlayComponent","i12.ErrorMessageComponent","i13.EoDialogComponent","i14.MediaComponent","i15.GridComponent","i16.CustomFilterComponent","i17.TextFilterComponent","i18.SetFilterComponent","i19.ListContainerComponent","i21.PrepareContentExistsInfoComponent","i7.ErrorMessageComponent","i8.PluginComponent","i10.ProcessHistoryComponent","i11.ProcessFileComponent","i8.RtlAwareDirective","i10.LocaleDecimalPipe","i11.KeysPipe","i2.ObjectFormHelperService","i5.FormElementComponent","i7.QueryScopeSelectComponent","i9.LocaleDecimalPipe","i9.ErrorMessageComponent","i10.EoDialogComponent","i11.ListContainerComponent","i12.GridComponent","i13.ColumnConfiguratorComponent","i14.TotalCountComponent","i15.PaginationComponent","i16.StoredQueryComponent","i3.SelectionService","i5.ObjectFormHelperService","i7.FormElementComponent","i9.EoIconComponent","i14.CodesystemComponent","i15.StoredQueryComponent","i16.DynamicPropertySwitchComponent","i5.PasswordComponent","i2.PageTitleService","i8.RouterLinkDirective","i9.TreeComponent","i10.QuickSearchComponent","i11.StoredQueryComponent","i12.LocaleDecimalPipe","i13.KeysPipe","debounceTime","i5.StringComponent","i6.IframeWidgetComponent","i4.ErrorMessageComponent","i6.StringComponent","i7.InfoIntrayWidgetComponent","i6.InfoInboxWidgetComponent","i6.ErrorMessageComponent","i7.NumberComponent","i8.CheckboxComponent","i9.HitlistWidgetComponent","i9.StringComponent","i10.ChartsWidgetComponent","switchMap","i4.LoadingSpinnerComponent","catchError","i9.CountObjectsWidgetComponent","i5.NumberComponent","i6.CheckboxComponent","i7.LastEditedAndCreatedComponent","i8.StringComponent","i6.TodoWidgetComponent","i2.ErrorMessageComponent","i3.EoDialogComponent","i4.PictureWidgetComponent","i3.PageTitleService","i9.UserAvatarComponent","i13.ChangePasswordFormComponent","i14.PermissionsComponent","i15.SimpleAccordionComponent","i5.PluginsService","i6.ResultListComponent","i7.ObjectDetailsComponent","i9.PluginPipe","i5.PageTitleService","i11.ObjectDetailsComponent","i13.TotalCountComponent","i14.CustomSortComponent","i15.CustomFilterComponent","i16.TextFilterComponent","i17.SetFilterComponent","i18.ResetFilterComponent","i21.PluginPipe","first","i6.AppSearchService","i10.OverlayComponent","i11.ErrorMessageComponent","i12.StoredQueryDetailsComponent","i13.GridComponent","i15.CustomSortComponent","i19.ResetFilterComponent","i20.ListContainerComponent","i21","i6.PendingChangesService","i12.ObjectDetailsComponent","i17.ResetFilterComponent","i18.PaginationComponent","i19.FormInputComponent","i20.DatetimeRangeComponent","i21.CheckboxComponent","i22.DynamicListComponent","i23.ListContainerComponent","i24.ProcessDetailsComponent","i25","i26.PluginPipe","i4.EmptyStateService","i7.OverlayComponent","i8.ErrorMessageComponent","i9.ObjectDetailsComponent","i10.GridComponent","i11.TotalCountComponent","i12.CustomSortComponent","i13.CustomFilterComponent","i14.SetFilterComponent","i15.ResetFilterComponent","i16.ListContainerComponent","i17","i18.PluginPipe","i5.PendingChangesService","i6.PageTitleService","i11.RecyclebinDetailsComponent","i18.ListContainerComponent","i19","i20.PluginPipe","i5.EmptyStateService","i8.GridComponent","i9.TotalCountComponent","i10.CustomSortComponent","i11.CustomFilterComponent","i12.TextFilterComponent","i13.SetFilterComponent","i14.ResetFilterComponent","i15","i16.EoIconComponent","i17.OverlayComponent","i18.ErrorMessageComponent","i19.ObjectDetailsComponent","i20.InboxDetailsComponent","i21.ListContainerComponent","i22","i23.PluginPipe","i5.ObjectStateService","i7.LocationService","i8.PendingChangesService","i9.GridService","i10.LayoutService","i14.EoIconComponent","i15.ResultListComponent","i16.ObjectDetailsComponent","i17.TreeComponent","i18.FormInputComponent","i20.Error404Component","i21.ObjectStateDetailsComponent","i23.LocaleDatePipe","i24.PluginPipe","i7.GridComponent","i8.TotalCountComponent","i9.CustomSortComponent","i10.CustomFilterComponent","i11.SetFilterComponent","i12.ResetFilterComponent","i13.ListContainerComponent","i14","i15.EoIconComponent","i16.OverlayComponent","i17.ErrorMessageComponent","i18.PrepareDetailsComponent"],"mappings":"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"}